IP Library Granted Patent US 12,165,142
Granted Patent B2
US 12,165,142 · App. 17/362,697 · Granted Dec 10, 2024

Fork-tolerant consensus protocol

Inventors: Raghavendra Kidiyoor Bhagavatha (San Jose, CA); Christopher Andrew McCoy (San Francisco, CA)
G06Q20/3825G06Q20/3827G06Q20/3829G06Q20/389G06Q2220/00
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,165,142
App. No.
17/362,697
Granted
Dec 10, 2024
Kind
B2
Abstract

A consensus network includes Messagenodes and Validators. The Messagenodes add transactions to pre-built blocks of a blockchain. The Validators validate the transactions added to the blocks by the Messagenodes. Validators individually sign blocks in a pre-commit phase and if a block receives a threshold number of signatures, the Validators verify the signatures in a counting phase and commit the block to the blockchain. When a block is committed, it is linked to the previous sealed block in the blockchain.

Claims (44)

1. A computer-implemented method of processing transaction messages in a consensus network, the method comprising:

receiving, at a Messagenode of the consensus network, a plurality of transaction batches;

broadcasting, by the Messagenode, a message identifying the received transaction batches and a target block in a distributed ledger;

receiving, at the Messagenode, a number of acknowledgments of the message by other Messagenodes of the consensus network;

transmitting, by the Messagenode and responsive to the number of acknowledgments exceeding an acknowledgment threshold, an accept request;

receiving, at the Messagenode, a number of accepted messages from other Messagenodes of the consensus network; and

selecting, responsive to the number of accepted messages exceeding an acceptance threshold, the plurality of transaction batches to be written to the target block.

2. The computer-implemented method of claim 1 , wherein the plurality of transaction batches each include a single transaction message.

3. The computer-implemented method of claim 1 , wherein a transaction batch of the plurality of transaction batches includes a plurality of transaction messages received by a validation node in time period of predetermined length.

4. The method of claim 1 , wherein the broadcasted message includes a vector comprising an identifier of each transaction batch.

5. The method of claim 1 , wherein the acknowledgment threshold is two-thirds of a total number of Messagenodes in the consensus network.

6. The method of claim 1 , wherein the accept request includes an identifier of each of the other Messagenodes that acknowledged the message.

7. The method of claim 1 , wherein the acceptance threshold is defined as 2f+1, where f is a maximum allowable number of faulty Messagenodes.

8. The method of claim 1 , further comprising:

removing duplicate transaction batches of the plurality of transaction batches to obtain one or more deduplicated transaction batches; and

writing the deduplicated transaction batches to the target block.

9. The method of claim 1 , wherein the target block is an empty block built at a time before receiving of the plurality of transaction batches.

10. The method of claim 1 , wherein the distributed ledger comprises a blockchain and the target block is a block of the blockchain.

11. A non-transitory computer-readable medium comprising instructions that, when executed by a Messagenode of a consensus network, cause the Messagenode to:

receive a plurality of transaction batches;

broadcast a message identifying the received transaction batches and a target block in a distributed ledger;

receive a number of acknowledgments of the message by other Messagenodes of the consensus network;

transmit, responsive to the number of acknowledgments exceeding an acknowledgment threshold, an accept request;

receive a number of accepted messages from other Messagenodes of the consensus network; and

select, responsive to the number of accepted messages exceeding an acceptance threshold, the plurality of transaction batches to be written to the target block.

12. The non-transitory computer-readable medium of claim 11 , wherein the plurality of transaction batches each include a single transaction message.

13. The non-transitory computer-readable medium of claim 11 , wherein a transaction batch of the plurality of transaction batches includes a plurality of transaction messages received by a validation node in time period of predetermined length.

14. The non-transitory computer-readable medium of claim 11 , wherein the broadcasted message includes a vector comprising an identifier of each transaction batch.

15. The non-transitory computer-readable medium of claim 11 , wherein the acknowledgment threshold is two-thirds of a total number of Messagenodes in the consensus network.

16. The non-transitory computer-readable medium of claim 11 , wherein the accept request includes an identifier of each of the other Messagenodes that acknowledged the message.

17. The non-transitory computer-readable medium of claim 11 , wherein the acceptance threshold is defined as 2f+1, where f is a maximum allowable number of faulty Messagenodes.

18. The non-transitory computer-readable medium of claim 11 , wherein the instructions further cause the Messagenode to:

remove duplicate transaction batches of the plurality of transaction batches to obtain one or more deduplicated transaction batches; and

writing the deduplicated transaction batches to the target block.

19. The non-transitory computer-readable medium of claim 11 , wherein the distributed ledger comprises a blockchain and the target block is an empty block of the blockchain built at a time before receiving of the plurality of transaction batches.

20. A Messagenode in a consensus network, the Messagenode comprising:

a processor; and

a memory storing instructions that, when executed by the processor, cause the Messagenode to:

receive a plurality of transaction batches;

broadcast a message identifying the received transaction batches and a target block in a distributed ledger;

receive a number of acknowledgments of the message by other Messagenodes of the consensus network;

transmit, responsive to the number of acknowledgments exceeding an acknowledgment threshold, an accept request;

receive a number of accepted messages from other Messagenodes of the consensus network; and

select, responsive to the number of accepted messages exceeding an acceptance threshold, the plurality of transaction batches to be written to the target block.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 25, 2022
From: BHAGAVATHA, RAGHAVENDRA KIDIYOOR; MCCOY, CHRISTOPHER ANDREW
To: STORECOIN INC.
Reel/Frame 058766/0545 →
Continuity (3)
Division 16378456 · Apr 8, 2019
Provisional Application 62655175 · Apr 9, 2018
Related Publication 20210326867A1 · Oct 21, 2021