CPC H04L 9/0637 (2013.01) [G06F 9/546 (2013.01); H04L 9/50 (2022.05); H04L 2209/463 (2013.01)] | 24 Claims |
1. A method of maintaining a distributed ledger at a client node, comprising:
storing a distributed ledger defining a plurality of records each containing a set of values;
storing (i) a local voting weight corresponding to the client node, and (ii) respective remote voting weights for a plurality of remote client nodes;
obtaining a proposed update to a record of the distributed ledger;
generating a local vote to apply or discard the proposed update and transmitting the local vote to the remote client nodes;
receiving remote votes to apply or discard the proposed update at the client node, from the remote client nodes;
at the client node, in response to receiving the remote votes, generating a weighted local vote according to the local voting weight, and generating weighted remote votes according to the remote voting weights;
performing an initial determination of whether to permit the proposed update based on (i) the weighted local vote, and (ii) a subset of the weighted remote votes received before a timeout period;
applying the proposed update to the distributed ledger or discarding the proposed update according to the initial determination;
subsequent to the timeout period, determining whether to permit the proposed update based on (i) the weighted local vote, and (ii) the weighted remote votes; and
according to the determination, re-applying or reversing the proposed update to the distributed ledger or discarding the proposed update.
|