WO2021032138A1 - 一种基于区块链***的共识方法、装置及*** - Google Patents
一种基于区块链***的共识方法、装置及*** Download PDFInfo
- Publication number
- WO2021032138A1 WO2021032138A1 PCT/CN2020/110108 CN2020110108W WO2021032138A1 WO 2021032138 A1 WO2021032138 A1 WO 2021032138A1 CN 2020110108 W CN2020110108 W CN 2020110108W WO 2021032138 A1 WO2021032138 A1 WO 2021032138A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- node
- consensus
- block
- group
- layer
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Definitions
- the present invention relates to the technical field of financial technology (Fintech), and in particular to a consensus method, device and system based on a blockchain system.
- Blockchain technology is no exception, but due to the security and real-time requirements of the financial industry , Also put forward higher requirements for technology.
- it is usually necessary to use multiple nodes to reach a consensus on the block. If the number of nodes reaching a consensus on the block exceeds the preset number, it means that most of the blockchain systems
- the blocks obtained by the nodes processed by the transactions are consistent; in this way, the block can be successfully produced, and the node can also update the internal transaction database according to the block.
- the PBFT consensus algorithm is a commonly used consensus algorithm.
- the PBFT consensus algorithm after each round of block consensus (that is, successful block generation) performed by the blockchain system, the PBFT consensus algorithm can be used from the blockchain A master node is selected from multiple nodes in the system, and the master node is used for block packaging in the next round of block consensus.
- the master node can obtain transaction data to be processed from the transaction pool, package the original block according to the transaction data to be processed, and send it to other nodes in the blockchain system;
- each node (including the master node) in the blockchain system can process the transaction based on the original block packaged by the master node to obtain the target block, and then send the target block to other nodes in the blockchain system;
- Each node can determine the consensus result of the node according to its own target block and the target block of other nodes, and send the consensus result of this node to other nodes, so that each node can compare with other nodes according to its own consensus result
- the consensus result of determines whether the consensus of each node is successful, if it is, the node can update the block database inside the node, if not, the node may not process it.
- the communication overhead of the PBFT consensus algorithm is O(n 2 ); where n is Number of nodes. If the number of nodes in the blockchain system is small, the PBFT consensus algorithm can have small communication overhead.
- each node in the blockchain system may be in a waiting state for a long time, resulting in a low consensus efficiency of the blockchain system.
- the embodiment of the present invention provides a consensus method based on a blockchain system, which is used to solve the technology of high communication pressure and low consensus efficiency caused by the use of the PBFT consensus algorithm to execute block consensus in a large-scale node blockchain system problem.
- an embodiment of the present invention provides a consensus method based on a blockchain system.
- the blockchain system includes an N-level node layer with a hierarchical relationship; wherein each node layer includes at least one node group, Each node group includes a master node and at least one slave node; any two node groups in the same node layer include different nodes; each node in the i-1th node layer is included in the i-th node layer
- the master node in each node group; each node in the Nth node layer is all the consensus nodes in the blockchain system;
- the master node of the node group determines the consensus result of the node group according to the consensus state of each node in the node group to the consensus block; if the i Is greater than 1, when the master node participates in the consensus of the i-1th level node layer, the consensus result of the node group is taken as the consensus state of the master node on the block to be agreed; if the If i is equal to 1, the consensus result of the node group in the i-th node layer is taken as the consensus result of the block to be agreed; where i and N are positive integers, and 1 ⁇ i ⁇ N.
- the consensus process between large-scale nodes can be transformed into the consensus process in each node group. Consensus process between a small number of nodes, thereby greatly reducing communication consumption and communication pressure; and each node only needs to perform the consensus process in the node group to which the node belongs, so that it only needs to wait for other nodes in the node group
- the sent consensus state can perform the subsequent consensus process, without the need to wait for the consensus state sent by all nodes in the blockchain system to perform the subsequent consensus process, which can greatly reduce the consensus process of each node.
- the time required has greatly improved the consensus efficiency of the blockchain system.
- the node group in the first-level node layer is the first node group; the master node in the node group determines the node according to the consensus state of each node in the node group to the consensus block Before the consensus result of the group, the master node of the first node group also generates the block for consensus, and sends the block for consensus to any consensus node in the blockchain system; accordingly, After the consensus result of the node group in the first-level node layer is used as the consensus result of the block to be agreed, the master node of the first node group also sends the consensus result of the block to be consensus to the Any consensus node in the blockchain system.
- each consensus node by using the master node in the first node group to directly send the consensus results of the to-be-consensus block or the to-be-consensus block to each consensus node in the blockchain system, multiple calls to each of the intermediate node layers can be avoided. Node groups, thereby reducing the pressure on each node group in the middle layer; and, compared to forwarding the consensus results of the waiting block or the waiting block through each node group in the middle node layer, each consensus node can be earlier The consensus result of the block to be consensus or the block to be consensus is received, thereby further improving the consensus efficiency of the blockchain system.
- the node group in the first-level node layer is the first node group; the master node in the node group determines the consensus state of each node in the node group according to the consensus state of the consensus block to be Before the consensus result of the node group, the master node of the first node group also generates the block to be agreed upon, and sends the block to be agreed upon according to the hierarchical relationship to the node in the Nth level Each node; accordingly, after the consensus result of the node group in the first-level node layer is used as the consensus result of the block to be agreed, the master node of the first node group also divides the The consensus result of the block to be consensus is sent to each node in the Nth node layer.
- the sending the consensus result of the to-be-consensus block or the to-be-consensus block to each node in the Nth-level node layer according to the hierarchical relationship includes: for the i-1th level For each node group in the node layer, the master node of the node group sends the block to be agreed or the consensus result of the block to be agreed to any slave node in the node group; the node group Any node in sending the block to be agreed or the consensus result of the block to be agreed to any node in the node group where the node in the i-th level node layer is located.
- the consensus result of the block to be consensus or the block to be consensus is sent to each consensus node in the blockchain system according to the hierarchical relationship, so that each master node only needs to be in the node group to which the master node belongs Synchronize the consensus result of the block to be consensus or the block to be consensus, thereby converting the synchronization process between the master node in the first node group and all consensus nodes in the blockchain system into each master node and its respective node group The synchronization process between the slave nodes, thereby reducing the communication pressure of the master node in the first node group.
- any node of the node group also processes the block to be agreed upon to obtain the block information of the node for the block to be agreed upon, and compares the block information of the node to the block to be agreed upon.
- the block information is sent to other nodes in the node group; the nodes of the node group compare the block information of the block to be agreed upon by the node and the other nodes in the node group to the area to be agreed upon.
- the block information of the block determines the consensus state of the node on the block to be agreed; accordingly, the master node of the first node group sends the consensus result of the block to be agreed to the Nth level
- any consensus node in the blockchain system also updates the internal preset database of the consensus node according to the consensus result of the block to be consensus.
- the master node of each node group in the Nth node layer can determine the consensus state of the node group according to the consensus state of other nodes in the node group, and can synchronize it to the upper node layer to which the node group belongs In this way, block consensus is implemented for each node group in each node layer.
- each node updates directly according to its own block information and the block information of other nodes.
- the default database can improve the accuracy of consensus results.
- the Nth level node From the nodes included in each node group in the layer, the master node of each node group in the next round of block consensus is elected; further, each node group in the i-th node layer is used in the next round of block consensus.
- the master node in the consensus constitutes each node group in the i-1 level node layer, and each node group is elected from the nodes included in each node group in the i-1 level node layer The master node in the next round of block consensus.
- the nodes included in each node group in the Nth node layer are set unchanged, and after a certain round of block consensus is over, it is reselected from each node group in the next node layer according to the reverse hierarchical relationship
- the master node composes each node group in the upper node layer, which can ensure that the master node in each node group of each node layer in different rounds of block consensus is different, so that each node in the node group can be rotated as the master Nodes, to ensure the running sequence of the blockchain system.
- an embodiment of the present invention provides a consensus device based on a blockchain system.
- the blockchain system includes N-level node layers with hierarchical relationships; wherein each node layer includes at least one node group, Each node group includes a master node and at least one slave node; any two node groups in the same node layer include different nodes; each node in the i-1th node layer is included in the i-th node layer
- the master node in each node group; each node in the Nth node layer is all the consensus nodes in the blockchain system; for each node group in the i-th node layer, the node group
- the main nodes include:
- the determining module is used to determine the consensus result of the node group according to the consensus state of each node in the node group to be a consensus block;
- a processing module configured to, if the i is greater than 1, when the master node participates in the consensus of the i-1th level node layer, use the consensus result of the node group as the master node's agreement to the pending consensus The consensus state of the block; if the i is equal to 1, the consensus result of the node group in the i-th node layer is taken as the consensus result of the block to be agreed;
- i and N are positive integers, and 1 ⁇ i ⁇ N.
- the device when the i is equal to 1, the device further includes a generating module and a transceiver module; the generating module is used to: generate the block to be agreed upon; Before each node in the node group determines the consensus status of the consensus block for the consensus block, the transceiver module is used to: send the consensus block to any consensus in the blockchain system The node or according to the hierarchical relationship sends the block to be agreed to each node in the Nth node layer; accordingly, the processing module sends the consensus result of the node group in the i node layer As the consensus result of the to-be-consensus block, the transceiver module is also used to: send the consensus result of the to-be-consensus block to any consensus node in the blockchain system or send the consensus result according to the hierarchy relationship The block to be agreed is sent to each node in the Nth node layer.
- the sending the consensus result of the to-be-consensus block or the to-be-consensus block to each node in the Nth-level node layer according to the hierarchical relationship includes: for the i-1th level For each node group in the node layer, the master node of the node group sends the block to be agreed or the consensus result of the block to be agreed to any slave node in the node group; the node group Any node in sending the block to be agreed or the consensus result of the block to be agreed to any node in the node group where the node is located in the i-th level node layer.
- an embodiment of the present invention provides a blockchain system, which includes N-level node layers with hierarchical relationships; wherein each node layer includes at least one node group, and each node group Includes a master node and at least one slave node; any two node groups in the same node layer include different nodes; each node in the i-1th node layer is in each node group included in the i-th node layer Each node in the Nth node layer is all the consensus nodes in the blockchain system; the node group in the first node layer is the first node group;
- the first node group is used to generate a consensus block, and send the consensus block to each node in the Nth node layer;
- Any node group in the Nth level node layer is used to process the block to be agreed, and determine the consensus state of each node in the node group on the block to be agreed;
- Any node group in the i-th node layer is used to determine the consensus result of the node group according to the consensus state of each node in the node group to the consensus block; if the i is greater than 1, then When the master node of the node group participates in the consensus of the i-1th level node layer, the consensus result of the node group is used as the consensus state of the master node on the block to be agreed; if the i is equal to 1 , The consensus result of the node group in the i-th node layer is taken as the consensus result of the block to be agreed;
- i and N are positive integers, and 1 ⁇ i ⁇ N.
- the first node group is also used to: send the consensus result of the block to be consensus to each node in the Nth node layer; accordingly, the Nth node
- the nodes in the node layer are also used to update the internal preset database of the node according to the consensus result of the block to be agreed.
- any node group in the i-th node layer is also used to: select the node group from among the nodes included in the node group.
- the master node in one round of block consensus constitutes each node group in the i-1th level node layer according to the master node of each node group in the Nth level node layer in the next round of block consensus.
- a computing device provided by an embodiment of the present invention includes at least one processing unit and at least one storage unit, wherein the storage unit stores a computer program, and when the program is executed by the processing unit, The processing unit executes the consensus method based on the blockchain system as described in any of the foregoing first aspect.
- a computer-readable storage medium provided by an embodiment of the present invention stores a computer program executable by a computing device.
- the computing device executes Any consensus method based on the blockchain system described in the first aspect.
- FIG. 1 is a schematic diagram of the architecture of a blockchain system provided by an embodiment of the present invention
- FIG. 2 is a schematic diagram of a corresponding process when using the PBFT consensus algorithm to process transactions according to an embodiment of the present invention
- Figure 3 is a block consensus method based on a blockchain system provided by an embodiment of the present invention.
- FIG. 4 is a schematic diagram of the architecture of a blockchain system with a hierarchical structure provided by an embodiment of the present invention
- FIG. 5 is another representation form of a blockchain system with a hierarchical structure provided by an embodiment of the present invention.
- FIG. 6 is a schematic diagram of a process corresponding to a block consensus method provided by an embodiment of the present invention.
- FIG. 7 is a schematic structural diagram of a consensus device based on a blockchain system provided by an embodiment of the present invention.
- the field of financial technology usually involves a variety of transactions.
- bank transactions can include card sales, deposit transactions, loan transactions, insurance transactions, wealth management transactions, etc.
- the daily transaction volume of banks can reach thousands or even several. Thousands of pens.
- the financial technology field can also use blockchain technology to process transactions. For example, if multiple banks are involved in related transactions, you can set up a consortium chain to synchronize related transactions. , Or you can put the courts, customers, etc. on the chain at the same time to jointly maintain the security and stability of the alliance chain.
- the blockchain system can be a peer-to-peer (Peer To Peer, P2P) network composed of multiple nodes.
- P2P is an application layer protocol that runs on top of the Transmission Control Protocol (TCP) protocol.
- TCP Transmission Control Protocol
- the nodes in the blockchain system can be equal to each other, and there is no central node in the system, so every node can Connect other nodes randomly.
- each node can be equipped with a preset database, and each node maintains the public ledger in the blockchain system through the preset database.
- the preset database inside the node can store the data in the blockchain system.
- Block data among them, the block data includes the block header and the block body.
- the block header includes the hash value of the previous block, the hash value of the block, the block height of the block, the timestamp and other information.
- the block includes transaction data, such as transaction data to be processed in the process of consensus on the block by nodes in the blockchain system and transaction results obtained from processing the transaction data to be processed.
- FIG 1 is a schematic diagram of the architecture of a blockchain system provided by an embodiment of the present invention.
- the blockchain system may include one or more nodes, such as node 101, node 102, node 103, and node 104 , Any two nodes of node 101 to node 104 can be connected in communication, so as to jointly maintain the blockchain system. Wherein, any two nodes may be connected in a wired manner, or may also be connected in a wireless manner, which is not specifically limited.
- the nodes in the blockchain system may have multiple functions, such as routing function, transaction function, blockchain function, consensus function, etc.
- the nodes in the blockchain system can transmit transaction data and other information sent by other nodes to more nodes to achieve communication between nodes; or, the nodes in the blockchain system can be used to support users Perform transactions; or, nodes in the blockchain system can be used to record all transactions in history; or, nodes in the blockchain system can generate new blocks in the blockchain by verifying and recording transactions.
- the routing function is a function that each node in the blockchain system must have, and other functions can be set by those skilled in the art according to actual needs.
- a node in the blockchain system can be on a physical machine (server), and a node can specifically refer to a process or a series of processes running in the server.
- the node 101 in the blockchain network may be a process running on a server, or may also refer to a server, which is not specifically limited.
- the system architecture may also include a client device 200, and the client device 200 may be connected to any node in the blockchain system by accessing the blockchain network.
- the client device 200 can send the transaction to any node in the blockchain system. After a certain node in the blockchain system receives the transaction, it can synchronize the transaction to other nodes in the blockchain system. node. After the node synchronizes the transaction, it can also store the transaction in the internal transaction pool of the node; accordingly, other nodes can also store the transaction in the internal transaction pool of other nodes after receiving the transaction synchronized by the node. In this way, if a certain node determines to process multiple transactions, it can obtain multiple transactions from the internal transaction pool, and then perform subsequent transaction processing and block consensus.
- the transaction can be stored in the transaction pool in the form of a stack; in this way, if a node determines to process multiple transactions, the earliest multiple transactions on the stack can be obtained from the internal transaction pool for subsequent processing and consensus processes.
- Figure 2 is a schematic diagram of the corresponding process when using the PBFT consensus algorithm to process transactions.
- the process of PBFT consensus algorithm processing transactions can be divided into three stages: pre-prepare Phase, prepare phase and commit phase. The following describes the specific implementation process of the three stages.
- Block consensus can be determined in many ways. For example, if a new historical block is detected in the memory of the node, it can be considered that a round of block consensus has been successfully executed, or if it is detected that the node has updated the internal default database , It can be considered that a round of block consensus was successfully executed, and so on.
- the PBFT consensus algorithm can take turns to select different nodes as the master node from multiple nodes in the blockchain system; specifically, a window value v can be set inside each node. If the previous round of block consensus is successfully executed, then The window value v inside each node can be set to zero. If the previous round of block consensus execution fails, the window value v inside each node is incremented (ie, 1). Correspondingly, if each node detects that a new historical block has been added to the memory of the node, or detects that the node has updated the internal preset database, it can determine the master node of the next round of block consensus according to the following formula Number:
- leader is the number of the main node
- h is the current block height
- v is the window value
- n is the number of nodes in the blockchain system.
- each node can send the number of its own determined master node to other nodes in the blockchain system. If the number of nodes passed by consensus on a master node is greater than the preset number, it can The node corresponding to the number serves as the master node for the next round of block consensus. In another example, after each node determines the number of the master node, if its own node ID matches the number of the master node, the node will automatically be the master node for the next round of block consensus; if its own node ID matches the master node number If the number of the node does not match, it can be used as a slave node without any processing, just waiting for the next round of block consensus.
- Table 1 is a schematic table of a correspondence relationship between a node identifier and a serial number of a master node provided by an embodiment of the present invention.
- Table 1 A schematic diagram of the corresponding relationship between the node identifier and the number of the master node
- node 101 can be used as the master node of the next round of block consensus, and nodes 102, 103, and 104 can be used as the next round of block consensus.
- node 102 can be used as the master node of the next round of block consensus, and node 101, node 103 and node 104 can be used as the slave of the next round of block consensus Node;
- node 103 will be the master node of the next round of block consensus, and node 101, node 102, and node 104 will be the slave nodes of the next round of block consensus;
- the number of the master node determined by the node is 4, and the node 104 is taken as the master node of the next round of block consensus, and the nodes 101, 102, and 103 are taken as the slave nodes of the next round of block
- the master node of the previous round of block consensus is node 101, and a new historical block 1 is stored in the memory of node 101, the window value v is set to zero, and the number of nodes in the blockchain system is 4 Therefore, the number of the master node determined by node 101 (or node 102 ⁇ node 104) using the above formula is 1; based on Table 1, it can be seen that the master node of the next round of block consensus can be node 102, and the master node 102 is used to execute Consensus of block 2. Correspondingly, if the node 101 does not respond for a long time, the largest historical block in the memory of the node is still 0.
- the window value v is incremented to 1. In this way, the node 101 (or the node 102 ⁇ Node 104)
- the number of the master node determined using the above formula is 1, that is, the master node of the next round of block consensus can be node 102, and the master node 102 is used to execute the consensus of block 1.
- the master node 101 can get from the transaction pool of master node 101 Obtain the transaction data to be processed in this round of block consensus, and package block 2 according to the transaction data to be processed in this round of block consensus to generate a prepare package.
- the master node 101 can use the hash value of block 1, the block height of block 2, and the current timestamp to assemble the block header of block 2, and can use the transaction data to be processed in this round of block consensus.
- the block body of block 2 can then generate a prepare package according to the block header and block body of block 2.
- the master node 101 can send the prepare packet to any node in the blockchain system, that is, node 102, node 103, and node 104. At this point, the pre-prepare phase is over.
- the master node needs to send prepare packets to all nodes in the blockchain system except the master node. Therefore, the communication overhead corresponding to the pre-prepare phase is (n-1), that is, O(n ).
- any node in the blockchain system receives the prepare packet sent by the master node 101, it can parse the prepare packet to obtain the transaction data to be processed by the block consensus; in this way, the node can execute the round The transaction data to be processed by the block consensus obtains the transaction result. Further, the node may generate a first hash value according to the transaction result, generate a second hash value according to the receipt information of each transaction, generate a third hash value according to the transaction request message, and then generate a third hash value according to the first hash value, The second hash value and the third hash value generate the hash value of block 2.
- the node can assemble the hash value of block 2 into the block header of block 2, and assemble the transaction results of the transaction data to be processed in this round of block consensus into the block body of block 2, and use
- the node’s private key, the block header of block 2 and the block body of block 2 generate the node’s signature package, which can then be sent to other nodes in the blockchain system. So far, the prepare phase End of execution.
- each node needs to send signature packets to all nodes in the blockchain system except this node, so the communication overhead corresponding to the prepare phase is n*(n-1), that is, O(n 2 ).
- any node in the blockchain system can store the public keys of all nodes in the blockchain system. In this way, any node can first determine that the signature package sent by other nodes reaches the node. Obtain the public keys of other nodes from the inside of the node, and use the public keys of other nodes to decrypt the signature packets of other nodes to obtain block 2 (including block header and block body) determined by each other node to process transactions. Further, any node can compare the block 2 determined by the transaction processing by itself with the block 2 determined by the transaction processing by any other node, and if they are the same, it can receive the signature package sent by the other node; if they are different, then The signed package sent by the other node can be rejected.
- the node may not perform subsequent operations and wait for the operation and maintenance personnel to perform subsequent maintenance.
- the preset threshold can be set by those skilled in the art based on experience, and is not limited.
- the preset threshold can be set as
- any node in the blockchain system determines that the commit packet sent by other nodes arrives at the node, it can parse the commit packets of other nodes to obtain the block 2 (including block header and zone) determined by each other node to process the transaction. Block); in this way, the node can compare the block 2 determined by the transaction processing by itself with the block 2 determined by the transaction processing by any other node, and if they are the same, it can receive the commit packet sent by the other node, if different , The commit packet sent by the other node can be rejected.
- the number of commit packets received by the node is less than the preset threshold, it means that the node is an abnormal node.
- the node may not perform follow-up operations and wait for the operation and maintenance personnel to perform follow-up maintenance; accordingly, if the node receives The number of signature packages received is greater than or equal to the commit package, which means that the block 2 obtained by the node processing the transaction is the same as the block 2 obtained by most other nodes in the blockchain system processing the transaction. In this way, the node can get from the memory Obtain block 2 generated by the node for processing transactions, and write block 2 into the preset database inside the node, thereby completing the round of block consensus. At this point, the commit phase is over.
- each node needs to send signature packets to all nodes in the blockchain system except this node, so the communication overhead corresponding to the commit phase is n*(n-1), that is, O(n 2 ).
- the communication overhead required is (n-1)+2n*(n-1), which is O(n 2 ).
- the system is a block chain block chains large number of nodes of the system, such as the number of nodes is 1000, the reached cost of the communication 106, the very large communication overhead, resulting in a communication system than the pressure block chain
- each node needs to wait for the signature package or commit package sent by all other nodes in the blockchain system in the prepare phase and the commit phase to perform the subsequent consensus process, which causes the node to wait for a long time. During this time, the node is in a non-working state, resulting in lower processing efficiency of the node and lower consensus efficiency of the blockchain system.
- the embodiment of the present invention provides a blockchain system to solve the technical problems of high communication pressure and low consensus efficiency caused by the use of the PBFT consensus algorithm to execute block consensus in a large-scale node blockchain system .
- Fig. 3 is a block consensus method based on a block chain system provided by an embodiment of the present invention, and the method includes:
- Step 301 before executing each round of block consensus, determine whether the number of nodes in the blockchain system is greater than the preset number, if yes, execute step 302, if not, execute step 304.
- a monitor can be set in the blockchain system.
- the monitor can monitor the current block consensus of the blockchain system. If it is monitored that a certain round of block consensus is over, or a new block is monitored A round of block consensus is about to begin, and the number of nodes in the current blockchain system can be obtained. Further, if the number of nodes in the current blockchain system is greater than the preset number, indicating that the blockchain system is a large-scale node blockchain system, step 302 can be performed; if the number of nodes is less than or equal to the preset number, it indicates If the blockchain system is a small-scale node blockchain system, step 304 can be executed.
- the preset number can be set by those skilled in the art based on experience. Since the PBFT consensus algorithm can better handle the blockchain system with the number of nodes within 100, the preset number can be set to 100.
- Step 302 Perform hierarchical grouping of nodes in the blockchain system to convert the blockchain system into a hierarchical structure.
- the consensus nodes in the blockchain system can be divided into N-level (ie, two or more) node layers, and each node layer includes multiple node groups, each The node group includes a master node and multiple slave nodes. The nodes in any two node groups in each node layer are different.
- the Nth node layer includes all consensus nodes in the blockchain system. The first node layer only The first node group is included; and, for any node group in any node layer, each node in the node group is the master node of the corresponding node group in the next node layer.
- the master node in the node group may be determined in turn from multiple nodes in the node group by using the PBFT consensus algorithm.
- the multiple master nodes selected by the second-level node layer are divided into multiple node groups, and multiple node groups are used to form the N-1th level node layer,..., the multiple master nodes selected by the second-level node layer form the first A node group, and use the first node group to form the first-level node layer.
- multiple nodes can be divided according to a preset threshold to obtain multiple node groups. For example, when the preset threshold is 10, if there are 1000 consensus nodes in the blockchain system, they are consensus node 1 , Consensus node 2, consensus node 3, ..., consensus node 1000, 1000 consensus nodes can be divided into node group 1, node group 2, node group 3, ..., node group 100, and node group 1 includes consensus nodes 1. Consensus node 2, Consensus node 3,..., Consensus node 10.
- Node group 2 includes consensus node 11, consensus node 12, consensus node 13,..., consensus node 20,..., node group 100 includes consensus node 991 , Consensus node 992, consensus node 993,..., consensus node 1000; node group 1, node group 2, node group 3,..., node group 100 constitute the Nth-level node layer.
- consensus nodes in the blockchain system, namely, consensus node 1, consensus node 2, consensus node 3, ..., consensus node 995
- the preset threshold is 10
- 1000 consensus nodes can be Nodes are divided into node group 1, node group 2, node group 3,..., node group 100
- node group 1 includes consensus node 1, consensus node 2, consensus node 3,...
- consensus node 10 node group 2 includes consensus Node 11, consensus node 12, consensus node 13, ..., consensus node 20, ...
- the node group 100 includes consensus node 991, consensus node 992, consensus node 993, consensus node 994, and consensus node 995.
- the monitor can monitor the nodes in the blockchain system in real time.
- the node group in the Nth node layer can always remain unchanged; if the node in the blockchain system is monitored If the node changes, the Nth node layer can be updated according to the change type.
- the consensus node 1001 can be inserted into any node group from node group 1 to node group 100, or a node group 101 can also be added ,
- the consensus node 1001 is set as the only node in the node group 101, so that the Nth level node layer includes node group 1 to node group 101; if it is monitored that the consensus node 50 in the blockchain system exits the blockchain, you can Delete the consensus node 50 from the node group 5; if it is monitored that more consensus nodes withdrawn from the blockchain system or more consensus nodes are newly added, so that the consensus node in the blockchain system changes greatly, then Re-divide the current consensus nodes of the blockchain system in the above manner to obtain multiple new node groups, and use multiple new node groups to form the Nth level node layer.
- the PBFT consensus algorithm can be used to select a master node from each node group of node group 1 to node group 100 , And divide multiple master nodes according to a preset threshold to obtain multiple node groups, and use multiple node groups to form the N-1th level node layer.
- the master node selected from node group 1 is consensus node 2
- the master node selected from node group 2 is consensus node 12
- the master node selected from node group 3 is selected
- the master node of is the consensus node 22...
- the master node selected from the node group 100 is the consensus node 992
- the consensus node 2 the consensus node 12, the consensus node 22,...
- the consensus node 992 can be divided into nodes Group 110, node group 120, node group 130,..., node group 200
- node group 110 includes consensus node 2, consensus node 12, consensus node 22, ..., consensus node 92
- node group 120 includes consensus node 102, consensus Node 112, consensus node 122, ..., consensus node 192, ...
- node group 200 includes consensus node 902, consensus node 912, consensus node 922, ..., consensus node 992;
- node group 110, node group 120, node group 130,..., the node group 200 constitutes the N
- the greater the number of consensus nodes in the blockchain system the more levels of the node layer, constituting the N-2 level node layer, the N-3 level node layer,..., the second level node layer
- the process of the first-level node layer can be implemented by referring to the process of forming the N-1th-level node layer, which will not be repeated here.
- the number of node groups in the Nth level node layer and the nodes in each node group will not change; however, because the upper level node The layer is composed of the master node in the next node layer.
- the PBFT consensus algorithm will change the master node of each node group in the Nth node layer before each round of block consensus. Therefore, each round of block consensus corresponds to The node groups in the N-1 level node layer to the first level node layer are different from the node groups in the N-1 level node layer to the first level node layer corresponding to the previous round of block consensus.
- each level of node layer can be divided into multiple corresponding node groups using the same division method, or it can be divided into multiple corresponding node groups using different division methods, and the same preset can be used
- Nodes are divided by threshold to obtain multiple node groups, or nodes may be divided by different preset thresholds to obtain multiple node groups, or nodes may be divided by random numbers to obtain multiple node groups, which is not specifically limited.
- FIG. 4 is a schematic diagram of the architecture of a blockchain system with a hierarchical structure provided by an embodiment of the present invention.
- the blockchain system may include a first-level node layer, a second-level node layer, and a third-level node layer.
- Level node layer, the third level node layer includes all consensus nodes in the blockchain system, namely node 1, node 2, node 3, ..., node 1000.
- nodes 1 to 1000 are divided according to a preset threshold of 10 to obtain node group a 3,1 , node group a 3,2 , node group a 3,3 ,..., node group a 3,100 ,
- Node group a 3,1 includes node 1, node 2, node 3,..., node 10,
- node group a 3,2 includes node 11, node 12, node 13,..., node 20,...
- node group a 3,100 includes node 991, node 992, node 993, ..., node 1000.
- the master node in node group a 3,1 (the node corresponding to the thick circle) is node 1, and the master node in node group a 3,2 is Node 11,..., the primary node in node group a 3,100 is node 991, then in the second-level node layer, node 1, node 11,..., node 991 are divided according to the preset threshold of 10, and node group a is obtained 2,1 , node group a 2,2 , node group a 2,3 ,..., node group a 2,10 , node group a 2,1 includes node 1, node 11, node 21,..., node 91,
- the node group a 2,2 includes the node 101, the node 111, the node 121,..., the node 191,..., and the node group a 2,10 includes the node 901, the node 911, the node 921,..., the node 991.
- a 2,1 node group of the node 11 is the master node
- node group in a 2,2 master node is node 111, «, node group a 2
- the master node in 10 is node 911, and in the first-level node layer, node 11, node 111, ..., node 911 constitute a node group a 1 .
- the number of levels (or the number of layers) N of the node layer in the blockchain system can be:
- n is the number of consensus nodes in the blockchain system.
- the number of node groups g N in the Nth node layer can be:
- the number g i of node groups in the i-th node layer can be:
- g i+1 is the number of node groups in the i+1 level node layer.
- Figure 5 is another representation of the hierarchical structure of the blockchain system.
- Figure 5 only illustrates the second-level node layer And the composition of each node group in the first-level node layer.
- each node in the first-level node layer is located in the node group of the first-level node layer and the second-level node layer at the same time.
- node 1 in the first-level node layer is located in the node group a 1 at the same time.
- the node 101 in the first-level node layer is located in the node group a 1 and the node group a 2,2 at the same time, ..., the node 901 in the first-level node layer is located in the node group a at the same time 1 and node group a 2 , 10.
- each node in the first-level node layer is located in the node group of the first-level node layer, the second-level node layer, and the third-level node layer at the same time, Among the nodes of the second-level node layer, nodes other than the nodes in the first-level node layer are located in the node groups of the second-level node layer and the third-level node layer at the same time.
- Step 303 Execute each round of block consensus according to the hierarchical structure of the blockchain system.
- a master node different from the previous round of block consensus can be selected from each node group of the Nth level of node layer, and the selected master node from the Nth level of node layer Multiple master nodes form each node group of the N-1 level node layer; then the master node can be selected from each node group of the N-1 level node layer, and use to select from the N-1 level node layer A plurality of master nodes form each node group of the N-2th level node layer, and each node group in the upper level node layer is constructed in this way until the first node group in the first level node layer is constructed. In this way, the construction of the blockchain hierarchy corresponding to this round of block consensus is completed, and the subsequent round of block consensus can be executed based on the blockchain hierarchy.
- Step 304 Use the PBFT consensus algorithm to execute this round of block consensus.
- the number of consensus nodes in the blockchain system is less than the preset number, it means that the current blockchain system is a small-scale node blockchain system, that is, the communication pressure of using the PBFT consensus algorithm to process this round of block consensus is not great; therefore; , You can directly use the PBFT consensus algorithm to execute this round of block consensus, the specific implementation can be referred to as shown in Figure 2, and will not be repeated.
- Fig. 6 is a schematic diagram of a process corresponding to a block consensus method provided by an embodiment of the present invention, and the method includes:
- step 601 the master node of the first node group in the first-level node layer packs the block to obtain the block to be consensus, and synchronizes it to the slave node of the first node group in the first-level node layer.
- each consensus node in the blockchain system can be the node where the consensus node is located.
- the group, the level to which the node group belongs, and the identifiers of other nodes included in the node group are stored in the memory of the consensus node; so, if the consensus node needs to synchronize information in the node group where the consensus node is located, then The identities of other nodes included in the node group can be obtained from the memory of the consensus node, so as to synchronize the information to other nodes.
- Table 2 is a schematic table of a possible correspondence table provided by an embodiment of the present invention.
- Table 2 Schematic of a correspondence table
- the correspondence table of node 111 can store the node group where node 111 is located in each node layer and other nodes in the node group where node 111 is located.
- node 111 is a node in the first node layer.
- group a 1 a node group a 1 in addition includes a node group 111, it also may include a node 11, node 211, node 311, node 411, node 511, node 611, node 711, node 811, node 911; accordingly, The node 111 is in the node group a 2,2 of the second-level node layer.
- the node group a 2,2 may also include node 101, node 121, node 131, node 141, node 151, node 161. Node 171, node 181, node 191; node 111 is in the node group a 3,12 of the third-level node layer.
- node group a 3,12 may also include node 112 and node 113 , Node 114, node 115, node 116, node 117, node 118, node 119, node 120.
- the correspondence table of each node in the first-level node layer may include the node in the first-level node layer and the second-level node.
- the node group in the third-level node layer and the other nodes included in the node group; the corresponding relationship table of each node in the second-level node layer except the node in the first-level node layer can contain this
- the node is located in the second-level node layer and the third-level node layer in the node group and other nodes included in the node group; each node in the third-level node layer except the node in the second-level node layer
- the correspondence table may include the node group where the node is located in the third-level node layer and other nodes included in the node group where it is located.
- the embodiment of the present invention refers to the node group in the first-level node layer as the first node group.
- the master node of the first node group can obtain the transaction data to be processed in the current round of block consensus from the internal transaction pool, and can follow Package block of transaction data to be processed. Based on FIG. 4, since the first node group is the node group a 1 , and the master node of the node group a 1 in the current round of block consensus is the node 111, the master node 111 can execute the process of packaging the block.
- the master node of the first node group can package the block according to steps 1 to 3:
- Step 1 Obtain the block height of the largest historical block and the hash value of the largest historical block from the historical blocks cached in the memory, and set the block height of the block to be consensus according to the block height of the largest historical block;
- Step 2 Use the current timestamp, the block height of the block to be consensus and the hash value of the largest block in history to assemble the block header of the block to be consensus, and use the transaction data to be processed in the current round of block consensus to assemble the block to be consensus The block body.
- Step 3 Write the block header of the block to be agreed and the block body of the block to be agreed into the corresponding positions of the prepare package respectively to generate the prepare package.
- step 602 the master node of the node group in the first-level node layer transmits the block to be consensus to any node in the Nth-level node layer.
- the master node of the first node group can transmit the prepare packet to any node in the Nth node layer in multiple ways. Two possible transmission methods are described below:
- the master node of the first node group can transmit the prepare packet to any node in the Nth node layer according to the hierarchical structure corresponding to the current round of block consensus. Specifically, the first node group The master node can first send the prepare packet to any slave node in the first node group, and then any slave node sends the prepare packet to any slave node in the node group where the slave node is located in the next node layer Nodes until there is no next node level.
- the master node 111 determines that the master node 111 is in the node group a 1 of the first-level node layer by querying the correspondence table shown in Table 2, so that the prepare package can be synchronized to the node group a 1 from any of a node, i.e.
- node 11 determines that node 11 is in node group a 2,1 of the second-level node layer by querying the correspondence table stored inside, so that node 11 can synchronize the prepare packet to node group a 2,1 Any slave node of node 1, node 21, node 31, node 41, node 51, node 61, node 71, node 81, and node 91; further, for any node in node group a 2,1 (Such as node 1), node 1 determines that node 1 is in the node group a 3,1 of the third-level node layer by querying the internally stored correspondence table, so that node 1 can synchronize the prepare packet to any of node group a 31 One slave node, namely node 2, node 3, node 4,
- the consensus result of the block to be consensus or the block to be consensus is sent to each consensus node in the blockchain system according to the hierarchical relationship, so that each master node only needs to be in the node group to which the master node belongs Synchronize the consensus result of the block to be consensus or the block to be consensus, thereby transforming the synchronization process between the master node in the first node group and all the consensus nodes in the blockchain system into each master node and its respective node group
- the synchronization process between the slave nodes in the first node group reduces the communication pressure of the master node in the first node group.
- the master node of the first node group can directly send the prepare package to the blockchain after generating the prepare package All the consensus nodes in the system, such as the master node 111, directly send the prepare packet to nodes 1 to 110 and nodes 112 to 1000.
- the master node in the first node group to directly send the consensus block to each consensus node in the blockchain system, it is possible to avoid multiple calls to each node group in the intermediate node layer, thereby reducing intermediate nodes.
- the pressure of each node group in the layer; and, compared to the forwarding of the consensus block through each node group in the intermediate node layer, each consensus node can receive the consensus block earlier, thereby further improving the blockchain system Consensus efficiency.
- step 603 the master node of any node group in the Nth node layer determines the consensus result of the node group according to the consensus state of each node in the node group to the consensus block.
- the node can first verify the legality of the prepare package after determining that the prepare package reaches the node. If it is determined that the prepare package is legal, then You can receive the prepare package; if it is determined that the prepare package is illegal, you can refuse to receive the prepare package, and you can send alarm information to the user, for example, you can push the alarm information to the user through WeChat, Dingding, email, etc.
- the specific process of legality verification can be as follows: the node parses the prepare package to obtain the current timestamp corresponding to the current round of block consensus, the block height of the block to be consensus, the hash value of the largest historical block, and the current round of block consensus. Process the transaction data and query the historical block cached inside the node to determine the block height and hash value of the largest historical block corresponding to the node.
- the prepare package is determined to be legal; correspondingly, if it is determined that the block height of the block to be consensus is greater than the block height of the largest historical block corresponding to the node plus one, it means that the block to be consensus is a historical block that has been agreed upon, or if Make sure that the block height of the block to be consensus is less than the block height of the largest historical block corresponding to the node plus one, indicating that the block cached inside the node lags behind other nodes, or the hash value of the largest historical block corresponding to the current round of block consensus If it is not equal to the hash value of the largest historical block corresponding to the node, the node can determine that the prepare package is illegal. By verifying the legality of the prepare package
- the node can process the transaction data to be processed in the current round of block consensus to obtain the transaction result, and can determine the hash value of the block to be consensus based on the transaction data, transaction result, and receipt of each transaction; in this way, the node can Use transaction data and transaction results to assemble the block body of the block to be consensus, and use the hash value of the block to be consensus, the block height of the block to be consensus, the current timestamp and the hash value of the largest historical block to assemble the consensus
- the block header of the block, and the node's private key, the updated block header of the block to be consensus and the block body of the block to be consensus can be used to generate the signature package corresponding to the node, and then the correspondence table within the node can be inquired Determine the node group where the node is in the Nth node layer, and send the signature packet corresponding to the node to any node in the node group where the node is in the Nth node layer.
- the node can first use any node after determining that the signature package corresponding to any node in the node group reaches the node Parses the signature package corresponding to any node, and verifies the legality of the information obtained by analyzing the signature package corresponding to any node based on its own signature package. If it is determined that the signature package corresponding to any node If it is legal, the signature package corresponding to any node can be received; if it is determined that the signature package corresponding to any node is illegal, it can refuse to receive the signature package corresponding to any node.
- the process of verifying the legality of the signed package can be implemented by referring to the process of verifying the legality of the prepare package. The difference is that when verifying the legality of the signed package, the transaction processing result and the hash value of the consensus block need to be verified. .
- each node can only store the public keys of other nodes in the node group where the node is located, instead of storing the public keys of all consensus nodes in the blockchain system, thereby reducing the amount of public keys occupied by the nodes.
- Resources for example, because node 1 is only in node group a 3,1 , node 1 can only store the public keys of nodes 2-10.
- the public keys of other nodes can be sent by the monitor to each node according to the hierarchical grouping in each round of block consensus, or the nodes can also be sent from the blockchain according to the hierarchical grouping in each round of block consensus. It can be obtained from the public database of the system, and the details are not limited.
- the node can count the number of successfully received signature packets. If the number of successfully received signature packets is less than the preset number, it means that The consensus block generated by the node is different from most nodes in the node group. The transaction result processed by the node is faulty, so the node does not need to do any processing; accordingly, if the number of successfully received signature packets is greater than or equal to the expected If the number is set, it means that the consensus block generated by the node is the same as most nodes in the node group, and the transaction result processed by the node is normal. Therefore, the node can generate the commit corresponding to the node according to the consensus block corresponding to the node.
- Packet, and the commit packet corresponding to the node can be sent to any node in the node group where the node is in the Nth node layer.
- the preset number can be set by those skilled in the art based on experience, for example, Among them, n is the number of nodes in the blockchain system.
- the node can first use any node after determining that the commit packet corresponding to any node in the node group reaches the node
- the process of verifying the legality of the commit package can be implemented with reference to the process of verifying the legality of the signature package, and will not be repeated.
- the node can count the number of commit packets that have been successfully received. If the number of commit packets that have been successfully received is less than the preset number, it indicates that The consensus result of the node is different from the consensus result of most nodes in the node group. The consensus process of the node is faulty, so the node can do nothing; accordingly, if the number of successfully received commit packets is greater than or equal to the preset The number indicates that the consensus result of the node is the same as the consensus result of most nodes in the node group where it is located. The consensus process of the node is normal, so the node can update the state to the pending state.
- the master node of the node group can determine the number of nodes in the node group that are in the pending state according to the state of each node in the node group. If the number of nodes is greater than or equal to the preset number, the master node of the node group can generate a commit_t packet based on the block to be agreed upon; where t is the identifier of the node group, and the commit_t packet is used to indicate that the node group treats the consensus area The consensus result of the block.
- the master node 1 of the node group a 3,1 can generate the commit_a 3,1 package, and the commit_a 3,1 can be based on the private key of the master node 1, and the block header and pending consensus block generated by the master node 1.
- the block body of the consensus block is generated.
- the master node of the node group may not perform any processing. It should be noted that if the master node in a certain node group fails to receive the preset number of signature packets, or fails to receive the preset number of commit packets, it means that the consensus process of the master node is incorrect. Therefore, the master node No processing is required, that is, no commit_t package may be generated.
- Step 604 When the j-th node layer is not the first-level node layer, the master node of any node group in the j-th node layer sends the consensus result of the node group to the master node in the j-1th node layer. Any node in the node group where the node is located.
- the master node of the node group can query the internal correspondence table of the master node. Determine the node group where the master node is in the N-1 level node layer, and send the commit_t packet corresponding to the master node to any of the node groups where the master node is in the N-1 level node layer Slave node.
- the master node 11 of the node group a 3, 2 in the third-level node layer can query the internal correspondence table of the master node 11 to determine that the master node 11 is in the node group a 2,1 of the second-level node layer.
- commit_a 3,2 can be synchronized to any slave node in the node group a 2,1 , namely, node 1, node 21, node 31, node 41, node 51, node 61, node 71, node 81, and node 91.
- step 605 the master node of any node group in the j-1 level node layer determines the consensus result of the node group according to the consensus state of each node in the node group to the consensus block.
- the node can first use the other node after determining that the commit_t packet corresponding to any other node in the node group reaches the node.
- the public key of any node parses the commit_t packet corresponding to any other node, and then uses the generated commit_t packet to verify the validity of the commit_t packet corresponding to any other node. If the verification is legal, the node can receive If the commit_t packet corresponding to any other node is not legally verified, the node may refuse to receive the commit_t packet corresponding to any other node.
- node 31 of node group a 2, 1 in the second-level node layer determines any of node 1, node 11, node 21, node 41, node 51, node 61, node 71, node 81, and node 91.
- a node (such as node 1) sends a commit_t packet (ie, commit_a 3,1 packet) to node 31, it can use the public key of node 1 to parse the commit_a 3,1 packet, and use the commit_a 3,2 packet generated by it to commit_a
- the 3,1 packet is validated; if it is verified that the commit_a 3,1 packet is legal, the node 31 can receive the commit_a 3,1 packet sent by the node 1, and if the commit_a 3,1 packet is verified to be illegal, the node 31 can refuse to receive the node 1 commit_a 3,1 packet sent.
- any node in any node group in the j-1th level node layer determines that the number of commit_t packets received is greater than the preset number, the status of the node can be updated to the pending submission state; accordingly, the After the master node in the node group determines that there are a preset number of nodes in the node group to be submitted, it can generate the commit_t packet corresponding to the node group according to its corresponding block to be agreed, and the commit_t packet corresponding to the node group is used To instruct the node group to treat the consensus result of the consensus block.
- the node can update the status of the node according to the identity of the node group, that is, the state of the node can include both the pending state and the identity of the corresponding node group; for example, node 1 is in node group a 1, 1 and node group a at the same time In 2,1 , node 1 corresponds to a state corresponding to node group a 1,1 and a state corresponding to node group a 2,1 , thereby avoiding mutual interference between the states of the same node in different node groups.
- Step 606 Determine whether the j-1th level node layer is the first level node layer, if not, execute step 604, and if yes, execute step 607.
- the master node in the node group queries the internal correspondence table to determine that there is no upper-level node layer that contains the master node, then It can be determined that the j-1th level node layer is the first-level node layer; if the master node in the node group queries the internal correspondence table to determine that there is an upper-level node layer that contains the master node, then the j-1th level can be determined The node layer is not the first-level node layer.
- step 607 the consensus result of the first node group for the consensus block is taken as the consensus result of the to-be-consensus block, and the consensus result of the to-be-consensus block is transmitted to any node in the Nth node layer.
- the master node of the first node group can use the consensus result of the first node group to be the consensus result of the block to be consensus, and can take the consensus result of the block to be consensus
- the consensus result of the block is transmitted to any node in the Nth node layer; among them, the master node of the first node group can transmit the consensus result of the block to be consensus in the two ways of transmitting the block to be agreed in step 602,
- the consensus result of the block to be consensus can also be transmitted in other ways, which is not limited.
- the consensus result of the block to be consensus is transmitted through the hierarchical result, it is for any node group in any node layer, and each node in the node group is receiving the consensus result of the block to be agreed.
- the consensus result of the consensus block can be verified before. If the verification is legal, the consensus result of the consensus block can be synchronized to any node in the node layer where the node is located in the next node layer. If it is legal, the node can do nothing.
- the master node of the first node group directly sends the consensus result of the block to be consensus to any node in the Nth level node layer, then any node in the Nth level node layer is receiving the consensus block
- the consensus result of the consensus block can be verified before the consensus result of the consensus block. If the verification is legal, the consensus result of the block to be consensus can be received. If the verification is not legal, the node can do nothing.
- step 608 after receiving the consensus result of the block to be agreed upon, the node in the Nth level of node layer updates the preset database with the consensus result of the block to be agreed upon, this round of consensus ends, and the next round of consensus is started.
- any node in the Nth level node layer receives the consensus result of the block to be consensus, it can use the consensus result of the block to be consensus to update the internal preset database of the node, for example, first parse the consensus to be The consensus result of the block is the block to be consensus, then the block header and block body of the block to be consensus are added to the preset database, and finally the block header of the block to be consensus is added to the memory cache as the largest block in history .
- each node directly updates the preset database according to its own block information and the block information of other nodes, which can improve the accuracy of the consensus result.
- the consensus results of the blocks to be agreed in steps 606 to 608 may all exist in the form of commit packets.
- the master node of each node group in the next round of block consensus can be selected from the nodes included in each node group in the Nth level node layer, and The master node of each node group in the N-1 level node layer in the next round of block consensus can be used to form each node group in the N-1 level node layer; if the N-1 level node layer is not the first level For the node layer, the master node of each node group in the next round of block consensus can be selected from the nodes included in each node group in the N-1th level node layer, and the N-1th level node layer can be used The master node of each node group in the next round of block consensus constitutes each node group in the N-2
- the nodes included in each node group in the Nth-level node layer are set unchanged. After a certain round of block consensus ends, the nodes in the next-level node layer are re-created from each node group according to the reverse hierarchical relationship. Selecting the master node to form each node group in the upper node layer can ensure that the master node in each node group of each node layer in different rounds of block consensus is different, so that each node in the node group can be rotated.
- the master node guarantees the running sequence of the blockchain system.
- the blockchain system includes N-level node layers with hierarchical relationships, each node layer includes at least one node group, and each node group includes a master node and at least one slave node; the same level Any two node groups in the node layer include different nodes, each node in the i-1th level node layer is the master node in each node group included in the i-th level node layer, and each node in the Nth level node layer All consensus nodes in the blockchain system; for each node group in the i-th node layer, the master node of the node group determines the consensus of the node group according to the consensus state of each node in the node group to the consensus block As a result, if i is greater than 1, when the master node participates in the consensus of the i-1th level node layer, the consensus result of the node group is regarded as the consensus state of the master node for the consensus block; if i is equal to 1, then The consensus result of the node group
- the consensus process between large-scale nodes can be transformed into each node group Consensus process between a small number of nodes, thereby greatly reducing communication consumption and communication pressure; and, each node only needs to perform the consensus process in the node group to which the node belongs, so that it only needs to wait for other nodes in the node group.
- the consensus state sent by the node can perform the subsequent consensus process, without the need to wait for the consensus state sent by all nodes in the blockchain system to perform the subsequent consensus process, which can greatly reduce the consensus of each node.
- the time required for the process has greatly improved the consensus efficiency of the blockchain system.
- the step number shown in FIG. 6 is only an example of the execution process, and does not constitute a limitation on the order of execution of each step.
- the embodiment of the present invention also provides a consensus device based on the blockchain system, and the specific content of the device can be implemented with reference to the foregoing method.
- FIG. 7 is a schematic structural diagram of a consensus device based on a blockchain system provided by an embodiment of the present invention.
- the blockchain system includes an N-level node layer with a hierarchical relationship; wherein each node layer includes at least one node Group, each node group includes a master node and at least one slave node; any two node groups in the same node layer include different nodes; each node in the i-1th node layer is the i-th node layer The master node in each node group included; each node in the Nth level node layer is all the consensus nodes in the blockchain system;
- the master node in the node group includes:
- the determining module 701 is configured to determine the consensus result of the node group according to the consensus state of each node in the node group to be a consensus block;
- the processing module 702 is configured to, if the i is greater than 1, when the master node participates in the consensus of the i-1th level node layer, use the consensus result of the node group as the master node's response to the waiting The consensus state of the consensus block; if the i is equal to 1, the consensus result of the node group in the i-th node layer is taken as the consensus result of the block to be agreed;
- i and N are positive integers, and 1 ⁇ i ⁇ N.
- the device when the i is equal to 1, the device further includes a generating module 703 and a transceiver module 704;
- the generating module 703 is used for generating the block to be agreed upon;
- the transceiver module 704 is configured to: send the block to be consensus to the Any consensus node in the blockchain system or according to the hierarchical relationship sends the block to be agreed upon to each node in the Nth node layer;
- the processing module 702 takes the consensus result of the node group in the i-th node layer as the consensus result of the block to be agreed, and the transceiver module 704 is also used to: Send to any consensus node in the blockchain system or send the block to be agreed to each node in the Nth node layer in accordance with the hierarchical relationship; wherein, according to the hierarchical relationship Sending the block to be agreed or the consensus result of the block to be agreed to each node in the Nth node layer includes:
- the master node of the node group For each node group in the i-1th level node layer, the master node of the node group sends the block to be agreed or the consensus result of the block to be agreed to any of the node groups A slave node; any node in the node group sends the block to be agreed or the consensus result of the block to be agreed to any node in the node group in the i-th level node layer where the node is located .
- the blockchain system includes N-level node layers with hierarchical relationships, each node layer includes at least one node group, and each node group includes a master node and At least one slave node; any two node groups in the same node layer include different nodes, each node in the i-1th node layer is the master node in each node group included in the i-th node layer, and the Nth node
- Each node in the level node layer is all the consensus nodes in the blockchain system; for each node group in the i-th level node layer, the master node of the node group treats the consensus of the consensus block according to each node in the node group The state determines the consensus result of the node group.
- the consensus result of the node group is regarded as the consensus state of the master node for the consensus block; If i is equal to 1, then the consensus result of the node group is regarded as the consensus result of the block to be agreed; where i and N are positive integers, and 1 ⁇ i ⁇ N.
- the consensus process between large-scale nodes can be transformed into each node group Consensus process between a small number of nodes, thereby greatly reducing communication consumption and communication pressure; and, each node only needs to perform the consensus process in the node group to which the node belongs, so that it only needs to wait for other nodes in the node group.
- the consensus state sent by the node can perform the subsequent consensus process, without the need to wait for the consensus state sent by all nodes in the blockchain system to perform the subsequent consensus process, which can greatly reduce the consensus of each node.
- the time required for the process has greatly improved the consensus efficiency of the blockchain system.
- embodiments of the present invention also provide a computing device, including at least one processing unit and at least one storage unit, wherein the storage unit stores a computer program, and when the program is executed by the processing unit, The processing unit is caused to execute the consensus method based on the blockchain system described in any of the above-mentioned FIGS.
- embodiments of the present invention also provide a computer-readable storage medium that stores a computer program executable by a computing device, and when the program runs on the computing device, the computing device executes the foregoing The consensus method based on the blockchain system described in any of Figures 3 to 6.
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Marketing (AREA)
- Economics (AREA)
- Development Economics (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Abstract
Description
主节点的编号 | 节点标识 |
0 | 节点101 |
1 | 节点102 |
2 | 节点103 |
3 | 节点104 |
Claims (12)
- 一种基于区块链***的共识方法,其特征在于,所述区块链***包括存在层级关系的N级节点层;其中,每级节点层中包括至少一个节点组,每个节点组中包括一个主节点和至少一个从节点;同一级节点层中的任意两个节点组包括的节点不同;第i-1级节点层中的各节点为第i级节点层包括的各节点组中的主节点;第N级节点层中的各节点为所述区块链***中全部的共识节点;针对所述第i级节点层中的每个节点组,所述节点组的主节点根据所述节点组中各节点对待共识区块的共识状态确定所述节点组的共识结果;若所述i大于1,则在所述主节点参与所述第i-1级节点层的共识时,将所述节点组的共识结果作为所述主节点对所述待共识区块的共识状态;若所述i等于1,则将所述第i级节点层中节点组的共识结果作为所述待共识区块的共识结果;其中,i、N为正整数,1≤i≤N。
- 根据权利要求1所述的方法,其特征在于,第1级节点层中的节点组为第一节点组;在所述节点组的主节点根据所述节点组中各节点对待共识区块的共识状态确定所述节点组的共识结果之前,还包括:所述第一节点组的主节点生成所述待共识区块,并将所述待共识区块发送给所述区块链***中的任一共识节点;所述将第1级节点层中节点组的共识结果作为所述待共识区块的共识结果之后,还包括:所述第一节点组的主节点将所述待共识区块的共识结果发送给所述区块链***中的任一共识节点。
- 根据权利要求1所述的方法,其特征在于,所述第1级节点层中的节点组为第一节点组;在所述节点组的主节点根据所述节点组中各节点对待共识区块的共识状态确定所述节点组的共识结果之前,还包括:所述第一节点组的主节点生成所述待共识区块,并按所述层级关系将所述待共识区块发送给所述第N级节点层中的各节点;所述将第1级节点层中节点组的共识结果作为所述待共识区块的共识结果之后,还包括:所述第一节点组的主节点按所述层级关系将所述待共识区块的共识结果发送给所述第N级节点层中的各节点;其中,所述按所述层级关系将所述待共识区块或所述待共识区块的共识结果发送给所述第N级节点层中的各节点,包括:针对所述第i-1级节点层中的每个节点组,所述节点组的主节点将所述待共识区块或所述待共识区块的共识结果发送给所述节点组中的任一从节点;所述节点组中的任一节点将所述待共识区块或所述待共识区块的共识结果发送给所述第i级节点层中所述节点所在的 节点组中的任一节点。
- 根据权利要求2或3所述的方法,其特征在于,所述第一节点组的主节点将所述待共识区块发送给所述第N级节点层中的各节点后,还包括:针对于所述第N级节点层中的每个节点组,所述节点组的任一节点处理所述待共识区块得到所述节点对所述待共识区块的区块信息,并将所述节点对所述待共识区块的区块信息发送给所述节点组中的其它节点;所述节点组的节点根据所述节点对所述待共识区块的区块信息与所述节点组中的其它节点对所述待共识区块的区块信息,确定所述节点对所述待共识区块的共识状态;所述第一节点组的主节点将所述待共识区块的共识结果发送给所述第N级节点层中的各节点之后,还包括:所述区块链***中的任一共识节点根据所述待共识区块的共识结果更新所述共识节点内部的预设数据库。
- 根据权利要求4所述的方法,其特征在于,在所述区块链***中的任一共识节点根据所述待共识区块的共识结果更新所述共识节点内部的预设数据库之后,还包括:针对于所述第i级节点层中的每个节点组,从所述节点组包括的各节点中选举出所述节点组在下一轮区块共识中的主节点,以根据所述第N级节点层中各节点组在下一轮区块共识中的主节点构成所述第i-1级节点层中的各节点组。
- 一种基于区块链***的共识装置,其特征在于,所述区块链***包括存在层级关系的N级节点层;其中,每级节点层中包括至少一个节点组,每个节点组中包括一个主节点和至少一个从节点;同一级节点层中的任意两个节点组包括的节点不同;第i-1级节点层中的各节点为第i级节点层包括的各节点组中的主节点;第N级节点层中的各节点为所述区块链***中全部的共识节点;针对所述第i级节点层中的每个节点组,所述节点组中的主节点包括:确定模块,用于根据所述节点组中各节点对待共识区块的共识状态确定所述节点组的共识结果;处理模块,用于若所述i大于1,则在所述主节点参与所述第i-1级节点层的共识时,将所述节点组的共识结果作为所述主节点对所述待共识区块的共识状态;若所述i等于1,则将所述第i级节点层中节点组的共识结果作为所述待共识区块的共识结果;其中,i、N为正整数,1≤i≤N。
- 根据权利要求6所述的装置,其特征在于,在所述i等于1时,所述装置还包括生成模块和收发模块;所述生成模块用于:生成所述待共识区块;在所述确定模块根据所述节点组中各节点对待共识区块的共识状态确定所述节点组的共识结果之前,所述收发模块用于:将所述待共识区块发送给所述区块链***中的任一共识节点或者按照所述层级关系将所述待共识区块发送给所述第N级节点层中的各节点;在所述处理模块将所述第i级节点层中节点组的共识结果作为所述待共识区块的共识 结果,所述收发模块还用于:将所述待共识区块的共识结果发送给所述区块链***中的任一共识节点或者按照所述层级关系将所述待共识区块发送给所述第N级节点层中的各节点;其中,所述按所述层级关系将所述待共识区块或所述待共识区块的共识结果发送给所述第N级节点层中的各节点,包括:针对所述第i-1级节点层中的每个节点组,所述节点组的主节点将所述待共识区块或所述待共识区块的共识结果发送给所述节点组中的任一从节点;所述节点组中的任一节点将所述待共识区块或所述待共识区块的共识结果发送给第i级节点层中所述节点所在的节点组中的任一节点。
- 一种区块链***,其特征在于,所述区块链***包括存在层级关系的N级节点层;其中,每级节点层中包括至少一个节点组,每个节点组中包括一个主节点和至少一个从节点;同一级节点层中的任意两个节点组包括的节点不同;第i-1级节点层中的各节点为第i级节点层包括的各节点组中的主节点;第N级节点层中的各节点为所述区块链***中全部的共识节点;第一级节点层中的节点组为第一节点组;所述第一节点组,用于生成待共识区块,并将所述待共识区块发送给所述第N级节点层中的各节点;所述第N级节点层中的任一节点组,用于处理所述待共识区块,确定所述节点组中的每个节点对所述待共识区块的共识状态;所述第i级节点层中的任一节点组,用于根据所述节点组中各节点对待共识区块的共识状态确定所述节点组的共识结果;若所述i大于1,则在所述节点组的主节点参与所述第i-1级节点层的共识时,将所述节点组的共识结果作为所述主节点对所述待共识区块的共识状态;若所述i等于1,则将所述第i级节点层中节点组的共识结果作为所述待共识区块的共识结果;其中,i、N为正整数,1≤i≤N。
- 根据权利要求8所述的***,其特征在于,所述第一节点组还用于:将所述待共识区块的共识结果发送给所述第N级节点层中的各节点;所述第N级节点层还用于:根据所述待共识区块的共识结果更新所述第N级节点层的各节点内部的预设数据库。
- 根据权利要求9所述的***,其特征在于,在所述i大于1时,所述第i级节点层中的任一节点组还用于:从所述节点组包括的各节点中选举出所述节点组在下一轮区块共识中的主节点,以根据所述第N级节点层中各节点组在下一轮区块共识中的主节点构成所述第i-1级节点层中的各节点组。
- 一种计算设备,其特征在于,包括至少一个处理单元以及至少一个存储单元,其中,所述存储单元存储有计算机程序,当所述程序被所述处理单元执行时,使得所述处理单元执行权利要求1~5任一权利要求所述的方法。
- 一种计算机可读存储介质,其特征在于,其存储有可由计算设备执行的计算机程序,当所述程序在所述计算设备上运行时,使得所述计算设备执行权利要求1~5任一权利 要求所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910770124.0A CN110474986B (zh) | 2019-08-20 | 2019-08-20 | 一种基于区块链***的共识方法、装置及*** |
CN201910770124.0 | 2019-08-20 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021032138A1 true WO2021032138A1 (zh) | 2021-02-25 |
Family
ID=68512928
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2020/110108 WO2021032138A1 (zh) | 2019-08-20 | 2020-08-19 | 一种基于区块链***的共识方法、装置及*** |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110474986B (zh) |
WO (1) | WO2021032138A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113254272A (zh) * | 2021-06-09 | 2021-08-13 | 腾讯科技(深圳)有限公司 | 区块链网络的数据处理方法、装置、计算机设备和介质 |
CN113676355A (zh) * | 2021-08-27 | 2021-11-19 | 浙商银行股份有限公司 | 一种区块链多层级组网方法、设备及存储介质 |
CN114338040A (zh) * | 2021-12-29 | 2022-04-12 | 大连理工江苏研究院有限公司 | 一种区块链节点的分组多链三次共识方法 |
CN114363084A (zh) * | 2022-01-13 | 2022-04-15 | 西南林业大学 | 一种基于区块链的跨境贸易数据可信存储方法 |
CN115314369A (zh) * | 2022-10-12 | 2022-11-08 | 中国信息通信研究院 | 区块链节点共识的方法和装置、设备和介质 |
CN115473908A (zh) * | 2022-11-03 | 2022-12-13 | 山东区块链研究院 | 一种区块链节点故障恢复方法及区块链*** |
CN116015929A (zh) * | 2022-12-30 | 2023-04-25 | ***股份有限公司 | 一种联盟链准入管理方法及装置 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110474986B (zh) * | 2019-08-20 | 2022-08-12 | 深圳前海微众银行股份有限公司 | 一种基于区块链***的共识方法、装置及*** |
CN110912994B (zh) * | 2019-11-22 | 2022-02-11 | 中国联合网络通信集团有限公司 | 一种区块链共识方法及装置 |
CN111339187B (zh) * | 2020-02-20 | 2023-05-09 | 百度在线网络技术(北京)有限公司 | 基于智能合约的数据处理方法、装置、设备和存储介质 |
CN111046110B (zh) * | 2020-03-16 | 2020-06-26 | 支付宝(杭州)信息技术有限公司 | 用于区块链***的节点管理的方法、节点和计算设备 |
CN111524011B (zh) * | 2020-05-06 | 2023-05-30 | 杭州复杂美科技有限公司 | 平行链共识确认方法、设备和存储介质 |
CN111711526B (zh) * | 2020-06-16 | 2024-03-26 | 深圳前海微众银行股份有限公司 | 一种区块链节点的共识方法及*** |
CN111786818B (zh) * | 2020-06-16 | 2023-04-18 | 杭州溪塔科技有限公司 | 一种区块链共识节点状态监控方法和装置 |
CN112434311B (zh) * | 2020-11-05 | 2022-05-20 | 德州职业技术学院(德州市技师学院) | 一种区块链数据加密共享方法和*** |
CN113347174B (zh) * | 2021-05-31 | 2022-12-13 | 矩阵元技术(深圳)有限公司 | 区块链中的共识方法、装置和电子设备 |
CN113505155B (zh) * | 2021-07-06 | 2023-05-12 | 中国联合网络通信集团有限公司 | 基于区块链网络的交易信息检索方法和检索装置 |
CN113837758A (zh) * | 2021-09-27 | 2021-12-24 | 深圳前海微众银行股份有限公司 | 一种区块链***的共识方法及装置 |
CN114513525B (zh) * | 2022-04-19 | 2022-07-05 | 北京易鲸捷信息技术有限公司 | 采用跨机房链式转发的数据一致性优化方法及*** |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108182635A (zh) * | 2017-12-18 | 2018-06-19 | 深圳前海微众银行股份有限公司 | 区块链共识方法、***和计算机可读存储介质 |
CN109819003A (zh) * | 2017-11-22 | 2019-05-28 | 南京理工大学 | 一种区块链的分层共识方法和*** |
US20190173666A1 (en) * | 2017-12-01 | 2019-06-06 | International Business Machines Corporation | Hierarchical blockchain consensus optimazation scheme |
CN110113388A (zh) * | 2019-04-17 | 2019-08-09 | 四川大学 | 一种基于改进型聚类算法的区块链***共识的方法和装置 |
CN110474986A (zh) * | 2019-08-20 | 2019-11-19 | 深圳前海微众银行股份有限公司 | 一种基于区块链***的共识方法、装置及*** |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10304143B2 (en) * | 2016-05-05 | 2019-05-28 | Lance Timothy Kasper | Consensus system for manipulation resistant digital record keeping |
CN107147735B (zh) * | 2017-05-12 | 2020-08-11 | 北京博晨技术有限公司 | 一种基于分层结构的分布式账本*** |
CN109246194B (zh) * | 2018-08-13 | 2021-06-08 | 佛山市顺德区中山大学研究院 | 基于多领导节点的实用拜占庭容错区块链共识方法及*** |
CN109547527B (zh) * | 2018-10-12 | 2021-04-06 | 广西师范大学 | 区块链中基于信誉机制的分区快速共识方法 |
CN109462587B (zh) * | 2018-11-09 | 2020-03-27 | 四川虹微技术有限公司 | 区块链分层共识方法、区块链网络***及区块链节点 |
CN109327548A (zh) * | 2018-11-27 | 2019-02-12 | 北京瑞卓喜投科技发展有限公司 | 一种区块链更新方法及区块链更新*** |
CN109547211B (zh) * | 2018-11-29 | 2020-06-30 | 浙江大学 | 应用数字签名技术的分级并发拜占庭共识方法及*** |
-
2019
- 2019-08-20 CN CN201910770124.0A patent/CN110474986B/zh active Active
-
2020
- 2020-08-19 WO PCT/CN2020/110108 patent/WO2021032138A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109819003A (zh) * | 2017-11-22 | 2019-05-28 | 南京理工大学 | 一种区块链的分层共识方法和*** |
US20190173666A1 (en) * | 2017-12-01 | 2019-06-06 | International Business Machines Corporation | Hierarchical blockchain consensus optimazation scheme |
CN108182635A (zh) * | 2017-12-18 | 2018-06-19 | 深圳前海微众银行股份有限公司 | 区块链共识方法、***和计算机可读存储介质 |
CN110113388A (zh) * | 2019-04-17 | 2019-08-09 | 四川大学 | 一种基于改进型聚类算法的区块链***共识的方法和装置 |
CN110474986A (zh) * | 2019-08-20 | 2019-11-19 | 深圳前海微众银行股份有限公司 | 一种基于区块链***的共识方法、装置及*** |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113254272A (zh) * | 2021-06-09 | 2021-08-13 | 腾讯科技(深圳)有限公司 | 区块链网络的数据处理方法、装置、计算机设备和介质 |
CN113254272B (zh) * | 2021-06-09 | 2022-09-13 | 腾讯科技(深圳)有限公司 | 区块链网络的数据处理方法、装置、计算机设备和介质 |
CN113676355A (zh) * | 2021-08-27 | 2021-11-19 | 浙商银行股份有限公司 | 一种区块链多层级组网方法、设备及存储介质 |
CN113676355B (zh) * | 2021-08-27 | 2024-04-23 | 浙商银行股份有限公司 | 一种区块链多层级组网方法、设备及存储介质 |
CN114338040A (zh) * | 2021-12-29 | 2022-04-12 | 大连理工江苏研究院有限公司 | 一种区块链节点的分组多链三次共识方法 |
CN114338040B (zh) * | 2021-12-29 | 2024-03-08 | 大连理工江苏研究院有限公司 | 一种区块链节点的分组多链三次共识方法 |
CN114363084A (zh) * | 2022-01-13 | 2022-04-15 | 西南林业大学 | 一种基于区块链的跨境贸易数据可信存储方法 |
CN115314369A (zh) * | 2022-10-12 | 2022-11-08 | 中国信息通信研究院 | 区块链节点共识的方法和装置、设备和介质 |
CN115473908A (zh) * | 2022-11-03 | 2022-12-13 | 山东区块链研究院 | 一种区块链节点故障恢复方法及区块链*** |
CN116015929A (zh) * | 2022-12-30 | 2023-04-25 | ***股份有限公司 | 一种联盟链准入管理方法及装置 |
CN116015929B (zh) * | 2022-12-30 | 2024-05-17 | ***股份有限公司 | 一种联盟链准入管理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110474986B (zh) | 2022-08-12 |
CN110474986A (zh) | 2019-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021032138A1 (zh) | 一种基于区块链***的共识方法、装置及*** | |
JP7362654B2 (ja) | 分割されたブロックチェーンネットワークにおけるブロックチェーンのブロックの維持管理 | |
Xu et al. | CUB, a consensus unit-based storage scheme for blockchain system | |
CN107657438B (zh) | 一种区块链生成方法、数据验证方法、节点及*** | |
CN110517141B (zh) | 一种基于区块链***的共识方法及装置 | |
US20200143366A1 (en) | Methods for decentralized digital asset transfer and smart contract state transition | |
US11461310B2 (en) | Distributed ledger technology | |
JP2020504927A (ja) | イベントの削除を可能にする分散データベースのための方法および装置 | |
CN111902817A (zh) | 基于共享节点和纠错编码的区块链数据存储 | |
CN111611315A (zh) | 面向金融大数据的多叉树结构区块链集成优化存储方法 | |
US11036760B2 (en) | Method for parallel maintenance of data consistency | |
CN111698094B (zh) | 一种基于区块链***的共识方法及区块链*** | |
KR20190068799A (ko) | 서비스 존 기반의 계층적 합의 방법 및 장치 | |
CN111095210A (zh) | 基于纠错编码存储共享的区块链数据 | |
US11354335B2 (en) | Method and apparatus for obtaining number for transaction-accessed variable in blockchain in parallel | |
CN114626547A (zh) | 一种基于区块链的群组协同学习方法 | |
US20230102617A1 (en) | Repeat transaction verification method, apparatus, and device, and medium | |
CN113886501A (zh) | 一种基于多链架构下的区块链业务模块扩展方法 | |
CN110704438A (zh) | 一种区块链中布隆过滤器的生成方法及装置 | |
Qin et al. | A secure and effective construction scheme for blockchain networks | |
WO2020073246A1 (zh) | 基于区块链的交易数据处理方法、设备和存储介质 | |
CN115544026B (zh) | 数据存储方法、装置、电子设备和存储介质 | |
Ren et al. | Toward reducing cross-shard transaction overhead in sharded blockchains | |
Geng et al. | Blockchain-inspired Framework for Runtime Verification of IoT Ecosystem Task Fulfillment | |
Ying et al. | Gcfl: blockchain-based efficient federated learning for heterogeneous devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 20854568 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 20854568 Country of ref document: EP Kind code of ref document: A1 |
|
32PN | Ep: public notification in the ep bulletin as address of the adressee cannot be established |
Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 09/08/2022) |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 20854568 Country of ref document: EP Kind code of ref document: A1 |