US 11,706,018 B2
System and method for maintaining a distributed ledger
Mathieu Philippe Beynel, Pegomas (FR); Maxime Godeau, Biot (FR); Olivier Cazeaux, Juan les Pins (FR); and Jeremy Teyssedre, Vallauris (FR)
Assigned to AMADEUS S.A.S., Biot (FR)
Filed by AMADEUS S.A.S., Biot (FR)
Filed on Dec. 17, 2019, as Appl. No. 16/716,869.
Claims priority of application No. 1873072 (FR), filed on Dec. 17, 2018.
Prior Publication US 2020/0195422 A1, Jun. 18, 2020
Int. Cl. G06F 5/01 (2006.01); H04L 9/06 (2006.01); G06F 9/54 (2006.01); H04L 9/00 (2022.01)
CPC H04L 9/0637 (2013.01) [G06F 9/546 (2013.01); H04L 9/50 (2022.05); H04L 2209/463 (2013.01)] 24 Claims
OG exemplary drawing
 
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.