Performing a recovery process for a network node in a distributed system
US-2019286531-A1 · Sep 19, 2019 · US
US10615985B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10615985-B2 |
| Application number | US-201916422333-A |
| Country | US |
| Kind code | B2 |
| Filing date | May 24, 2019 |
| Priority date | Dec 13, 2018 |
| Publication date | Apr 7, 2020 |
| Grant date | Apr 7, 2020 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Implementations of the present specification include a computer-implemented method for achieving a consensus among a number of network nodes of a blockchain network. The blockchain network includes a primary node and one or more backup nodes. The method includes receiving a transaction request by the primary node, sending a number of first messages to the backup nodes by the primary node, receiving second messages from the backup nodes by the primary node, reconstructing the transaction request based on data in the second messages by the primary node, sending a third message to the backup nodes by the primary node, and executing the transaction request in response to receiving a predetermined number of third messages.
Opening claim text (preview).
The invention claimed is: 1. A computer-implemented method for achieving a consensus among a plurality of network nodes of a blockchain network comprising at least a primary node and one or more backup nodes, the method comprising: receiving, by the primary node, a transaction request; generating, by the primary node, a plurality of erasure code (EC) blocks according to an EC code using the transaction request; sending, by the primary node, a plurality of first messages to the one or more backup nodes, respectively, wherein each of the plurality of first messages comprises a composite hash value associated with the plurality of EC blocks, the composite hash value of the plurality of EC block being generated using a hash tree that comprises a Merkle tree, and the composite hash value being a root hash value of the Merkle tree; receiving, by the primary node, at least one second message from at least one of the backup nodes, wherein the at least one second message comprises one of the plurality of first messages and a signature of the at least one of the backup nodes associated with the one of the plurality of first messages; in response to receiving the at least one second message from the at least one of the backup node, verifying, by the primary node, whether the at least one second message is valid; determining, by the primary node, whether a number of valid second messages exceeds a pre-determined threshold; in response to determining that the number of valid second messages exceeds the pre-determined threshold, reconstructing, by the primary node, the transaction request based on a subset of the number of valid second messages according to the EC code; in response to determining that the transaction request has been successfully reconstructed, sending, by the primary node, a third message, to the other network nodes, wherein the third message comprises a set of signatures that are in the valid second messages; receiving, by the primary node, at least one third message from at least one of the backup nodes; and in response to receiving a pre-determined number of third messages that are identical, executing, by the primary node, the transaction request. 2. The method of claim 1 , wherein the transaction request is associated with a sequence number. 3. The method of claim 1 , wherein the generating the plurality of EC blocks according to an EC code comprises: transforming the transaction request into an EC message using the EC code; and dividing the EC message into the plurality of EC block. 4. The method of claim 1 , wherein the signature of the at least one of the backup nodes associated with the one of the plurality of first messages comprises a private key signature of the at least one of the backup nodes associated with the one of the plurality of first messages. 5. The method of claim 1 , wherein the at least one second message further comprises at least one of the plurality of EC blocks. 6. The method of claim 5 , wherein the verifying, by the primary node, whether the at least one second message is valid comprises: generating, by the primary node, a reconstructed hash tree using the at least one of the plurality of EC blocks in the at least one second message; determining, by the primary node, a reconstructed composite hash value of the reconstructed hash tree; comparing, by the primary node, the reconstructed composite hash value to a composite hash value in the at least one second message; and determining, by the primary node, whether the reconstructed composite hash value matches the composite hash values in the at least one second message. 7. The method of claim 6 , wherein the method further comprises: in response to determining that the reconstructed composite hash value matches the composite hash values in the second messages, determining, by the primary node, that the at least one second message is valid. 8. The method of claim 1 , wherein the pre-determined number of third messages that are identical comprise the pre-determined number of the third messages having an identical set of signatures. 9. A non-transitory computer-readable storage medium storing one or more instructions executable by a computer system to perform operations comprising: receiving, by a primary node of a blockchain network, a transaction request, wherein the blockchain network further comprises one or more backup nodes; generating, by the primary node, a plurality of erasure code (EC) blocks according to an EC code using the transaction request; sending, by the primary node, a plurality of first messages to the one or more backup nodes, respectively, wherein each of the plurality of first messages comprises a composite hash value associated with the plurality of EC blocks, the composite hash value of the plurality of EC block being generated using a hash tree that comprises a Merkle tree, and the composite hash value being a root hash value of the Merkle tree; receiving, by the primary node, at least one second message from at least one of the backup nodes, wherein the at least one second message comprises one of the plurality of first messages and a signature of the at least one of the backup nodes associated with the one of the plurality of first messages; in response to receiving the at least one second message from the at least one of the backup node, verifying, by the primary node, whether the at least one second message is valid; determining, by the primary node, whether a number of valid second messages exceeds a pre-determined threshold; in response to determining that the number of valid second messages exceeds the pre-determined threshold, reconstructing, by the primary node, the transaction request based on a subset of the number of valid second messages according to the EC code; in response to determining that the transaction request has been successfully reconstructed, send, by the primary node, a third message, to the other network nodes, wherein the third message comprises a set of signatures that are in the valid second messages; receiving, by the primary node, at least one third message from at least one of the backup nodes; and in response to receiving a pre-determined number of third messages that are identical, executing, by the primary node, the transaction request. 10. The non-transitory computer-readable storage medium of claim 9 , wherein the transaction request is associated with a sequence number. 11. The non-transitory computer-readable storage medium of claim 9 , wherein the generating the plurality of EC blocks according to an EC code comprises: transforming the transaction request into an EC message using the EC code; and dividing the EC message into the plurality of EC block. 12. The non-transitory computer-readable storage medium of claim 9 , wherein the signature of the at least one of the backup nodes associated with the one of the plurality of first messages comprises a private key signature of the at least one of the backup nodes associated with the one of the plurality of first messages. 13. The non-transitory computer-readable storage medium of claim 9 , wherein the at least one second message further comprises at least one of the plurality of EC blocks. 14. The non-transitory computer-readable storage medium of claim 13 , wherein the verifying, by the primary node, whether the at least one second message is valid comprises: generating, by the primary node, a reconstructed hash tree using the at least one of the plurality of EC blocks in the at least one second message; determining, by the primary node, a reconstructed composite hash value of the reconstructed hash tree; c
using code combining, i.e. using combining of codeword portions which may have been transmitted separately, e.g. Digital Fountain codes, Raptor codes or Luby Transform [LT] codes · CPC title
with erasure correction and erasure determination, e.g. for packet loss recovery or setting of erasures for the decoding of Reed-Solomon codes · CPC title
Network architectures or network communication protocols for network security (cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00; network architectures or network communication protocols for wireless network security H04W12/00; security arrangements for protecting computers or computer systems against unauthorised activity G06F21/00) · CPC title
Applying verification of the received information (cryptographic mechanisms or cryptographic arrangements for data integrity or data verification H04L9/32) · CPC title
Multiprogramming arrangements · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.