![]() computer-implemented methods, non-transient computer-readable storage media, and systems
专利摘要:
computer-implemented methods, non-transient computer-readable storage media and systems. Embodiments of the present invention include a computer-implemented method of achieving consensus between multiple network nodes of a trusted protocol network. the trusted protocol network includes a primary node and one or more backup nodes. the method includes receiving a transaction request through the primary node, sending a number of first messages to the backup nodes through the primary node, receiving second messages from the backup nodes through the primary node, reconstituting the request based on the data of the second messages through the primary node, send a third message to the backup nodes through the primary node, and execute the transaction request in response to receipt of a predetermined amount of third messages. 公开号:BR112019015208A2 申请号:R112019015208-3 申请日:2018-12-13 公开日:2021-07-27 发明作者:Peng Lin 申请人:Alibaba Group Holding Limited; IPC主号:
专利说明:
[001] [001] Distributed ledger systems (DLSs), which can also be referred to as consensus networks and/or trust protocol networks (blockchain), allow participating entities to store data securely and immutably. DLSs are commonly referred to as protocol networks of trust without referring to any specific user case. Examples of trust protocol networks can include: public trust protocol networks, private trust protocol networks, and consortium trust protocol networks. A public trust protocol network is open for all entities to use DLS and participate in the consensus process. A private trust protocol network is provided for a specific entity, which centrally controls read and write permissions. A consortium trust protocol network is provided to a select group of entities, which control the consensus process and include an access control layer. [002] [002] Consensus mechanisms are a primary component of trusted protocol distributed systems. A consensus mechanism is a process in computer science that is used to reach agreement on a single data value between distributed processes or systems. Consensus mechanisms are designed to achieve reliability in a network involving many untrusted nodes. Solving this problem - known as the consensus problem - is important in distributed computing and multi-agent systems. [003] [003] The trust protocol relies on consensus mechanisms to reach agreement between nodes. A trust protocol is a decentralized database that is managed by computers distributed over a peer-to-peer (P2P) network. Each point maintains a copy of the ledger to avoid a single point of failure (SPOF). Updates and validations are reflected in all copies simultaneously. [004] [004] Although several existing techniques can be used to perform consensus between network nodes of a trusted protocol system, a more efficient solution to perform consensus would be advantageous. BRIEF DESCRIPTION [005] [005] Embodiments of the present specification include computer-implemented methods for addressing consensus issues in a distributed system (eg, a trusted protocol network). More particularly, embodiments of the present specification are intended to achieve consensus between network nodes in a distributed system. [006] [006] In some embodiments, actions include: receiving a transaction request through a primary node of a trusted protocol network; generating a number of erasure code (EC) blocks according to an EC code through the primary node using the transaction request; send a number of first messages to one or more backup nodes of the trusted protocol network through the primary node, where each of the number of first messages includes a composite hash value associated with the number of blocks of EC; receive at least one second message via the primary node from at least one of the backup nodes, wherein the at least one second message includes one of the number of first messages and a signature from the at least one of the backup nodes security associated with the number of first messages; checking via the primary node that the at least one second message is valid in response to receipt of the at least one second message from the at least one of the backup node; determining, via the primary node, whether a number of valid second messages exceeds a predetermined threshold; reconstituting the transaction request through the primary node based on a subset of the amount of valid second messages according to the EC code in response to the determination that the amount of valid second messages exceeds the predetermined threshold; sending a third message to the other network nodes via the primary node in response to the determination that the transaction request was successfully reconstituted, wherein the third message includes a set of signatures that are in the second valid messages; receiving at least a third message via the primary node from at least one of the backup nodes; and executing the transaction request through the primary node in response to receiving a predetermined amount of third messages that are identical. [007] [007] Other embodiments include systems, apparatus and corresponding computer programs, configured to perform the actions of the methods, encoded in computer storage devices. [008] [008] These and other embodiments may each optionally include one or more of the following features: A first feature, combinable with any of the following features, wherein the transaction request is associated with a sequence number; A second feature, combinable with any of the following features, where the primary node transforms the transaction request into an EC message using the EC code and divides the EC message into the EC block quantity; [009] [009] In some embodiments, actions include: receiving, via a backup node, a first message from the primary node, wherein the first message comprises a composite digest value associated with a plurality of blocks of EC, wherein the plurality of EC blocks are generated across the primary node in accordance with an EC code using a transaction request; in response to receipt of the first message, send, via the backup node, a second message to the other network nodes, wherein the second message comprises the first message and a signature of the backup node associated with the first message ; receiving, via the backup node, at least one second message from at least one backup node other than the backup node; in response to receipt of the at least one second message from the at least one backup node, checking, via the backup node, whether the at least one second message is valid; determining, via the backup node, whether a number of valid second messages exceeds a predetermined threshold; in response to the determination that the amount of valid second messages exceeds the predetermined threshold, reconstituting, through the backup node, the transaction request based on a subset of the amount of valid second messages according to the EC code; in response to the determination that the transaction request was successfully reconstituted, send, through the backup node, a third message to the other network nodes, wherein the third message comprises a set of signatures that are on the second valid messages; receiving, via the backup node, at least a third message from at least one of the backup nodes; and in response to receipt of a predetermined amount of third messages that are identical, executing, through the backup node, the transaction request. [010] [010] Other embodiments include systems, apparatus and corresponding computer programs, configured to perform the actions of the methods, encoded in computer storage devices. [011] [011] These and other embodiments may each optionally include one or more of the following features: A first feature, combinable with any of the following features, wherein generating the plurality of EC blocks in accordance with a EC code includes transforming the transaction request into an EC message using the EC code by splitting the EC message into the EC block plurality; A second feature, combinable with any of the following features, wherein the summary value composed of the plurality of EC blocks is generated using a summary tree; A third feature, combinable with any of the following features, where the summary tree comprises a Merkle tree and where the composite summary value is a Merkle tree root summary value; [012] [012] This specification also provides one or more non-transient computer-readable storage media coupled to one or more processors and having instructions stored thereon which, when executed by the one or more processors, cause the one or more processors to execute operations in accordance with embodiments of the methods provided herein. [013] [013] This descriptive report further provides a system for implementing the methods provided here. The system includes one or more processors, and a computer-readable storage medium coupled to the one or more processors having instructions stored therein which, when executed by the one or more processors, cause the one or more processors to perform operations in accordance with of carrying out the methods provided herein. [014] [014] The present descriptive report reveals improved consensus mechanisms, including techniques for achieving consensus between network nodes in a distributed system, performing a primary node change in a distributed system, and performing a recovery process for a network node. in a distributed system. The consensus mechanisms described can achieve several advantages in different applications. [015] [015] For example, the consensus process, as discussed below, includes many features that improve the operations of the trusted protocol system and help alleviate network bottlenecks. For example, the consensus process described includes converting a transaction request into a number of erasure code (EC) blocks according to an EC code and sending one of the EC blocks to each of the network nodes. The EC block is smaller in size than the original transaction request. Thus, sending the EC block instead of the complete transaction request to the network nodes reduces the size of data blocks that are transmitted between the network nodes of the trusted protocol network, thus conserving bandwidth. of the network and reducing the network load. [016] [016] In addition, this descriptive report describes a period shift process that includes assigning respective weights to multiple phases of the consensus process, determining a weight sum based on the respective weights of the multiple phases, and determining a new primary node with based on the sum of weight. The period change process based on sum of weight instead of a circular method (round robin) can make it easier to choose a new primary node that is not defective in a timely manner. Unlike the circular method, the period shift process in the present specification relies on summing the weight to select the new primary node, which can reduce latency or delay in locating the new, non-defective primary node. This can further improve the efficiency of the overall trust protocol system in providing trusted protocol services. [017] [017] In addition, the present specification discusses a recovery process that includes operations such as sending a status request message by a network node that applies to be a new primary node and receiving status response messages from from other network nodes. These operations are performed in such a way that the recovery process of the defective network node does not interfere with the normal operation of the consensus process among the other non-defective network nodes. This facilitates the conservation of compute and network characteristics to recover the faulty network node, reducing the complexity of the recovery process. [018] [018] It is recognized that the methods in accordance with this specification may include any combination of the aspects and characteristics described herein. That is, the methods in accordance with the present specification are not limited to the combinations of features and features specifically described herein, but also include any combination of the features and features provided. [019] [019] The details of one or more embodiments of this descriptive report are presented in the attached figures and in the description below. Other features and advantages of the present specification will be apparent from the description and figures, and from the claims. DESCRIPTION OF THE FIGURES [020] [020] Figure 1 represents an example of an environment that can be used to execute embodiments of this descriptive report. [021] [021] Figure 2 represents an example of a conceptual architecture according to embodiments of this descriptive report. [022] [022] Figure 3 represents an example of a consensus process that can be performed according to embodiments of this specification. [023] [023] Figure 4 represents an example of a consensus process that can be performed according to embodiments of this specification. [024] [024] Figure 5 represents an example of a summary tree according to embodiments of the present specification. [025] [025] Figure 6 represents an example of messages that are communicated between network nodes of a distributed system according to embodiments of the present specification. [026] [026] Figure 7 represents an example of a process of carrying out a change of a primary node in a distributed system according to embodiments of the present specification. [027] [027] Figure 8 represents an example of a process of performing a change of a primary node in a distributed system according to embodiments of the present specification. [028] [028] Figure 9 represents an example of messages that are communicated between network nodes of a distributed system according to embodiments of the present specification. [029] [029] Figure 10 represents an example of a process of carrying out a process of recovering a network node in a distributed system according to embodiments of this specification. [030] [030] Figure 11 represents an example of a process of carrying out a process of recovering a network node in a distributed system according to embodiments of the present specification. [031] [031] Figure 12 represents an example of messages that are communicated between network nodes of a distributed system according to embodiments of the present specification. [032] [032] Figure 13 represents an example of a diagram illustrating modules of a consensus apparatus, according to an embodiment of the present specification. [033] [033] Figure 14 represents an example of a diagram illustrating modules of a consensus apparatus, according to an embodiment of the present specification. [034] [034] Figure 15 represents an example of a diagram illustrating modules of a primary node switching apparatus, according to an embodiment of the present specification. [035] [035] Figure 16 represents an example of a diagram illustrating modules of a primary node switching apparatus, according to an embodiment of the present specification. [036] [036] Figure 17 represents an example of a diagram illustrating modules of a recovery apparatus, according to an embodiment of the present specification. [037] [037] Equal reference symbols in the various figures indicate equal elements. DETAILED DESCRIPTION [038] [038] Embodiments of the present specification include computer-implemented methods for addressing consensus issues in a distributed system (eg, a trusted protocol network). More particularly, the embodiments of the present specification are intended to achieve consensus between network nodes in a distributed system. [039] [039] In some embodiments, actions include: receiving a transaction request through a primary node of a trusted protocol network; generating a number of erasure code (EC) blocks according to an EC code through the primary node using the transaction request; sending a number of first messages to one or more backup nodes of the trusted protocol network through the primary node, wherein each of the number of first messages includes a composite summary value associated with the number of EC blocks; receive at least one second message via the primary node from at least one of the backup nodes, wherein the at least one second message includes one of the number of first messages and a signature from the at least one of the backup nodes security associated with the number of first messages; checking via the primary node that the at least one second message is valid in response to receipt of the at least one second message from the at least one of the backup node; determining, via the primary node, whether a number of valid second messages exceeds a predetermined threshold; reconstituting the transaction request through the primary node based on a subset of the amount of valid second messages according to the EC code in response to the determination that the amount of valid second messages exceeds the predetermined threshold; sending a third message to the other network nodes via the primary node in response to the determination that the transaction request was successfully reconstituted, wherein the third message includes a set of signatures that are in the second valid messages; receiving at least a third message via the primary node from at least one of the backup nodes; and executing the transaction request through the primary node in response to receiving a predetermined amount of third messages that are identical. [040] [040] In some embodiments, actions include: receiving, via a backup node, a first message from the primary node, wherein the first message comprises a composite digest value associated with a plurality of blocks of EC, wherein the plurality of EC blocks are generated by the primary node in accordance with an EC code using a transaction request; in response to receipt of the first message, send, via the backup node, a second message to the other network nodes, wherein the second message comprises the first message and a signature of the backup node associated with the first message ; receiving, via the backup node, at least one second message from at least one backup node other than the backup node; in response to receipt of the at least one second message from the at least one backup node, checking, via the backup node, whether the at least one second message is valid; determining, via the backup node, whether a number of valid second messages exceeds a predetermined threshold; in response to the determination that the amount of valid second messages exceeds the predetermined threshold, reconstituting, through the backup node, the transaction request based on a subset of the amount of valid second messages according to the EC code; in response to the determination that the transaction request was successfully reconstituted, send, through the backup node, a third message to the other network nodes, wherein the third message comprises a set of signatures that are on the second valid messages; receiving, via the backup node, at least a third message from at least one of the backup nodes; and in response to receipt of a predetermined amount of third messages that are identical, executing, through the backup node, the transaction request. [041] [041] To provide additional context for embodiments of this specification, and as introduced above, distributed ledger systems (DLSs), which may also be referred to as consensus networks (e.g. made up of nodes point-to-point) or trusted protocol networks, allow participating entities to securely and immutably transact and store data. The term trust protocol is used here to refer generically to a DLS without reference to any particular use case. As presented above, a trust protocol network can be provided as a public trust protocol network, a private trust protocol network, or a consortium trust protocol network. [042] [042] A trust protocol is a data structure that stores transactions in a way that allows future transactions to be checked for consistency with all previous transactions stored in the chain. A trust protocol includes one or more blocks. [043] [043] While a trust protocol is a data structure for storing transactions, a trust protocol network is a network of computing nodes that manages, updates and maintains one or more trust protocol structures. As presented above, a trust protocol network can be provided as a public trust protocol network, a private trust protocol network, or a consortium trust protocol network. [044] [044] In a public trust protocol network, the consensus process is controlled by nodes of the consensus network. For example, hundreds, thousands, and even millions of entities can cooperate in a public-trust protocol network, each operating at least one node in the public-trust protocol network. Thus, the public trust protocol network can be considered a public network with respect to participating entities. In some examples, most entities (nodes) must sign each block for the block to be valid and added to the trust protocol (distributed ledger) of the trust protocol network. [045] [045] In general, a public trust protocol network supports public transactions. A public transaction is shared with all nodes within the public trust protocol network and is stored in a global trust protocol. A global trust protocol is a trust protocol that is replicated across all nodes. That is, all nodes are in a perfect state of consensus regarding the global trust protocol. To reach consensus (for example, agree to add a block to a protocol of trust), a protocol of consensus is implemented in the public trust protocol network. Examples of consensus protocols include, without limitation, proof of work (POW), proof of participation (POS), and proof of authority (POA). POW is further referenced herein as a non-limiting example. [046] [046] In general, a private trust protocol network is provided to a specific entity, which centrally controls read and write permissions. The entity controls which nodes are able to participate in the trust protocol network, so private trust protocol networks are often called permission networks that place restrictions on who can participate in the network and their level of participation (e.g., only on certain transactions). Various types of access control mechanisms can be used (eg existing participants vote to add new entities, a regulatory authority can control admission). [047] [047] In general, a consortium trust protocol network is private between participating entities. In a consortium trust protocol network, the consensus process is controlled by an authorized set of nodes, one or more nodes being operated by a respective entity (eg, a financial institution, insurance company). For example, a consortium of ten (10) entities (eg financial institutions, insurance companies) may operate a consortium trust protocol network, each operating at least one node in the consortium trust protocol network. In this sense, the consortium trust protocol network can be considered a private network in relation to the participating entities. In some examples, each entity (node) must sign all blocks for the block to be valid and added to the trust protocol. In some examples, at least a subset of entities (nodes) (eg at least 7 entities) must sign all blocks for the block to be valid and added to the trust protocol. [048] [048] Embodiments of the present specification are described in greater detail herein with reference to a consortium trust protocol network. It is contemplated, however, that the embodiments of the present specification may be performed on any appropriate type of trusted protocol network. [049] [049] Embodiments of the present specification are described in greater detail here in view of the above context. More particularly, and as presented above, the embodiments of the present specification are intended to perform a recovery process for a network node in a distributed system. [050] [050] A trust protocol is a tamper-proof shared digital ledger that records transactions over a public or private peer-to-peer network. The ledger is distributed to all network member nodes and the history of asset transactions taking place on the network is permanently recorded in the block. [051] [051] Consensus mechanisms ensure that all network nodes in a distributed trust protocol network execute transactions in the same order and then write to the same ledgers. One issue that consensus models are intended to address is overcoming Byzantine flaws. In a Byzantine fault, a component such as a server or a network node of a distributed trust protocol network may appear inconsistently to be both faulty and functioning to fault detection systems, presenting different symptoms to different observers. It is difficult for the other network nodes to declare it failed and disconnect it from the network, because they must first come to a consensus on which network node failed first. [052] [052] In the context of distributed systems, Byzantine Fault Tolerance (BFT) is the ability of a distributed computer network to function as desired and correctly achieve sufficient consensus despite malicious components (i.e., network nodes of a trusted protocol network) from the system fail or propagate incorrect information to other points. The goal is to defend against catastrophic system failures by mitigating the influence that these malicious nodes have on the correct functioning of the network and the correct consensus that is achieved by honest nodes in the system. [053] [053] However, existing BFT mechanisms have proved ineffective in many respects. For example, existing BFT mechanisms have added implementation complexity to the distributed trust protocol network by trying to overcome Byzantine flaws, so latency is increased for communication between network nodes of the distributed trust protocol network. Practical Byzantine Fault Tolerance (PBFT) is one of the optimizations that aims to improve existing BFT consensus mechanisms. The PBFT model focuses on providing practical Byzantine state machine replication that tolerates Byzantine failures (malicious nodes) through the assumption that there are independent node failures and manipulated messages that are propagated by specific, independent nodes. [054] [054] In the PBFT model, all nodes are ordered in a sequence, with one node being the primary (leader) node and the others referred to as the backup nodes. All nodes within the system communicate with each other and the goal is for most honest nodes to come to an agreement on the state of the system. The nodes communicate with each other and not only need to prove that the messages came from a specific point node, but they also need to verify that the message has not been modified during transmission. [055] [055] For the PBFT model to work, it is assumed that the number of malicious nodes in the network cannot simultaneously equal or exceed 1/3 of the overall nodes in the system in a given window of vulnerability. The more nodes in the system, the more mathematically it is unlikely that a number approaching 1/3 of the overall nodes is malicious. The algorithm effectively provides both liveliness and security as long as at most (n-1)/3 nodes are malicious or defective at the same time, where n represents the total nodes. [056] [056] Each PBFT consensus round (called views) includes 4 phases: [057] [057] The end result is that all honest nodes come to an agreement on the registration order and they either accept or reject it. The lead node changes in a circular scheme during each view and can even be replaced by a protocol called view switching if a specific amount of time has passed without the lead node multicasting the request. Most honest nodes can also decide if a leader is faulty and remove them with the next leader in line as the replacement. [058] [058] However, there are some limitations to the PBFT consensus mechanism. For example, the PBFT model can work well in its classic form, with relatively small consensus group sizes, due to the large amount of communication that is required between nodes. [059] [059] Also, finding consecutive malicious nodes when changing the leader node using a circular method used by PBFT affects the trust protocol service by introducing latency or delay in finding a leader node that is honest. For example, when selecting a first network node as the new leader node, the first network node may be a malicious node, therefore it cannot be selected as the new leader node. [060] [060] In addition, network nodes in a trusted protocol network can experience Byzantine faults or collapse faults at any time. For example, a network node could be compromised by a malicious cyber attacker and behave erratically. If the network nodes that are compromised are not recovered immediately, the malicious cyber attacker can compromise the trusted protocol network and services by corrupting more than 1/3 of the network nodes without being detected. [061] [061] To address the above-described issues and concerns associated with existing BFT Consensus Mechanisms and PBFT Consensus Mechanism, this descriptive report reveals improved consensus mechanisms including techniques for achieving consensus among network nodes in a distributed system. , performing a primary node change in a distributed system and performing a recovery process for a network node in a distributed system. The consensus mechanisms described can achieve several advantages in different applications. [062] [062] For example, the consensus process, as discussed below, includes many features that improve the operations of the trusted protocol system and help alleviate network bottlenecks. For example, the consensus process described includes converting a transaction request into a number of erasure code (EC) blocks according to an EC code and sending one of the EC blocks to each of the network nodes. The EC block is smaller in size than the original transaction request. Thus, sending the EC block instead of the complete transaction request to the network nodes reduces the size of data blocks that are transmitted between the network nodes of the trusted protocol network, thus conserving bandwidth. of the network and reducing the network load. [063] [063] In addition, the present specification describes a period shift process that includes assigning respective weights to multiple phases of the consensus process, determining a weight sum based on the respective weights of the multiple phases, and determining a new primary node with based on the sum of weight. The period change process based on the sum of weight, rather than a circular method, can make it easier to choose a new primary node that is not defective in a timely manner. A primary node can be a leader node that has the authority to initiate a round of consensus process among multiple network nodes, including the primary node. The other network nodes in the trusted protocol network can be referred to as backup nodes. The period shift process can help address the problem of the circular method which causes frequent switching of the primary node when multiple network nodes on the line to the new primary node are faulty. Unlike the circular method, the period shift process in this descriptive report relies on summing weight to select the new primary node, which can reduce latency or delay in locating the new non-defective primary node. This can further improve the efficiency of the overall trust protocol system in providing trusted protocol services. [064] [064] In addition, the present specification discusses a recovery process that includes operations such as sending a status request message by a network node that applies to be a new primary node and receiving status response messages from the others. network nodes. These operations are performed in such a way that the recovery process of the defective network node does not interfere with the normal operation of the consensus process among the other non-defective network nodes. This facilitates conservation of compute and network characteristics to recover the failed network node, reducing the complexity of the recovery process. [065] [065] Figure 1 represents an example of an environment (100) that can be used to execute the embodiments of the present specification. In some examples, the environment (100) allows entities to participate in a consortium trust protocol network (102). The environment (100) includes computing devices or systems (106, 108) and a network (110). In some examples, network (110) includes a local area network (LAN), wide area network (WAN), the Internet, or a combination thereof, and connects web sites, user devices (e.g., computing devices ) and secondary systems (back-end). In some examples, the network (110) may be accessed through a wired and/or wireless communication connection. In some examples, the network (110) allows communication with and within the consortium trust protocol network. [066] [066] In the example depicted, the computing systems (106, 108) may each include any appropriate computing system that allows participation as a node in the consortium trust protocol network (102). Examples of computing devices include, without limitation, a server, a desktop computer, a laptop computer, a tablet computing device, and a smart phone. In some examples, the computer systems (106, 108) host one or more computer-implemented services to interact with the consortium trust protocol network (102). For example, the computer system (106) may host computer-implemented services of a first entity (e.g., user A), such as a transaction management system that the first entity uses to manage its transactions with one or more other entities (e.g. other users). [067] [067] Figure 2 represents an example of conceptual architecture (200) according to embodiments of this descriptive report. The example of a conceptual architecture (200) includes participating systems (202, 204, 206) that correspond to Participant (A), Participant (B), and Participant (C), respectively. Each participant (e.g. user, enterprise) participates in a trusted protocol network (212) provided as a peer-to-peer network including a plurality of nodes (214), at least some of which immutably record information in a protocol of trust (216). Although a single trust protocol (216) is schematically represented within the trust protocol network (212), multiple copies of the trust protocol (216) are provided, and are maintained across the trust protocol network (212), as described in more detail here. [068] [068] In the example shown, each participating system (202, 204, 206) is provided by, or on behalf of, Participant (A), Participant (B) and Participant (C), respectively, and functions as a respective node (214 ) within the trust protocol network. As used herein, a node generally refers to an individual system (e.g., computer, server) that is connected to the trusted protocol network (212) and allows a respective participant to participate in the trusted protocol network. In the example in Figure 2, one participant corresponds to each node (214). It is contemplated, however, that a participant may operate multiple nodes (214) within the trusted protocol network (212), and/or multiple participants may share a node (214). In some examples, participating systems (202, 204, 206) communicate with or across the trusted protocol network (212) using a protocol (e.g., secure hypertext transfer protocol (HTTPS)) and/or using remote procedure calls (RPCs). [069] [069] Nodes (214) may have different degrees of participation within the trust protocol network (212). For example, some nodes (214) can participate in the consensus process (eg, as inspection nodes that add blocks to the trust protocol (216)), while other nodes (214) do not participate in the consensus process. As another example, some nodes (214) store a complete copy of the trust protocol (216), while other nodes (214) only store copies of parts of the trust protocol (216). For example, data access privileges can limit the trusted protocol data that a respective participant stores within its respective system. In the example of Figure 2, the participating systems (202, 204, 206) store their respective complete copies (216', 216'', 216''') of the trust protocol (216). [070] [070] A trust protocol (for example, the trust protocol (216) of Figure 2) consists of a chain of blocks, each block storing data. Examples of data include transaction data representative of a transaction between two or more participants. While transactions are used herein by way of non-limiting examples, it is contemplated that any appropriate data may be stored in a trusted protocol (e.g. documents, images, videos, audio). [071] [071] Before storing in a block, transaction data is summarized. Digest (hashing) is a process of transforming transaction data (provided as sequence data) into a fixed-length summary value (also provided as sequence data). It is not possible to not summarize the summary value to get the transaction data. The summary ensures that even a small change to the transaction data results in a completely different summary value. Also, and as noted above, the summary value is fixed-length. That is, no matter how big the transaction data is, the length of the summary value is fixed. The summary includes processing the transaction data through a summary function to generate the summary value. An example of a digest function includes, without limitation, the safe digest algorithm (SHA)-256, which produces 256-bit digest values. [072] [072] Transaction data from multiple transactions is summarized and stored in a block. For example, summary values for two transactions are provided and are themselves summarized to provide another summary. This process is repeated until, in order for all transactions to be stored in a block, a single summary value is provided. This summary value is referred to as a Merkle root summary and is stored in a block header. A change to any of the transactions will result in changes to their summary value and ultimately a change to the Merkle root summary. [073] [073] Blocks are added to the trust protocol through a consensus protocol. Multiple nodes within the trust protocol network participate in the consensus protocol and compete to have a block added to the trust protocol. These nodes are referred to as miners (or inspection nodes). POW, introduced above, is used as a non-limiting example. [074] [074] Mining nodes perform the consensus process to add transactions to the trust protocol. Although multiple mining nodes participate in the consensus process, only one mining node can write the block to the trust protocol. That is, mining nodes compete in the consensus process to have their block added to the trust protocol. In more detail, a mining node periodically collects pending transactions from a transaction pool (for example, up to a predefined limit on the number of transactions that can be included in a block, if any). The transaction grouping includes transaction messages from participants in the trusted protocol network. [075] [075] The mining node generates a block header, summarizes all transactions in the block, and combines the summary value in pairs to generate more summary values until a single summary value is provided for all transactions in the block (the summary from Merkle root). This summary is added to the block header. The miner also determines the summary value of the most recent block in the trust protocol (that is, the last block added to the trust protocol). The miner node also adds a random value (nonce) and a timestamp to the block header. In an exploration process, the mining node tries to find a summary value that meets the required parameters. The mining node keeps changing the random value until it finds a summary value that meets the required parameters. [076] [076] Each miner in the trusted protocol network tries to find a summary value that meets the required parameters and thus compete with each other. Eventually, one of the mining nodes finds a summary value that meets the required parameters and announces this to all other mining nodes in the trusted protocol network. The other mining nodes check the summary value and, if determined to be correct, check each transaction in the block, accept the block, and attach the block to their copy of the trust protocol. In this way, a global state of the trust protocol is consistent across all mining nodes within the trust protocol network. The process described above is the POW consensus protocol. [077] [077] A non-limiting example is provided with reference to Figure 2. In this example, Participant (A) wishes to send a fund amount to Participant (B). Participant (A) generates a transaction message (eg, including From, To, and Amount fields) and sends the transaction message to the trusted protocol network, which adds the transaction message to a grouping of transactions. Each mining node in the trust protocol network creates a block and takes all transactions from the transaction pool (e.g. up to a predefined limit on the amount of transactions that can be added to a block, if any) and adds the transactions to the block . In this way, the transaction published by Participant (A) is added to the blocks of the mining nodes. [078] [078] In some trust protocol networks, encryption is implemented to maintain the privacy of transactions. For example, if two nodes want to keep a transaction private so that other nodes on the trusted protocol network cannot discern transaction details, the nodes can encrypt the transaction data. Examples of cryptographic methods include, without limitation, symmetric cryptography and asymmetric cryptography. Symmetric cryptography refers to an encryption process that uses a single key for encryption (generation of ciphertext from cleartext) and decryption (generation of cleartext from ciphertext). In symmetric encryption, the same key is available to multiple nodes, so each node can encrypt or decrypt transaction data. [079] [079] Asymmetric cryptography uses key pairs that each include a private key and a public key, with the private key being known only to a respective node and the public key being known to any or all other nodes on the network. of trust protocol. A node can use another node's public key to encrypt data, and encrypted data can be decrypted using another node's private key. For example, and referring again to Figure 2, Participant (A) can use Participant (B)'s public key to encrypt data and send the encrypted data to Participant (B). Participant (B) can use their private key to decrypt the encrypted data (ciphertext) and extract the original data (non-encrypted text). Messages encrypted with a node's public key can only be decrypted using the node's private key. [080] [080] Asymmetric cryptography is used to provide digital signatures, which allow participants in a transaction to confirm other participants in the transaction, as well as the validity of the transaction. For example, one node can digitally sign a message and another node can confirm that the message was sent by the node based on Participant (A)'s digital signature. Digital signatures can also be used to ensure messages are not tampered with in transit. For example, and again referencing Figure 2, Participant (A) must send a message to Participant (B). Participant (A) generates a message digest and then, using his private key, encrypts the digest to provide a digital signature as the encrypted digest. Participant (A) attaches the digital signature to the message and sends the digitally signed message to Participant (B). Participant (B) decrypts the digital signature using Participant (A's) public key and extracts the digest. Participant (B) summarizes the message and compares the summaries. If the summaries match, Participant (B) can confirm that the message was indeed from Participant (A) and has not been tampered with. [081] [081] Figure 3 represents an example of a process (300) to reach consensus between network nodes (e.g. node (214)) of a distributed system (e.g. trusted protocol network (102) and ( 212)) that can be performed according to embodiments of the present specification. Specifically, Figure 3 illustrates a diagram showing an exemplary embodiment of a method (300) of reaching consensus in a normal case, in accordance with the present specification. As illustrated in Figure 3, the consensus process (300) includes three phases or steps (310), (320) and (330) as discussed below. [082] [082] In a first phase (310) of the consensus process (300), a primary node (or a leader node) of the trusted protocol network sends a first message to the other network nodes (i.e., the network nodes). backup). The first message indicates that the primary node is initiating a consensus process. For example, as illustrated in Figure 3, the primary node (R0) sends an INITIAL message to other network nodes (R1, R2, and R3) in the trusted protocol network. Note that process 300 is illustrated as including four network nodes (R0, R1, R2 and R3) for illustrative purposes only, process 300 may include any suitable number of network nodes. The first phase and an INITIAL message format will be discussed below in more detail with reference to Figures 4 to 6. [083] [083] In a second phase (320) of the consensus process (300), each of the backup nodes receives the first message that is sent by the primary node, prepares a second message in response to the first message, and multicasts the message. second message to the other network node. The second message indicates that the backup node has received the first message from the primary node and is sending a response in response to the first message. For example, as illustrated in Figure 3, the backup node (R1) receives the INITIAL message that is sent by the primary node (R0) and responds to the primary node (R0) with an ECO message as an example of the second message. Meanwhile, the backup node (R1) also multicasts the ECO message to the other backup nodes, such as the backup nodes (R2) and (R3). Likewise, backup nodes (R2) and (R3) each multicast an ECO message to the other network nodes, including the primary node (R0). [084] [084] When a network node, for example, such as a primary node or a backup node, receives ECO messages from other network nodes, the network node can verify the information in the ECO messages. The second phase and an ECO message format will be discussed below in more detail with reference to Figures 4 to 6. [085] [085] In a third phase (330) of the consensus process (300), each of the network nodes multicasts a third message to the other network nodes. The third message indicates that a network node has accepted a predetermined number of the second messages. In some embodiments, the third message may indicate that the network node is ready to execute the transaction. In some embodiments, the third message may indicate that the transaction was successfully reconstituted on the network node. For example, as illustrated in Figure 3, the primary node (R0) multicasts an ACCEPT message to the backup nodes (R1, R2 and R3). Likewise, the backup nodes (R1, R2, and R3) each multicast an ACCEPT message to the other network nodes. In some embodiments of the present specification, before multicasting the ACCEPT message, a network node determines whether the ACCEPT is sent according to an erasure code (EC) and the information in the ECO messages is that received in the second phase. . The third phase, the EC code, and an ACCEPT message format will be discussed below in more detail with reference to Figures 4 to 6. [086] [086] When a network node receives enough ACCEPT messages from other network nodes, the network node determines that a consensus has been reached. For example, if the primary node (R0) or backup nodes (R1, R2, or R3) are given a quorum number (for example, 2f+1, where f represents a number of faulty network nodes) of ACCEPT messages, a consensus is automatically obtained between the network nodes. [087] [087] Figure 4 represents an example of a process (400) to obtain consensus between network nodes (for example, node (214) or nodes (R0, R1, R2 and R3)) of a distributed system (for example, trusted protocol network (102) or (212)) that can be performed in accordance with the embodiments of the present specification. In some embodiments, process 400 may be performed using one or more computer executable programs executed using one or more computing devices. [088] [088] At the beginning, the process (400) can be implemented together with the system (100)-(300), as illustrated in Figures 1 to 3. In some embodiments of the present specification, the protocol network of trust (102) and/or (212) includes a primary node (404) and one or more backup nodes (406). The Trusted Protocol Network (102) [089] [089] Process (400) starts at (408), where client node (402) generates a transaction request. In some embodiments of the present specification, the transaction request may include a request requesting a trusted protocol service from the trusted protocol network (102) and/or (212). [090] [090] At (410), the client node (402) multicasts the transaction request to the primary node (404) of the trusted protocol network (102) and/or (212). In some embodiments of the present specification, the primary node (404) assigns a sequence number to the transaction request to keep track of transaction requests after receiving the transaction request from the client node (402). [091] [091] At (412), the primary node (402) generates a number of EC blocks after receiving the transaction request from the client node (402). In some embodiments of the present specification, the primary node (404) generates the quantity of EC blocks according to an EC code using the transaction request. For example, referring to Figure 5, the primary node (404) applies an EC code (504) to a transaction request (502) and transforms the transaction request (502) into an EC message (506) using the code EC (504). The EC code (504) is an early error correction (FEC) code on the assumption of bit blanks. The EC code (504) transforms the original transaction request (502) into a longer EC message (506), such that the original transaction request (502) can be retrieved from a part or a fragment of the EC message (506). [092] [092] In some embodiments of the present specification, the EC code (504) is an almost ideal erasure code, such as a Tornado code or a low density parity check code. In alternative embodiments of the present specification, the EC code (504) is a near-ideal source code, such as a source code, an online code, a Luby transform code (LT), or a raptor code. In alternative embodiments of the present specification, the EC code 504 is an ideal erasure code, such as a parity code, a Parchive code, a Reed-Solomon code or a regeneration code. In some embodiments of the present specification, the EC code (504) may be any suitable type of erasure code. [093] [093] After transforming the transaction request (502) into the EC message (506), the primary node (404) generates a number of EC blocks (508) using the EC message (506). For example, as illustrated in Figure 5, the primary node (404) generates four EC blocks (508), EC block (A), EC block (B), EC block (C) and EC block ( D) splitting the EC message (506). Note that EC blocks (508) are illustrated in Figure 5 as including four blocks for illustrative purposes, EC blocks (508) can be generated as including any suitable number of EC blocks (508). The EC blocks (508) will be sent to the respective backup nodes (406) within the INITIAL messages. [094] [094] In some embodiments of the present specification, the blocks of EC (508) are of the same size. However, in alternative embodiments, the EC blocks (508) may have sizes that are different from one another. [095] [095] In some embodiments of the present specification, the primary node (404) generates a summary tree (500) (eg, a Merkle tree) using the EC blocks (508). The summary tree (500) includes a number of leaf nodes that are labeled with the summary of data blocks and a number of non-leaf nodes that are labeled with the cryptographic summary of their child node labels. For example, as illustrated in Figure 5, the summary tree (500) is configured to include four leaf nodes (510), summary (A), summary (B), summary (C), and summary (D) that are generated as a cryptographic digest of their respective EC blocks (508), four non-leaf nodes (512) that are generated as a summary of the concatenation of their respective child nodes (510), and a non-leaf node (514) that is generated as a summary of its child nodes (512) and is a summary of the root of the summary tree (500). [096] [096] Summary trees (500) allow efficient and secure verification of the content of large data structures. Summary trees (500) can be used to verify any type of data stored, manipulated, and transferred within and between computers. They can help ensure that blocks of data received from other peers on a P2P network are received undamaged and unaltered, and even to verify that other peers do not send spurious blocks. Verification of data blocks using the summary tree (500) will be discussed in more detail below with reference to the following steps of the consensus process (400). [097] [097] Referring again to Figure 4, the primary node (404) generates a first message (for example, an INITIAL message) after generating the EC blocks (508) and the summary tree (500). The first message indicates that the primary node is initiating a consensus process. In some embodiments, the INITIAL message, as an example of the first message, is generated using the information in the EC blocks (508) and the summary tree (500). In some embodiments of the present specification, referring to Figure 6, the INITIAL message has a format of <period, tx_root_abstract, ec_block_abstract, ec_block, seq, j>, where “period” represents a round of consensus in which the message is being sent, “tx_root_abstract” represents the root summary (514) in the summary tree (500), “ec_block_resumo” represents the summaries (510) and/or (512) in the summary tree (500), “ec_block” represents the EC blocks (508) in the summary tree (500), "seq" represents the sequence number associated with the transaction request (502), and "j" represents the network node that generates and sends the INITIAL message. In some embodiments, the INITIAL message may have a different format, for example, including additional or different fields. [098] [098] Referring again to Figure 4, in (416), in the first phase of the consensus process, the primary node (404) multicasts the INITIAL message to the other network nodes (for example, backup nodes (406)). In some embodiments, the INITIAL messages that are sent to the backup nodes (406) have a format of <period, summary_root_tx, summary_block_c, ec_block, seq, j>. For example, the primary node (404) can send a first INITIAL message <period 1, Summary ABCD, {Abstract B, Summary C, Summary D}, EC block A, 1, 0> to a first backup node (406) and a second INITIAL message <period 1, Abstract ABCD, {Abstract A, Abstract C, Abstract D}, EC block B, 1, 0> to a second backup node (406), and so on against. Note that information in the INITIAL message, such as “ec_bloco”, can be used with “ec_bloco_resumo” to reconstitute the summary tree (500). For example, in the first INITIAL message <period 1, Summary ABCD, {Summary B, Summary C, Summary D}, EC block A, 1, 0>, EC block (508) “EC block A” can be summarized to generate a cryptographic digest (510) “Abstract A”, which is later used with the other summaries (510) “{Abstract B, Abstract C, Abstract D}” to reconstitute the summary tree (500). The reconstituted summary tree (500) will be used to verify ECO messages, as discussed below in more detail with reference to the following steps in the consensus process. [099] [099] At (418), each of the backup nodes (406) generates a second message (e.g., an ECO message) in the second phase of the consensus process after receiving the INITIAL message from the primary node ( 404). The second message indicates that the backup node received the first message from the primary node. The second message is sent as a reply in response to the first message. In some embodiments of the present specification, the ECO message is generated by a backup node (406) as including the INITIAL message or a part of the INITIAL message and a signature of the backup node (406) associated with the INITIAL message. [0100] [0100] In some embodiments of this descriptive report, referring to Figure 6, the ECO message has a format of <period, tx_root_abstract, ec_block_abstract, ec_block, seq, signature_proof, j>, where “period” represents a round consensus in which the message is being sent, “tx_root_summary” represents the root digest (514) in the digest tree (500), “ec_bloco_resumo” represents the digests (510) and/or (512) in the digest tree (500 ), “ec_bloco” represents the EC blocks (508) in the summary tree (500) that are received by the respective backup nodes (406), “seq” represents the sequence number associated with the transaction request (502) , “signature_proof” represents the signature of the backup nodes (406) associated with the INITIAL messages, and “j” represents the network node that generates and sends the ECO message. In some embodiments, the ECO message may have a different format, for example, including additional or different fields. [0101] [0101] Referring again to Figure 4, in (420), the backup nodes (406) send the ECO messages to the primary node (404). [0102] [0102] At (422), the primary node (404) checks the ECO messages that are sent by the backup nodes (406). In some embodiments of the present specification, the primary node (404) verifies that the ECO messages are valid according to the summary tree (500). For example, the primary node (404) may receive a first ECO message <period 1, Summary ABCD, {Summary B, Summary C, Summary D}, EC block A, 1, 1> from a first backup node (406). The primary node (404) [0103] [0103] At (424), the primary node (404) determines whether a number of valid ECO messages exceeds a predetermined threshold. In some embodiments of the present specification, the primary node (404) determines whether the amount of valid ECO messages reaches a quorum number nf or 2f+1, where n is the total number of network nodes and f is the maximum number of failed nodes that the network can tolerate. [0104] [0104] At (426), the primary node (404) reconstitutes the transaction request (502) in response to the determination that the amount of valid ECO messages reaches the quorum number. In some embodiments of the present specification, the primary node (404) reconstitutes the transaction request (502) based on at least a subset of valid ECO messages according to the EC code. For example, the primary node (404) can retrieve an amount of n-2f or f+1 from EC blocks (508) that are in the quorum number (eg nf or 2f+1) of valid ECO messages, and use the recovered EC blocks (508) to reconstitute the transaction request (502) according to the EC code (504). [0105] [0105] At (428), in the third phase of the consensus process, the primary node (404) generates a third message (for example, a message [0106] [0106] In some embodiments of this descriptive report, referring to Figure 6, the ACCEPT message has a format of <period, abstract_root_tx, seq, evidence_signature, j>, where “period” represents a consensus round in which the message is being sent, “tx_root_summary” represents the root digest (514) in the digest tree (500), “seq” represents the sequence number associated with the transaction request (502), “signature_evidence” represents a set of signatures in valid ECO messages and “j” represents the network node that generates and sends the ACCEPT message. In some embodiments, the ACCEPT message may have a different format, for example, including additional or different fields. [0107] [0107] Referring again to Figure 4, at (430), the primary node (404) sends the ACCEPT message to the backup nodes (406). [0108] [0108] Similar to the primary node (404), each of the backup nodes (406) can reconstitute the transaction request, for example by performing steps similar to steps (422)-(428) as the primary node (404 ). At (432), each of the backup nodes (406) generates an ACCEPT message in response to the determination that the transaction request (502) has been successfully reconstituted by the backup node (406). In some embodiments, the primary node (404) and the backup node (406) can perform steps (422)-(428) in a parallel manner, for example, as indicated in Figure 3. [0109] [0109] At (434), the backup nodes (406) send the ACCEPT messages to the primary node (404). Meanwhile, each of the backup nodes (406) can send the ACCEPT messages to the other backup nodes (406). [0110] [0110] At (436), the primary node (404) executes the transaction request (502) in response to the determination that a number of ACCEPT messages exceeds a predetermined threshold. In some embodiments of the present specification, the primary node (404) determines whether the received ACCEPT messages are identical and whether a number of ACCEPT messages that are identical reach a quorum number (e.g., 2f+1). If the number of identical ACCEPT messages reaches the quorum number, the primary node (404) determines that a consensus has been reached among all network nodes and then executes the transaction request (502) locally. In some embodiments of the present specification, if the primary node (404) determines that the amount of ACCEPT messages that are identical does not reach the quorum number, the primary node (404) determines that a consensus has not been reached among all the network nodes and then refrains from executing the transaction request (502). [0111] [0111] In some embodiments of the present specification, each of the backup nodes (406) may perform the same operations that are performed by the primary node (404), as described above in (436), before executing the transaction request (502). If a backup node (406) determines that the ACCEPT messages it receives exceed a predetermined threshold, the backup node (406) determines that a consensus has been reached between the network nodes and executes the transaction request ( 502) locally. In some embodiments of the present specification, if the backup node (406) determines that the amount of ACCEPT messages that are identical does not reach the quorum number, the backup node (406) determines that it has not been consensus is reached among all network nodes, and then refrains from executing the transaction request (502). [0112] [0112] At (438), the primary node (404) sends a transaction result to the client node (402) after executing the transaction request (502). Backup nodes (406) that have successfully performed the transaction request (502) locally can also send their respective transaction results to the client node (402). [0113] [0113] The consensus process, as discussed above, includes many features that improve the operation of the entire system of trust protocol and help alleviate network bottlenecks. For example, the consensus process in the present specification includes generating a number of EC blocks according to an EC code using a transaction request and sending one of the EC blocks to each of the network nodes. The EC block is smaller in size than the original transaction request. Therefore, sending the EC block instead of the transaction request to the network nodes reduces the size of data blocks that are transmitted between the network nodes of the trusted protocol network, thus conserving network bandwidth and reducing the network load. [0114] [0114] During the consensus process, backup nodes are waiting for a request from the primary node. However, the primary node may encounter a Byzantine fault or a collapse fault such that the primary node cannot transmit the request within a predetermined time window. When a specific amount of time has passed without the primary node multicasting the request, a new primary node may need to be chosen to prevent backup nodes from waiting indefinitely for requests to be executed. [0115] [0115] Figure 7 represents an example of a process (700) to perform a change of a primary node (e.g. node (214) or (404)) of a distributed system (e.g. trusted protocol network ( 102) and (212)) which can be performed in accordance with embodiments of the present specification. Specifically, Figure 7 illustrates a diagram showing an exemplary embodiment of a method (700) of performing a primary node change in accordance with the present specification. In some embodiments, a primary node is associated with a period that includes a consensus process with the primary node being the leader. [0116] [0116] In some embodiments, in response to the determination that a primary node of a current period needs to be changed, a backup node of the trusted protocol network sends a first message to the other network nodes. The first message indicates that the backup node would like to be a new primary node in a new period. For example, as illustrated in Figure 7, the backup node (R0) sends a CHANGE_PERIOD message to the other network nodes (R1, R2 and R3) in the trusted protocol network in response to the backup node safety (R0) determines that a current primary node is faulty and that a period shift needs to be performed. The CHANGE_PERIOD message is an example of the first message indicating that the backup node (R0) applies to be the new primary node. Period change can cause a change from a current period with a current primary node to a new period with a new primary node. Note that process (700) is illustrated as implemented in conjunction with four network nodes for illustrative purposes only. The process (700) can be implemented in conjunction with any suitable number of network nodes. [0117] [0117] Then each of the network nodes receives the first message that is sent by the backup node, prepares a second message in response to the first message, and multicasts the second message to the other network nodes. For example, as illustrated in Figure 7, the network node (R1) receives the message PERIOD_CHANGE that is sent by the backup node (R0) and responds to the backup node (R0) with a NEW_PERIOD message indicating an acknowledgment that the backup node (R0) can become the new primary node. Meanwhile, the network node (R1) also multicasts the NEW_PERIOD message to the other network nodes, such as the network nodes (R2) and (R3). Likewise, network nodes (R2) and (R3) each multicast a NEW_PERIOD message to the other network nodes. [0118] [0118] The period change process as discussed above, a CHANGE_PERIOD message format, and a NEW_PERIOD message format will be discussed below in more detail with reference to Figures 8 and 9. [0119] [0119] Figure 8 represents an example of a process (800) to perform a change of a primary node in a distribution system (e.g., trusted protocol network (102) or (212)) that can be performed from according to embodiments of this descriptive report. [0120] [0120] Process (800) starts at (806), where a backup node (802) determines that a period shift needs to be performed. The period shift discussed here causes a change from a current period with a current primary node to a new period with a new primary node. An example period may include a consensus process (e.g. (300) or (400) consensus process) to reach consensus among a number of network nodes using a primary node as discussed above with reference to Figures 3 to 6 . [0121] [0121] In some embodiments of the present specification, the backup node (802) determines that a period shift needs to be performed in response to the determination that the backup node (802) is still waiting for a request from the current primary node after a specific amount of time has passed without receiving the request from the current primary node. For example, the current primary node might encounter a Byzantine fault or a collapse fault, so the current primary node cannot multicast the request within a predetermined time window. Therefore, the period shift is caused by intervals that prevent backup nodes from waiting indefinitely for requests to be executed. The period shift process discussed here provides liveliness and reduces network latency, allowing the system to progress when the primary node fails. [0122] [0122] At (808), the backup node (802) determines a respective weight of the backup node (802) associated with each of the phases of the consensus process in the current period. In some embodiments, the consensus process includes three phases as described above with reference to Figures 3 to 6. Weight is a metric of a qualification of the backup node (802) to be the new primary node in a new one. time course. [0123] [0123] In some embodiments of the present specification, the backup node (802) determines a backup node (802) weight for a first stage of the consensus process in the current period to be a first value . For example, the backup node (802) can be given an initial weight of 10% if the backup node (802) has entered a first phase of the consensus process (for example, the first phase (310 ) of the consensus process (300)). In alternative embodiments of the present specification, backup node (802) may assign any suitable weight value to backup node (802) for the first stage of the current consensus process. [0124] [0124] In some embodiments of the present specification, the backup node (802) determines a weight of the backup node (802) for a second stage of the consensus process (e.g., the first stage ( 320) of the consensus process (300)) in the current period based on a quorum verification process. The quorum verification process is performed by determining whether the backup node (802) receives a predetermined number (eg, 2f + 1) of ECO messages from the other network nodes in the second phase of the consensus process. [0125] [0125] In some embodiments of the present specification, if the backup node (802) fails the quorum check (for example, the backup node (802) receives an amount of ECO messages that is less at a predetermined threshold), the backup node (802) may determine the weight of the backup node (802) for the second stage of the consensus process to be a first value. [0126] [0126] In some embodiments of this specification, quorum verification further includes verifying that the ECO messages that the backup node (802) receives from other network nodes during the second phase of the consensus process are valid . For example, backup node 802 can authenticate private key signatures on ECO messages using a public key to determine whether ECO messages are valid. [0127] [0127] Similar to determining the weight for the second stage, in some embodiments, the backup node (802) determines a backup node (802) weight for a third stage of the consensus process (e.g. example, the third phase (330) of the consensus process (300)) in the current period based on a quorum verification process. The quorum verification process is performed by determining whether the backup node (802) receives a predetermined number (e.g. 2f+1) of acceptance messages from the other network nodes in the third phase of the consensus process in the current period . Each of the acceptance messages from other network nodes indicates that each of the other network nodes has accepted a predetermined number of ECO messages. The acceptance message may be, for example, the ACCEPT messages described above with reference to the third phase (330) of the consensus process (300). [0128] [0128] In some embodiments of the present specification, if the backup node (802) fails the quorum check (for example, the backup node (802) receives an ACCEPT message amount that is less at a predetermined threshold), the backup node (802) may determine the weight of the backup node (802) for the third stage of the consensus process to be a first value. [0129] [0129] At (810), after determining the respective backup node weights (802) for the phases of the consensus process in the current period, the backup node (802) determines a node weight sum backup (802) for the consensus process based on the respective weights. In some embodiments of the present specification, the weight sum is a sum of the respective sums of the backup nodes associated with each of the phases of the consensus process in the current period. For example, if the backup node (802) determined a first backup node weight value (802) for the first stage to be 10%, a second backup node weight value (802 ) for the second stage to be 45% and a third backup node weight value (802) for the third stage to be 45%, the backup node (802) determines the weight sum to be 100%. As another example, if the backup node (802) determined a first backup node weight value (802) for the first stage to be 10%, a second backup node weight value ( 802) for the second stage to be 45% and a third backup node weight value (802) for the third stage to be 0, the backup node (802) determines the weight sum to be 55 %. [0130] [0130] At (812), the backup node (802) sends a CHANGE_PERIOD message to the other network nodes (804) if the backup node (802) determines that the weight sum that was determined in (810) reaches or exceeds a predetermined threshold. For example, the backup node (802) may send a CHANGE_PERIOD message to the other network nodes (804) if the sum of weight as determined in (810) reaches 100%. The CHANGE_PERIOD message indicates a request for a change from the current period with the current primary node to the new period, with the backup node being the new primary node. [0131] [0131] In some embodiments of this descriptive report, referring to Figure 9, the message PERIOD_CHANGE has a format of <weight, period+1, ECO{}, ACCEPT{}, j>, where "weight" represents the backup node weight sum (802) as determined earlier in (810) for the consensus process, “period+1” represents a new consensus round (i.e., a new period) associated with a new node primary, “ECO{}” represents a set of ECO messages that the backup node (802) receives during the second phase of the consensus process, “ACCEPT{}” represents a set of ACCEPT messages that the backup node security (802) receives during the third phase of the consensus process, and "j" represents the network node (eg, backup node (802)) that generates and sends the CHANGE_PERIOD message. In some embodiments, the CHANGE_PERIOD message may have a different format, for example, including additional or different fields. [0132] [0132] Referring again to Figure 8, in (814), the network nodes (804) other than the backup node (802) check the CHANGE_PERIOD message that is sent by the backup node (802). In some embodiments, each of the nodes in the network (804) checks whether the CHANGE_PERIOD message is valid by checking whether the weight sum in the CHANGE_PERIOD message is valid. In some embodiments, verifying that the weight sum in the CHANGE_PERIOD message is valid includes verifying that the signature set on the ECO messages included in the CHANGE_PERIOD message is valid. For example, each of the network nodes (804) can authenticate the set of private key signatures on the ECO messages including the CHANGE_PERIOD message using a public key. [0133] [0133] At (816), each of the network nodes (804) sends a NEW_PERIOD message to the backup node (802) in response to verifying that the CHANGE_PERIOD message sent by the backup node (802) is valid. The NEW_PERIOD message indicates a confirmation that the backup node is the new primary node. For example, the NEW_PERIOD message sent by a network node (804) includes an indication that the network node (804) recognizes that the backup node (802) will become the new primary node in the new period. [0134] [0134] Referring to Figure 9, the NEW_PERIOD message is generating as having a format of <period+1, i, j, seq, and c_compilation>, where “period+1” represents a new consensus round (i.e., a new period) associated with a new primary node, “i” represents the new primary node in the new period, “j” represents a network node (804) that sends the message NEW_PERIOD and “ec_compilação” represents a compilation of the message PERIOD_CHANGE. In some embodiments, the CHANGE_PERIOD message compilation includes a CHANGE_PERIOD message digest value. In some embodiments, the NEW_PERIOD message may have a different format, for example, [0135] [0135] Referring again to Figure 8, in (818), the backup node (802) checks if the NEW_PERIOD messages that are sent by the network nodes (804) are valid. In some embodiments, the backup node 802 checks the NEW_PERIOD messages, verifying that the compilation of the CHANGE_PERIOD message into the NEW_PERIOD messages is valid. As the compilation includes information from the CHANGE_PERIOD message, the compilation also includes the signatures in the CHANGE_PERIOD message. The backup node (802) can verify the compilation of the CHANGE_PERIOD message, verifying that the signature set in the CHANGE_PERIOD message is valid. [0136] [0136] At (820), the backup node (802) determines whether a valid NEW_PERIOD message amount, as determined at (818), exceeds a predetermined threshold. In some embodiments, the predetermined threshold is a quorum number (e.g., 2f + 1). [0137] [0137] At (822), the backup node (802) determines that the backup node (802) is the new primary node in the new period in response to the determination that the amount of valid NEW_PERIOD message, as determined, exceeds the predetermined threshold. Note that each of the network nodes (804) performs the same steps (818)-(822) as the backup node (802), and the network nodes (804) and backup node (802) ) can perform steps (818)-(822) in a parallel manner. For example, each of the network nodes (804) can check a set of NEW_PERIOD messages that are sent from other network nodes (804), determine whether a number of valid NEW_PERIOD messages exceeds a predetermined threshold, and determine a new primary node. [0138] [0138] The period change process (e.g. process (700) or (800)), as discussed above, includes many features that improve the operation of the entire reliable protocol system and help alleviate network bottlenecks. . For example, the period shift process in this specification includes assigning respective weights to the three phases of the consensus process, determining a weight sum based on the respective weights of the three phases, and determining a new primary node based on the weight sum. . The period change process based on the sum of weight, rather than a circular method, can make it easier to choose a new primary node that is not defective in a timely manner. A circular method can cause frequent change of the primary node when multiple network nodes on the line to the new primary node are faulty. This significantly affects the trust protocol service, introducing latency or delay in locating a non-faulty primary node. [0139] [0139] During the operation of a trusted protocol network, the execution speed of some network nodes may lag behind that of most network nodes due to network instability, sudden power failure, disk failure and the like . In this scenario, more than 1/3 of the network nodes in the system may fail. BFT provides security and liveliness if less than 1/3 of the network nodes fail during the lifetime of the system. However, these guarantees are insufficient for long-lived systems because the upper limit is likely to be exceeded in the scenario described above. [0140] [0140] Figure 10 represents an example of a process (1000) to perform a process of recovering a network node (e.g. node (214) or (404)) of a distributed system (e.g. confidence (102) and (212)) that can be performed in accordance with embodiments of the present specification. Specifically, Figure 10 illustrates a diagram showing an exemplary embodiment of a method (1000) of performing a network node recovery process in accordance with the present specification. As illustrated in Figure 10, the process (1000) includes some phases and steps. [0141] [0141] In a first phase (1010), a network node (e.g. network node (R0)) that would like to retrieve a target transaction with a target sequence number (R0) multicasts a request message from status (for example, ASK_STATE message) to the other network nodes indicating that the network node must be recovered. The status request message can include the target sequence number that the network node (R0) would like to retrieve. In a second phase (1020), the other network nodes receive the status request message and send a status response message (eg, STATUS_RESPONSE message) to the network node (R0). In a third phase (1030), the network node (R0) sends a request message (e.g. EXTRAIR_ECO message) to the other network nodes, requesting an ECO message from each of the other network nodes. The ECO message may be the same ECO message sent by the respective other network nodes in the second stage (320) of the consensus process (300) as described above with reference to Figures 3 to 6. In a fourth stage (1040), each from the other network nodes sends an ECO message to the network node (R0) in response to the EXTRAIR_ECO message. In a fifth phase (1050), the network node (R0) verifies the ECO messages and retrieves the target transaction according to an EC code, e.g. according to example reconstitution techniques as described above with reference to Fig. 4. In a sixth phase (1060), the network node (R0) sends an ACCEPT message to the other network nodes, indicating that the network node has recovered. [0142] [0142] Note that process (1000) is illustrated as implemented in conjunction with four network nodes for illustrative purposes only. The process (1000) can be implemented together with any suitable number of network nodes. The process (1000), an ASK_STATUS message format, and a STATUS_RESPONSE message format will be discussed below in more detail with reference to Figures 11 to 12. [0143] [0143] Figure 11 represents an example of a process (1100) to perform a process of recovering a network node in a distribution system (e.g. network protocol trust (102) or (212)) that can be performed in accordance with embodiments of this descriptive report. In some embodiments, process 1100 may be performed using one or more computer executable programs executed using one or more computing devices. For clarity of presentation, the following description generally describes method 1100 in the context of the other figures in this description. It will be understood that method 1100 may be performed, for example, by any suitable system, environment, software and hardware, or a combination of systems, environments, software and hardware, as appropriate. In some embodiments, several steps of method 1100 may be performed in parallel, in combination, in cycles, or in any order. [0144] [0144] The process (1100) starts at (1106), where a network node (1102) multi-broadcasts a status request message to the other network nodes (1104). The status request message includes an indication that the network node (1102) should retrieve a target transaction with a target sequence number. The network node (1102) can be a primary node or a backup node. [0145] [0145] In some embodiments of this specification, referring to Figure 12, the ASK_STATE message, as an example of the status request message, has a format of <j, seq>, where “j” represents a network node (1102) that sends the ASK_STATUS message and "seq" represents a higher sequence number or a more recent sequence number to the network node (1102) in the current consensus process. In some embodiments, the ASK_STATUS message may have a different format, for example, including additional or different fields. [0146] [0146] When transmitting the ASK_STATUS message to the other network nodes (1104), the network node (1102) is asking the other network nodes (1104) to send its most recent sequence number to the network node ( 1102), thus obtaining the most recent block information from the trusted protocol system. And, by obtaining the most recent block information from the entire trusted protocol system, the network node (1102) may be able to synchronize with the most recent state of the entire system, thus recovering and continuing to participate in the consensus process. [0147] [0147] Referring again to Figure 11, at (1108), each of the other network nodes (1104) sends a status response message (e.g., STATUS_RESPONSE message) to the network node (1102) in response upon receipt of the status request message. In some embodiments, the status response message includes a previous sequence number associated with network nodes (1104). [0148] [0148] In some embodiments, referring to Figure 12, the STATUS_RESPONSE message, as an example of the status response message, has a format of <j, last_seq>, where “j” represents a network node ( 1104) which sends the STATUS_RESPONSE message and “last_seq” represents a previous sequence number for the network node (1104) in the current consensus process. In some embodiments, the STATUS_RESPONSE message may have a different format, for example, including additional or different fields. [0149] [0149] Referring again to Figure 11, at (1110), the network node (1102) determines whether a quantity of received status response messages exceeds a predetermined threshold. For example, network node 1102 can determine whether a number of received STATUS_RESPONSE messages exceeds a quorum number (eg 2f+1 or n-f). In some embodiments, network node 1102 further determines whether the quorum number of received STATUS_RESPONSE messages includes an identical sequence number. The quorum number of received STATUS_RESPONSE messages includes an identical sequence number which means that most network nodes (1104) agree on a common system-wide state. [0150] [0150] At (1112), the network node (1102) determines the target sequence number based on the identical sequence number if the network node (1102) determines that the amount of status response messages including the number of identical sequence received from network nodes (1104) exceeds the predetermined threshold. For example, network node 1102 may determine that the target sequence number is an increment (e.g. "last_seq+1") of the identical sequence number (e.g. "last_seq"). [0151] [0151] At (1114), the network node (1102) sends a request message (eg EXTRAIR_ECO message) to the other network nodes (1104). The EXTRAIR_ECO message is sent by the network node (1102) to request an ECO message from each of the other network nodes (1104). [0152] [0152] In some embodiments, referring to Figure 12, the EXTRAIR_ECO message, as an example of the request message, has a format of <j, last_seq+1>, where “j” represents a network node ( 1102) which sends the EXTRAIR_ECO message and "last_seq+1" represents a target sequence number associated with the ECO messages that the network node (1102) is requesting from the other network nodes (1104). In some embodiments, the EXTRAIR_ECO message may have a different format, for example, including additional or different fields. [0153] [0153] The EXTRAIR_ECO message as discussed herein is sent by the network node (1102) to request the ECO messages including a latest sequence number or a higher sequence number from the other network nodes (1104). By collecting the ECO messages including a more recent sequence number or a higher sequence number from the other network nodes (1104), the network node (1102) may be able to recover to the latest state associated with the latest sequence number. [0154] [0154] Referring again to Figure 11, in (1116), each of the network nodes (1104) sends an ECO message to the network node (1102) in response to receiving the EXTRAIR_ECO message. In some embodiments, each of the network nodes (1104) checks the EXTRAIR_ECO message before sending the ECO message to the network node (1102). [0155] [0155] At (1118), the network node (1102) checks whether the ECO messages sent by the network nodes (1104) are valid. In some embodiments, network node 1102 verifies ECO messages using a Merkel tree. For example, the network node (1102) can use the data included in the ECO message to reconstruct a Merkel tree and determine a reconstituted root summary value of the reconstituted Merkel tree. Network node 1102 can then compare the reconstituted root digest value with a root digest value included in the ECO message. [0156] [0156] In some embodiments, the network node (1102) verifies that the ECO message is valid, further verifying that the signature in the ECO message is valid. For example, the network node (1102) can authenticate the private key signature on the ECO message using a public key paired with the private key to verify the signature. [0157] [0157] At (1120), the network node (1102) determines whether an amount of valid ECO messages received from the other network nodes (1104) exceeds a predetermined threshold. For example, network node (1102) can determine whether a number of valid ECO messages received from other network nodes (1104) exceeds a quorum number (e.g., 2f+1). [0158] [0158] At (1122), the network node (1102) retrieves the target transaction with the target sequence number in response to the determination that the amount of valid ECO messages exceeds the predetermined threshold. In some embodiments, the network node (1102) retrieves the target transaction using the data included in the amount of valid ECO messages. For example, network node 1102 may retrieve a subset of EC blocks included in ECO messages to reconstitute the target transaction according to an EC code. [0159] [0159] At (1124), the network node (1102) multicasts an ACCEPT message to the other network nodes (1104) after retrieving the target transaction. For example, network node (1102) may multicast an ACCEPT message to other network nodes (1104) after successfully reconstituting the target transaction. In some embodiments, the ACCEPT message includes a set of signatures on the ECO messages and the target sequence number. By sending the ACCEPT message including the signatures and target sequence number to the other network nodes (1104), the network node (1102) indicates to the other network nodes (1104) that the network node (1102) has recovered and synchronized with the latest system state. [0160] [0160] The recovery process, as discussed above in this descriptive report, includes many features that improve the operation of computers implementing the recovery process and help alleviate the network bottleneck. For example, the retrieval process in this specification includes operations including sending a status request message by a network node that applies to be a new primary node, receiving status response messages from other network nodes, and sending a EXTRAIR_ECO message by the network node to request ECO messages from the other network nodes. These operations are performed in such a way that the recovery process of the defective network node does not interfere with the normal operation of the consensus process among the other non-defective network nodes. This facilitates conservation of compute and network characteristics to recover the failed network node, reducing the complexity of the recovery process. [0161] [0161] Referring to Figure 13, Figure 13 is a diagram illustrating modules of a consensus apparatus (1300) in accordance with an embodiment of the present specification. The apparatus (1300) for obtaining consensus can be applied to a consensus system based on a trusted protocol technology. For example, the apparatus (1300) may correspond to the embodiments shown in Figures 1 to 6. The apparatus (1300) may be implemented at a primary node in the trusted protocol network. The apparatus (1300) includes the following: a receiver or receiving unit (1302) configured to receive a transaction request; a generating unit (1304) configured to generate a number of erasure code (EC) blocks in accordance with an EC code using the transaction request; a transmitter or transmission unit (1306), configured to send a number of first messages to the one or more backup nodes, respectively, wherein each of the number of first messages includes a composite summary value associated with the amount of EC blocks; the receiver or receiving unit (1302), further configured to receive at least a second message from at least one of the backup nodes, wherein the at least one second message includes one of the number of first messages and a signature of the at least one of the backup nodes associated with one of the number of first messages; a verification unit [0162] [0162] In an optional embodiment, the transaction request is associated with a sequence number. [0163] [0163] In an optional embodiment, generating the plurality of EC blocks according to an EC code includes the following: transforming the transaction request into an EC message using the EC code and dividing the EC message into the block quantity of EC. [0164] [0164] In an optional embodiment, the summary value composed of the number of EC blocks is generated using a summary tree. [0165] [0165] In an optional embodiment, the summary tree includes a Merkle tree and where the composite summary value is a Merkle tree root summary value. [0166] [0166] In an optional embodiment, the signature of at least one of the backup nodes associated with one of the number of first messages includes a private key signature of at least one of the backup nodes associated with one of the number of first messages. [0167] [0167] In an optional embodiment, the at least one second message further includes at least one of the number of EC blocks. [0168] [0168] In an optional embodiment, checking whether the at least one second message is valid includes the following: generating a reconstituted summary tree using at least one of the number of EC blocks in the at least one second message; determining a reconstituted composite summary value from the reconstituted summary tree; and determining whether the reconstituted composite summary value matches the composite summary values in the at least one second message. [0169] [0169] In an optional embodiment, the determination unit (1310) is further configured to determine that the at least one second message is valid in response to the determination that the reconstituted composite summary value matches the composite summary values in the second messages. [0170] [0170] In an optional embodiment, the predetermined number of third messages that are identical includes the predetermined number of third messages with an identical set of signatures. [0171] [0171] Figure 13 is a schematic diagram illustrating an internal functional module and structure of a consensus apparatus (1300). [0172] [0172] At least one processor is configured to receive a transaction request; generate a number of erasure code (EC) blocks according to an EC code using the transaction request; sending a number of first messages to the one or more backup nodes, respectively, where each of the number of first messages includes a composite summary value associated with the number of EC blocks; receive at least a second message from at least one of the backup nodes, wherein the at least one second message includes one of the number of first messages and a signature of the at least one of the backup nodes associated with one of the number of first messages; verifying that the at least one second message is valid in response to receipt of the at least one second message from the at least one of the backup node; determining whether a number of valid second messages exceeds a predetermined threshold; reconstituting the transaction request based on a subset of the number of valid second messages according to the EC code, in response to the determination that the number of valid second messages exceeds the predetermined threshold; sending a third message to the other network nodes in response to the determination that the transaction request was successfully reconstituted, wherein the third message includes a set of signatures that are in the second valid messages; receiving at least a third message from at least one of the backup nodes; and executing the transaction request in response to receipt of a predetermined number of third messages that are identical. [0173] [0173] Optionally, the transaction request is associated with a sequence number. [0174] [0174] Optionally generating the plurality of EC blocks according to an EC code includes the following: transforming the transaction request into an EC message using the EC code and dividing the EC message into the EC block quantity. [0175] [0175] Optionally, the summary value composed of the number of EC blocks is generated using a summary tree. [0176] [0176] Optionally, the summary tree includes a Merkle tree, and where the composite summary value is a root summary value of the Merkle tree. [0177] [0177] Optionally, the signature of at least one of the backup nodes associated with one of the number of first messages includes a private key signature of at least one of the backup nodes associated with one of the number of first messages. [0178] [0178] Optionally, the at least one second message further includes at least one of the number of EC blocks. [0179] [0179] Optionally, checking whether the at least one second message is valid includes the following: generating a reconstituted summary tree using at least one of the number of EC blocks in the at least one second message; determining a reconstituted composite summary value from the reconstituted summary tree; and determining whether the reconstituted composite summary value matches the composite summary values in the at least one second message. [0180] [0180] Optionally, the at least one processor is further configured to determine that the at least one second message is valid in response to the determination that the reconstituted composite digest value matches the composite digest values in the second messages. [0181] [0181] Optionally, the predetermined number of third messages that are identical includes the predetermined number of third messages with an identical set of signatures. [0182] [0182] Referring to Figure 14, Figure 14 is a diagram illustrating modules of a consensus apparatus (1400) in accordance with an embodiment of the present specification. The consensus apparatus (1400) can be applied to a consensus system based on a trusted protocol technology. The apparatus (1400) may correspond to the embodiments shown in Figures 1 to 6. For example, the apparatus (1400) may be implemented in a backup node of a trusted protocol network. The apparatus (1400) includes the following: a receiver or receiver unit (1402), configured to receive a first message from the primary node, wherein the first message includes a composite summary value associated with a number of EC blocks, wherein the number of EC blocks is generated by the primary node according to an EC code using a transaction request; a transmitter or transmission unit (1404), configured to send, by the backup node, [0183] [0183] In an optional embodiment, generating the plurality of EC blocks according to an EC code includes the following: transforming the transaction request into an EC message using the EC code; and dividing the EC message by the EC block quantity. [0184] [0184] In an optional embodiment, the summary value composed of the plurality of EC blocks is generated using a summary tree. [0185] [0185] In an optional embodiment, the summary tree includes a Merkle tree and the composite summary value is a Merkle tree root summary value. [0186] [0186] In an optional embodiment, the signature of the backup node associated with the first message includes a private key signature of the backup node associated with the first message. [0187] [0187] In an optional embodiment, the at least one second message further includes at least one of the number of EC blocks. [0188] [0188] In an optional embodiment, checking whether the at least one second message is valid includes the following: generating a reconstituted summary tree using at least one of the number of EC blocks in the at least one second message; determining a reconstituted composite summary value from the reconstituted summary tree; comparing the reconstituted composite digest value to a composite digest value in the at least one second message; and determining whether the reconstituted composite summary value matches the composite summary values in the at least one second message. [0189] [0189] In an optional embodiment, the determination unit (1408) is further configured to determine that the at least one second message is valid in response to the determination that the reconstituted composite summary value matches the composite summary values in the second messages. [0190] [0190] In an optional embodiment, the predetermined number of third messages that are identical includes the predetermined number of third messages with an identical set of signatures. [0191] [0191] Figure 14 is a schematic diagram illustrating an internal functional module and structure of a consensus apparatus (1400). [0192] [0192] The at least one processor is configured to receive a first message from the primary node, where the first message includes a composite summary value associated with a number of EC blocks, where the number of EC blocks is generated by the primary node according to an EC code using a transaction request; sending, by the backup node, a second message to the other network nodes in response to receipt of the first message, wherein the second message includes the first message and a signature of the backup node associated with the first message; receiving at least a second message from at least one backup node other than the backup node; verifying that the at least one second message is valid in response to receipt of the at least one second message from the at least one backup node; determining whether a number of valid second messages exceeds a predetermined threshold; reconstituting the transaction request based on a subset of the number of valid second messages according to the EC code, in response to the determination that the number of valid second messages exceeds the predetermined threshold; sending a third message to the other network nodes in response to the determination that the transaction request was successfully reconstituted, wherein the third message includes a set of signatures that are in the second valid messages; receiving at least a third message from at least one of the backup nodes; and executing the transaction request in response to receipt of a predetermined number of third messages that are identical. [0193] [0193] Optionally, generating the plurality of EC blocks according to an EC code includes the following: transforming the transaction request into an EC message using the EC code; and divide the EC message into the EC block quantity. [0194] [0194] Optionally, the composite summary value of the plurality of EC blocks is generated using a summary tree. [0195] [0195] Optionally, the summary tree includes a Merkle tree and the composite summary value is a Merkle tree root summary value. [0196] [0196] Optionally, the signature of the backup node associated with the first message includes a private key signature of the backup node associated with the first message. [0197] [0197] Optionally, the at least one second message further includes at least one of the number of EC blocks. [0198] [0198] Optionally, checking whether the at least one second message is valid includes the following: generating a reconstituted summary tree using at least one of the number of EC blocks in the at least one second message; determining a reconstituted composite summary value from the reconstituted summary tree; comparing the reconstituted composite digest value to a composite digest value in the at least one second message; and determining whether the reconstituted composite summary value matches the composite summary values in the at least one second message. [0199] [0199] Optionally, the at least one processor is further configured to determine that the at least one second message is valid in response to the determination that the reconstituted composite digest value matches the composite digest values in the second messages. [0200] [0200] Optionally, the predetermined number of third messages that are identical includes the predetermined number of third messages with an identical set of signatures. [0201] [0201] Referring to Figure 15, Figure 15 is a diagram illustrating modules of a primary node switching apparatus (1500) in accordance with an embodiment of the present specification. The apparatus (1500) for changing a primary node can be applied to a consensus system based on a trusted protocol technology. The apparatus (1500) may correspond to the embodiments shown in Figures 7 to [0202] [0202] In an optional embodiment, determining a respective backup node weight associated with each of the three phases of the consensus process in the current period includes determining a backup node weight for a first phase of the consensus process as being a first value. [0203] [0203] In an optional embodiment, the determination of a respective backup node weight associated with each of the three phases of the consensus process in the current period includes the following: in response to the determination of a failed verification of quorum in a second phase of the consensus process in the current period, determine a backup node weight for the second phase of the consensus process to be a first value; and in response to determining the success of a quorum check in the second phase of the consensus process in the current period, determine the backup node weight for the second phase of the consensus process to be a second value, where the first value is less than the second value. [0204] [0204] In an optional embodiment, the quorum check in the second phase for the network node includes receiving a predetermined number of ECO messages from other network nodes. [0205] [0205] In an optional embodiment, the determination of a respective backup node weight associated with each of the three phases of the consensus process in the current period includes the following: in response to the determination of a failed verification of quorum in a third phase of the consensus process in the current period, determine a backup node weight for the third phase of the consensus process to be a third value; and in response to determining the success of a quorum check in the third phase of the consensus process in the current period, determine the backup node weight for the third phase of the consensus process to be a fourth value, where the third value is less than the fourth value. [0206] [0206] In an optional embodiment, the third-phase quorum check for the network node includes receiving a predetermined number of acceptance messages from other network nodes, where each of the acceptance messages from other nodes network indicates that each of the other network nodes has accepted a predetermined number of ECO messages. [0207] [0207] In an optional embodiment, the message PERIOD_CHANGE also includes a set of signatures associated with a set of network nodes from the number of network nodes, and in which the message NEW_PERIOD comprises a compilation of the message PERIOD_CHANGE. [0208] [0208] In an optional embodiment, checking that at least one valid NEW_PERIOD message is valid includes checking that the compilation of the CHANGE_PERIOD message in the at least one NEW_PERIOD message is valid, and verifying that the compilation of the CHANGE_PERIOD message in the at least least one NEW_PERIOD message is valid and includes verifying that the signature set on the CHANGE_PERIOD message is valid. [0209] [0209] In an optional embodiment, the determination that a period change needs to be performed includes determining that a period change needs to be performed in response to the determination that consensus was not reached in the previous period within a period of time. predetermined time. [0210] [0210] In an optional embodiment, the primary node changer (1500) further includes the following: an operating unit (1510), configured to operate in the new period with the new primary node, in which the new period comprises a consensus process to reach consensus among the plurality of network nodes using the new primary node. [0211] [0211] Figure 15 is a schematic diagram illustrating an internal functional module and structure of a primary node changer (1500). An execution body in essence can be an electronic device, and the electronic device includes the following: at least one processor; and a memory configured to store an executable instruction of the at least one processor. [0212] [0212] The at least one processor is configured to determine that a period shift needs to be performed, where the period shift causes a change from a current period with a current primary node to a new period with a new primary node, in that the current period comprises a consensus process to reach consensus between the amount of network nodes using the primary node, the consensus process including three phases; determining a respective backup node weight associated with each of the three phases of the consensus process in the current period, where the weight is a metric of a backup node's qualification to be the new primary node; determining a weight sum for the backup node based on the backup node's respective weight associated with each of the three phases in the current period; send a CHANGE_PERIOD message to the number of network nodes other than the network node in response to the determination that the weight sum reaches a predetermined first threshold, where the CHANGE_PERIOD message indicates a request for a change of the current period with the primary node current to the new period with the backup node being the new primary node and the CHANGE_PERIOD message includes the backup node weight sum; receiving at least one NEW_PERIOD message from at least one of the number of network nodes other than the backup node, wherein the NEW_PERIOD message indicates an acknowledgment of the backup node as the new primary node; check if at least one NEW_PERIOD message is valid; determining whether a number of valid NEW_PERIOD messages from the at least one NEW_PERIOD message exceeds a second predetermined threshold; and determining that the backup node to be the new primary node in the new period in response to the determination that the amount of valid NEW_PERIOD messages exceeds the second predetermined threshold. [0213] [0213] Optionally, determining a respective backup node weight associated with each of the three phases of the consensus process in the current period includes determining a backup node weight for a first phase of the backup process. consensus as a first value. [0214] [0214] Optionally, the determination of a respective backup node weight associated with each of the three phases of the consensus process in the current period includes the following: in response to the determination of a failed quorum check in a second phase of the consensus process in the current period, determine a backup node weight for the second phase of the consensus process to be a first value; and in response to determining the success of a quorum check in the second phase of the consensus process in the current period, determine the backup node weight for the second phase of the consensus process to be a second value, where the first value is less than the second value. [0215] [0215] Optionally, the quorum check in the second phase for the network node includes receiving a predetermined number of ECO messages from other network nodes. [0216] [0216] Optionally, the determination of a respective backup node weight associated with each of the three phases of the consensus process in the current period includes the following: in response to the determination of a failed quorum check in a third phase of the consensus process in the current period, determine a backup node weight for the third phase of the consensus process to be a third value; and in response to determining the success of a quorum check in the third phase of the consensus process in the current period, determine the backup node weight for the third phase of the consensus process to be a fourth value, where the third value is less than the fourth value. [0217] [0217] Optionally, the third-phase quorum check for the network node includes receiving a predetermined number of acceptance messages from other network nodes, where each of the acceptance messages from other network nodes indicates that each of the other network nodes accepted a predetermined number of ECO messages. [0218] [0218] Optionally, the message PERIOD_CHANGE also includes a set of signatures associated with a set of network nodes from the number of network nodes, and in which the message NEW_PERIOD comprises a compilation of the message PERIOD_CHANGE. [0219] [0219] Optionally, checking that at least one valid NEW_PERIOD message is valid includes checking that the compilation of the CHANGE_PERIOD message in at least one NEW_PERIOD message is valid, and checking that the compilation of the CHANGE_PERIOD message in the at least one message NEW_PERIOD is valid includes verifying that the signature set in the CHANGE_PERIOD message is valid. [0220] [0220] Optionally, the determination that a period change needs to be performed includes the determination that a period change needs to be performed in response to the determination that consensus was not reached in the previous period within a predetermined period of time. [0221] [0221] Optionally, the at least one processor is further configured to operate in the new period with the new primary node, wherein the new period comprises a consensus process to obtain consensus among the plurality of network nodes using the new primary node. [0222] [0222] Referring to Figure 16, Figure 16 is a diagram illustrating modules of a primary node switching apparatus (1600) in accordance with an embodiment of the present specification. The apparatus (1600) for changing a primary node may be applied to a consensus system based on a trusted protocol technology. The apparatus (1600) corresponds to the embodiments shown in Figures 7 to 9. For example, the apparatus (1400) may be implemented in a network node of a trusted protocol network. The apparatus (1600) includes the following: a receiver or receiving unit (1602), configured to receive a CHANGE_PERIOD message from a backup node other than the network node, wherein the CHANGE_PERIOD message includes an indication that a change of period needs to be performed, where the period change causes a change from a current period with a current primary node to a new period with a new primary node; a verification unit (1604), configured to verify that the CHANGE_PERIOD message is valid; a transmitter or transmission unit (1606), configured to send a NEW_PERIOD message to other network nodes in response to verification that the CHANGE_PERIOD message is valid, wherein the NEW_PERIOD message comprises a compilation of the CHANGE_PERIOD message; the receiver or receiver unit (1602), further configured to receive at least one NEW_PERIOD message from at least one of the number of network nodes other than the network node; the verification unit (1604), still configured to verify that the at least one NEW_PERIOD message is valid; a determining unit (1608) configured to determine whether a number of valid NEW_PERIOD messages from the at least one NEW_PERIOD message exceeds a predetermined threshold; and the determining unit (1608), further configured to determine the backup node to be the new primary node in the new period, in response to the determination that the amount of valid NEW_PERIOD messages exceeds the predetermined threshold. [0223] [0223] In an optional embodiment, the message PERIOD_CHANGE includes a sum of weight associated with the backup node and a set of signatures associated with a set of network nodes from the number of network nodes. [0224] [0224] In an optional embodiment, checking if the message CHANGE_PERIOD is valid includes checking if the weight sum in the CHANGE_PERIOD message is valid, and checking if the weight sum in the CHANGE_PERIOD message is valid includes checking if the signature set is valid. [0225] [0225] In an optional embodiment, checking that the at least one NEW_PERIOD message is valid includes checking that the compilation of the CHANGE_PERIOD message in the at least one NEW_PERIOD message is valid, and the verification that the compilation of the CHANGE_PERIOD message in the at least one NEW_PERIOD message is valid includes verifying that the signature set in the CHANGE_PERIOD message is valid. [0226] [0226] Figure 16 is a schematic diagram illustrating an internal functional module and structure of a primary node changer (1600). An execution body in essence can be an electronic device, and the electronic device includes the following: an at least one processor; and a memory configured to store an executable instruction of the at least one processor. [0227] [0227] The at least one processor is configured to receive a CHANGE_PERIOD message from a backup node other than the network node, where the CHANGE_PERIOD message includes an indication that a period change needs to be performed, where the change period causes a change from a current period with a current primary node to a new period with a new primary node; check if the message PERIODO_CHANGE is valid; sending a NEW_PERIOD message to the other network nodes in response to checking that the CHANGE_PERIOD message is valid, where the NEW_PERIOD message comprises a compilation of the CHANGE_PERIOD message; receiving at least one NEW_PERIOD message from at least one of the number of network nodes other than the network node; check if at least one NEW_PERIOD message is valid; determining whether a number of valid NEW_PERIOD messages from the at least one NEW_PERIOD message exceeds a predetermined threshold; and determining the backup node to be the new primary node in the new period in response to the determination that the amount of valid NEW_PERIOD messages exceeds the predetermined threshold. [0228] [0228] Optionally, the message PERIOD_CHANGE includes a sum of weight associated with the backup node and a set of signatures associated with a set of network nodes based on the number of network nodes. [0229] [0229] Optionally, checking if the message CHANGE_PERIOD is valid includes checking if the weight sum in the CHANGE_PERIOD message is valid, and checking if the weight sum in the CHANGE_PERIOD message is valid includes checking if the signature set is valid . [0230] [0230] Optionally, checking that at least one NEW_PERIOD message is valid includes checking that the compilation of the CHANGE_PERIOD message in at least one NEW_PERIOD message is valid, and checking that the compilation of the CHANGE_PERIOD message in at least one NEW_PERIOD message is valid includes verifying that the signature set in the CHANGE_PERIOD message is valid. [0231] [0231] Referring to Figure 17, Figure 17 is a diagram illustrating modules of a recovery apparatus (1700) in accordance with an embodiment of the present specification. The retrieval apparatus (1700) can be applied to a consensus system based on a trusted protocol technology. The apparatus (1700) may correspond to the embodiments shown in Figures 10 to 12. For example, the apparatus (1700) may be implemented in a network node of a trusted protocol network. The apparatus (1700) includes the following: a broadcasting unit (1702) configured to transmit, by a network node of a trusted protocol network, a status request message to various other network nodes of the protocol network trust, where the network node must retrieve a target transaction from a target sequence number; a receiver (1704) or a receiving unit (1704), configured to receive a number of status response messages from a number of other network nodes, wherein each of the number of status response messages includes a number of sequence; an identification unit (1706) configured to identify the target sequence number based on the same sequence number in response to determining that a number of status response messages exceeds a predetermined threshold, wherein each of the number of messages of status comprises the same sequence number; a transmitter (1708) or a transmission unit (1708), configured to send a request message to the number of other network nodes, wherein the request message requests an ECO message from each of the number of other network nodes, where the ECO message is a message transmitted by each of the number of other network nodes to reach a consensus between the number of other network nodes in the target transaction that have the target sequence number, and the ECO message includes a part of the transaction target and a signature of each of the number of other network nodes; the receiver (1704) or the receiver unit (1704), further configured to receive a number of ECO messages from the number of other network nodes; a determining unit (1710) configured to determine a quantity of valid ECO messages from the quantity of ECO messages, wherein each of the quantity of valid ECO messages includes the target sequence number; a recovery unit (1712) configured to recover the target transaction with the same sequence number at the network node based on the amount of valid ECO messages in response to the determination that the amount of valid ECO messages exceeds a predetermined threshold; and the transmitter (1708), further configured to send a message to the number of other network nodes, indicating that the network node has been recovered. [0232] [0232] In an optional embodiment, the number of network nodes includes a primary node and one or more backup nodes. [0233] [0233] In an optional embodiment, the network node is a primary node or a backup node. [0234] [0234] In an optional embodiment, the request message includes the target sequence number. [0235] [0235] In an optional embodiment, the recovery apparatus (1700) further includes the following: a verification unit (1714), configured to verify, for each of the number of other network nodes other than the network node, the request message before sending the ECO messages to the network node. [0236] [0236] In an optional embodiment, the verification unit (1714) is further configured to verify that each of the ECO messages is valid, wherein verifying that each of the ECO messages is valid includes verifying that each of the ECO messages is valid. of the ECO messages is valid using a Merkel tree. [0237] [0237] In an optional embodiment, checking that each ECO message is valid further includes verifying that the signature on the ECO message is valid. [0238] [0238] In an optional embodiment, each of the ECO messages further includes at least one of a number of erasure code (EC) blocks associated with the target transaction, wherein the number of EC blocks is generated according to an EC code using the target transaction. [0239] [0239] In an optional embodiment, retrieving the target transaction with the same sequence number at the network node based on the amount of valid ECO messages comprises reconstituting the target transaction using a subset of the plurality of EC blocks that are in the number of valid ECO messages. [0240] [0240] In an optional embodiment, the message for the number of other network nodes indicating that the network node has been recovered includes a set of signatures on the number of valid ECO messages and the target sequence number. [0241] [0241] The system, apparatus, module or unit illustrated in the foregoing embodiments may be implemented using a computer chip or entity, or may be implemented using a product with a certain function. A typical implementation device is a computer, and the computer can be a personal computer, a portable computer, a cell phone, a camera phone, a smart phone, a personal digital assistant, a media player, a navigation device, a device that receives and sends email, a game console, a tablet computer, a wearable device, or any combination of these devices. [0242] [0242] For a process of implementing the functions and roles of each unit in the apparatus, references can be made to a process of implementing corresponding steps in the previous method. Details are omitted here for simplicity. [0243] [0243] As an apparatus embodiment basically corresponds to a method embodiment, for related parties, references can be made to related descriptions on the method embodiment. The embodiment of the apparatus described above is merely an example. The units depicted as separate parts may or may not be physically separate, and the parts shown as units may or may not be physical units, may be located in one position, or may be distributed across a plurality of network units. Some or all modules can be selected based on actual demands to achieve the solutions objectives of this descriptive report. One skilled in the art can understand and implement the embodiments of the present patent application without creative efforts. [0244] [0244] Figure 17 is a schematic diagram illustrating an internal functional module and structure of a recovery apparatus (1700). An execution body, in essence, can be an electronic device, and the electronic device includes the following: at least one processor; and a memory configured to store an executable instruction of the at least one processor. [0245] [0245] The at least one processor is configured to transmit, by a network node of a trusted protocol network, a status request message to several other network nodes of the trusted protocol network, where the network must retrieve a target transaction of a target sequence number; receiving a number of status response messages from the number of other network nodes, wherein each of the number of status response messages includes a sequence number; identifying the target sequence number based on the same sequence number in response to determining that a number of status response messages exceeds a predetermined threshold, wherein each of the number of status messages comprises the same sequence number; send a request message to the number of other network nodes, where the request message requests an ECO message from each of the number of other network nodes, where the ECO message is a message transmitted by each of the number of others network nodes to reach a consensus between the number of other network nodes in the target transaction with the target sequence number, and the ECO message includes a part of the target transaction and a signature of each of the number of other network nodes; receiving a number of ECO messages from the plurality of other network nodes; determining a quantity of valid ECO messages from the quantity of ECO messages, wherein each of the quantity of valid ECO messages includes the target sequence number; retrieving the target transaction with the same sequence number at the network node based on the amount of valid ECO messages in response to the determination that the amount of valid ECO messages exceeds a predetermined threshold; and sending a message to the number of other network nodes indicating that the network node has been recovered. [0246] [0246] Optionally, the number of network nodes includes a primary node and one or more backup nodes. [0247] [0247] Optionally, the network node is a primary node or a backup node. [0248] [0248] Optionally, the request message includes the target sequence number. [0249] [0249] Optionally, the at least one processor is further configured to check, for each of the number of other network nodes other than the network node, the request message before sending the ECO messages to the network node. [0250] [0250] Optionally, the at least one processor is further configured to check that each of the ECO messages is valid, where checking that each of the ECO messages is valid includes verifying that each of the ECO messages is valid using a tree from Merkel. [0251] [0251] Optionally, checking that each ECO message is valid also includes verifying that the signature on the ECO message is valid. [0252] [0252] Optionally, each of the ECO messages further includes at least one of a number of erasure code (EC) blocks associated with the target transaction, wherein the number of EC blocks is generated according to an EC code using the target transaction. [0253] [0253] Optionally, retrieving the target transaction with the same sequence number on the network node based on the number of valid ECO messages includes reconstituting the target transaction using a subset of the number of EC blocks that are in the number of ECO messages valid. [0254] [0254] Optionally, the message for the number of other network nodes indicating that the network node has been recovered includes a set of signatures on the number of valid ECO messages and the target sequence number. [0255] [0255] The embodiments of the subject matter and the actions and operations described in this specification may be implemented in digital electronic circuits, in tangibly embedded computer software or firmware, in computer hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Embodiments of the subject matter described in this specification may be implemented as one or more computer programs, for example, one or more computer program instruction modules, encoded in a computer program carrier, for execution or control of the operation of data processing apparatus. The carrier may be a tangible, non-transient computer storage medium. Alternatively, or in addition, the carrier may be an artificially generated propagated signal, for example a machine generated electrical, optical or electromagnetic signal which is generated to encode information for transmission to a receiving apparatus suitable for execution by a data processing apparatus. . The computer storage medium can be one or part of a machine-readable storage device, a machine-readable storage substrate, a random-access or serial memory device, or a combination of one or more of them. A computer storage medium is not a propagated signal. [0256] [0256] The term “data processing apparatus” encompasses all types of apparatus, devices and machines for processing data, including, by way of example, a programmable processor, a computer or multiple processors or computers. The data processing apparatus may include a special-purpose logic circuit, for example, an FPGA (field programmable gate array), an ASIC (application-specific integrated circuit), or a GPU (graphics processing unit). The apparatus may also include, in addition to the hardware, code that creates an execution environment for computer programs, for example, code that constitutes processor firmware, a protocol stack, a database management system, an operating system or a combination of one or more of them. [0257] [0257] A computer program, which may also be referred to or described as a program, software, a software application, an application, a module, a software module, a mechanism, a script or code may be written in any form programming language, including compiled or interpreted languages, declarative or procedural languages, and may be implemented in any form, including as a stand-alone program or as a module, component, mechanism, subroutine, or other unit suitable for execution in an environment computing environment, which may include one or more computers interconnected by a data communication network at one or more locations. [0258] [0258] A computer program can, but need not, correspond to a file in a file system. A computer program may be stored in a part of a file that contains other programs or data, for example, one or more scripts stored in a markup language document, in a single file dedicated to the program in question, or in multiple coordinated files , for example, [0259] [0259] The processes and logic flows described in this specification can be performed by one or more computers running one or more computer programs to perform functions operating on input data and generating output data. Logic processes and flows can also be executed by special-purpose logic circuits, for example, an FPGA, an ASIC, or a GPU, or by a combination of special-purpose logic circuits and one or more programmed computers. [0260] [0260] Computers suitable for executing a computer program may be based on general or special purpose microprocessors or both or any other type of central processing unit. Generally, a central processing unit will receive instructions and data from read-only memory or random access memory, or both. Elements of a computer may include a central processing unit for executing instructions, and one or more memory devices for storing instructions and data. The central processing unit and memory may be supplemented by, or incorporated into, special-purpose logic circuits. [0261] [0261] Generally, a computer will be coupled to at least one non-transient computer-readable storage medium (also called computer-readable memory). The storage medium attached to the computer can be an internal component of the computer (for example, an integrated hard disk) or an external component (for example, a universal serial bus (USB) hard disk or a storage system accessed through a network). Examples of storage media may include, for example, magnetic, magneto-optical or optical disks, solid state drives, network storage resources such as cloud storage systems or other types of storage media. However, a computer does not need to have these devices. In addition, a computer can be embedded in another device, for example, a cell phone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a global positioning system (GPS) receiver. or a portable storage device, for example a universal serial bus (USB) flash drive, to name just a few. [0262] [0262] To provide interaction with a user, embodiments of the subject matter described in this specification may be implemented in, or configured to communicate with, a computer having a display device, for example, an LCD monitor (crystal display liquid), to display information to the user, and an input device, by which the user can provide input to the computer, for example, a keyboard and an pointing device, for example, a mouse, a rolling ball, or touchpad. Other types of devices may also be used to provide interaction with a user; for example, the feedback provided to the user may be any form of sensory feedback, for example, visual feedback, auditory feedback, or tactile feedback; and user input can be received in any form, including acoustic, speech, or tactile input. In addition, a computer can interact with a user by sending documents and receiving documents from a device that is used by the user; for example, by sending web pages to a web browser on a user's device in response to requests received from the web browser, or by interacting with an application running on a user's device, for example, a smart phone or electronic tablet. [0263] [0263] This specification uses the term “configured for” in connection with systems, apparatus and computer program components. For a system of one or more computers to be configured to perform particular operations or actions, it means that the system has installed on it software, firmware, hardware, or a combination thereof which, in operation, causes the system to perform the operations or actions. For one or more computer programs to be configured to perform particular operations or actions, it means that the one or more programs include instructions which, when executed by the data processing apparatus, cause the apparatus to perform the operations or actions. For special purpose logic circuits to be configured to perform particular operations or actions, it means that the circuit has electronic logic that performs the operations or actions. [0264] [0264] While this descriptive report contains many implementation-specific details, these should not be interpreted as limitations on the scope of what is being claimed, which is defined by the claims themselves, but rather as descriptions of features that may be specific to forms of implementation. particular achievement. Certain features which are described in this specification in the context of separate embodiments may also be implemented, in combination in a single embodiment. On the other hand, various features that are described in the context of a single embodiment may also be implemented in various embodiments, separately or in any suitable sub-combination. Furthermore, [0265] [0265] Likewise, while operations are represented in the figures and recited in the claims in a particular order, this is not to be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all operations illustrated be carried out to achieve desirable results. In certain circumstances, multitasking and parallel processing can be advantageous. Furthermore, the separation of various modules and system components in the embodiments described above is not to be understood as requiring such separation in all embodiments, and it is to be understood that the described program components and systems can generally be integrated into a single software product or bundled in multiple software products. [0266] [0266] Particular embodiments of the subject matter have been described. Other embodiments are within the scope of the following claims. For example, the actions cited in the claims can be performed in a different order and still achieve desirable results. As an example, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve the desired results. In some cases, multitasking and parallel processing can be advantageous.
权利要求:
Claims (57) [1] 1. METHOD IMPLEMENTED BY COMPUTER to reach a consensus between a plurality of network nodes of a trusted protocol network (blockchain), comprising at least one primary node and one or more backup nodes, characterized by the fact that the method comprises: receiving, through the primary node, a transaction request; generating, via the primary node, a plurality of erasure code (EC) blocks in accordance with an EC code using the transaction request; sending, via 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 ; receiving, via the primary node, at least one second message from the 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. backup associated with the plurality of first messages; in response to receipt of the at least one second message from the at least one backup node, verifying, via the primary node, that the at least one second message is valid; determining, via the primary node, whether a number of valid second messages exceeds a predetermined threshold; in response to the determination that the amount of valid second messages exceeds the predetermined threshold, reconstituting, through the primary node, the transaction request based on a subset of the amount of valid second messages in accordance with the EC code; in response to the determination that the transaction request has been successfully reconstituted, sending, through the primary node, a third message to the other network nodes, wherein the third message comprises a set of signatures that are in the second valid messages; receiving, via the primary node, at least a third message from at least one of the backup nodes; and in response to receiving a predetermined amount of third messages that are identical, executing, through the primary node, the transaction request. [2] 2. METHOD, according to claim 1, characterized by the fact that the transaction request is associated with a sequence number. [3] 3. METHOD, according to claim 1, characterized in that the generation of 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 blocks. [4] 4. METHOD, according to claim 1, characterized in that the summary value composed of the plurality of CE blocks is generated using a summary tree. [5] 5. METHOD, according to claim 4, characterized in that the summary tree comprises a Merkle tree, and wherein the composite summary value is a Merkle tree root summary value. [6] 6. METHOD, according to claim 1, characterized in that the signature of at least one of the backup nodes associated with the plurality of the first messages comprises a private key signature of at least one of the backup nodes. security associated with the plurality of the first messages. [7] 7. METHOD, according to claim 1, characterized in that the at least one second message further comprises at least one of the plurality of EC blocks. [8] 8. METHOD, according to claim 7, characterized by the fact that the verification, by the primary node, of whether the at least one second message is valid comprises: generating, through the primary node, a reconstituted summary tree using the at least at least one of the plurality of EC blocks in the at least one second message; determining, via the primary node, a reconstituted composite summary value from the reconstituted summary tree; comparing, via the primary node, the reconstituted composite digest value with a composite digest value in the at least one second message; and determining, via the primary node, whether the reconstituted composite summary value matches the composite summary values in the at least one second message. [9] 9. METHOD, according to claim 7, characterized in that the method further comprises: in response to the determination that the reconstituted composite summary value corresponds to the composite summary values in the second messages, determining, through the primary node, that at least one second message is valid. [10] 10. METHOD, according to claim 1, characterized in that the predetermined amount of third messages that are identical comprises the predetermined amount of third messages that have an identical set of signatures. [11] 11. METHOD IMPLEMENTED BY COMPUTER to reach a consensus between a plurality of network nodes of a trust protocol comprising at least one primary node and one or more backup nodes, characterized in that the method comprises: receiving, through from a backup node, a first message from the primary node, wherein the first message comprises a composite digest value associated with a plurality of EC blocks, wherein the plurality of EC blocks is generated by the primary node according to an EC code using a transaction request; in response to receipt of the first message, send, via the backup node, a second message to the other network nodes, wherein the second message comprises the first message and a signature of the backup node associated with the first message ; receiving, via the backup node, at least one second message from at least one backup node other than the backup node; in response to receipt of the at least one second message from the at least one backup node, checking, via the backup node, whether the at least one second message is valid; determining, via the backup node, whether a number of valid second messages exceeds a predetermined threshold; in response to the determination that the amount of valid second messages exceeds the predetermined threshold, reconstituting, through the backup node, the transaction request based on a subset of the amount of valid second messages according to the EC code; in response to the determination that the transaction request was successfully reconstituted, send, through the backup node, a third message to the other network nodes, wherein the third message comprises a set of signatures that are on the second valid messages; receiving, via the backup node, at least a third message from at least one of the backup nodes; and in response to receipt of a predetermined amount of third messages that are identical, executing, through the backup node, the transaction request. [12] 12. METHOD, according to claim 11, characterized in that the generation of 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 blocks. [13] 13. METHOD, according to claim 11, characterized in that the summary value composed of the plurality of EC blocks is generated using a summary tree. [14] 14. METHOD, according to claim 13, characterized in that the summary tree comprises a Merkle tree, and wherein the composite summary value is a Merkle tree root summary value. [15] 15. METHOD, according to claim 11, characterized in that the signature of the backup node associated with the first message comprises a private key signature of the backup node associated with the first message. [16] 16. METHOD, according to claim 11, characterized in that the at least one second message further comprises at least one of the plurality of EC blocks. [17] 17. METHOD, according to claim 16, characterized in that the verification, through the backup node, of whether the at least one second message is valid comprises: generating, through the backup node, a reconstituted summary tree using the at least one of the plurality of EC blocks in the at least one second message; determining, via the backup node, a reconstituted composite summary value from the reconstituted summary tree; comparing, via the backup node, the reconstituted composite digest value with a composite digest value in the at least one second message; and determining, via the backup node, whether the reconstituted composite digest value matches the composite digest values in the at least one second message. [18] 18. METHOD, according to claim 17, characterized in that the method further comprises: in response to the determination that the reconstituted composite summary value corresponds to the composite summary values in the second messages, determining, through the copy node security, that at least one second message is valid. [19] 19. METHOD, according to claim 11, characterized in that the predetermined amount of third messages that are identical comprises the predetermined amount of third messages that have an identical set of signatures. [20] 20. NON-TRANSITORY COMPUTER READIBLE STORAGE, characterized by the fact that it is coupled to one or more computers and configured with instructions executable by the one or more computers to: receive, through a primary node of a trusted protocol network, a transaction request, wherein the trust protocol network further comprises one or more backup nodes; generating, via the primary node, a plurality of erasure code (EC) blocks, in accordance with an EC code, using the transaction request; sending, via 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 digest value associated with the plurality of EC blocks; receiving, via the primary node, at least one second message from the 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. backup associated with the plurality of the first messages; in response to receipt of the at least one second message from the at least one of the backup node, verifying, via the primary node, that the at least one second message is valid; determining, via the primary node, whether a number of valid second messages exceeds a predetermined threshold; in response to the determination that the amount of valid second messages exceeds the predetermined threshold, reconstituting, through the primary node, the transaction request based on a subset of the amount of valid second messages in accordance with the EC code; in response to the determination that the transaction request has been successfully reconstituted, sending, through the primary node, a third message to the other network nodes, wherein the third message comprises a set of signatures that are in the second valid messages; receiving, via the primary node, at least a third message from at least one of the backup nodes; and in response to receiving a predetermined amount of third messages that are identical, executing, through the primary node, the transaction request. [21] 21. NON-TRANSITORY COMPUTER READable STORAGE, according to claim 20, characterized by the fact that the transaction request is associated with a sequence number. [22] 22. NON-TRANSITORY COMPUTER READIBLE STORAGE, according to claim 20, characterized by the fact that the generation of 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 blocks. [23] 23. NON-TRANSITORY COMPUTER READable STORAGE, according to claim 20, characterized in that the summary value composed of the plurality of CE blocks is generated using a summary tree. [24] 24. STORAGE MEDIA LEGIBLE BY NON-TRANSITORY COMPUTER, according to claim 23, characterized in that the summary tree comprises a Merkle tree, and wherein the composite summary value is a Merkle tree root summary value. [25] 25. NON-TRANSITORY COMPUTER READable STORAGE, according to claim 20, characterized by the fact that the signature of at least one of the backup nodes associated with the plurality of first messages comprises a signature of the private key of the at least least one of the backup nodes associated with the plurality of the first messages. [26] 26. NON-TRANSITORY COMPUTER READIBLE STORAGE, according to claim 20, characterized in that the at least one second message further comprises at least one of the plurality of EC blocks. [27] 27. NON-TRANSITORY COMPUTER READIBLE STORAGE, according to claim 26, characterized by the fact that the verification, by the primary node, of whether the at least one second message is valid, comprises: generating, through the primary node, a digest tree reconstituted using the at least one of the plurality of EC blocks in the at least one second message; determining, via the primary node, a reconstituted composite summary value from the reconstituted summary tree; comparing, via the primary node, the reconstituted composite digest value with a composite digest value in the at least one second message; and determining, via the primary node, whether the reconstituted composite summary value matches the composite summary values in the at least one second message. [28] 28. NON-TRANSITORY COMPUTER READable STORAGE, according to claim 27, characterized in that it is additionally configured with instructions executable by one or more computers to: in response to the determination that the reconstituted composite summary value corresponds to the composite summary values in the second messages, determine, through the primary node, that the at least one second message is valid. [29] 29. NON-TRANSITORY COMPUTER READable STORAGE, according to claim 20, characterized in that the predetermined amount of third messages that are identical comprises the predetermined amount of third messages that have an identical set of signatures. [30] 30. SYSTEM, characterized in that it includes: one or more computers; and one or more computer-readable memories coupled to the one or more computers and configured with instructions executable by the one or more computers to: receive, through a primary node of a trusted protocol network, a transaction request, wherein the network of trust protocol further comprises one or more backup nodes; generating, via the primary node, a plurality of erasure code (EC) blocks, in accordance with an EC code, using the transaction request; send, through 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 digest value associated with the plurality of EC blocks; receiving, via the primary node, at least one second message from the 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. backup associated with the plurality of first messages; in response to receipt of the at least one second message from the at least one of the backup nodes, verifying, via the primary node, that the at least one second message is valid; determining, via the primary node, whether a number of valid second messages exceeds a predetermined threshold; in response to the determination that the amount of valid second messages exceeds the predetermined threshold, reconstituting, through the primary node, the transaction request based on a subset of the amount of valid second messages in accordance with the EC code; in response to the determination that the transaction request has been successfully reconstituted, sending, through the primary node, a third message to the other network nodes, wherein the third message comprises a set of signatures that are in the second valid messages; receiving, via the primary node, at least a third message from at least one of the backup nodes; and in response to receiving a predetermined amount of third messages that are identical, executing, through the primary node, the transaction request. [31] 31. SYSTEM, according to claim 30, characterized in that the transaction request is associated with a sequence number. [32] 32. SYSTEM, according to claim 30, characterized in that the generation of 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 blocks. [33] 33. SYSTEM, according to claim 30, characterized in that the summary value composed of the plurality of EC blocks is generated using a summary tree. [34] 34. SYSTEM, according to claim 33, characterized in that the summary tree comprises a Merkle tree, and wherein the composite summary value is a Merkle tree root summary value. [35] 35. SYSTEM, according to claim 30, characterized in that the signature of at least one of the backup nodes associated with the plurality of first messages comprises a private key signature of at least one of the backup nodes. security associated with the plurality of first messages. [36] 36. SYSTEM, according to claim 30, characterized in that the at least one second message further comprises at least one of the plurality of EC blocks. [37] 37. SYSTEM, according to claim 36, characterized in that the verification, through the primary node, of whether the at least one second message is valid comprises: generating, through the primary node, a reconstituted summary tree using the at least one of the plurality of EC blocks in the at least one second message; determining, via the primary node, a reconstituted composite summary value from the reconstituted summary tree; comparing, via the primary node, the reconstituted composite digest value with a composite digest value in the at least one second message; and determining, via the primary node, whether the reconstituted composite summary value matches the composite summary values in the at least one second message. [38] 38. SYSTEM, according to claim 37, characterized in that the computer memories are further configured with instructions executable by the one or more computers to: in response to the determination that the reconstituted composite summary value corresponds to the summary values composed in the second messages, determine, through the primary node, that the at least one second message is valid. [39] 39. SYSTEM, according to claim 30, characterized in that the predetermined amount of third messages that are identical comprises the predetermined amount of third messages that have an identical set of signatures. [40] 40. NON-TRANSITORY COMPUTER READIBLE STORAGE, characterized by the fact that it is coupled to one or more computers and configured with instructions executable by the one or more computers to: receive, through a backup node of a protocol network of trust, a first message from a primary node of the trusted protocol network, wherein the first message comprises a composite digest value associated with a plurality of EC blocks, wherein the plurality of EC blocks is generated by the primary node according to an EC code using a transaction request; in response to receipt of the first message, send, through the backup node, a second message to the other network nodes, wherein the second message comprises the first message and a signature of the backup node associated with the first message; receiving, via the backup node, at least one second message from at least one backup node other than the backup node; in response to receipt of the at least one second message from the at least one backup node, verify, through the backup node, if the at least one second message is valid; determining, via the backup node, whether a number of valid second messages exceeds a predetermined threshold; in response to the determination that the amount of valid second messages exceeds the predetermined threshold, reconstituting, through the backup node, the transaction request based on a subset of the amount of valid second messages according to the EC code; in response to the determination that the transaction request was successfully reconstituted, send, through the backup node, a third message to the other network nodes, wherein the third message comprises a set of signatures that are on the second valid messages; receiving, via the backup node, at least a third message from at least one of the backup nodes; and in response to receipt of a predetermined amount of third messages that are identical, executing, through the backup node, the transaction request. [41] 41. NON-TRANSITORY COMPUTER READIBLE STORAGE, according to claim 40, characterized by the fact that the generation of 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 blocks. [42] 42. NON-TRANSITORY COMPUTER READable STORAGE, according to claim 40, characterized in that the summary value composed of the plurality of CE blocks is generated using a summary tree. [43] 43. NON-TRANSITORY COMPUTER READable STORAGE, according to claim 42, characterized in that the summary tree comprises a Merkle tree and wherein the composite summary value is a root summary value of the tree of Merkle. [44] 44. NON-TRANSITORY COMPUTER READable STORAGE, according to claim 40, characterized in that the signature of the backup node associated with the first message comprises a private key signature of the backup node associated with the first message. [45] 45. NON-TRANSITORY COMPUTER READIBLE STORAGE, according to claim 40, characterized in that the at least one second message further comprises at least one of the plurality of EC blocks. [46] 46. NON-TRANSITORY COMPUTER READIBLE STORAGE, according to claim 45, characterized by the fact that the verification, through the backup node, of whether the at least one second message is valid comprises: generating, through the backup node, a digest tree reconstituted using the at least one of the plurality of EC blocks in the at least one second message; determining, via the backup node, a reconstituted composite summary value from the reconstituted summary tree; comparing, via the backup node, the reconstituted composite digest value with a composite digest value in the at least one second message; and determining, via the backup node, whether the reconstituted composite digest value matches the composite digest values in the at least one second message. [47] 47. NON-TRANSITORY COMPUTER READable STORAGE, according to claim 46, characterized in that it is further configured with instructions executable by one or more computers to: in response to the determination that the reconstituted composite summary value corresponds to the composite summary values in the second messages, determine, via the backup node, that the at least one second message is valid. [48] 48. NON-TRANSITORY COMPUTER READable STORAGE, according to claim 40, characterized in that the predetermined amount of third messages that are identical comprises the predetermined amount of third messages that have an identical set of signatures. [49] 49. SYSTEM, characterized in that it includes: one or more computers; and one or more computer-readable memories coupled to the one or more computers and configured with instructions executable by the one or more computers to: receiving, via a backup node of a trusted protocol network, a first message from a primary node of the trusted protocol network, wherein the first message comprises a composite digest value associated with a plurality of EC blocks, wherein the plurality of EC blocks are generated by the primary node in accordance with an EC code using a transaction request; in response to receipt of the first message, send, through the backup node, a second message to the other network nodes, wherein the second message comprises the first message and a signature of the backup node associated with the first message; receiving, via the backup node, at least one second message from at least one backup node other than the backup node; in response to receipt of the at least one second message from the at least one backup node, verify, through the backup node, if the at least one second message is valid; determining, via the backup node, whether a number of valid second messages exceeds a predetermined threshold; in response to the determination that the amount of valid second messages exceeds the predetermined threshold, reconstituting, through the backup node, the transaction request based on a subset of the amount of valid second messages according to the EC code; in response to the determination that the transaction request was successfully reconstituted, send, through the backup node, a third message to the other network nodes, wherein the third message comprises a set of signatures that are on the second valid messages; receiving, via the backup node, at least a third message from at least one of the backup nodes; and in response to receipt of a predetermined amount of third messages that are identical, executing, through the backup node, the transaction request. [50] 50. SYSTEM, according to claim 49, characterized in that the generation of 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 blocks. [51] 51. SYSTEM, according to claim 49, characterized in that the summary value composed of the plurality of EC blocks is generated using a summary tree. [52] 52. SYSTEM, according to claim 51, characterized in that the summary tree comprises a Merkle tree, and wherein the composite summary value is a Merkle tree root summary value. [53] 53. SYSTEM, according to claim 49, characterized in that the signature of the backup node associated with the first message comprises a private key signature of the backup node associated with the first message. [54] 54. SYSTEM, according to claim 49, characterized in that the at least one second message also comprises at least one of the plurality of EC blocks. [55] 55. SYSTEM, according to claim 54, characterized in that the verification, through the backup node, of whether the at least one second message is valid comprises: generating, through the backup node, a reconstituted summary tree using the at least one of the plurality of EC blocks in the at least one second message; determining, via the backup node, a reconstituted composite summary value from the reconstituted summary tree; comparing, via the backup node, the reconstituted composite digest value with a composite digest value in the at least one second message; and determining, via the backup node, whether the reconstituted composite digest value matches the composite digest values in the at least one second message. [56] 56. SYSTEM, according to claim 55, characterized in that computer memories are further configured with instructions executable by one or more computers to: in response to the determination that the reconstituted composite summary value corresponds to the summary values composed in the second messages, determine, via the backup node, that the at least one second message is valid. [57] 57. SYSTEM, according to claim 49, characterized in that the predetermined amount of third messages that are identical comprises the predetermined amount of third messages that have an identical set of signatures.
类似技术:
公开号 | 公开日 | 专利标题 BR112019015208A2|2021-07-27|computer-implemented methods, non-transient computer-readable storage media, and systems TWI705690B|2020-09-21|System for changing master node in distributed network BR112019014815A2|2020-02-27|COMPUTER IMPLEMENTED METHOD, LEGIBLE STORAGE MEDIA BY NON-TRANSITIONAL COMPUTER AND SYSTEM
同族专利:
公开号 | 公开日 EP3566392B1|2021-08-25| WO2019072294A2|2019-04-18| CN110169015A|2019-08-23| RU2723072C1|2020-06-08| SG11201906834SA|2019-08-27| AU2018348334B2|2020-11-12| CA3051288C|2020-08-18| EP3566392A2|2019-11-13| US20200195444A1|2020-06-18| MX2019008861A|2019-09-11| AU2018348334C1|2021-05-13| US20190280879A1|2019-09-12| US10771259B2|2020-09-08| KR102237219B1|2021-04-08| CA3051288A1|2019-04-18| US10615985B2|2020-04-07| ZA201904886B|2020-09-30| US20190278666A1|2019-09-12| JP6803991B2|2020-12-23| WO2019072294A3|2019-10-10| CN110169015B|2022-03-01| US10708066B2|2020-07-07| AU2018348334A1|2020-07-02| KR20200074908A|2020-06-25| PH12019501717A1|2020-03-02| JP2020511807A|2020-04-16| EP3566392A4|2019-11-13|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题 US4309569A|1979-09-05|1982-01-05|The Board Of Trustees Of The Leland Stanford Junior University|Method of providing digital signatures| EP0135499B1|1983-02-09|1990-05-02|International Business Machines Corporation|A method for achieving multiple processor agreement optimized for no faults| US7249259B1|1999-09-07|2007-07-24|Certicom Corp.|Hybrid signature scheme| US6671821B1|1999-11-22|2003-12-30|Massachusetts Institute Of Technology|Byzantine fault tolerance| US6985956B2|2000-11-02|2006-01-10|Sun Microsystems, Inc.|Switching system| US6931431B2|2001-01-13|2005-08-16|International Business Machines Corporation|Agreement and atomic broadcast in asynchronous networks| US7334154B2|2004-06-18|2008-02-19|Microsoft Corporation|Efficient changing of replica sets in distributed fault-tolerant computing system| US7502360B2|2005-03-04|2009-03-10|Itt Manufacturing Enterprises, Inc.|Method and apparatus for dynamic neighbor discovery within wireless networks using time division multiple access | US20150006895A1|2009-06-01|2015-01-01|Maidsafe Foundation|Distributed network system| US8819102B2|2007-07-03|2014-08-26|Cisco Technology, Inc.|Method and system for managing message communications| US20100037056A1|2008-08-07|2010-02-11|Follis Benjamin D|Method to support privacy preserving secure data management in archival systems| JP5427574B2|2009-12-02|2014-02-26|株式会社日立製作所|Virtual computer migration management method, computer using the migration management method, virtualization mechanism using the migration management method, and computer system using the migration management method| US8706701B1|2010-11-18|2014-04-22|Emc Corporation|Scalable cloud file system with efficient integrity checks| CA2849930C|2011-10-25|2017-06-20|Nicira, Inc.|Chassis controllers for converting universal flows| US9069827B1|2012-01-17|2015-06-30|Amazon Technologies, Inc.|System and method for adjusting membership of a data replication group| US9471622B2|2012-04-30|2016-10-18|International Business Machines Corporation|SCM-conscious transactional key-value store| US8903876B2|2012-08-15|2014-12-02|Facebook, Inc.|File storage system based on coordinated exhaustible and non-exhaustible storage| US10558581B1|2013-02-19|2020-02-11|Amazon Technologies, Inc.|Systems and techniques for data recovery in a keymapless data storage system| WO2014147085A2|2013-03-20|2014-09-25|Nec Europe Ltd.|Method and system for byzantine fault tolerant data replication| US9304815B1|2013-06-13|2016-04-05|Amazon Technologies, Inc.|Dynamic replica failure detection and healing| WO2015024603A1|2013-08-23|2015-02-26|Nec Europe Ltd.|Method and system for authenticating a data stream| WO2016003708A1|2014-07-01|2016-01-07|Sas Institute Inc.|Systems and methods for fault tolerant communications| WO2016155002A1|2015-04-03|2016-10-06|Yahoo! Inc.|Method and system for data recovery in a data system| US20160342988A1|2015-05-20|2016-11-24|402 Technologies S.A.|Temporary consensus networks in a resource transfer system| US20170091756A1|2015-07-14|2017-03-30|Fmr Llc|Point-to-Point Transaction Guidance Apparatuses, Methods and Systems| EP3345360B1|2015-09-04|2021-03-03|Nec Corporation|Method for storing an object on a plurality of storage nodes| WO2017136527A1|2016-02-05|2017-08-10|Manifold Technology, Inc.|Blockchain-enhanced database| RU2632418C1|2016-04-04|2017-10-04|Общество С Ограниченной Ответственностью "Яндекс"|Method and system for data transmission between nodes without leaders| US10204341B2|2016-05-24|2019-02-12|Mastercard International Incorporated|Method and system for an efficient consensus mechanism for permissioned blockchains using bloom filters and audit guarantees| EP3281115B1|2016-10-04|2019-06-19|Nec Corporation|Method and system for byzantine fault-tolerance replicating of data on a plurality of servers| US10360191B2|2016-10-07|2019-07-23|International Business Machines Corporation|Establishing overlay trust consensus for blockchain trust validation system| US10158527B2|2016-10-28|2018-12-18|International Business Machines Corporation|Changing an existing blockchain trust configuration| US10554746B2|2016-11-14|2020-02-04|International Business Machines Corporation|Decentralized immutable storage blockchain configuration| US10862959B2|2016-11-28|2020-12-08|Keir Finlow-Bates|Consensus system and method for adding data to a blockchain| US10523421B2|2016-11-30|2019-12-31|International Business Machines Corporation|Checkpoints for permissionless blockchains| US10311230B2|2016-12-24|2019-06-04|Cisco Technology, Inc.|Anomaly detection in distributed ledger systems| CN106529951A|2016-12-30|2017-03-22|杭州云象网络技术有限公司|Node consensus verification method under league chain network through asynchronous mode| US10484346B2|2017-02-07|2019-11-19|Microsoft Technology Licensing, Llc|Establishment of consortium blockchain network| CN107360206B|2017-03-29|2020-03-27|创新先进技术有限公司|Block chain consensus method, equipment and system| US20180308091A1|2017-04-21|2018-10-25|Vmware, Inc.|Fairness preserving byzantine agreements| CN107423152B|2017-04-24|2019-05-21|杭州趣链科技有限公司|A kind of block chain common recognition node automatic recovery method| EP3632037A4|2017-05-22|2020-04-08|Visa International Service Association|Network for improved verification speed with tamper resistant data| US20190012595A1|2017-07-07|2019-01-10|Pointr Data, Inc.|Neural network consensus using blockchain| CN112804349A|2017-07-14|2021-05-14|创新先进技术有限公司|Method and device for processing consensus request in block chain consensus network and electronic equipment| US11023608B2|2017-09-15|2021-06-01|Identify3D, Inc.|System and method for data management and security for digital manufacturing| US11165862B2|2017-10-24|2021-11-02|0Chain, LLC|Systems and methods of blockchain platform for distributed applications| CN107819749A|2017-10-26|2018-03-20|平安科技(深圳)有限公司|Block catenary system and transaction data processing method based on ether mill| US10572352B2|2017-11-01|2020-02-25|Vmware, Inc.|Byzantine fault tolerance with verifiable secret sharing at constant overhead| KR20190067581A|2017-12-07|2019-06-17|한국전자통신연구원|Apparatus and method for distributed processing of blockchain transactions| US11243945B2|2017-12-11|2022-02-08|International Business Machines Corporation|Distributed database having blockchain attributes| CN108306760A|2017-12-28|2018-07-20|中国银联股份有限公司|For making the self-healing method and apparatus of managerial ability in a distributed system| CN108365993B|2018-03-09|2020-04-28|深圳前海微众银行股份有限公司|Block link point dynamic changing method, system and computer readable storage medium| CN108616596B|2018-05-09|2020-12-25|南京邮电大学|Block chain self-adaptive consensus method based on dynamic authorization and network environment perception| CN108768607B|2018-05-14|2021-10-08|中钞信用卡产业发展有限公司杭州区块链技术研究院|Voting method, device, equipment and medium based on block chain| CN108768749B|2018-06-21|2021-03-30|佛山科学技术学院|Node isolation self-recovery method and device based on block chain| BR112019014815A2|2018-12-13|2020-02-27|Alibaba Group Holding Limited|COMPUTER IMPLEMENTED METHOD, LEGIBLE STORAGE MEDIA BY NON-TRANSITIONAL COMPUTER AND SYSTEM| MX2019008861A|2018-12-13|2019-09-11|Alibaba Group Holding Ltd|Achieving consensus among network nodes in a distributed system.| JP6726367B2|2018-12-13|2020-07-22|アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited|Changing the primary node in a distributed system|US10929352B2|2018-05-29|2021-02-23|Oracle International Corporation|Securing access to confidential data using a blockchain ledger| MX2019008861A|2018-12-13|2019-09-11|Alibaba Group Holding Ltd|Achieving consensus among network nodes in a distributed system.| JP6726367B2|2018-12-13|2020-07-22|アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited|Changing the primary node in a distributed system| BR112019014815A2|2018-12-13|2020-02-27|Alibaba Group Holding Limited|COMPUTER IMPLEMENTED METHOD, LEGIBLE STORAGE MEDIA BY NON-TRANSITIONAL COMPUTER AND SYSTEM| CN110175212B|2019-05-22|2021-07-06|杭州复杂美科技有限公司|Block chain distributed storage method, data reading method, device and storage medium| US11204933B2|2019-05-23|2021-12-21|Advanced New Technologies Co., Ltd.|Data manipulation record storage method, system, apparatus, and device| US10778452B2|2019-06-03|2020-09-15|Alibaba Group Holding Limited|Blockchain ledger authentication| CN110351133B|2019-06-28|2021-09-17|创新先进技术有限公司|Method and device for main node switching processing in block chain system| US10853341B2|2019-06-28|2020-12-01|Advanced New Technologies Co., Ltd.|Blockchain based hierarchical data storage| US10944624B2|2019-06-28|2021-03-09|Advanced New Technologies Co., Ltd.|Changing a master node in a blockchain system| KR102273160B1|2019-08-01|2021-07-05|주식회사 블룸테크놀로지|Ledger system of directed acyclic graph - account-wise transaction chain with byzantine fault tolerance| CN111837117A|2019-09-11|2020-10-27|创新先进技术有限公司|Error correction coding based shared blockchain data storage in trusted execution environments| CN110990448B|2019-10-28|2021-06-25|北京大学|Distributed query method and device supporting fault tolerance| CA3098645A1|2019-11-06|2020-02-20|AlipayInformation Technology Co., Ltd.|Prioritizing shared blockchain data storage| CN111406252A|2019-11-06|2020-07-10|支付宝信息技术有限公司|Consensus of error correction code based shared blockchain data storage| JP2021528884A|2019-11-13|2021-10-21|アリペイ (ハンジョウ) インフォメーション テクノロジー カンパニー リミテッドAlipay (Hangzhou) Information Technology Co., Ltd.|Memory of dynamic blockchain data based on error correction code| WO2021166646A1|2020-02-21|2021-08-26|Necソリューションイノベータ株式会社|Fraud verification device, confirmation generation device, and fraud detection system| WO2021166528A1|2020-02-21|2021-08-26|Necソリューションイノベータ株式会社|Fraud testing device and fraud detection system| CN111510348B|2020-04-08|2021-08-31|杭州复杂美科技有限公司|Abnormal ore excavation monitoring method and device and storage medium| CN111177277B|2020-04-10|2020-08-04|支付宝信息技术有限公司|Data storage method, transaction storage method and device| US11250021B2|2020-04-17|2022-02-15|International Business Machines Corporation|Faster view change for blockchain| CN111901293B|2020-06-08|2021-08-27|北京邮电大学|Resource malicious competition avoiding method for alliance chain| CN111526165B|2020-07-03|2020-10-09|支付宝信息技术有限公司|Consensus method and system in alliance chain| CN111522696B|2020-07-03|2020-12-29|支付宝信息技术有限公司|Downtime processing method, data persistence method and hardware of block chain common identification node| CN111526217B|2020-07-03|2020-10-09|支付宝信息技术有限公司|Consensus method and system in block chain| CN111522822A|2020-07-03|2020-08-11|支付宝信息技术有限公司|Block chain consensus method and device and electronic equipment| CN112564958B|2020-11-30|2022-02-01|清华大学|Intra-domain trust data sharing system| KR102347568B1|2021-09-23|2022-01-06|동국대학교 경주캠퍼스 산학협력단|Block transfer method and device in blockchain system| CN113630258B|2021-10-09|2022-01-11|支付宝信息技术有限公司|Consensus method, block chain system and consensus node|
法律状态:
2021-10-13| B25A| Requested transfer of rights approved|Owner name: ADVANTAGEOUS NEW TECHNOLOGIES CO., LTD. (KY) | 2021-11-03| B25A| Requested transfer of rights approved|Owner name: ADVANCED NEW TECHNOLOGIES CO., LTD. (KY) |
优先权:
[返回顶部]
申请号 | 申请日 | 专利标题 PCT/CN2018/120858|WO2019072294A2|2018-12-13|2018-12-13|Achieving consensus among network nodes in a distributed system| 相关专利
Sulfonates, polymers, resist compositions and patterning process
Washing machine
Washing machine
Device for fixture finishing and tension adjusting of membrane
Structure for Equipping Band in a Plane Cathode Ray Tube
Process for preparation of 7 alpha-carboxyl 9, 11-epoxy steroids and intermediates useful therein an
国家/地区
|