US 11,816,094 B2
Metastable byzantine agreement
Kevin Sekniqi, Ithaca, NY (US); Maofan Yin, Ithaca, NY (US); Robbert van Renesse, Ithaca, NY (US); and Emin Gün Sirer, Ithaca, NY (US)
Assigned to Cornell University, Ithaca, NY (US)
Appl. No. 17/051,846
Filed by Cornell University, Ithaca, NY (US)
PCT Filed May 9, 2019, PCT No. PCT/US2019/031506
§ 371(c)(1), (2) Date Oct. 30, 2020,
PCT Pub. No. WO2019/217669, PCT Pub. Date Nov. 14, 2019.
Claims priority of provisional application 62/669,734, filed on May 10, 2018.
Prior Publication US 2021/0117410 A1, Apr. 22, 2021
Int. Cl. G06F 16/23 (2019.01); G06F 9/52 (2006.01); G06F 16/245 (2019.01); G06F 16/27 (2019.01); G06Q 20/06 (2012.01); G06Q 20/40 (2012.01); G06Q 40/04 (2012.01)
CPC G06F 16/2379 (2019.01) [G06F 9/526 (2013.01); G06F 16/245 (2019.01); G06F 16/27 (2019.01); G06Q 20/0655 (2013.01); G06Q 20/401 (2013.01); G06Q 40/04 (2013.01); G06Q 2220/00 (2013.01); G06Q 2230/00 (2013.01)] 31 Claims
OG exemplary drawing
 
1. An apparatus comprising:
a first processing node comprising a processor coupled to a memory;
the first processing node being configured to participate in a consensus protocol with additional processing nodes, the first processing node and the additional processing nodes comprising respective processing devices configured to communicate with one another over at least one network;
the first processing node being further configured in conjunction with its participation in the consensus protocol:
to determine an initial state for a given transaction based at least in part on one or more of a plurality of possible states for the given transaction;
to implement repeated polling of respective distinct selected subsets of the additional processing nodes, each of the distinct selected subsets comprising fewer than all of the additional processing nodes, with at least portions of results of the repeated polling being stored at least in part utilizing one or more counters implemented by the processor and memory of the first processing node;
to determine a resolved state for the given transaction as a particular one of the plurality of possible states for the given transaction based at least in part on the counters and responsive to the results of the repeated polling of the respective distinct selected subsets that each comprise fewer than all of the additional processing nodes, the resolved state representing an update of the initial state;
to store in the memory of the first processing node an indication of the resolved state in association with at least one value that reinforces the particular state as the resolved state within the first processing node, the value controlling a likelihood that the first processing node will subsequently modify the resolved state to a state other than the particular state;
to transmit the indication of the resolved state from the first processing node over the network to one or more other processing nodes under one or more specified conditions including at least one of (i) in response to a query received from a given one of the additional processing nodes in conjunction with polling performed by the given additional processing node as part of its participation in the consensus protocol, and (ii) in response to a query received from another processing node not currently participating in the consensus protocol; and
to initiate at least one automated action based at least in part on the resolved state for the given transaction.