US 12,443,622 B2
Methods and apparatus for a distributed database within a network
Leemon C. Baird, III, Richardson, TX (US)
Assigned to Hedera Hashgraph, LLC, Las Vegas, NV (US)
Filed by Hedera Hashgraph, LLC, Las Vegas, NV (US)
Filed on May 17, 2023, as Appl. No. 18/318,787.
Application 18/318,787 is a continuation of application No. 17/493,934, filed on Oct. 5, 2021, abandoned.
Claims priority of provisional application 63/088,298, filed on Oct. 6, 2020.
Prior Publication US 2024/0111782 A1, Apr. 4, 2024
Int. Cl. G06F 16/27 (2019.01); G06F 16/22 (2019.01); G06F 16/23 (2019.01)
CPC G06F 16/27 (2019.01) [G06F 16/2237 (2019.01); G06F 16/2358 (2019.01)] 20 Claims
OG exemplary drawing
 
1. A method, comprising:
defining, at a first compute device from a plurality of compute devices that implements a distributed database via a network, an address book for the distributed database, the address book including an identifier for each compute device from the plurality of compute devices that implements the distributed database via the network;
receiving, at the first compute device and from a second compute device from the plurality of compute devices, a first event including a first transaction to update the address book;
calculating, at the first compute device and based on a consensus protocol of the distributed database that uses the address book, a received round for the first event, the received round for the first event not being a predetermined received round;
receiving at the first compute device and from a third compute device from the plurality of compute devices, a second event including a second transaction to update the address book;
updating, at the first compute device, a directed acyclic graph (DAG) that represents the distributed database to include a representation of the second event;
calculating, at the first compute device and based on the consensus protocol and the DAG, a received round for the second event, the received round for the second event being greater than the received round for the first event, the received round for the second event being a predetermined received round;
updating, at the first compute device, the address book to define an updated address book, based on (1) the first transaction, (2) the second transaction, and (3) the received round for the second event being a predetermined received round;
calculating, at the first compute device and using the updated address book with the consensus protocol, a received round for each event from a first plurality of events within a set of rounds from a predetermined number of rounds after the received round for the second event;
identifying, at the first compute device and using the consensus protocol, a set of famous witness events for each round of the consensus protocol, the set of famous witness events for each round being used by the consensus protocol to determine a received round for each event from a second plurality of events;
calculating an attribute for at least one first event from the second plurality of events using the address book; and
excluding an attribute for at least one second event from the second plurality of events from being calculated using the updated address book, the at least one second event from the second plurality of events being an ancestor of at least one famous witness event from the set of famous witness events for a round in which the updated address book is defined.