US2022107960A1PendingUtilityA1

Methods and apparatus for a distributed database within a network

63
Assignee: SWIRLDS INCPriority: Oct 6, 2020Filed: Oct 5, 2021Published: Apr 7, 2022
Est. expiryOct 6, 2040(~14.2 yrs left)· nominal 20-yr term from priority
G06F 16/2308G06F 16/275G06F 16/9024G06F 16/2358G06F 16/2255G06F 16/2237G06F 16/27
63
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

In some embodiments, a method includes defining an address book for a distributed database. The address book includes an identifier for each compute device from a set of compute devices that implements the distributed database via a network. The method further includes receiving, from a compute device from the set of compute devices, an event including a transaction to update the address book and calculating, based on a consensus protocol of the distributed database that uses the address book, a received round for the event. The method further includes updating the address book based on the transaction to define an updated address book a predetermined number of rounds after at least one of the received round for the event or a previous update to the address book.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . A method, comprising:
 defining an address book for a distributed database, the address book including an identifier for each compute device from a plurality of compute devices that implements the distributed database via a network;   receiving, from a compute device from the plurality of compute devices, an event including a transaction to update the address book;   calculating, based on a consensus protocol of the distributed database that uses the address book, a received round for the event; and   updating the address book based on the transaction to define an updated address book a predetermined number of rounds after at least one of the received round for the event or a previous update to the address book.   
     
     
         2 . The method of  claim 1 , wherein the transaction to update the address book includes at least one of adding a compute device to the plurality of compute devices that implements the distributed database or removing a compute device from the plurality of compute devices that implements the distributed database. 
     
     
         3 . The method of  claim 1 , wherein the address book includes a stake value for each compute device from the plurality of compute devices that implements the distributed database, the transaction to update the address book includes modifying the stake value for at least one compute device from the plurality of compute devices. 
     
     
         4 . The method of  claim 1 , wherein a received round for each event from a plurality of events associated with the distributed database is based on a set of descendant events for that event, the set of descendant events being calculated using the address book prior to the updating, the set of descendant events being calculated using the updated address book after the updating. 
     
     
         5 . The method of  claim 1 , wherein the consensus protocol is configured to identify a set of events for each round of the consensus protocol, the set of events for each round used by the consensus protocol to determine a received round for each event from a plurality of events,
 an attribute being calculated for each event from the plurality of events using the address book,   the attribute being recalculated for each event from the plurality of events using the updated address book when that event is not an ancestor of at least one event from the set of events for a round in which the updated address book is defined.   
     
     
         6 . The method of  claim 1 , wherein the consensus protocol is configured to identify a set of events for each round of the consensus protocol, the set of events for each round used by the consensus protocol to determine a received round for each event from a plurality of events,
 an attribute being calculated for each event from the plurality of events using the address book,   the attribute not being recalculated for each event from the plurality of events using the updated address book when that event from the plurality of events is an ancestor of at least one event from the set of events for a round in which the updated address book is defined.   
     
     
         7 . The method of  claim 1 , wherein the updating includes defining the updated address book the predetermined number of rounds after the previous update to the address book, the updated address book including updates to the address book within events having a received round number between a round in which the previous update to the address book occurred and a round in which the updated address book is defined. 
     
     
         8 . The method of  claim 1 , wherein the updating includes defining the updated address book the predetermined number of rounds after the received round for the event, the predetermined number of rounds being greater than one. 
     
     
         9 . The method of  claim 1 , wherein the identifier for each compute device from the plurality of compute devices is a public key for that compute device from the plurality of compute devices. 
     
     
         10 . An apparatus, comprising:
 a memory of a compute device associated with a distributed database implemented by a plurality of compute devices via a network operatively coupled to the plurality of compute devices; and   a processor operatively coupled to the memory, the processor configured to:
 define 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; 
 receive, from a compute device from the plurality of compute devices, an event including a transaction to update the address book; 
 calculate an attribute for each event from a plurality of events, the event included in the plurality of events; 
 calculate, based on a consensus protocol of the distributed database that uses the address book, a received round for the event, the received round being based on a threshold number of events from a set of events being descendants of the event; 
 update the address book based on the transaction to define an updated address book a predetermined number of rounds after at least one of the received round for the event or a previous update to the address book; and 
 recalculate, using the updated address book, the attribute for each event from the plurality of events when that event does not have a descendent event from the set of events. 
   
     
     
         11 . The apparatus of  claim 10 , wherein the processor is configured to update the address book based on the transaction to define the updated address book the predetermined number of rounds after the received round for the event, the predetermined number of rounds being greater than one. 
     
     
         12 . The apparatus of  claim 10 , wherein the processor is configured to update the address book based on the transaction to define the updated address book the predetermined number of rounds after the previous update to the address book, the updated address book including updates to the address book within events having a received round number between a round in which the previous update to the address book occurred and a round in which the updated address book is defined. 
     
     
         13 . The apparatus of  claim 10 , wherein the transaction to update the address book includes at least one of adding a compute device to the plurality of compute devices that implements the distributed database or removing a compute device from the plurality of compute devices that implements the distributed database. 
     
     
         14 . The apparatus of  claim 10 , wherein the processor is configured to not recalculate, using the updated address book, the attribute for each event from the plurality of events when that event has a descendent event from the set of events. 
     
     
         15 . A non-transitory processor-readable medium storing code representing instructions to be executed by a processor, the code comprising code to cause the processor to:
 connect, via a network, to a plurality of compute devices implementing a distributed database and as a node implementing the distributed database;   receive, from a compute device from the plurality of compute devices, a state of the distributed database associated with a completed round of a consensus protocol, the state including an indication of a core set of events associated with the completed round along with a round identifier for each event from the core set of events;   receive, from the plurality of compute devices, a plurality of events associated with the state;   calculate a set of attributes for each event from the plurality of events based on the core set of events and the round identifier for each event from the core set of events;   construct a directed acyclic graph (DAG) based on the plurality of events and the set of attributes for the plurality of events; and   calculate, using the DAG, an order of events associated with a next round of the consensus protocol.   
     
     
         16 . The non-transitory processor-readable medium of  claim 15 , wherein the indication of the core set of events includes a hash value for each event from the core set of events. 
     
     
         17 . The non-transitory processor-readable medium of  claim 15 , wherein the core set of events does not include events that have a generation that is a generation of a round a predetermined number of rounds prior to the completed round. 
     
     
         18 . The non-transitory processor-readable medium of  claim 15 , further comprising code to cause the processor to:
 discard an event from the plurality of events that has a generation that is a generation of a round a predetermined number of rounds prior to the completed round.   
     
     
         19 . The non-transitory processor-readable medium of  claim 15 , wherein the state is digitally signed by a predetermined percentage of compute devices from the plurality of compute devices. 
     
     
         20 . The non-transitory processor-readable medium of  claim 15 , wherein the code to cause the processor to receive the plurality of events includes code to cause the processor to receive the plurality of events such that the processor accepts each event from the core set of events prior to accepting other events from the plurality of events.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.