WO2020181412A1 - 一种区块链共识的处理方法、装置及系统 - Google Patents

一种区块链共识的处理方法、装置及系统 Download PDF

Info

Publication number
WO2020181412A1
WO2020181412A1 PCT/CN2019/077481 CN2019077481W WO2020181412A1 WO 2020181412 A1 WO2020181412 A1 WO 2020181412A1 CN 2019077481 W CN2019077481 W CN 2019077481W WO 2020181412 A1 WO2020181412 A1 WO 2020181412A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
blockchain
consensus
node
preset
Prior art date
Application number
PCT/CN2019/077481
Other languages
English (en)
French (fr)
Inventor
姜海涛
吕晓一
李升林
张军
孙立林
Original Assignee
云图有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 云图有限公司 filed Critical 云图有限公司
Priority to PCT/CN2019/077481 priority Critical patent/WO2020181412A1/zh
Publication of WO2020181412A1 publication Critical patent/WO2020181412A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange

Definitions

  • the solution of the embodiment of this specification belongs to the field of Internet information processing technology and computer technology, and in particular relates to a blockchain consensus processing method, device and system.
  • the consensus mechanism is a mechanism that allows all or most of the network nodes to agree on certain transactions or data.
  • the consensus mechanism allows the system to work normally even when some network nodes fail. This fault tolerance is a major advantage of the blockchain system. Therefore, the consensus mechanism is the core of the blockchain system.
  • performance efficiency high concurrency, high throughput, high-speed processing
  • resource consumption CPU, network input and output, storage and other computer resources consumed in the consensus process
  • fault tolerance The ability to prevent attacks and fraud
  • scalability new nodes join and exit, and participate in consensus.
  • PoW algorithm including its extended algorithms PoS and DPoS
  • Paxos algorithm Paxos algorithm
  • PBFT algorithm PBFT algorithm
  • DBFT algorithm DBFT algorithm
  • the PoW algorithm relies on machines to perform mathematical operations to obtain accounting rights.
  • the PoW algorithm has higher resource consumption and weaker supervisability.
  • each time a consensus is reached the entire network must participate in the calculation, which is relatively low in performance and efficiency and allows fault tolerance. 50% of nodes in the entire network have errors.
  • the main idea of the PoS algorithm is that the difficulty of obtaining the node's accounting rights is inversely proportional to the rights and interests held by the nodes.
  • PoW Compared with PoW, it reduces the resource consumption caused by mathematical operations to a certain extent, and the performance has been correspondingly improved, but it is still based on Ha It is hoped that the method of obtaining accounting rights through competition is weak in supervisability, and the consensus mechanism has the same fault tolerance as PoW.
  • the main difference between the DPoS algorithm and PoS is that the node elects several agents, which are verified and booked by the agents. Its compliance supervision, performance, resource consumption and fault tolerance are similar to PoS.
  • the Paxos algorithm is a consensus mechanism based on electing leaders. The leader node has absolute authority and allows strong supervision nodes to participate. It has high performance and low resource consumption. All nodes are generally wired offline access mechanisms, but they are not allowed in the election process.
  • the PBFT algorithm is similar to Paxos. It is also a consensus mechanism that uses permissioned voting and the minority obeys the majority to elect the leader for accounting. However, the consensus mechanism allows Byzantine fault tolerance.
  • the consensus mechanism allows strong supervision nodes to participate, and has the ability to classify permissions and performance. Higher and lower energy consumption.
  • the algorithm will jointly elect a leader by the nodes of the entire network in each round of accounting, allowing 33% of nodes to do evil, with a fault tolerance of 33%, but each round of PBFT consensus is based on the confirmation of the previous block Can proceed to the next round, seriously affecting the consensus efficiency.
  • the DBFT algorithm is based on the Byzantine fault-tolerant algorithm and adds the authorization consensus wit.
  • the purpose of the embodiments of this specification is to provide a blockchain consensus processing method, device and system, which can implement consensus and block generation in parallel, so that consensus and block generation efficiency, scalability, resource consumption and fault tolerance are more balanced and efficient.
  • this application provides a method for processing blockchain consensus, including:
  • the block-producing node in the blockchain continuously generates at least one block, and broadcasts the block after signing;
  • the consensus node in the blockchain receives the block, and verifies whether the block is legal according to preset rules; when it is confirmed, it signs the block and broadcasts it;
  • the node in the blockchain judges whether it is in the block production window period, and confirms that the node in the block production window period is used as the block production node during the block production window period;
  • the consensus node in the blockchain receives a block and verifies whether the block is legal according to a preset rule, including:
  • the preset legal rule When it is determined that the preset legal rule is satisfied, it is determined whether the block satisfies a preset reasonable rule, wherein the preset rule includes the preset legal rule and the preset reasonable rule.
  • the judging whether the block meets a preset legal rule includes:
  • I represents the position of the block producer among all nodes
  • N represents the current system time
  • L represents the generation time of the last block in the previous round
  • n represents the number of consensus nodes selected in each round
  • O represents each consensus The block generation window time of the node divided by the difference between 2 and 1000;
  • the preset reasonable rule includes:
  • the descendant blocks of the block When it is confirmed that the descendant blocks of the block have been received, the descendant blocks are simultaneously signed and broadcast.
  • the nodes in the blockchain judge whether they are in the block generation window according to the following formula:
  • I represents the position of the block producer among all nodes
  • N represents the current system time
  • L represents the generation time of the last block in the previous cycle.
  • the preset in-chain rule includes that the height of the block is greater than the height of the current irreversible block in the blockchain, and the ancestor block of the block Is the current irreversible block;
  • the block is written into the block chain, and the block is updated as the current irreversible block in the block chain.
  • the embodiment of this specification also provides a blockchain consensus processing device, the device includes:
  • a block generation module used for the block producing node in the block chain to continuously generate at least one block, and broadcast the block after signing;
  • the block verification module is used for the consensus node in the block chain to receive the block and verify whether the block is legal according to preset rules; when the legality is confirmed, the block is signed and broadcast;
  • Block generation judging module for nodes in the blockchain to determine whether they are in the block generation window period, and when confirming that during the block generation window period, use the node in the block generation window period as the block generation node;
  • the consensus confirmation module is used to confirm that the block obtains the consensus of the nodes in the block chain when the number of signatures of the generated block reaches the preset number, and write the consensus block into the block chain.
  • the block verification module includes:
  • the first judging unit is used to judge whether the block meets preset legal rules
  • the second judging unit is configured to determine whether the block satisfies a preset reasonable rule when it is determined that the preset legal rule is satisfied, wherein the preset rule includes the preset legal rule and the preset reasonable rule .
  • the confirmation when the confirmation is legal, when the block is signed and broadcast, it includes:
  • the third judging unit is used to judge whether the descendant blocks of the block have been received before the signing and broadcasting of the block;
  • the descendant block processing unit is used to confirm that the descendant blocks of the block have been received, and then simultaneously sign the descendant blocks and broadcast it.
  • the fourth judging unit is used to judge whether the block satisfies the preset in-chain rule, and the preset in-chain rule includes that the height of the block is greater than the height of the current irreversible block in the blockchain, and The ancestor block of the block is the current irreversible block;
  • the block writing unit is used to write the block into the block chain when it is confirmed that it is satisfied, and update the block as the current irreversible block in the block chain.
  • the search and judgment unit is configured to search for descendant blocks from the current irreversible block, and determine whether there is a higher irreversible block in the descendant blocks;
  • the update unit is used to confirm the existence of all blocks between the higher irreversible block and the current irreversible block into the blockchain, and update the higher irreversible block to The current irreversible block in the blockchain.
  • the embodiment of the present specification provides a blockchain consensus processing device, including a processor and a memory for storing executable instructions of the processor, the instructions being executed by the processor include the following steps:
  • the block-producing node in the blockchain continuously generates at least one block, and broadcasts the block after signing;
  • the consensus node in the blockchain receives the block, and verifies whether the block is legal according to preset rules; when it is confirmed, it signs the block and broadcasts it;
  • the node in the blockchain judges whether it is in the block production window period, and confirms that the node in the block production window period is used as the block production node during the block production window period;
  • the embodiment of this specification provides a blockchain consensus processing system, including at least one processor and a memory storing computer-executable instructions.
  • the processor executes the instructions, the implementation of any one of the foregoing embodiments Method steps.
  • the embodiment of this specification provides a blockchain consensus processing method, device and system.
  • a certain node in the blockchain When a certain node in the blockchain is in a round of block generation window period, it can continuously generate multiple blocks, and then package and sign them. Broadcast to other nodes in the blockchain.
  • the node When the node receives a new block, it will verify it. If the verification passes, it will sign the block again and broadcast it.
  • the block becomes the last irreversible block, that is, it is confirmed that the block obtains the consensus of the nodes in the block chain, and the block is written into the block chain.
  • the consensus and the block generation process are carried out at the same time, that is, while the consensus is being carried out, the block is generated. There is no need to wait for the previous block to confirm the chain before proceeding to the next round of consensus. In this way, consensus and block generation efficiency, scalability, resource consumption, and fault tolerance can be more balanced and efficient, closer to or even fully in line with commercial real-time processing requirements.
  • Figure 1 is a schematic diagram of the process of consensus and block execution in the current consensus mechanism provided in this manual
  • FIG. 2 is a schematic flowchart of an embodiment of a method for processing a blockchain consensus provided in this specification
  • FIG. 3 is a schematic diagram of a process of parallel execution of consensus and block generation in an embodiment provided in this specification
  • FIG. 4 is a schematic flowchart of a specific embodiment of a blockchain consensus process provided in this specification.
  • FIG. 5 is a schematic diagram of a module structure of an embodiment of a processing device for blockchain consensus provided in this specification
  • FIG. 6 is a schematic diagram of the module structure of an embodiment of a blockchain consensus processing system provided in this specification.
  • Blockchain technology also known as distributed ledger technology, is a distributed Internet database technology.
  • a network constructed based on blockchain technology can be called a blockchain network.
  • the blockchain network contains network nodes (also called blockchain nodes, referred to as nodes for short), and each node corresponds to at least one zone Block chain, each block chain contains at least one block.
  • the blockchain network has the characteristics of decentralization, openness and transparency, non-tampering, and trustworthiness. Based on these characteristics, the application of blockchain technology is becoming more and more extensive.
  • the process of business data on-chain that is, stored in the blockchain network
  • the acceptance phase can be understood as the business data to be chained is received by a blockchain node in the blockchain network, and the blockchain node accepts the business data;
  • the consensus phase can be understood as the blockchain node After accepting the business data, other blockchain nodes in the blockchain network need to participate in the consensus processing of the business data. After the business data has passed the consensus, it can enter the storage phase; the storage phase can be understood as the blockchain node will The business data passed by the consensus is processed on the chain. Among the three stages experienced by business data on the chain, the consensus stage requires the participation of other blockchain nodes in the blockchain network.
  • Fig. 1 is a schematic diagram of the flow of consensus and block generation execution in the current consensus mechanism provided in this specification.
  • the dashed box indicates the block generation time window of a certain node.
  • a node needs to confirm the previous block B0 before it can produce the next block B1. That is to say, the nodes in the current blockchain will take turns responsible for generating blocks. After each block is generated, it will be passed to the next node in order.
  • the second node is responsible for packaging new blocks and needs to confirm the previous one.
  • the content of a block when a block is confirmed by more than a preset number of nodes, the block will be confirmed as an irreversible block.
  • the consensus mechanism in the current blockchain has a similar problem, that is, the serial execution of consensus and block generation. This mechanism will directly cause the consensus and block generation efficiency to be limited, and cannot break the existing bottleneck to achieve a high throughput level.
  • the embodiments of this specification provide a method for processing blockchain consensus.
  • consensus and block generation can be performed simultaneously, that is, consensus and block generation are performed concurrently.
  • Consensus while producing blocks, there is no need to wait until the previous block is confirmed on the chain before proceeding to the next round of consensus.
  • a node in the blockchain is in a block generation window period, it can continuously generate multiple blocks, and then package the signature and broadcast it to other nodes in the blockchain.
  • the node receives a new block It will be verified afterwards. If the verification is passed, the block will be signed and broadcast again.
  • the block becomes the last irreversible block, that is, it is confirmed that the block has obtained the block
  • the consensus of the nodes in the chain writes the block into the blockchain. In this way, nodes in the blockchain can make consensus on multiple blocks at the same time as the block is produced. There is no need to wait for the previous block to be confirmed to obtain a consensus before reaching a consensus on another block, which makes the consensus and block production efficiency and scalability , Resource consumption and fault tolerance are more balanced and efficient, closer to or even fully in line with commercial real-time processing requirements.
  • FIG. 2 is a schematic flowchart of an embodiment of a blockchain consensus processing method provided in this specification.
  • this specification provides method operation steps or device structures as shown in the following embodiments or drawings, the method or device may include more or fewer operation steps after partial combination based on conventional or no creative labor. Or modular unit.
  • steps or structures where there is no necessary causal relationship logically the execution order of these steps or the module structure of the device is not limited to the execution order or module structure shown in the embodiments of this specification or the drawings.
  • Fig. 2 A specific embodiment is shown in Fig. 2.
  • the method may include:
  • S1 The block producer in the blockchain continuously generates at least one block, and signs the block and broadcasts it.
  • a node in the blockchain is actually a computer (server) connected to the blockchain. Any networked computer can access the blockchain, so there are countless nodes on the blockchain.
  • a block is formed by packing a bunch of accounts (transactions) together. Many blocks are organically organized one by one, which is a blockchain. There are many transaction entries in the block, and it also carries some other data, such as hash, timestamp, index number, previous block data hash, random number, etc.
  • a block is not equal to a node, the blocks on the blockchain are limited, and no more new ones will be added after reaching a certain number. For ease of understanding, you can think of nodes as points, blocks as lines, and blockchain as faces. Nodes are the basic unit of information processing in blockchain application technology. After many nodes process information, the information will be time stamped and generated. Data blocks are connected in chronological order to form a blockchain.
  • any networked computer can access the blockchain, there are countless nodes on the blockchain.
  • a part of all nodes in the blockchain can be selected for block generation and verification according to some rules, that is, super nodes are elected by all nodes in the blockchain network, and the super nodes are used to generate blocks and verify. Consensus, thereby greatly reducing the number of nodes in the consensus process and improving the efficiency of block consensus processing.
  • nodes refer to all nodes in the blockchain, and in other embodiments, nodes refer to super nodes that are elected through elections.
  • the nodes in the embodiments of the present specification all refer to super nodes elected by all nodes in the blockchain network, also called consensus nodes, hereinafter referred to as nodes.
  • the generating node can be understood as the node that is producing the block in the blockchain, or it can be understood as being in the blockchain.
  • the block generation window period is the block generation time of the node, for example, 3 seconds, 1 minute, 5 minutes, etc., which can be set according to actual needs.
  • that the block producer node in the blockchain continuously generates at least one block may include that the block producer node continuously generates at least one block at a preset time interval within the block producer window period, so that the block producer node After a block is generated, there is no need to wait for the block to be confirmed on the chain before the generation and consensus of the next block can be carried out.
  • the unconfirmed blocks in the generated multiple blocks are temporarily stored in the memory. Once a fork occurs, the effective chain can be quickly switched in the memory.
  • the block Block data is written to the blockchain.
  • the block producing node strictly follows the preset time to produce the block, and the preset time here can be understood as the block producing window period. Specifically, when a certain node is in a round of block generation window period, it can continuously generate multiple blocks every p seconds within the preset block generation window period, without waiting for the block to be confirmed on the chain Then proceed to the next block generation and consensus.
  • Figure 3 is a schematic flow diagram of the parallel execution of consensus and block generation in an embodiment provided in this specification.
  • the dotted frame represents the block generation time window of a certain node.
  • a node can be Continuously produce multiple blocks B1, B2, B3,..., Bn while confirming blocks B0, B1, B2,..., Bn-1, without waiting for the confirmation of the previous block (such as B1) Reproduce the next block (B2). Further, for example, during the block generation window, the block generation node continuously generates blocks N and N+1 every 0.5 seconds, and blocks N+1 can be performed without waiting for block N to confirm on the chain.
  • the emergence and consensus It should be noted that, usually, only one node can produce blocks during the block production window.
  • the block generation order of the nodes can be random or ordered according to preset rules, and there is no restriction on this.
  • the preset time interval can be set according to actual scene requirements, and there is no restriction on this.
  • each block is packaged and signed separately, and then broadcast to other nodes in the blockchain (also called consensus nodes) for verification.
  • the block producing node generates several blocks at a certain time interval within a preset block producing window.
  • the block producing node immediately broadcasts to other nodes after signing.
  • a signature also called a public key digital signature or an electronic signature, etc.
  • the aforementioned signature may be a character string corresponding to the user's identity and not easy to forge.
  • the purpose of the signature is to ensure that the data is not tampered with. There is no change in the business data after the signature, and only one more data signature. If the data is modified, the corresponding data signature will be changed. You can know whether the data has been tampered with by performing signature verification on the data.
  • S2 The consensus node in the blockchain receives a block and verifies whether the block is legal according to a preset rule; when it is confirmed to be legal, it signs the block and broadcasts it.
  • the consensus node is usually a node elected in the blockchain, which includes the block producer. Normally, the block producer can also be called the proposer, and other consensus nodes can be called the verifier.
  • each block after the block producer generates multiple blocks continuously, each block will be packaged and signed separately, and then broadcast to other consensus nodes in the blockchain for verification. After receiving it, other consensus nodes will perform legal verification according to preset rules. After the verification is passed, they will sign again and broadcast to other nodes.
  • the verification of whether the block is legal may mainly include two methods: legality verification and rationality verification.
  • other consensus nodes in the blockchain may only verify the legality of the block after receiving it, and sign and broadcast when the legality condition is met.
  • other consensus nodes in the blockchain may only verify the rationality of the block, and sign and broadcast when the rationality condition is met.
  • the granularity is relatively coarse, so other consensus nodes in the blockchain can first verify the legality of the block after receiving it. Then verify the rationality, sign and broadcast when all the conditions of legality and rationality are met.
  • Whether the block is legal includes: judging whether the block meets a preset legal rule; when it is determined that the preset legal rule is satisfied, judging whether the block meets a preset reasonable rule, wherein the preset rule includes The preset legal rules and the preset reasonable rules.
  • the preset reasonable rules include: whether the height of the current block meets the time window period of the current node; whether the block generation time of the current block and the block generation time of the previous block meet the block generation interval requirement; the current node's maximum Whether the irreversible block is the ancestor block of the block; whether the current node has signed other blocks of the same height.
  • the above-mentioned highest irreversible block is the block with the highest height in the current blockchain.
  • the height of the above-mentioned block is the number of blocks connected to the main chain, that is, the number of blocks connected to the blockchain.
  • the default height of the founding block is 0, and the height of the next block is 1, and so on (the rule of the blockchain is that the system only recognizes the longest block Chain).
  • the height of a certain block is 386357, which means that the number of the longest chain block from the creation block to the current block is 386357+1.
  • the height of the block can be used to identify the position of the block in the blockchain, and based on this, find all the basic attributes and transaction records related to this block.
  • the judging whether the block satisfies the preset legal rule includes: judging whether the block satisfies the formula (1), if so, determining that the block satisfies the preset legal rule; if not, then It is determined that the block does not satisfy the preset legal rule, and the block is discarded.
  • I can represent the position of the block producer among all nodes
  • N can represent the current system time
  • L can represent the generation time of the last block in the previous round of rotation
  • n can represent the number of consensus nodes selected in each round
  • O It can represent the block generation window time of each consensus node divided by the difference between 2 and 1000;
  • the block will be discarded. In other embodiments, if formula (1) is satisfied but at least one of the reasonableness criteria is not satisfied, the block will also be discarded.
  • the confirmation when the block is signed and broadcast, it may further include: judging whether the block has been received before signing and broadcasting.
  • the consensus node in the blockchain receives the block and verifies that the block satisfies all the conditions of legitimacy and rationality, while signing and broadcasting the block, it will further determine whether there is any receipt before. If the descendant blocks of the block have been received, the block and the descendant blocks of the block will be signed together and broadcast; if not received, only the block Broadcast after signing. For example, after the verification of the current block is passed, and two descendant blocks of the block are received, the block and the two descendant blocks are collectively signed and broadcast.
  • S3 The node in the blockchain judges whether it is in the block generation window period, and confirms that the node in the block generation window period is used as the block generation node during the block generation window period.
  • the block generation window period is the block generation time of the node, for example, 3 seconds, 1 minute, 5 minutes, etc. Since the block generating node in the blockchain can continuously generate multiple blocks at a preset time interval within the block generating window period, the block generating window period can be set according to actual needs. In some embodiments, after the block generation window period is set, each block generation node strictly produces blocks according to the set time. If no block is generated during the block generation window period, and no block is generated within the specified time , It will be removed from the list of block producers until it indicates to the blockchain to start producing blocks again. In this way, unreliable block producers can be eliminated to minimize the number of missed blocks, thereby ensuring the smooth operation of the network.
  • the block generation sequence of the nodes in the blockchain is random.
  • the nodes in the blockchain will first determine whether they are in the block generation window. Specifically, you can judge whether you are in the block generation window period according to the following formula:
  • I can represent the position of the block producing node among all nodes
  • N can represent the current system time
  • L can represent the generation time of the last block in the previous cycle.
  • the block generation order of the nodes in the blockchain is pre-numbered according to preset rules.
  • the nodes in the blockchain will first judge themselves according to the corresponding method. Whether it is in the block generation window.
  • the method for the node to determine whether it is in the block generation window period can also be based on other methods or methods familiar to those in the art, which is not limited in this specification.
  • a node in the blockchain judges that it is in the block generation window period, it will use the node as a block generation node to generate the block, and then sign and broadcast it. Specifically, after a block producing node continuously produces blocks, when the next node starts producing blocks, the remaining nodes will verify whether they are in the block production window period. If so, the node has the right to produce blocks, and will be at a preset time interval Continuously produce blocks. For example, node 1 continuously generates 6 new blocks, and then switches to the next 6 blocks after the next node that has the right to generate blocks.
  • the preset number is set according to the actual situation. Consensus is the common understanding of multiple nodes. Writing to the blockchain is also called on-chain.
  • the set number can be at least two-thirds of nodes in a group of limited number of nodes, or three-quarters of nodes, etc., which can be set according to actual conditions, and there is no restriction on this.
  • the block after confirming that the block obtains the consensus of the nodes in the blockchain, before writing the block to the blockchain, it is also necessary to determine whether the block meets the chain entry rules. Specifically, it is determined whether the block satisfies the preset chain-in rule, and the preset chain-in rule includes that the height of the block is greater than the height of the current irreversible block in the block chain, and the height of the block
  • the ancestor block is the current irreversible block; when it is confirmed that it is satisfied, the block is written into the blockchain, and the block is updated to the current irreversible block in the blockchain.
  • the method includes: starting from the current irreversible block, searching for descendant blocks, and determining whether the descendant blocks are Whether there is a higher irreversible block; when it is confirmed that it exists, all blocks between the higher irreversible block and the current irreversible block are written into the blockchain, and the higher irreversible block
  • the block update is the current irreversible block in the blockchain. Specifically, for example, when the number of signatures in a block is collected to 3f+1, where f represents the number of nodes that did not respond or failed, the block will be confirmed eventually, but it will be performed before the confirmed block goes online. Further judgment.
  • the confirmed block becomes a new irreversible block.
  • search The higher irreversible new block in the descendant block, if there is a higher irreversible block, continue to switch the higher irreversible block to the current highest irreversible block.
  • the new irreversible block needs to be changed to the original All blocks between irreversible blocks that have been added to the chain enter the chain.
  • the embodiment of this specification provides a blockchain consensus processing method.
  • the block producer generates multiple blocks during the block production window, and after each block is generated, it immediately broadcasts to other nodes after signing it.
  • the consensus and the block production process can be carried out at the same time, that is, while the consensus is being carried out, the block is produced at the same time. There is no need to wait until the previous block is confirmed on the chain before the next round of consensus, which makes the consensus and block production efficiency , Scalability, resource consumption and fault tolerance are more balanced and efficient, closer to or even fully in line with commercial real-time processing requirements.
  • Fig. 4 is a schematic flow diagram of a specific embodiment of a blockchain consensus process provided in this specification, which includes block generation proposal, block verification and signature, confirmation and writing phases. The specific process and steps are as follows:
  • Block generation proposal The node in the blockchain first determines whether it is in the block generation window period. The node in the block generation window period does not need to wait for the previous block to be confirmed before generating the block, that is, multiple blocks can be continuously generated , After signing and broadcasting to other consensus nodes (consensus node 1, consensus node 2, consensus node 3). Assuming that the block producer node continuously produced blocks N and N+1 during the window period, signed it after packaging, and then broadcast it to other consensus nodes.
  • Block verification and signature other consensus nodes (consensus node 1, consensus node 2, consensus node 3) will perform block verification after receiving the new block. If the verification is passed, the block will be signed again , And broadcast the signed block.
  • the method provided by the above embodiment generates multiple blocks continuously during the block generation window period, and each block is generated, it is broadcasted to other nodes immediately after the signature is performed, and there is no need to wait until the previous block is confirmed to be on the chain.
  • the next round of block generation and consensus realizes the parallelization of consensus and block generation, making consensus and block generation efficiency, scalability, resource consumption and fault tolerance more balanced and efficient, closer to or even fully compliant with commercial real-time processing requirements.
  • one or more embodiments of this specification also provide a device for processing blockchain consensus.
  • the described devices may include systems (including distributed systems), software (applications), modules, components, servers, clients, etc., which use the methods described in the embodiments of this specification, combined with necessary implementation hardware devices.
  • the devices in one or more embodiments provided in the embodiments of this specification are as described in the following embodiments. Since the implementation scheme of the device to solve the problem is similar to the method, the implementation of the specific device in the embodiment of this specification can refer to the implementation of the foregoing method, and the repetition will not be repeated.
  • the term "unit” or "module” can be a combination of software and/or hardware that implements predetermined functions.
  • the devices described in the following embodiments are preferably implemented by software, hardware or a combination of software and hardware is also possible and conceived.
  • FIG. 5 is a schematic diagram of the module structure of an embodiment of a blockchain consensus processing device provided in this specification.
  • the blockchain consensus processing device provided in this specification includes: Block generation module 121, block verification module 122, block generation judgment module 123, and consensus confirmation module 124. among them,
  • the block generation module 121 can be used for the block producing node in the block chain to continuously generate at least one block, and then broadcast the block after signing;
  • the block verification module 122 can receive the block by the consensus node in the block chain, and verify whether the block is legal according to preset rules; when the legality is confirmed, the block is signed and broadcast;
  • the block production judgment module 123 can be used for nodes in the blockchain to judge whether they are in the block production window period, and confirm that the node in the block production window period is used as the block production node during the block production window period;
  • the consensus confirming module 124 can be used to confirm that the block obtains the consensus of the nodes in the blockchain when the number of signatures of the generated block reaches the preset number, and write the consensus block into the blockchain.
  • the block verification module 122 may include:
  • the first judging unit is used to judge whether the block meets preset legal rules
  • the second judging unit is configured to determine whether the block satisfies a preset reasonable rule when it is determined that the preset legal rule is satisfied, wherein the preset rule includes the preset legal rule and the preset reasonable rule .
  • the signing and broadcasting of the block includes:
  • the third judging unit is used to judge whether the descendant blocks of the block have been received before the signing and broadcasting of the block;
  • the descendant block processing unit is used to confirm that the descendant blocks of the block have been received, and then simultaneously sign the descendant blocks and broadcast it.
  • the writing of the consensus block before writing the block chain includes:
  • the fourth judging unit is used to judge whether the block satisfies the preset in-chain rule, and the preset in-chain rule includes that the height of the block is greater than the height of the current irreversible block in the blockchain, and The ancestor block of the block is the current irreversible block;
  • the block writing unit is used to write the block into the block chain when it is confirmed that it is satisfied, and update the block as the current irreversible block in the block chain.
  • the method includes:
  • the search and judgment unit is configured to search for descendant blocks from the current irreversible block, and determine whether there is a higher irreversible block in the descendant blocks;
  • the update unit is used to confirm the existence of all blocks between the higher irreversible block and the current irreversible block into the blockchain, and update the higher irreversible block to The current irreversible block in the blockchain.
  • the embodiment of this specification provides a block chain consensus processing device. When a certain node in the block chain is in a round of block generation window period, it can continuously generate multiple blocks, and then package the signature and broadcast to the block Other nodes in the chain will verify when they receive a new block. If the verification passes, the block will be signed and broadcast again. When the number of signatures received by the block reaches the preset number, the block becomes Finally, the irreversible block is to confirm that the block obtains the consensus of the nodes in the block chain, and write the block into the block chain.
  • consensus and block generation are decoupled and performed at the same time, that is, while consensus is being performed, blocks are generated, and there is no need to wait until the previous block is confirmed on the chain before proceeding to the next round. Consensus, in this way, makes the consensus and block generation efficiency, scalability, resource consumption and fault tolerance more balanced and efficient, closer to or even fully in line with the real-time processing requirements of commercialization.
  • the above-mentioned device may also include other implementation manners according to the description of the method embodiment, and for the specific implementation manner, refer to the description of the related method embodiment, which is not repeated here.
  • this specification also provides a blockchain consensus processing device, which includes a processor and a memory for storing executable instructions of the processor. When the instructions are executed by the processor, the implementation includes the following steps:
  • the block-producing node in the blockchain continuously generates at least one block, and broadcasts the block after signing;
  • the consensus node in the blockchain receives the block and verifies whether the block is legal according to preset rules; when it is confirmed to be legal, it signs the block and broadcasts it;
  • the node in the blockchain judges whether it is in the block production window period, and confirms that the node in the block production window period is used as the block production node during the block production window period;
  • the storage medium may include a physical device for storing information, and the information is usually digitized and then stored in an electric, magnetic, or optical medium.
  • the storage medium may include: devices that use electrical energy to store information, such as various types of memory, such as RAM, ROM, etc.; devices that use magnetic energy to store information, such as hard disks, floppy disks, magnetic tapes, magnetic core memory, bubble memory, U disk; a device that uses optical means to store information, such as CD or DVD.
  • devices that use electrical energy to store information such as various types of memory, such as RAM, ROM, etc.
  • devices that use magnetic energy to store information such as hard disks, floppy disks, magnetic tapes, magnetic core memory, bubble memory, U disk
  • a device that uses optical means to store information such as CD or DVD.
  • quantum memory graphene memory, and so on.
  • the above-mentioned device may also include other implementation manners according to the description of the method embodiment.
  • specific implementation manners reference may be made to the description of the related method embodiments, which will not be repeated here.
  • FIG. 6 is a schematic diagram of the module structure of an embodiment of a blockchain consensus processing system provided in this specification.
  • a blockchain consensus processing system provided may include a processor 131 and a memory 132 for storing executable instructions of the processor, and the processor 131 and the memory 132 communicate with each other through a bus 133;
  • the processor 131 is configured to call the program instructions in the memory 132 to execute the method provided in the embodiment of the blockchain consensus processing method, for example, including: the block producer node in the blockchain continuously generates at least one zone Block, and broadcast the block after signing; the consensus node in the blockchain receives the block and verifies whether the block is legal according to preset rules; when it is confirmed legal, the block is signed and broadcast ; Nodes in the blockchain judge whether they are in the block production window period, and when they confirm that they are in the block production window period, they will use the node in the block production window period as the block producer node; when the number of signatures of the generated block reaches When the number is preset, it is confirmed that the block obtains the consensus of the nodes in the blockchain, and the consensus block is written into the blockchain.
  • the system described above in the specification may also include other implementation manners based on the description of the related method embodiments.
  • specific implementation manners refer to the description of the method embodiments, which will not be repeated here.
  • the various embodiments in the present application are described in a progressive manner, and the same or similar parts between the various embodiments can be referred to each other, and each embodiment focuses on the differences from other embodiments.
  • the description is relatively simple, and for related parts, please refer to the part of the description of the method embodiment.
  • a programmable logic device Programmable Logic Device, PLD
  • FPGA Field Programmable Gate Array
  • HDL Hardware Description Language
  • ABEL Advanced Boolean Expression Language
  • AHDL Altera Hardware Description Language
  • HDCal JHDL
  • Lava Lava
  • Lola MyHDL
  • PALASM RHDL
  • VHDL Very-High-Speed Integrated Circuit Hardware Description Language
  • Verilog Verilog
  • the controller can be implemented in any suitable manner.
  • the controller can take the form of, for example, a microprocessor or a processor and a computer-readable medium storing computer-readable program codes (such as software or firmware) executable by the (micro)processor. , Logic gates, switches, application specific integrated circuits (ASICs), programmable logic controllers and embedded microcontrollers.
  • controllers include but are not limited to the following microcontrollers: ARC 625D, Atmel AT91SAM, Microchip PIC18F26K20 and Silicon Labs C8051F320, the memory controller can also be implemented as a part of the memory control logic.
  • controller in addition to implementing the controller in a purely computer-readable program code manner, it is entirely possible to program the method steps to make the controller use logic gates, switches, application specific integrated circuits, programmable logic controllers and embedded The same function can be realized in the form of a microcontroller, etc. Therefore, such a controller can be regarded as a hardware component, and the devices included in it for implementing various functions can also be regarded as a structure within the hardware component. Or even, the device for realizing various functions can be regarded as both a software module for realizing the method and a structure within a hardware component.
  • a typical implementation device is a computer.
  • the computer may be, for example, a personal computer, a laptop computer, a vehicle-mounted human-computer interaction device, a cellular phone, a camera phone, a smart phone, a personal digital assistant, a media player, a navigation device, an email device, a game console, and a tablet.
  • Computers, wearable devices, or any combination of these devices may be specifically implemented by computer chips or entities, or implemented by products with certain functions.
  • the computer may be, for example, a personal computer, a laptop computer, a vehicle-mounted human-computer interaction device, a cellular phone, a camera phone, a smart phone, a personal digital assistant, a media player, a navigation device, an email device, a game console, and a tablet.
  • the functions are divided into various modules and described separately.
  • the function of each module can be realized in the same one or more software and/or hardware, or the module that realizes the same function can be realized by a combination of multiple sub-modules or sub-units, etc. .
  • the device embodiments described above are merely illustrative, for example, the division of the units is only a logical function division, and there may be other divisions in actual implementation, for example, multiple units or components can be combined or integrated To another system, or some features can be ignored, or not implemented.
  • the displayed or discussed mutual coupling or direct coupling or communication connection may be indirect coupling or communication connection through some interfaces, devices or units, and may be in electrical, mechanical or other forms.
  • These computer program instructions can also be stored in a computer-readable memory that can guide a computer or other programmable data processing equipment to work in a specific manner, so that the instructions stored in the computer-readable memory produce an article of manufacture including the instruction device.
  • the device implements the functions specified in one process or multiple processes in the flowchart and/or one block or multiple blocks in the block diagram.
  • These computer program instructions can also be loaded on a computer or other programmable data processing equipment, so that a series of operation steps are executed on the computer or other programmable equipment to produce computer-implemented processing, so as to execute on the computer or other programmable equipment.
  • the instructions provide steps for implementing functions specified in a flow or multiple flows in the flowchart and/or a block or multiple blocks in the block diagram.
  • the computing device includes one or more processors (CPU), input/output interfaces, network interfaces, and memory.
  • processors CPU
  • input/output interfaces network interfaces
  • memory volatile and non-volatile memory
  • the memory may include non-permanent memory in computer readable media, random access memory (RAM) and/or non-volatile memory, such as read-only memory (ROM) or flash memory (flash RAM). Memory is an example of computer readable media.
  • RAM random access memory
  • ROM read-only memory
  • flash RAM flash memory
  • Computer-readable media include permanent and non-permanent, removable and non-removable media, and information storage can be realized by any method or technology.
  • the information can be computer-readable instructions, data structures, program modules, or other data.
  • Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, CD-ROM, digital versatile disc (DVD) or other optical storage, Magnetic cassettes, magnetic tape magnetic disk storage, graphene storage or other magnetic storage devices or any other non-transmission media can be used to store information that can be accessed by computing devices. According to the definition in this article, computer-readable media does not include transitory media, such as modulated data signals and carrier waves.
  • one or more embodiments of this specification can be provided as a method, a system, or a computer program product. Therefore, one or more embodiments of this specification may adopt the form of a complete hardware embodiment, a complete software embodiment, or an embodiment combining software and hardware. Moreover, one or more embodiments of this specification may adopt a computer program implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program codes. The form of the product.
  • computer-usable storage media including but not limited to disk storage, CD-ROM, optical storage, etc.

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Theoretical Computer Science (AREA)
  • Finance (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Technology Law (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

本说明书实施例公开了一种区块链共识的处理方法、装置及系统。所述方法包括区块链中的出块节点连续产生至少一个区块,并对所述区块签名后进行广播;区块链中的共识节点接收区块,并根据预设规则验证所述区块是否合法;确认合法时,对所述区块进行签名并广播;区块链中的节点判断自己是否在出块窗口期,确认在所述出块窗口期时,将处于所述出块窗口期的节点作为出块节点;当产生的区块的签名数达到预设数量时,确认所述区块获得区块链中节点的共识,将共识后的区块写入区块链。利用本说明书实施例可以使共识与出块效率、扩展性、资源消耗和容错性方面更均衡高效。

Description

一种区块链共识的处理方法、装置及系统 技术领域
本说明书实施例方案属于互联网信息处理技术以及计算机技术领域,尤其涉及一种区块链共识的处理方法、装置及系统。
背景技术
在区块链系统中,共识机制是使全部或大部分网络节点就某些交易或数据达成一致的机制。共识机制允许在部分网络节点失效的情况下,系统仍能正常工作,这种容错能力是区块链系统的一个主要优势。因此共识机制是区块链系统的核心。业界目前对公链共识机制的技术水平有以下维度的需求:性能效率:高并发,高吞吐量,高速处理;资源消耗:共识过程中耗费的CPU、网络输入输出、存储等计算机资源;容错性:防攻击、防欺诈的能力;扩展性:新节点加入与退出,参与共识。
目前业界广泛使用的共识机制有PoW算法(包括其扩展算法PoS和DPoS)、Paxos算法、PBFT算法和DBFT算法。其中,PoW算法依赖机器进行数学运算来获取记账权,资源消耗相比其它共识机制高、可监管性弱,同时每次达成共识需要全网共同参与运算,性能效率比较低,容错性方面允许全网50%节点出错。PoS算法主要思想是节点记账权的获得难度与节点持有的权益成反比,相对于PoW,一定程度减少了数学运算带来的资源消耗,性能也得到了相应的提升,但依然是基于哈希运算竞争获取记账权的方式,可监管性弱,该共识机制容错性和PoW相同。DPoS算法与PoS的主要区别在于节点选举若干代理人,由代理人验证和记账,其合规监管、性能、资源消耗和容错性与PoS相似。Paxos算法是一种基于选举领导者的共识机制,领导者节点拥有绝对权限,并允许强监管节点参与,性能高,资源消耗低,其所有节点一般有线下准入机制,但选举过程中不允许有作恶节点,不具备容错性。PBFT算法与Paxos类似,也是一种采用许可投票、少数服从多数来选举领导者进行记账的共识机制,但该共识机制允许拜占庭容错,该共识机制允许强监管节点参与,具备权限分级能力,性能更高,耗能更低,该算法每轮记账都会由全网节点共同选举领导者,允许33%的节点作恶,容错性为33%,但是PBFT的每轮共识基于前一个区块确认后才能进行下一轮,严重影响了共识效率。DBFT算法是基于拜占庭容错算法之上,加入了授权共识机智,其使用权益来选出记账人,然后各个记账人之间 通过拜占庭容错算法达成共识,专业化的记账人可以容忍任何类型的错误,记账由多人协作完成,每一个区块都有最终性,算法的可靠性有着严格的数据证明,其缺点是当三分之一或以上的记账人停止工作后,系统将无法提供服务。
然而,以上所有共识机制都存在一个相似的问题,就是共识与出块串行执行,这种机制会直接导致共识与出块效率受到限制,无法打破现有瓶颈,达到高吞吐级别。
因此,业内亟需一种可以实现共识与出块并行执行的共识机制的解决方案。
发明内容
本说明书实施例目的在于提供一种区块链共识的处理方法、装置及系统,可以实现共识与出块并行,使共识与出块效率、扩展性、资源消耗和容错性方面更均衡高效。
一方面本申请提供了一种区块链共识的处理方法,包括:
区块链中的出块节点连续产生至少一个区块,并对所述区块签名后进行广播;
区块链中的共识节点接收区块,并根据预设规则验证所述区块是否合法;确认合法时,对所述区块进行签名并广播;
区块链中的节点判断自己是否在出块窗口期,确认在所述出块窗口期时,将处于所述出块窗口期的节点作为出块节点;
当产生的区块的签名数达到预设数量时,确认所述区块获得区块链中节点的共识,将共识后的区块写入区块链。
本说明书提供的所述方法的另一个实施例中,所述区块链中的共识节点接收区块,并根据预设规则验证所述区块是否合法,包括:
判断所述区块是否满足预设合法规则;
确定满足所述预设合法规则时,判断所述区块是否满足预设合理规则,其中,所述预设规则包括所述预设合法规则和所述预设合理规则。
本说明书提供的所述方法的另一个实施例中,所述判断所述区块是否满足预设合法规则,包括:
判断所述区块是否满足下面公式:
I×10×1000<(N-L-O)%(n×10×1000)<(I+1)×10×1000-I×10×1000<(N-L+O)%(n×10×1000)<(I+1)×10×1000
其中,I表示出块节点在所有节点中的位置,N表示当前系统时间,L表示上一轮转周期最后一个区块的产生时间,n表示每一轮选取的共识节点数,O表示每个共识节点 的出块窗口时间除以2与1000的差;
如果满足上述公式,则确定所述区块满足所述预设合法规则;如果不满足上述公式,则确定所述区块不满足所述预设合法规则,所述区块被丢弃。
本说明书提供的所述方法的另一个实施例中,所述预设合理规则包括:
当前区块的高度是否符合当前节点的时间窗口期;
当前区块的出块时间和上一个区块的出块时间是否满足出块时间间隔要求;
当前节点的最高不可逆区块是否为所述区块的祖先区块;
当前节点是否对其它相同高度的区块进行过签名。
本说明书提供的所述方法的另一个实施例中,在所述确认合法时,对所述区块进行签名并广播时,包括:
判断在对所述区块进行签名并广播前是否收到过所述区块的子孙区块;
确认收到过所述区块的子孙区块时,则同时对所述子孙区块进行签名后广播。
本说明书提供的所述方法的另一个实施例中,所述区块链中的节点按照下面公式判断自己是否在出块窗口期:
I×10×1000<(N-L)%(n×10×1000)<(I+1)×10×1000
其中,I表示出块节点在所有节点中的位置,N表示当前系统时间,L表示上一轮转周期最后一个区块的产生时间。
本说明书提供的所述方法的另一个实施例中,所述将共识后的区块写入区块链前,包括:
判断所述区块是否满足预设入链规则,所述预设入链规则包括所述区块的高度大于所述区块链中当前不可逆区块的高度,且所述区块的祖先区块是所述当前不可逆区块;
确认满足时,则将所述区块写入区块链,并将所述区块更新为所述区块链中当前不可逆区块。
本说明书提供的所述方法的另一个实施例中,所述将所述区块更新为所述区块链中当前不可逆区块后,包括:
从所述当前不可逆区块开始查找子孙区块,判断所述子孙区块中是否存在更高的不可逆区块;
确认存在时,则将所述更高的不可逆区块与所述当前不可逆区块之间的所有区块写入区块链,并将所述更高的不可逆区块更新为所述区块链中当前不可逆区块。
另一方面,本说明书实施例还提供一种区块链共识的处理装置,所述装置包括:
区块产生模块,用于区块链中的出块节点连续产生至少一个区块,并对所述区块签名后进行广播;
区块验证模块,用于区块链中的共识节点接收区块,并根据预设规则验证所述区块是否合法;确认合法时,对所述区块进行签名并广播;
出块判断模块,用于区块链中的节点判断自己是否在出块窗口期,确认在所述出块窗口期时,将处于所述出块窗口期的节点作为出块节点;
确认共识模块,用于当产生的区块的签名数达到预设数量时,确认所述区块获得区块链中节点的共识,将共识后的区块写入区块链。
本说明书提供的所述装置的另一个实施例中,所述区块验证模块,包括:
第一判断单元,用于判断所述区块是否满足预设合法规则;
第二判断单元,用于确定满足所述预设合法规则时,判断所述区块是否满足预设合理规则,其中,所述预设规则包括所述预设合法规则和所述预设合理规则。
本说明书提供的所述装置的另一个实施例中,在所述确认合法时,对所述区块进行签名并广播时,包括:
第三判断单元,用于判断在所述对所述区块进行签名并广播前是否收到过所述区块的子孙区块;
子孙区块处理单元,用于确认收到过所述区块的子孙区块时,则同时对所述子孙区块进行签名后广播。
本说明书提供的所述装置的另一个实施例中,所述将共识后的区块写入区块链前,包括:
第四判断单元,用于判断所述区块是否满足预设入链规则,所述预设入链规则包括所述区块的高度大于所述区块链中当前不可逆区块的高度,且所述区块的祖先区块是所述当前不可逆区块;
区块写入单元,用于确认满足时,则将所述区块写入区块链,并将所述区块更新为所述区块链中当前不可逆区块。
本说明书提供的所述装置的另一个实施例中,所述将所述区块更新为所述区块链中当前不可逆区块后,包括:
查找判断单元,用于从所述当前不可逆区块开始查找子孙区块,判断所述子孙区块中是否存在更高的不可逆区块;
更新单元,用于确认存在时,则将所述更高的不可逆区块与所述当前不可逆区块之 间的所有区块写入区块链,并将所述更高的不可逆区块更新为所述区块链中当前不可逆区块。
另一方面,本说明书实施例提供一种区块链共识的处理设备,包括处理器及用于存储处理器可执行指令的存储器,所述指令被所述处理器执行时实现包括以下步骤:
区块链中的出块节点连续产生至少一个区块,并对所述区块签名后进行广播;
区块链中的共识节点接收区块,并根据预设规则验证所述区块是否合法;确认合法时,对所述区块进行签名并广播;
区块链中的节点判断自己是否在出块窗口期,确认在所述出块窗口期时,将处于所述出块窗口期的节点作为出块节点;
当产生的区块的签名数达到预设数量时,确认所述区块获得区块链中节点的共识,将共识后的区块写入区块链。
另一方面,本说明书实施例提供一种区块链共识的处理系统,包括至少一个处理器以及存储计算机可执行指令的存储器,所述处理器执行所述指令时实现上述任意一个实施例所述方法的步骤。
本说明书实施例提供的一种区块链共识的处理方法、装置及系统,当区块链中某个节点处于一轮出块窗口期时,其可以连续产生多个区块,然后打包签名并广播给区块链中其它节点,当节点收到新的区块后会进行验证,如果验证通过,则对区块再次签名并广播,当区块收到的签名数达到预设数量时,则该区块成为最后不可逆区块,即确认该区块获得区块链中节点的共识,将所述区块写入区块链。采用本说明书提供的实施方案,在共识过程中,共识与出块过程同时进行,即一边进行共识,一边进行出块,不需要等到前一个区块确认上链后再进行下一轮的共识,这样,可以使得共识与出块效率、扩展性、资源消耗和容错性方面更均衡高效,更接近甚至完全符合商业化的实时处理要求。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本说明书提供的目前共识机制中共识与出块执行的流程示意图;
图2是本说明书提供的一种区块链共识的处理方法的一个实施例的流程示意图;
图3是本说明书提供的一个实施例中共识与出块并行执行的流程示意图;
图4是本说明书提供的一种区块链共识的处理的一个具体实施例的流程示意图;
图5是本说明书提供的一种区块链共识的处理装置的一个实施例的模块结构示意图;
图6是本说明书提供的一种区块链共识的处理系统的实施例的模块结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书中的一部分实施例,而不是全部的实施例。基于本说明书中的一个或多个实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书实施例保护的范围。
区块链技术也称为分布式账本技术,是一种分布式互联网数据库技术。基于区块链技术构建的网络可以称之为区块链网络,在该区块链网络中包含网络节点(也可以称之为区块链节点,简称为节点),每一个节点对应至少一个区块链,每一个区块链上至少包含一个区块。区块链网络具备去中心化、公开透明、不可篡改、可信任等特点。基于这些特点,区块链技术应用领域越来越广泛。具体地,业务数据上链(即被存储在区块链网络中)的过程包含三个阶段:受理阶段、共识阶段和存储阶段。其中,受理阶段可以理解为待上链的业务数据被区块链网络中的某一区块链节点接收到,并由该区块链节点受理该业务数据;共识阶段可以理解为区块链节点在受理该业务数据之后,需要由区块链网络中的其他区块链节点参与对该业务数据进行共识处理,业务数据通过共识后,可以进入存储阶段;存储阶段可以理解为区块链节点将共识通过的业务数据进行上链处理。在业务数据上链所经历的三个阶段中,共识阶段是需要区块链网络中的其他区块链节点参与的。
目前业界关于区块链中共识阶段广泛使用的共识机制有PoW算法(包括其扩展算法PoS和DPoS)、Paxos算法、PBFT算法和DBFT算法。具体的,如图1所示,图1是本说明书提供的目前共识机制中共识与出块执行的流程示意图。其中,虚线框内表示某个节点的出块时间窗口,由图可知,一个节点需要对上一个区块B0确认后才能生产下一个区块B1。也就是说,目前区块链中节点会轮流负责出块,每一个区块产生后,会按照顺序传递到下一个节点中,第二个节点要负责打包新的区块,同时需要确认上一区块的内容,当某一区块被超过预先设定数量的节点确认后,该区块将被确认为不可逆区块。 可见,目前区块链中共识机制都存在一个相似的问题,就是共识与出块串行执行,这种机制会直接导致共识与出块效率受到限制,无法打破现有瓶颈,达到高吞吐级别。
相应地,针对产生上述技术问题的根本原因,本说明书实施例提供了一种区块链共识的处理方法,可以在共识过程中,共识与出块同时进行,即共识与出块并行,一边进行共识,一边进行出块,不需要等到前一个区块确认上链后再进行下一轮的共识。具体的,当区块链中某个节点处于一轮出块窗口期时,其可以连续产生多个区块,然后打包签名并广播给区块链中其它节点,当节点收到新的区块后会进行验证,如果验证通过,则对区块再次签名并广播,当区块收到的签名数达到预设数量时,则该区块成为最后不可逆区块,即确认该区块获得区块链中节点的共识,将所述区块写入区块链。这样,区块链中节点可以在出块的同时对多个区块进行共识,不需要等待前面区块被确认获得共识后再对另一个区块进行共识,使得共识与出块效率、扩展性、资源消耗和容错性方面更均衡高效,更接近甚至完全符合商业化的实时处理要求。
下面以一个具体的应用场景为例对本说明书实施方案进行说明。具体的,图2是本说明书提供的一种区块链共识的处理方法的一个实施例的流程示意图。虽然本说明书提供了如下述实施例或附图所示的方法操作步骤或装置结构,但基于常规或者无需创造性的劳动在所述方法或装置中可以包括更多或者部分合并后更少的操作步骤或模块单元。在逻辑性上不存在必要因果关系的步骤或结构中,这些步骤的执行顺序或装置的模块结构不限于本说明书实施例或附图所示的执行顺序或模块结构。所述的方法或模块结构的在实际中的装置、服务器或终端产品应用时,可以按照实施例或者附图所示的方法或模块结构进行顺序执行或者并行执行(例如并行处理器或者多线程处理的环境、甚至包括分布式处理、服务器集群的实施环境)。
当然,下述实施例的描述并不对基于本说明书的其他可扩展到的技术方案构成限制。
具体的一种实施例如图2所示,本说明书提供的一种区块链共识的处理方法的一种实施例中,所述方法可以包括:
S1:区块链中的出块节点连续产生至少一个区块,并对所述区块签名后进行广播。
区块链中一个节点实际上就是一台接入区块链的计算机(服务器),任何联网的计算机都可以接入区块链,所以区块链上的节点是无数的。区块是把一堆账目(交易)打包在一起形成的。很多区块一个一个有机组织在一起,就是一条区块链了。区块里面有很多交易条目,同时它也带有其他一些数据,比如hash、时间戳、索引号、上一块数据hash、随机数等。一个区块不等于一个节点,区块链上的区块是有限的,达到一定数量 后便不再新增。为了便于理解,可以认为节点是点、区块是线、区块链是面,节点是区块链应用技术里处理信息的基本单位,很多节点处理完信息后,信息会被打上时间戳,生成数据区块,把区块按时间先后顺序连接起来就组成区块链。
进一步地,由于任何联网的计算机都可以接入区块链,导致区块链上的节点是无数的,这样在对区块进行共识处理时,随着参与共识的区块链节点的数量增加,对业务数据进行共识处理的时间延长,进而会导致区块共识处理效率低。因此,在一些实施例中,可以按照一些规则在区块链所有节点中选择一部分节点进行出块与验证,即在区块链网络中通过所有节点选举产生超级节点,利用超级节点进行出块及共识,进而大幅度的降低共识过程中的节点数量,提高区块共识处理效率。其中,区块链网络中所有节点选举产生的超级节点进行一个完整出块及共识过程所需的时间叫做轮转周期。选举规则可以根据计算能力、股权数或者其他可以比较的特征量,对此不作限制。需要说明的是,一些实施例中节点是指区块链中的所有节点,另一些实施例中,节点是指通过选举产生的超级节点。优选的,本说明书实施例中的节点均是指在区块链网络中通过所有节点选举产生的超级节点,也叫共识节点,以下简称节点。
由于区块链中选举出的节点可以按照预设规则轮流出块,也可以随机出块,所以出块节点可以理解为区块链中正在出块的节点,也可以理解为区块链中处于出块窗口期的节点。出块窗口期也就是节点的出块时间,例如,3秒、1分钟、5分钟等,其可以根据实际需求进行设置。本说明书一个实施例中,区块链中的出块节点连续产生至少一个区块可以包括所述出块节点在出块窗口期内以预设时间间隔连续产生至少一个区块,这样出块节点产生一个区块后不需要等到该区块确认上链后就可以进行下一个区块的产生与共识了。其中,产生的多个区块中未确认的区块暂存于内存中,一旦发生分叉情况,在内存中可以快速切换选择有效的链,当区块已确认为最终不可逆区块后将区块数据写入区块链。此外,出块节点严格按照预先设定的时间进行出块,这里预先设定的时间就可以理解为出块窗口期。具体的,当某个节点处于一轮出块窗口期时,其可以在预先设定的出块窗口期内每隔p秒连续的产生多个区块,不需要等到该区块确认上链后再进行下一个区块的产生与共识。如图3所示,图3是本说明书提供的一个实施例中共识与出块并行执行的流程示意图,其中,虚线框内表示某个节点的出块时间窗口,由图可知,一个节点可以在连续生产多个区块B1、B2、B3、……、Bn的同时对区块B0、B1、B2、……、Bn-1进行确认,并不需要等待上一个区块(如B1)确认后再生产下一个区块(B2)。进一步地,例如,在出块窗口期内,出块节点每隔0.5秒连续性的出了区块N和N+1, 不需要等到区块N确认上链后就可以进行区块N+1的产生与共识。需要说明的是,通常在出块窗口期可以只有一个节点进行出块。节点的出块顺序可以是随机的,也可以是按照预设规则排好序的,对此不作限制。所述预设时间间隔可以根据实际场景需求进行设置,对此也不作限制。
本说明书一个实施例中,在出块节点连续产生多个区块后,会分别将每个区块进行打包并签名,然后广播给区块链中的其它节点(也叫共识节点)进行验证。具体的,出块节点在预先设定的出块窗口期内以一定时间间隔产生若干区块,其每产生一个区块后,出块节点进行签名后立即向其它节点进行广播。其中,签名(也可以称为公钥数字签名或电子签章等)具体可以理解为是一种基于公钥加密技术,用于证明用户身份的数字签名。具体的,上述签名可以是一段与用户身份对应,且不易伪造的字符串。在进行具体的交易数据处理时,例如,可以根据上述签名,验证用户的身份,并调用用户账户中的资金数据进行具体的交易数据处理。
需要说明的是,签名的目的是保证数据不被篡改,签名后的业务数据没有任何变化,只会多一个数据签名。若对数据进行修改后,对应的数据签名会发生改变,通过对数据进行签名校验就可以知道数据是否被篡改。
S2:区块链中的共识节点接收区块,并根据预设规则验证所述区块是否合法;确认合法时,对所述区块进行签名并广播。
共识节点通常是区块链中选举出的节点,其包括出块节点。通常情况中,出块节点也可以称为提议人,其他共识节点可以称为验证人。
本说明书一个实施例中,在出块节点连续产生多个区块后,会分别将每个区块进行打包并签名,然后广播给区块链中的其它共识节点进行验证,区块链中的其他共识节点接收后会根据预设规则进行合法验证,在验证通过后,会进行再次签名并广播给其他节点。
在一个实施例中,上述验证区块是否合法可以主要包括两种方式:合法性验证和合理性验证。
然而,一些实施例中,区块链中的其他共识节点接收后可以只验证区块的合法性,在满足合法性的条件时进行签名并广播。另一些实施例中,区块链中的其他共识节点也可以只验证区块的合理性,在满足合理性的条件时进行签名并广播。优选的,本说明书一些实施例中,由于对区块的合法性判断是单纯的时间范围的校验,其粒度比较粗,所 以区块链中的其他共识节点接收后可以先验证区块的合法性然后验证合理性,在满足合法性和合理性的全部条件时进行签名并广播。
具体的,在区块链中的其他共识节点接收区块后先验证区块的合法性然后验证合理性时,即所述区块链中的共识节点接收区块,并根据预设规则验证所述区块是否合法,包括:判断所述区块是否满足预设合法规则;确定满足所述预设合法规则时,判断所述区块是否满足预设合理规则,其中,所述预设规则包括所述预设合法规则和所述预设合理规则。所述预设合理规则包括:当前区块的高度是否符合当前节点的时间窗口期;当前区块的出块时间和上一个区块的出块时间是否满足出块时间间隔要求;当前节点的最高不可逆区块是否为所述区块的祖先区块;当前节点是否对其它相同高度的区块进行过签名。上述最高不可逆区块是当前区块链中区块的高度最高的区块,上述区块的高度是区块链接在主链的个数,也就是连接在区块链上的块数。因为区块通过规则链接在一起构成了区块链,创始区块默认高度为0,其后一个区块高度为1,以此类推(区块链的规则是系统只认可长度最长的区块链条)。例如:某一个区块的高度为386357,意味着从创世区块到当前的这个区块最长的链条区块数为386357+1个。区块的高度可以用来识别区块在区块链中的位置,并据此找到和这个区块相关的所有基础属性和交易记录。
所述判断所述区块是否满足预设合法规则,包括:判断所述区块是否满足公式(1),如果满足,则确定所述区块满足所述预设合法规则;如果不满足,则确定所述区块不满足所述预设合法规则,所述区块被丢弃。
Figure PCTCN2019077481-appb-000001
其中,I可以表示出块节点在所有节点中的位置,N可以表示当前系统时间,L可以表示上一轮转周期最后一个区块的产生时间,n可以表示每一轮选取的共识节点数,O可以表示每个共识节点的出块窗口时间除以2与1000的差;
需要说明的是,验证区块是否满足合理性时,必须同时满足全部条件才算验证通过,只要有其中一条不满足,验证都不能通过。
进一步地,一些实施例中,如果不满足公式(1),即不满足合法性时,则该区块将会被丢弃。另一些实施例中,如果满足公式(1),但不满足合理性标准中的至少一条,则该区块也会被丢弃。
本说明书的一个或多个实施例中,在所述确认合法时,对所述区块进行签名并广播 时,还可以包括:判断在对所述区块进行签名并广播前是否收到过所述区块的子孙区块;确认收到过所述区块的子孙区块时,则同时对所述子孙区块进行签名后广播。具体的,在所述区块链中的共识节点接收区块,且验证区块满足合法性和合理性的所有条件后,对区块进行签名、广播的同时,会进一步的判断之前是否有收到过所述区块的子孙区块,如果收到过,则将所述区块和所述区块的子孙区块一并进行签名后广播;如果没有收到,则只对所述区块进行签名后广播。例如,在当前区块验证通过后,收到所述区块的两个子孙区块,则将所述区块和两个子孙区块一并进行签名后广播。
S3:区块链中的节点判断自己是否在出块窗口期,确认在所述出块窗口期时,将处于所述出块窗口期的节点作为出块节点。
本说明实施例中,出块窗口期也就是节点的出块时间,例如,3秒、1分钟、5分钟等。由于区块链中的出块节点可以在出块窗口期内以预设时间间隔连续产生多个区块,所以可以根据实际需求对出块窗口期进行设定。一些实施例中,在出块窗口期设定好后,每个出块节点严格按照设定的时间进行出块,若在出块窗口期未出块,并且在规定的时间内未产生任何块,则会被从出块节点名单中剔除,直至其向区块链表明再次开始生产区块。这样就可以排除不可靠的出块节点来最小化错过的区块数量,从而确保网络的顺畅运行。
本说明书一个实施例中,区块链中节点的出块顺序是随机的,当开始进行出块时,区块链中的节点首先会判断自己是否在出块窗口期。具体的,可以按照下面公式判断自己是否在出块窗口期:
I×10×1000<(N-L)%(n×10×1000)<(I+1)×10×1000    (2)
其中,I可以表示出块节点在所有节点中的位置,N可以表示当前系统时间,L可以表示上一轮转周期最后一个区块的产生时间。
本说明书另一个实施例中,区块链中节点的出块顺序是按照预设规则预先排号序的,当开始进行出块时,区块链中的节点首先也会根据相应的方式判断自己是否在出块窗口期。
需要说明的是,节点判断自己是否在出块窗口期的方式也可以根据其它方式或本领域人员熟悉的方式,本说明书对此不作限制。
进一步地,在区块链中的节点判断自己在出块窗口期时,会将所述节点作为出块节点,进行出块,然后签名并广播。具体的,在一个出块节点连续出块后,开始下一节点 出块时,其余节点会验证自己是否在出块窗口期,若在,则该节点拥有出块权,会以预设时间间隔连续出块。如,节点1连续产生6个新区块,然后切换到下一个拥有出块权的节点连续产生之后的6个区块。
S4:当产生的区块的签名数达到预设数量时,确认所述区块获得区块链中节点的共识,将共识后的区块写入区块链。
预设数量是根据实际情况设定的。共识即多个节点的共同认识。写入区块链也叫上链。
本说明书一个实施例中,当所述区块的签名数达到设定的数量时,就确认该区块获得了共识。具体的,通过在区块链一群数量有限的节点中,随机选取一个节点作为出块节点,所述出块节点将该时段的交易打包成区块后用自己的私钥对该区块签名,并将其广播到其它节点,当出块节点收到设定数量的节点的签名后,则表明该区块完成了节点验证,即获得节点的共识。其中,设定数量可以是一群数量有限节点中至少三分之二的节点,也可以是四分之三的节点等,可以根据实际情况进行设定,对此不作限制。
本说明书一个实施例中,在确认所述区块获得区块链中节点的共识后,将所述区块写入区块链前,还需要判断所述区块是否满足入链规则。具体的,判断所述区块是否满足预设入链规则,所述预设入链规则包括所述区块的高度大于所述区块链中当前不可逆区块的高度,且所述区块的祖先区块是所述当前不可逆区块;确认满足时,则将所述区块写入区块链,并将所述区块更新为所述区块链中当前不可逆区块。另一个实施例中,判断所述区块是否满足预设入链规则,确认所述区块满足预设入链规则时,则将所述区块写入区块链,并将所述区块更新为所述区块链中当前不可逆区块;确认不满足预设入链规则时,则丢弃所述区块。
进一步地,一些实施例中,在将所述区块更新为所述区块链中当前不可逆区块后,包括:从所述当前不可逆区块开始查找子孙区块,判断所述子孙区块中是否存在更高的不可逆区块;确认存在时,则将所述更高的不可逆区块与所述当前不可逆区块之间的所有区块写入区块链,并将所述更高的不可逆区块更新为所述区块链中当前不可逆区块。具体的,例如,当一个区块签名数收集到3f+1个后,其中,f表示未响应或者出现故障的节点数量,则此区块最终被确认,但被确认区块上链前会进行进一步的判断。如果被确认区块的高度大于当前不可逆块高,并且当前不可逆区块为被确认区块的祖先区块,则此被确认区块成为新的不可逆区块,从此新的不可逆区块开始,查找子孙区块中更高 不可逆新区块,如果存在更高不可逆区块,则继续切换更高的不可逆区块为当前最高不可逆区块,最终确定最高不可逆区块后,需要将新不可逆区块到原来已入链的不可逆区块之间的所有区块入链。
本说明书实施例提供的一种区块链共识的处理方法,出块节点通过在出块窗口期产生多个区块,且每产生一个区块后,进行签名后立即向其它节点进行广播,这样就可以在共识过程中使共识与出块过程同时进行,即一边进行共识,一边进行出块,不需要等到前一个区块确认上链后再进行下一轮的共识,使得共识与出块效率、扩展性、资源消耗和容错性方面更均衡高效,更接近甚至完全符合商业化的实时处理要求。
为了进一步来验证本方法的实用性和可行性,本说明书还提供了应用上述方案的一个具体实例,其中,当某个节点处于一轮出块窗口期时,其可以连续性的出多个块。如图4所示,图4是本说明书提供的一种区块链共识的处理的一个具体实施例的流程示意图,其包括出块提议、区块验证及签名、确认以及写入阶段。具体过程和步骤如下:
(1)出块提议:区块链中节点首先判断是否在出块窗口期,处于出块窗口期的节点不需要等待前一区块被确认后再出块,即可以连续出多个区块,签名后并广播到其它共识节点(共识节点1、共识节点2、共识节点3)。假设窗口期出块节点连续性的出了区块N和N+1,打包后签名,然后广播给其它的共识节点。
(2)区块验证及签名:其它共识节点(共识节点1、共识节点2、共识节点3)收到新的区块后会进行区块验证,如果验证通过,那么就会对区块再次签名,并将签名后的区块广播出去。
(3)确认:所有的共识节点会连续性的收到区块N,N+1的数据,其不需要等待区块N被确认,就可以对区块N+1进行共识,当任意一个共识节点收集到预设数量个签名后,则确认该区块成为最后不可逆区块,即获得共识。
(4)写入:将获得共识的区块写入区块链中。
上述实施例提供的方法,通过在出块窗口期连续产生多个区块,且每产生一个区块,进行签名后立即向其它节点进行广播,不需要等到前一个区块确认上链后再进行下一轮的出块与共识,即实现了共识与出块并行,使得共识与出块效率、扩展性、资源消耗和容错性方面更均衡高效,更接近甚至完全符合商业化的实时处理要求。
基于上述所述的一种区块链共识的处理方法,本说明书一个或多个实施例还提供一种区块链共识的处理装置。所述的装置可以包括使用了本说明书实施例所述方法的系统 (包括分布式系统)、软件(应用)、模块、组件、服务器、客户端等并结合必要的实施硬件的装置。基于同一创新构思,本说明书实施例提供的一个或多个实施例中的装置如下面的实施例所述。由于装置解决问题的实现方案与方法相似,因此本说明书实施例具体的装置的实施可以参见前述方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
具体地,图5是本说明书提供的一种区块链共识的处理装置的一个实施例的模块结构示意图,如图5所示,本说明书提供的一种区块链共识的处理装置包括:区块产生模块121,区块验证模块122,出块判断模块123,确认共识模块124。其中,
区块产生模块121,可以用于区块链中的出块节点连续产生至少一个区块,并对所述区块签名后进行广播;
区块验证模块122,可以区块链中的共识节点接收区块,并根据预设规则验证所述区块是否合法;确认合法时,对所述区块进行签名并广播;
出块判断模块123,可以用于区块链中的节点判断自己是否在出块窗口期,确认在所述出块窗口期时,将处于所述出块窗口期的节点作为出块节点;
确认共识模块124,可以用于当产生的区块的签名数达到预设数量时,确认所述区块获得区块链中节点的共识,将共识后的区块写入区块链。
所述装置的另一个实施例中,所述区块验证模块122可以包括:
第一判断单元,用于判断所述区块是否满足预设合法规则;
第二判断单元,用于确定满足所述预设合法规则时,判断所述区块是否满足预设合理规则,其中,所述预设规则包括所述预设合法规则和所述预设合理规则。
所述装置的另一个实施例中,在所述确认合法时,对所述区块进行签名并广播时,包括:
第三判断单元,用于判断在所述对所述区块进行签名并广播前是否收到过所述区块的子孙区块;
子孙区块处理单元,用于确认收到过所述区块的子孙区块时,则同时对所述子孙区块进行签名后广播。所述装置的另一个实施例中,所述将共识后的区块写入区块链前,包括:
第四判断单元,用于判断所述区块是否满足预设入链规则,所述预设入链规则包括 所述区块的高度大于所述区块链中当前不可逆区块的高度,且所述区块的祖先区块是所述当前不可逆区块;
区块写入单元,用于确认满足时,则将所述区块写入区块链,并将所述区块更新为所述区块链中当前不可逆区块。所述装置的另一个实施例中,所述将所述区块更新为所述区块链中当前不可逆区块后,包括:
查找判断单元,用于从所述当前不可逆区块开始查找子孙区块,判断所述子孙区块中是否存在更高的不可逆区块;
更新单元,用于确认存在时,则将所述更高的不可逆区块与所述当前不可逆区块之间的所有区块写入区块链,并将所述更高的不可逆区块更新为所述区块链中当前不可逆区块。本说明书实施例提供的一种区块链共识的处理装置,当区块链中某个节点处于一轮出块窗口期时,其可以连续产生多个区块,然后打包签名并广播给区块链中其它节点,当节点收到新的区块后会进行验证,如果验证通过,则对区块再次签名并广播,当区块收到的签名数达到预设数量时,则该区块成为最后不可逆区块,即确认该区块获得区块链中节点的共识,将所述区块写入区块链。采用本说明书提供的实施方案,在共识过程中,共识与出块解耦且同时进行,即一边进行共识,一边进行出块,不需要等到前一个区块确认上链后再进行下一轮的共识,这样,使得共识与出块效率、扩展性、资源消耗和容错性方面更均衡高效,更接近甚至完全符合商业化的实时处理要求。
需要说明的,上述所述的装置根据方法实施例的描述还可以包括其他的实施方式,具体的实现方式可以参照相关方法实施例的描述,在此不作一一赘述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书提供的上述实施例所述的方法可以通过计算机程序实现业务逻辑并记录在存储介质上,所述的存储介质可以计算机读取并执行,实现本说明书实施例所描述方案的效果。因此,本说明书还提供一种区块链共识的处理设备,包括处理器及用于存储处理器可执行指令的存储器,所述指令被所述处理器执行时实现包括以下步骤:
区块链中的出块节点连续产生至少一个区块,并对所述区块签名后进行广播;
区块链中的共识节点接收区块,并根据预设规则验证所述区块是否合法;确认合法 时,对所述区块进行签名并广播;
区块链中的节点判断自己是否在出块窗口期,确认在所述出块窗口期时,将处于所述出块窗口期的节点作为出块节点;
当产生的区块的签名数达到预设数量时,确认所述区块获得区块链中节点的共识,将共识后的区块写入区块链。
所述存储介质可以包括用于存储信息的物理装置,通常是将信息数字化后再以利用电、磁或者光学等方式的媒体加以存储。所述存储介质有可以包括:利用电能方式存储信息的装置如,各式存储器,如RAM、ROM等;利用磁能方式存储信息的装置如,硬盘、软盘、磁带、磁芯存储器、磁泡存储器、U盘;利用光学方式存储信息的装置如,CD或DVD。当然,还有其他方式的可读存储介质,例如量子存储器、石墨烯存储器等等。
需要说明的,上述所述的设备根据方法实施例的描述还可以包括其他的实施方式。具体的实现方式可以参照相关方法实施例的描述,在此不作一一赘述。
本说明书实施例提供的上述一种区块链共识的处理方法、装置、设备可以在计算机中由处理器执行相应的程序指令来实现,如使用windows操作系统的c++语言在PC端实现、linux系统实现,或其他例如使用android、iOS系统程序设计语言在智能终端实现,以及基于量子计算机的处理逻辑实现等。本说明书提供一种区块链共识的处理系统的一个实施例中,图6是本说明书提供的一种区块链共识的处理系统的实施例的模块结构示意图,如图6所示,本说明书提供的一种区块链共识的处理系统可以包括处理器131以及用于存储处理器可执行指令的存储器132,处理器131和存储器132通过总线133完成相互间的通信;
所述处理器131用于调用所述存储器132中的程序指令,以执行上述区块链共识的处理方法实施例所提供的方法,例如包括:区块链中的出块节点连续产生至少一个区块,并对所述区块签名后进行广播;区块链中的共识节点接收区块,并根据预设规则验证所述区块是否合法;确认合法时,对所述区块进行签名并广播;区块链中的节点判断自己是否在出块窗口期,确认在所述出块窗口期时,将处于所述出块窗口期的节点作为出块节点;当产生的区块的签名数达到预设数量时,确认所述区块获得区块链中节点的共识,将共识后的区块写入区块链。
需要说明的是,说明书上述所述的系统根据相关方法实施例的描述还可以包括其他的实施方式,具体的实现方式可以参照方法实施例的描述,在此不作一一赘述。本申请 中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于硬件+程序类实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书实施例并不局限于必须是符合行业通信标准、标准计算机数据处理和数据存储规则或本说明书一个或多个实施例所描述的情况。某些行业标准或者使用自定义方式或实施例描述的实施基础上略加修改后的实施方案也可以实现上述实施例相同、等同或相近、或变形后可预料的实施效果。应用这些修改或变形后的数据获取、存储、判断、处理方式等获取的实施例,仍然可以属于本说明书实施例的可选实施方案范围之内。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable Gate Array,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby Hardware Description Language)等,目前最普遍使用的是VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机 可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、车载人机交互设备、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
虽然本说明书一个或多个实施例提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信 连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
本发明是参照根据本发明实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储、石墨烯存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体 (transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本说明书一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上所述仅为本说明书一个或多个实施例的实施例而已,并不用于限制本本说明书一个或多个实施例。对于本领域技术人员来说,本说明书一个或多个实施例可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在权利要求范围之内。

Claims (15)

  1. 一种区块链共识的处理方法,其特征在于,包括:
    区块链中的出块节点连续产生至少一个区块,并对所述区块签名后进行广播;
    区块链中的共识节点接收区块,并根据预设规则验证所述区块是否合法;确认合法时,对所述区块进行签名并广播;
    区块链中的节点判断自己是否在出块窗口期,确认在所述出块窗口期时,将处于所述出块窗口期的节点作为出块节点;
    当产生的区块的签名数达到预设数量时,确认所述区块获得区块链中节点的共识,将共识后的区块写入区块链。
  2. 如权利要求1所述的一种区块链共识的处理方法,其特征在于,所述区块链中的共识节点接收区块,并根据预设规则验证所述区块是否合法,包括:
    判断所述区块是否满足预设合法规则;
    确定满足所述预设合法规则时,判断所述区块是否满足预设合理规则,其中,所述预设规则包括所述预设合法规则和所述预设合理规则。
  3. 如权利要求2所述的一种区块链共识的处理方法,其特征在于,所述判断所述区块是否满足预设合法规则,包括:
    判断所述区块是否满足下面公式:
    I×10×1000<(N-L-O)%(n×10×1000)<(I+1)×10×1000-I×10×1000<(N-L+O)%(n×10×1000)<(I+1)×10×1000
    其中,I表示出块节点在所有节点中的位置,N表示当前系统时间,L表示上一轮转周期最后一个区块的产生时间,n表示每一轮选取的共识节点数,O表示每个共识节点的出块窗口时间除以2与1000的差;
    如果满足上述公式,则确定所述区块满足所述预设合法规则;如果不满足上述公式,则确定所述区块不满足所述预设合法规则,所述区块被丢弃。
  4. 如权利要求2所述的一种区块链共识的处理方法,其特征在于,所述预设合理规则包括:
    当前区块的高度是否符合当前节点的时间窗口期;
    当前区块的出块时间和上一个区块的出块时间是否满足出块时间间隔要求;
    当前节点的最高不可逆区块是否为所述区块的祖先区块;
    当前节点是否对其它相同高度的区块进行过签名。
  5. 如权利要求1所述的一种区块链共识的处理方法,其特征在于,在所述确认合法时,对所述区块进行签名并广播时,包括:
    判断在对所述区块进行签名并广播前是否收到过所述区块的子孙区块;
    确认收到过所述区块的子孙区块时,则同时对所述子孙区块进行签名后广播。
  6. 如权利要求1所述的一种区块链共识的处理方法,其特征在于,所述区块链中的节点按照下面公式判断自己是否在出块窗口期:
    I×10×1000<(N-L)%(n×10×1000)<(I+1)×10×1000
    其中,I表示出块节点在所有节点中的位置,N表示当前系统时间,L表示上一轮转周期最后一个区块的产生时间。
  7. 如权利要求1所述的一种区块链共识的处理方法,其特征在于,所述将共识后的区块写入区块链前,包括:
    判断所述区块是否满足预设入链规则,所述预设入链规则包括所述区块的高度大于所述区块链中当前不可逆区块的高度,且所述区块的祖先区块是所述当前不可逆区块;
    确认满足时,则将所述区块写入区块链,并将所述区块更新为所述区块链中当前不可逆区块。
  8. 如权利要求7所述的一种区块链共识的处理方法,其特征在于,所述将所述区块更新为所述区块链中当前不可逆区块后,包括:
    从所述当前不可逆区块开始查找子孙区块,判断所述子孙区块中是否存在更高的不可逆区块;
    确认存在时,则将所述更高的不可逆区块与所述当前不可逆区块之间的所有区块写入区块链,并将所述更高的不可逆区块更新为所述区块链中当前不可逆区块。
  9. 一种区块链共识的处理装置,所述装置包括:
    区块产生模块,用于区块链中的出块节点连续产生至少一个区块,并对所述区块签名后进行广播;
    区块验证模块,用于区块链中的共识节点接收区块,并根据预设规则验证所述区块是否合法;确认合法时,对所述区块进行签名并广播;
    出块判断模块,用于区块链中的节点判断自己是否在出块窗口期,确认在所述出块窗口期时,将处于所述出块窗口期的节点作为出块节点;
    确认共识模块,用于当产生的区块的签名数达到预设数量时,确认所述区块获得区块链中节点的共识,将共识后的区块写入区块链。
  10. 如权利要求9所述的一种区块链共识的处理装置,其特征在于,所述区块验证模块,包括:
    第一判断单元,用于判断所述区块是否满足预设合法规则;
    第二判断单元,用于确定满足所述预设合法规则时,判断所述区块是否满足预设合理规则,其中,所述预设规则包括所述预设合法规则和所述预设合理规则。
  11. 如权利要求9所述的一种区块链共识的处理装置,其特征在于,在所述确认合法时,对所述区块进行签名并广播时,包括:
    第三判断单元,用于判断在所述对所述区块进行签名并广播前是否收到过所述区块的子孙区块;
    子孙区块处理单元,用于确认收到过所述区块的子孙区块时,则同时对所述子孙区块进行签名后广播。
  12. 如权利要求9所述的一种区块链共识的处理装置,其特征在于,所述将共识后的区块写入区块链前,包括:
    第四判断单元,用于判断所述区块是否满足预设入链规则,所述预设入链规则包括所述区块的高度大于所述区块链中当前不可逆区块的高度,且所述区块的祖先区块是所述当前不可逆区块;
    区块写入单元,用于确认满足时,则将所述区块写入区块链,并将所述区块更新为所述区块链中当前不可逆区块。
  13. 如权利要求12所述的一种区块链共识的处理装置,其特征在于,所述将所述区块更新为所述区块链中当前不可逆区块后,包括:
    查找判断单元,用于从所述当前不可逆区块开始查找子孙区块,判断所述子孙区块中是否存在更高的不可逆区块;
    更新单元,用于确认存在时,则将所述更高的不可逆区块与所述当前不可逆区块之间的所有区块写入区块链,并将所述更高的不可逆区块更新为所述区块链中当前不可逆区块。
  14. 一种区块链共识的处理设备,其特征在于,包括处理器及用于存储处理器可执行指令的存储器,所述指令被所述处理器执行时实现包括以下步骤:
    区块链中的出块节点连续产生至少一个区块,并对所述区块签名后进行广播;
    区块链中的共识节点接收区块,并根据预设规则验证所述区块是否合法;确认合法时,对所述区块进行签名并广播;
    区块链中的节点判断自己是否在出块窗口期,确认在所述出块窗口期时,将处于所述出块窗口期的节点作为出块节点;
    当产生的区块的签名数达到预设数量时,确认所述区块获得区块链中节点的共识,将共识后的区块写入区块链。
  15. 一种区块链共识的处理系统,其特征在于,包括至少一个处理器以及存储计算机可执行指令的存储器,所述处理器执行所述指令时实现权利要求1-8中任意一项所述方法的步骤。
PCT/CN2019/077481 2019-03-08 2019-03-08 一种区块链共识的处理方法、装置及系统 WO2020181412A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/077481 WO2020181412A1 (zh) 2019-03-08 2019-03-08 一种区块链共识的处理方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/077481 WO2020181412A1 (zh) 2019-03-08 2019-03-08 一种区块链共识的处理方法、装置及系统

Publications (1)

Publication Number Publication Date
WO2020181412A1 true WO2020181412A1 (zh) 2020-09-17

Family

ID=72426025

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/077481 WO2020181412A1 (zh) 2019-03-08 2019-03-08 一种区块链共识的处理方法、装置及系统

Country Status (1)

Country Link
WO (1) WO2020181412A1 (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108540484A (zh) * 2018-04-23 2018-09-14 北京云图科瑞科技有限公司 一种基于区块链的交易方法、装置及系统
CN109064328A (zh) * 2018-07-09 2018-12-21 夸克链科技(深圳)有限公司 一种新型区块链的构造及其共识算法
CN109391480A (zh) * 2018-10-19 2019-02-26 微梦创科网络科技(中国)有限公司 一种数据存储方法、装置及电子设备
CN109410063A (zh) * 2018-11-12 2019-03-01 众安信息技术服务有限公司 基于区块链的交易处理方法、装置和存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108540484A (zh) * 2018-04-23 2018-09-14 北京云图科瑞科技有限公司 一种基于区块链的交易方法、装置及系统
CN109064328A (zh) * 2018-07-09 2018-12-21 夸克链科技(深圳)有限公司 一种新型区块链的构造及其共识算法
CN109391480A (zh) * 2018-10-19 2019-02-26 微梦创科网络科技(中国)有限公司 一种数据存储方法、装置及电子设备
CN109410063A (zh) * 2018-11-12 2019-03-01 众安信息技术服务有限公司 基于区块链的交易处理方法、装置和存储介质

Similar Documents

Publication Publication Date Title
CN109949157B (zh) 一种业务数据的上链方法、装置及系统
TWI660617B (zh) 區塊鏈共識方法及設備
TWI696933B (zh) 區塊鏈成員管理的資料處理方法、裝置、伺服器及系統
TWI684943B (zh) 選擇共識節點的處理方法、裝置及伺服器
TWI714847B (zh) 區塊鏈共識網路中處理共識請求的方法、裝置和電子設備
TWI705350B (zh) 一種事務請求的處理方法及裝置
TWI671699B (zh) 一種事務請求的處理方法及裝置
JP6921206B2 (ja) データベース状態決定方法およびデバイスならびに整合性検証方法およびデバイス
WO2018177250A1 (zh) 一种基于区块链的数据处理方法及设备
CN109391480A (zh) 一种数据存储方法、装置及电子设备
JPWO2018158936A1 (ja) ブロックチェーン管理装置、ブロックチェーン管理方法及びプログラム
TW202022592A (zh) 基於區塊鏈的螢幕錄製取證方法、系統和電子設備
TW201822033A (zh) 資源處理方法及裝置
WO2020228365A1 (zh) 一种基于联盟链的对账方法、装置及电子设备
WO2020220744A1 (zh) 基于区块链的数据处理方法、装置和区块链节点
WO2024001024A1 (zh) 在区块链系统中执行交易的方法、区块链系统和节点
WO2021238514A1 (zh) 基于区块链的数据处理方法、装置、设备及可读存储介质
WO2023231337A1 (zh) 在区块链中执行交易的方法、区块链的主节点和从节点
TW201933054A (zh) 簽約方法和裝置
WO2023231335A1 (zh) 在区块链中执行交易的方法及区块链的主节点
CN108846748A (zh) 一种独立进程执行合约的方法及装置
CN110032568A (zh) 数据结构的读取及更新方法、装置、电子设备
WO2023109520A1 (zh) 基于区块链的随机数生成方法及装置
CN115496499A (zh) 业务处理方法及装置
TWI712879B (zh) 容災資料處理方法、裝置、設備及系統

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: 19919523

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: 19919523

Country of ref document: EP

Kind code of ref document: A1