IP Library Granted Patent US 10,649,859
Granted Patent B2
US 10,649,859 · App. 16/421,922 · Granted May 12, 2020

Performing a recovery process for a network node in a distributed system

Inventor: Peng Lin (Hangzhou, CN)
Assignee: Alibaba Group Holding Limited
G06F11/1464G06F11/1469G06F16/1824G06F16/1834G06F16/2246H03M13/154H04L9/0643H04L9/3239H04L43/50H04L63/12H04L2209/38
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 10,649,859
App. No.
16/421,922
Granted
May 12, 2020
Kind
B2
Abstract

A method for performing a recovery process of a network node of a blockchain network includes broadcasting a state request message by the network node to the other network nodes of the blockchain network to recover a target transaction of a target sequence number, receiving state reply messages that each includes a sequence number from the other network nodes, identifying the target sequence number based on the sequence numbers in the state reply messages, sending a requesting message to the other network nodes to request an ECHO message from each of the other network nodes, determining a number of valid ECHO messages that are sent by the other network nodes, recovering the target transaction based on the number of valid ECHO messages, and sending a message to the other network nodes indicating that the network node has been recovered.

Claims (59)

1. A computer-implemented method for performing a recovery process of a network node of a blockchain network, the method comprising:

broadcasting, by a network node of a blockchain network, a state request message to a plurality of other network nodes of the blockchain network, wherein the network node is to recover a target transaction of a target sequence number;

receiving, by the network node, a plurality of state reply messages from the plurality of other network nodes, wherein each of the plurality of state reply messages comprises a sequence number;

in response to determining that a number of state reply messages exceeds a pre-determined threshold, wherein each of the number of the state messages comprises a same sequence number, identifying, by the network node, the target sequence number based on the same sequence number;

sending, by the network node, a requesting message to the plurality of other network nodes, wherein the requesting message requests an ECHO message from each of the plurality of other network nodes, wherein the ECHO message is a message transmitted by the each of the plurality of other network nodes for achieving a consensus among the plurality of other network nodes on the target transaction having the target sequence number, and the ECHO message comprises a part of the target transaction and a signature of the each of the plurality of other network nodes;

receiving, by the network node, a plurality of ECHO messages from the plurality of other network nodes, wherein each ECHO message comprises at least one of a plurality of erasure code (EC) blocks associated with the target transaction, wherein the plurality of EC blocks are generated according to an EC code using the target transaction;

determining, by the network node, a number of valid ECHO messages out of the plurality of ECHO messages, wherein each of the number of valid ECHO messages comprises the target sequence number;

in response to determining that the number of valid ECHO messages exceeds a pre-determined threshold, recovering, by the network node, the target transaction having the same sequence number at the network node based on the number of valid ECHO messages, wherein recovering the target transaction comprises reconstructing, according to the EC code, the target transaction using at least a subset of the plurality of EC blocks that are in the number of valid ECHO messages; and

sending, by the network node, a message to the plurality of other network nodes indicating the network node has been recovered.

2. The method of claim 1 , wherein the plurality of network nodes comprises a primary node and one or more backup nodes.

3. The method of claim 1 , wherein the network node is a primary node or a backup node.

4. The method of claim 1 , wherein the requesting message comprises the target sequence number.

5. The method of claim 4 , wherein the method further comprises:

verifying, by each of the plurality of other network nodes other than the network node, the requesting message before sending the ECHO messages to the network node.

6. The method of claim 1 , wherein the method further comprises:

verifying, by the network node, whether each of the ECHO messages is valid, wherein the verifying whether each of the ECHO messages is valid comprises verifying whether each of the ECHO messages is valid using a Merkel tree.

7. The method of claim 6 , wherein the verifying whether each of the ECHO message is valid further comprises verifying whether the signature in the ECHO message is valid.

8. The method of claim 1 , wherein the plurality of EC blocks are generated according to an EC code using the target transaction comprises that the plurality of EC blocks are generated by transforming the target transaction into an EC message longer than the target transaction and dividing the EC message into the plurality of EC blocks according to the EC code.

9. The method of claim 1 , wherein the message to the plurality of other network nodes indicating the network node has been recovered comprises a set of signatures in the number of valid ECHO messages and the target sequence number.

10. A non-transitory, computer-readable medium storing one or more instructions executable by a computer system to perform operations comprising:

broadcasting, by a network node of a blockchain network, a state request message to a plurality of other network nodes of the blockchain network, wherein the network node is to recover a target transaction of a target sequence number;

receiving, by the network node, a plurality of state reply messages from the plurality of other network nodes, wherein each of the plurality of state reply messages comprises a sequence number;

in response to determining that a number of state reply messages exceeds a pre-determined threshold, wherein each of the number of the state messages comprises a same sequence number, identifying, by the network node, the target sequence number based on the same sequence number;

sending, by the network node, a requesting message to the plurality of other network nodes, wherein the requesting message requests an ECHO message from each of the plurality of other network nodes, wherein the ECHO message is a message transmitted by the each of the plurality of other network nodes for achieving a consensus among the plurality of other network nodes on the target transaction having the target sequence number, and the ECHO message comprises a part of the target transaction and a signature of the each of the plurality of other network nodes;

receiving, by the network node, a plurality of ECHO messages from the plurality of other network nodes, wherein each ECHO message comprises at least one of a plurality of erasure code (EC) blocks associated with the target transaction, wherein the plurality of EC blocks are generated according to an EC code using the target transaction;

determining, by the network node, a number of valid ECHO messages out of the plurality of ECHO messages, wherein each of the number of valid ECHO messages comprises the target sequence number;

in response to determining that the number of valid ECHO messages exceeds a pre-determined threshold, recovering, by the network node, the target transaction having the same sequence number at the network node based on the number of valid ECHO messages, wherein recovering the target transaction comprises reconstructing, according to the EC code, the target transaction using at least a subset of the plurality of EC blocks that are in the number of valid ECHO messages; and

sending, by the network node, a message to the plurality of other network nodes indicating the network node has been recovered.

11. The non-transitory, computer-readable medium of claim 10 , wherein the plurality of network nodes comprises a primary node and one or more backup nodes.

12. The non-transitory, computer-readable medium of claim 10 , wherein the network node is a primary node or a backup node.

13. The non-transitory, computer-readable medium of claim 10 , wherein the requesting message comprises the target sequence number.

14. The non-transitory, computer-readable medium of claim 13 , wherein the operations further comprise:

verifying, by each of the plurality of other network nodes other than the network node, the requesting message before sending the ECHO messages to the network node.

15. The non-transitory, computer-readable medium of claim 10 , wherein the operations further comprise:

verifying, by the network node, whether each of the ECHO messages is valid, wherein the verifying whether each of the ECHO messages is valid comprises verifying whether each of the ECHO messages is valid using a Merkel tree.

16. The non-transitory, computer-readable medium of claim 15 , wherein the verifying whether each of the ECHO message is valid further comprises verifying whether the signature in the ECHO message is valid.

17. The non-transitory, computer-readable medium of claim 10 , wherein the plurality of EC blocks are generated according to an EC code using the target transaction comprises that the plurality of EC blocks are generated by transforming the target transaction into an EC message longer than the target transaction and dividing the EC message into the plurality of EC blocks according to the EC code.

18. The non-transitory, computer-readable medium of claim 10 , wherein the message to the plurality of other network nodes indicating the network node has been recovered comprises a set of signatures in the number of valid ECHO messages and the target sequence number.

19. A computer-implemented system, comprising:

one or more computers; and

one or more computer memory devices interoperably coupled with the one or more computers and having tangible, non-transitory, machine-readable media storing one or more instructions that, when executed by the one or more computers, perform one or more operations comprising:

broadcasting, by a network node of a blockchain network, a state request message to a plurality of other network nodes of the blockchain network, wherein the network node is to recover a target transaction of a target sequence number;

receiving, by the network node, a plurality of state reply messages from the plurality of other network nodes, wherein each of the plurality of state reply messages comprises a sequence number;

in response to determining that a number of state reply messages exceeds a pre-determined threshold, wherein each of the number of the state messages comprises a same sequence number, identifying, by the network node, the target sequence number based on the same sequence number;

sending, by the network node, a requesting message to the plurality of other network nodes, wherein the requesting message requests an ECHO message from each of the plurality of other network nodes, wherein the ECHO message is a message transmitted by the each of the plurality of other network nodes for achieving a consensus among the plurality of other network nodes on the target transaction having the target sequence number, and the ECHO message comprises a part of the target transaction and a signature of the each of the plurality of other network nodes;

receiving, by the network node, a plurality of ECHO messages from the plurality of other network nodes, wherein each ECHO message comprises at least one of a plurality of erasure code (EC) blocks associated with the target transaction, wherein the plurality of EC blocks are generated according to an EC code using the target transaction;

determining, by the network node, a number of valid ECHO messages out of the plurality of ECHO messages, wherein each of the number of valid ECHO messages comprises the target sequence number;

in response to determining that the number of valid ECHO messages exceeds a pre-determined threshold, recovering, by the network node, the target transaction having the same sequence number at the network node based on the number of valid ECHO messages, wherein recovering the target transaction comprises reconstructing, according to the EC code, the target transaction using at least a subset of the plurality of EC blocks that are in the number of valid ECHO messages; and

sending, by the network node, a message to the plurality of other network nodes indicating the network node has been recovered.

20. The system of claim 19 , wherein the plurality of network nodes comprises a primary node and one or more backup nodes.

21. The system of claim 19 , wherein the network node is a primary node or a backup node.

22. The system of claim 19 , wherein the requesting message comprises the target sequence number.

23. The system of claim 22 , wherein the operations further comprise:

verifying, by each of the plurality of other network nodes other than the network node, the requesting message before sending the ECHO messages to the network node.

24. The system of claim 19 , wherein the operations further comprise:

verifying, by the network node, whether each of the ECHO messages is valid, wherein the verifying whether each of the ECHO messages is valid comprises verifying whether each of the ECHO messages is valid using a Merkel tree.

25. The system of claim 24 , wherein the verifying whether each of the ECHO message is valid further comprises verifying whether the signature in the ECHO message is valid.

26. The system of claim 19 , wherein the plurality of EC blocks are generated according to an EC code using the target transaction comprises that the plurality of EC blocks are generated by transforming the target transaction into an EC message longer than the target transaction and dividing the EC message into the plurality of EC blocks according to the EC code.

27. The system of claim 19 , wherein the message to the plurality of other network nodes indicating the network node has been recovered comprises a set of signatures in the number of valid ECHO messages and the target sequence number.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 18, 2025
From: ADVANCED NEW TECHNOLOGIES CO., LTD.
To: ANTCHAIN TECHNOLOGY PTE. LTD.
Reel/Frame 070253/0064 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 10, 2020
From: ADVANTAGEOUS NEW TECHNOLOGIES CO., LTD.
To: ADVANCED NEW TECHNOLOGIES CO., LTD.
Reel/Frame 053754/0625 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 31, 2020
From: ALIBABA GROUP HOLDING LIMITED
To: ADVANTAGEOUS NEW TECHNOLOGIES CO., LTD.
Reel/Frame 053743/0464 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 3, 2020
From: LIN, PENG
To: ALIBABA GROUP HOLDING LIMITED
Reel/Frame 051471/0711 →
Continuity (2)
Continuation PCTCN2018120870 · Dec 13, 2018
Related Publication 20190286531A1 · Sep 19, 2019