Invented by Dayi Yang, Advanced New Technologies Co Ltd
The Advanced New Technologies Co Ltd invention works as follows
The present disclosure includes the following: setting a timer by a consensus node to run out before the timeout for a view change, sending to a second node a request to receive one or several consensus messages that the first node missed in response to timer running out, receiving from the second node the one or multiple consensus messages, each digitally-signed by a private secret of the corresponding consensus that generated the respective one of more consensus message; determining that a transaction block is valid if the quantity of commit messages in the one orBackground for Facilitating practical Byzantine Fault Tolerance Blockchain Consensus and Node Synchronization
Blockchain Networks, also known as consensus networks, distributed-ledger systems (DLS) or blockchain networks, allow participating entities to securely and immutably save data. A blockchain is a ledger that records transactions. Multiple copies of the chain are stored on the network. Examples of blockchains include consortium blockchains and private blockchains. All entities can use a public blockchain and participate in the consensus. “A private DLS can be provided to a specific entity that centrally controls the read and write permissions.
A consortium blockchain system is another type of blockchain. The consortium blockchain system, which is available for a selected group of entities and controls the consensus process, also includes an access control layer. One or more of the entities that participate in the consortium system can control who has access to the system and who is allowed to take part in its consensus process. A group of enterprises (e.g. companies, academic institutions), for example, can join a consortium blockchain to record data immutably (e.g. transactions). In some cases, an entity may be able access/view the data in the consortium system but not add data.
A blockchain is a collection of blocks that each contain one or more transactions performed in the network. The blockchain is an exact copy of the ledger. Each block is analogous to a single page. Each transaction is confirmed and then added to a blockchain block. Copies of blockchains are replicated on all nodes in the network. This creates a consensus on the blockchain across the entire network.
Fault tolerance in blockchain systems is a concern.” Fault tolerance is the ability of a network or system to tolerate nodes that are faulty or malicious. Fault tolerance is a concern for blockchain systems with fewer nodes participating, such as consortium-based blockchain systems. Byzantine fault tolerence (BFT), can be defined as the dependability a fault-tolerant distributed computing system such as a Blockchain system. BFT is used to describe the reliability of a system when components fail or are malicious. Information about whether a component is malicious or has failed is not always accurate. BFT is used in consensus protocols so that systems can achieve consensus even if malicious nodes propagate incorrect information. BFT’s objective is to protect against system failures, by reducing the impact malicious nodes can have on the proper function of the protocol. BFT is optimized to become Practical BFT. PBFT is designed to work in asynchronous networks, like a consortium blockchain, where it assumes independent node failures and manipulated messages sent by independent nodes. In PBFT all the nodes are ordered sequentially in a consensus network, with one being the primary node. (This can change over time.) The other nodes act as backup nodes. The nodes all communicate through broadcast messages. So-called honest nodes reach consensus by a majority.
In PBFT, the consensus safety feature can be used to ensure that nodes with no problems do not reach a consensus that has different values. Consensus Liveness ensures that nodes don’t fall into infinite loops when exchanging messages and can reach their final state.
In some cases, the nodes that form a blockchain consortium can be geographically far apart, and network connectivity or quality cannot be guaranteed. In these cases, broadcast messages might not reach all the consensus nodes. This can affect the ability of consensus nodes in reaching PBFT consensus. It can take a long time to collect enough responses for consensus.
Implementations of the current disclosure are directed at facilitating synchronization processes and consensus of a Blockchain network based on Practical Byzantine Fault Tolerance (PBFT). Implementations of the present disclosure, more specifically, are directed at facilitating consensus message transmittals and node synchronizations in a Blockchain network based on PBFT, by using a chatter-based communication method and adding digital signatures into consensus messages.
The invention provides that “In some implementations actions include setting a timer by a consensus node to run out before the timeout for a view-change; sending to a second node a request to receive one or several consensus messages that were not received by the consensus node; receiving from the second node the one or multiple consensus messages, each digitally signed with a private key of the corresponding consensus that generated the respective one of more consensus message; and determining a block is valid if the quantity of commit Other implementations may include computer programs and systems that are configured to perform the methods. These computer programs can be stored on computer storage devices.
The implementations described above may include any or all of the following: a sequence number in the request that indicates the number of the consensus round. One or several consensus messages that are missing from the first consensus are included.
The present disclosure also provides non-transitory, computer-readable storage mediums coupled with one or multiple processors that have instructions stored on them which, when executed, cause one or several processors to perform actions in accordance to implementations of methods provided herein.
The present disclosure also provides a system to implement the methods described herein. The system comprises one or multiple processors and a computer-readable medium connected to the processors. These instructions, when executed, cause the processors to perform actions in accordance with the implementations of methods described herein.
It is understood that the methods described in the present disclosure can include any combination or features. “Methods in accordance with this disclosure may include any combination of features and aspects described herein.
The drawings and description below provide details on one or more implementations. The description, drawings and claims will reveal other features and benefits of the disclosure.
DESCRIPTION of Drawings
FIG. FIG.
FIG. “FIG.
FIG. “FIG.
FIG. “FIG.
FIG. FIG.
Like reference symbols on the different drawings indicate like elements.
Implementations of the present disclosure are directed to facilitating synchronization and consensus processes of a blockchain network based on practical Byzantine fault tolerance (PBFT). More particularly, implementations of the present disclosure are directed to facilitating consensus message transmissions and node synchronization in a blockchain network based on PBFT by using a gossip-based communications method, and adding digital signatures to consensus messages. In this manner, and as described in further detail herein, communications bandwidth consumption can be reduced, and system reliability can be improved. In some implementations, actions include setting, by a first consensus node, a timer that runs out before a timeout of a view change; sending, to a second consensus node, a request for one or more consensus messages missing by the first consensus node in response to the timer running out; receiving, from the second consensus node, the one or more consensus messages each digitally signed by a private key of a corresponding consensus node that generates the respective one or more consensus messages; and determining that a block of transactions is valid, if a quantity of commit messages included in the received one or more consensus messages is greater than or equal to 2f+1, where f is a maximum number of faulty nodes that is tolerable by the blockchain based on practical Byzantine fault tolerance.