WO2021184879A1 - 在区块链共识处理时进行处理消息同步的方法及装置 - Google Patents
在区块链共识处理时进行处理消息同步的方法及装置 Download PDFInfo
- Publication number
- WO2021184879A1 WO2021184879A1 PCT/CN2020/139718 CN2020139718W WO2021184879A1 WO 2021184879 A1 WO2021184879 A1 WO 2021184879A1 CN 2020139718 W CN2020139718 W CN 2020139718W WO 2021184879 A1 WO2021184879 A1 WO 2021184879A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- processing
- retransmission request
- message
- blockchain
- processing message
- Prior art date
Links
Images
Classifications
-
- 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/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1829—Arrangements specially adapted for the receiver end
- H04L1/1848—Time-out mechanisms
Definitions
- a method for processing message synchronization during blockchain consensus processing including: receiving a processing message retransmission request, the processing message retransmission request including an identifier of the data block to be agreed And sending a processing message corresponding to the processing message retransmission request to the target blockchain node in the blockchain network.
- the processing message resending request further includes a missing processing message identifier.
- the processing message retransmission request further includes a processing stage identifier.
- the processing message retransmission request further includes the identifier of the sending node of the retransmission request.
- sending the processing message corresponding to the processing message retransmission request to the target blockchain node in the blockchain network includes: sending to the blockchain node indicated by the retransmission request sending node identifier and the Process the message corresponding to the message resend request.
- the processing message resending request further includes a missing processing message identifier.
- the processing message retransmission request further includes a processing stage identifier.
- the message retransmission request sending unit is configured to broadcast a processing message retransmission request to other blockchain nodes in the blockchain network.
- the message sending unit is configured to broadcast a processing message corresponding to the processing message retransmission request to other blockchain nodes in the blockchain network.
- a computing device including: at least one processor; and a memory that stores instructions, and when the instructions are executed by the at least one processor, the at least one The processor executes the method described in the first aspect above.
- a machine-readable storage medium which stores executable instructions that, when executed, cause the machine to perform the method described in the second aspect above.
- a non-transitory machine-readable storage medium which stores executable instructions that, when executed, cause the machine to perform the method as described above.
- the target blockchain node can only retransmit the processing message corresponding to the missing processing message identifier, thereby reducing the amount of message sending and saving bandwidth .
- FIG. 2 is a schematic diagram of an example of the blockchain network shown in FIG. 1;
- FIG. 4 is a schematic diagram for explaining an example of the consensus swapping process in the consensus processing process
- Fig. 6 is a flowchart of an example of a message retransmission request sending process in a method for processing message synchronization according to an embodiment of the present disclosure
- FIG. 8 is a structural block diagram of an example of a message retransmission request sending unit in the apparatus for processing message synchronization shown in FIG. 7;
- FIG. 10 is a structural block diagram of a blockchain node according to an embodiment of the present disclosure.
- the term “including” and its variations mean open terms, meaning “including but not limited to”.
- the term “based on” means “based at least in part on.”
- the terms “one embodiment” and “an embodiment” mean “at least one embodiment.”
- the term “another embodiment” means “at least one other embodiment.”
- the terms “first”, “second”, etc. may refer to different or the same objects. Other definitions can be included below, whether explicit or implicit. Unless clearly indicated in the context, the definition of a term is consistent throughout the specification.
- FIG. 1 is a schematic diagram of an example of an application environment of an embodiment of the present disclosure.
- Each blockchain node in the blockchain network can participate in different processing.
- some blockchain nodes may participate in the consensus processing process (for example, as a consensus node that adds data blocks to the blockchain 206), while other blockchain nodes may not participate in the consensus processing process.
- some blockchain nodes may store a complete copy of the blockchain 206, while other blockchain nodes may only store a partial copy of the blockchain 206.
- data access permissions can restrict the blockchain data stored by the corresponding participants in their corresponding systems.
- a blockchain (for example, the blockchain 206 of FIG. 2) is composed of a chain of blocks, and each block stores data.
- Examples of data include transaction data representing transactions between two or more participants. Any suitable data can be stored in the blockchain, such as documents, images, videos, audios, etc. Examples of transactions may include, but are not limited to, the exchange of valuable things (eg, assets, products, services, and currency). The transaction data stored in the blockchain cannot be changed.
- Fig. 3 is a schematic diagram for explaining an example of the blockchain consensus process.
- the consensus processing process 200 includes a consensus initiation phase 210, a consensus response phase 220, a data block recovery phase 230, and a consensus confirmation phase 240.
- the master node may divide the data block to be agreed into multiple data block fragments based on the erasure coding algorithm, and the number of data block fragments is equal to the number of backup nodes in the blockchain network. Then, the master node can unicast each data block in fragments in the consensus initiation message to other blockchain nodes.
- the master node R0 sends each data block fragments to the blockchain nodes R1, R2, and R3.
- the format of the Initial message can be, for example: Initial ⁇ epoch,tx_root_hash,ec_block_hash[],ec_block,seq,j>, where epoch is the blockchain era identifier, and tx_root_hash is the root hash of the Merkel tree , Ec_block_hash[] is the hash value of the Merkel tree branch node, ec_block is the data block fragmentation for the target blockchain node after the erasure code algorithm is divided, and seq is the data block to be consensus in the blockchain era The number under epoch, j is the target blockchain node identifier of the Initial message.
- each blockchain node can perform data block recovery on each data block fragment (received from the master node and other backup sections) based on the erasure code algorithm to restore the consensus to be data block.
- the blockchain node After recovering the data block for consensus, the blockchain node performs the consensus confirmation stage 240 for the consensus data block.
- each blockchain node performs consensus verification on the consensus data block, and when the consensus verification is passed, a confirmation message (Accept message) is broadcast to other blockchain nodes. If the verification fails, the data block can be discarded without any processing.
- the master node R0 broadcasts the Accept message to the backup nodes R1, R2, and R3.
- the backup nodes R1, R2, and R2 each broadcast Accept messages to other blockchain nodes.
- the format of the Accept message can be, for example, Accept ⁇ epoch,tx_root_hash,seq,sign_proofs,j>.
- the consensus processing process may not include the data recovery phase 230.
- the data recovery phase 230 may not be included.
- the blockchain node determines that a consensus has been reached on the data block to be agreed. For example, if the master node R0 or the backup node R1, R2, or R3 receives the number of Accept messages for arbitration (for example, 2f+1, where f represents multiple failed network nodes), it is determined that a consensus is reached.
- each network node receives the switch master start message sent by the backup node R0, prepares the switch master response message (New_Epoch message) in response to the master switch start message, and broadcasts the switch master response message to Other blockchain nodes.
- the blockchain node R1 receives the Epoch_Change message sent by the backup node R0, and replies to the backup node R0 with the New_Epoch message, which indicates the confirmation that the backup node R0 can become the new master node.
- the blockchain node R1 also broadcasts the New_Epoch message to other blockchain nodes, such as network nodes R2 and R3.
- the blockchain nodes R2 and R3 also broadcast their New_Epoch messages to other blockchain nodes.
- Each blockchain node can determine whether the master change is successful based on the received master change response message, and confirm the new master node and the new blockchain era.
- both the data block recovery phase and the consensus confirmation phase need to receive a sufficient number of messages to complete the processing of this phase. If the message is lost due to the failure of the blockchain node or other reasons, the consensus processing of the corresponding stage will not be completed, and the blockchain node will not make any response, and the consensus processing for the corresponding data block to be consensus will also be interrupted.
- there may be multiple data blocks to be consensus for consensus processing at the same time period and each blockchain node needs to keep the consensus processing of the consensus data blocks consistent, that is, keep in sync.
- each blockchain node needs to receive enough master change messages to confirm the success of the master change and confirm the new master node.
- the following embodiments provide a method for enabling each blockchain node to receive processing messages in a timely manner, so as to achieve a synchronized consensus on the data blocks to be agreed.
- FIG. 5 is a flowchart of a method for processing message synchronization according to an embodiment of the present disclosure.
- Figure 5 shows an example of any two blockchain nodes in the blockchain network.
- the blockchain node R1 determines whether a given period has expired.
- the processing message is the processing message received from other blockchain nodes in the current processing stage for the data block to be agreed.
- the current processing stage may be, for example, the data block recovery stage or the consensus confirmation stage shown in FIG. 3.
- the current processing stage can also be the main change response stage shown in FIG. 4.
- the starting point of a given period can be the moment when its own processing message is sent in the corresponding processing stage, or the moment when the first other blockchain node's processing message is received in the corresponding processing stage.
- the starting point of a given period in the data block recovery phase, can be the moment when the blockchain node receives the Echo message of a certain blockchain node, or the moment when a predetermined period of time has passed after sending its own Echo message .
- the starting point of a given period can be the moment when its own consensus response message is sent, or the first consensus response message from other blockchain nodes is received. time.
- the blockchain node R1 determines that there is a message lack, in block 506, the blockchain node R1 sends a processing message retransmission request to the target blockchain node in the blockchain network.
- the processing message retransmission request includes the identification of the data block to be agreed.
- the identification of the data block to be agreed may be the serial number of the data block of the data block to be agreed in the blockchain network.
- the data block serial number can be the serial number of all data blocks starting from the genesis block, or it can be the number in the corresponding blockchain era. Therefore, the blockchain era identifier can also be included in the processing of the message retransmission request.
- the target blockchain can be all other blockchain nodes in the blockchain network (for example, the blockchain nodes R0, R2, and R3 shown in FIG. 3). At this time, it is possible to broadcast the processing message retransmission request to other blockchain nodes in the blockchain network.
- the format for processing the message retransmission request may be Status ⁇ seq>.
- each blockchain node when each blockchain node receives a message retransmission request, it can broadcast the processing message for the data block to be agreed that it has sent to other blockchain nodes. For example, if the blockchain node receives a message retransmission request for the data block K to be agreed, the blockchain node R2 can broadcast all processing messages for the data block K that it has sent to other blockchain nodes. . In an example, the blockchain node that receives the request for processing the message retransmission may only send the Echo message and the data block Accept message.
- the processing message retransmission request may also include a missing processing message identifier.
- the format for processing the message retransmission request may be Status ⁇ epoch,seq, L>, where L is the identifier of the missing processing message. Different values that can be set to L correspond to various processing messages in the consensus processing process, so that the missing processing messages can be judged by the value of L.
- other blockchain nodes for example, blockchain node R2 may send processing messages corresponding to sep and L when receiving a message retransmission request. For example, if the blockchain node R1 determines that it is missing an Echo message, it can identify in the processing of the message resend request that the missing is an Echo message for the data block to be agreed. Therefore, when R2 receives the processing message retransmission request, it can broadcast the Echo message for the data block to be agreed upon to other blockchain nodes.
- the blockchain node that receives the processing message retransmission request can only retransmit the processing message that is missing from the blockchain node R1.
- the message retransmission request received by the blockchain node R2 is Status ⁇ K,1,0>
- the Echo message for the data block K to be agreed can be retransmitted to other blockchain nodes.
- processing the message retransmission request further includes the identifier of the sending node of the retransmission request.
- the processing message retransmission request may be Status ⁇ seq,E,A,j>, where j represents the identifier of the blockchain node that sent the processing message retransmission request.
- j represents the identifier of the blockchain node that sent the processing message retransmission request.
- a processing message retransmission request is sent to the target blockchain node in the blockchain network. If there is a blockchain node with a missing message that can complete the current processing, there is no need to request a retransmission of the missing processed message. As a result, the network resources occupied by the message transmission can be reduced, and the load of each blockchain node can be reduced.
- a message retransmission request in a common format can be used to achieve synchronization of processing messages.
- the processing message receiving unit 720 is configured to receive a processing message retransmitted in response to a processing message retransmission request from a target blockchain node in the blockchain network.
- the source node determination module 711 is configured to determine the source blockchain node of the missing processing message if there is a missing processing message when the given period expires.
- the message resending request sending module 712 is configured to send a processing message resending request to the determined source blockchain node.
- the message sending unit 920 may be configured to broadcast a processing message corresponding to the processing message retransmission request to other blockchain nodes in the blockchain network.
- the message sending unit may send a processing message corresponding to the processing message retransmission request to the blockchain node indicated by the retransmission request sending node identifier.
- Fig. 10 is a structural block diagram of a blockchain node according to an embodiment of the present disclosure.
- the blockchain node 1000 includes a message processing synchronization device 1010 and a message processing synchronization device 1020.
- the message processing synchronization device 1010 may have the functions and structures described above in conjunction with FIG. 7 and FIG. 8.
- the message processing synchronization device 1020 may have the function and structure described above in conjunction with FIG. 9.
- the message processing synchronization device of the present disclosure can be implemented by hardware, or by software or a combination of hardware and software.
- the various embodiments in this specification are described in a progressive manner, and the same or similar parts among the various embodiments are referred to each other.
- the device for processing message synchronization in the present disclosure can be implemented by hardware, or by software or a combination of hardware and software. Taking software implementation as an example, as a logical device, it is formed by reading the corresponding computer program instructions in the memory into the memory through the processor of the device where it is located.
- the apparatus for processing message synchronization can be implemented by using a computing device, for example.
- Fig. 11 is a structural block diagram of a computing device for implementing a method for processing message synchronization according to an embodiment of the present disclosure.
- the computing device 1100 includes a processor 1110, a memory 1120, a memory 1130, a communication interface 1140, and an internal bus 1150.
- the processor 1110, the memory 1120, the memory 1130, and the communication interface 1140 are connected together via the internal bus 1150.
- the computing device 1100 may include at least one processor 1110 that executes at least one computer-readable instruction (ie, the aforementioned Elements implemented in software).
- a program product such as a non-transitory machine-readable medium.
- the non-transitory machine-readable medium may have instructions (ie, the above-mentioned elements implemented in the form of software), which, when executed by a machine, cause the machine to execute the various embodiments described above in conjunction with FIGS. 1-9 in the various embodiments of the present disclosure. Operation and function.
- a system or device equipped with a readable storage medium may be provided, and the software program code for realizing the function of any one of the above-mentioned embodiments is stored on the readable storage medium, and the computer or device of the system or device The processor reads and executes the instructions stored in the readable storage medium.
- the program code itself read from the readable medium can implement the function of any one of the above embodiments, so the machine readable code and the readable storage medium storing the machine readable code constitute the present invention a part of.
- Examples of readable storage media include floppy disks, hard disks, magneto-optical disks, optical disks (such as CD-ROM, CD-R, CD-RW, DVD-ROM, DVD-RAM, DVD-RW, DVD-RW), magnetic tape, Volatile memory card and ROM.
- the program code can be downloaded from the server computer or the cloud via the communication network.
- the device structure described in the foregoing embodiments may be a physical structure or a logical structure, that is, some units may be implemented by the same physical entity, or some units may be implemented by multiple physical entities, or may be implemented by multiple physical entities. Some components in independent devices are implemented together.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
本公开涉及在区块链共识处理时进行处理消息同步的方法及装置。处理消息同步方法包括:如果在给定期间期满时存在处理消息缺失,则向区块链网络中的目标区块链节点发送处理消息重发请求,所述处理消息是在针对待共识数据块的当前处理时从所述其它区块链节点接收的处理消息,所述处理消息重发请求包括待共识数据块标识;以及从所述区块链网络中的目标区块链节点接收响应于所述处理消息重发请求而重发的处理消息。
Description
本公开涉及区块链技术,具体地,涉及在区块链共识处理时进行处理消息同步的方法及装置。
基于PBFT的共识算法,为了防止节点作恶,在某些共识处理阶段需要接收到不低于预定数量的正常处理消息才能够完成该共识处理阶段的处理。因而,对于这类共识算法,在共识处理过程中,需要保证各个节点能够顺利接收到其它节点发送的处理消息,并且需要保证处理消息的顺序性。
发明内容
鉴于上述,本公开提供了在区块链共识处理时进行处理消息同步的方法及装置。利用该方法和装置,当各个区块链节未接收到其他区块链节点发送的处理消息时,向其他区块链节点发送处理消息重发请求,其他区块链节点在接收到处理消息重发请求时,重新发送自己之前发送过的对应处理消息,由此能够使存在缺失处理消息的区块链节点能够顺利接收到处理消息。
根据本公开的一个方面,提供了一种用于在区块链共识处理时进行处理消息同步的方法,包括:如果在给定期间期满时存在处理消息缺失,则向区块链网络中的目标区块链节点发送处理消息重发请求,所述处理消息是在针对待共识数据块的当前处理时从所述其它区块链节点接收的处理消息,所述处理消息重发请求包括待共识数据块标识;以及从所述区块链网络中的目标区块链节点接收响应于所述处理消息重发请求而重发的处理消息。
可选的,在一个示例中,如果在给定期间期满时存在处理消息缺失,则向区块链网络中的目标区块链节点发送处理消息重发请求包括:如果在给定期间期满时存在处理消息缺失并且不能完成针对所述待共识数据块的当前处理,则向所述区块链网络中的目标区块链节点发送处理消息重发请求。
可选的,在一个示例中,所述处理消息重发请求还包括缺失处理消息标识。
可选的,在一个示例中,所述处理消息重发请求还包括处理阶段标识。
可选的,在一个示例中,所述处理阶段标识包括以下阶段标识中的任一种:区块链数据块恢复阶段标识;共识确认阶段标识。
可选的,在一个示例中,向区块链网络中的目标区块链节点发送处理消息重发请求包括:向所述区块链网络中的其它区块链节点广播处理消息重发请求。
可选的,在一个示例中,所述处理消息重发请求还包括重发请求发送节点标识。其中,所述其它区块链节点响应于所述处理消息重发请求而向所述重发请求发送节点重发处理消息。
可选的,在一个示例中,如果在给定期间期满时存在处理消息缺失,则向区块链网络中的目标区块链节点发送处理消息重发请求包括:如果在给定期间期满时存在处理消息缺失,则确定所缺失的处理消息的源区块链节点;以及向所确定的源区块链节点发送所述处理消息重发请求。
根据本公开的另一方面,还提供一种用于在区块链共识处理时进行处理消息同步的方法,包括:接收处理消息重发请求,所述处理消息重发请求包括待共识数据块标识;以及向所述区块链网络中的目标区块链节点发送与所述处理消息重发请求对应的处理消息。
可选的,在一个示例中,所述处理消息重发请求还包括缺失处理消息标识。
可选的,在一个示例中,所述处理消息重发请求还包括处理阶段标识。
可选的,在一个示例中,向所述区块链网络中的目标区块链节点发送与所述处理消息重发请求对应的处理消息包括:向所述区块链网络中的其它区块链节点广播与所述处理消息重发请求对应的处理消息。
可选的,在一个示例中,所述处理消息重发请求还包括重发请求发送节点标识。以及向所述区块链网络中的目标区块链节点发送与所述处理消息重发请求对应的处理消息包括:向所述重发请求发送节点标识所指示的区块链节点发送与所述处理消息重发请求对应的处理消息。
根据本公开的另一方面,还提供一种用于在区块链共识处理时进行处理消息同步的装置,包括:消息重发请求发送单元,被配置为如果在给定期间期满时存在处理消息缺失,则向区块链网络中的目标区块链节点发送处理消息重发请求,所述处理消息是在 针对待共识数据块的当前处理时从所述其它区块链节点接收的处理消息,所述处理消息重发请求包括待共识数据块标识;以及处理消息接收单元,被配置为从所述区块链网络中的目标区块链节点接收响应于所述处理消息重发请求而重发的处理消息。
可选的,在一个示例中,所述消息重发请求发送单元被配置为:如果在给定期间期满时存在处理消息缺失并且不能完成针对所述待共识数据块的当前处理,则向所述区块链网络中的目标区块链节点发送处理消息重发请求。
可选的,在一个示例中,所述处理消息重发请求还包括缺失处理消息标识。
可选的,在一个示例中,所述处理消息重发请求还包括处理阶段标识。
可选的,在一个示例中,所述消息重发请求发送单元被配置为:向所述区块链网络中的其它区块链节点广播处理消息重发请求。
可选的,在一个示例中,所述消息重发请求发送单元包括:源节点确定模块,被配置为如果在给定期间期满时存在处理消息缺失,则确定所缺失的处理消息的源区块链节点;以及消息重发请求发送模块,被配置为向所确定的源区块链节点发送所述处理消息重发请求。
根据本公开的另一方面,还提供一种用于在区块链共识处理时进行处理消息同步的方法,包括:消息重发请求接收单元,被配置为接收处理消息重发请求,所述处理消息重发请求包括待共识数据块标识;以及消息发送单元,被配置为向所述区块链网络中的目标区块链节点发送与所述处理消息重发请求对应的处理消息。
可选的,在一个示例中,所述消息发送单元被配置为:向所述区块链网络中的其它区块链节点广播与所述处理消息重发请求对应的处理消息。
可选的,在一个示例中,所述处理消息重发请求还包括重发请求发送节点标识。所述消息发送单元被配置为:向所述重发请求发送节点标识所指示的区块链节点发送与所述处理消息重发请求对应的处理消息。
根据本公开的另一方面,还提供一种区块链节点设备,包括如上第三方面所述的装置;以及如上第四方面所述的装置。
根据本公开的另一方面,还提供一种计算设备,包括:至少一个处理器;以及存储器,所述存储器存储指令,当所述指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如上第一方面所述的方法。
根据本公开的另一方面,还提供一种机器可读存储介质,其存储有可执行指令,所述指令当被执行时使得所述机器执行如上第二方面所述的方法。
根据本公开的另一方面,还提供一种计算设备,包括:至少一个处理器;以及存储器,所述存储器存储指令,当所述指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如上所述的方法。
根据本公开的另一方面,还提供一种非暂时性机器可读存储介质,其存储有可执行指令,所述指令当被执行时使得所述机器执行如上所述的方法。
利用本公开的方法和装置,通过在存在处理消息缺失时,周期性地向其他区块链节点发送处理消息重发请求,以通常其他区块链节点重新发送自身之前发送过的对应处理消息,由此能够使存在处理消息缺失的区块链节点顺利接收到处理消息。此外,该消息同步方法不需要消耗过多的通信资源。
利用本公开的方法和装置,通过在给定期间期满时存在处理消息缺失并且不能完成针对所述待共识数据块的当前处理时,向所述区块链网络中的目标区块链节点发送处理消息重发请求,能够减少不必要的消息发送,从而能减轻各个区块链节点的负荷。
利用本公开的方法和装置,通过在处理消息重发请求中包括缺失处理消息标识,目标区块链节点可以仅重发对应于缺失处理消息标识的处理消息,从而减少消息发送量,并节约带宽。
利用本公开的方法和装置,通过在处理消息重发请求中包括处理阶段标识,目标区块链节点可以仅重发对应处理阶段的处理消息,从而减少消息发送量,并节约网络资源。
利用本公开的方法和装置,通过在处理消息重发请求中包括重发请求发送节点标识,其它区块链节点可以只向发出处理消息重发请求的区块链节点发送处理消息,从而减少重发处理消息所占用的网络资源。
通过参照下面的附图,可以实现对于本公开内容的本质和优点的进一步理解。在附图中,类似组件或特征可以具有相同的附图标记。附图是用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开的实施例,但并不构成对本公开的实施例的限制。在附图中:
图1是本公开的实施例的应用环境的一个示例的示意图;
图2是图1所示的区块链网络的一个示例的示意图;
图3是用于说明区块链共识处理过程的一个示例的示意图;
图4是用于说明在共识处理过程中的共识换主过程的一个示例的示意图;
图5是根据本公开的一个实施例的处理消息同步方法的流程图;
图6是根据本公开的一个实施例的处理消息同步方法中的消息重发请求发送过程的一个示例的流程图;
图7是根据本公开的一个实施例的处理消息同步装置的结构框图;
图8是图7所示的处理消息同步装置中的消息重发请求发送单元的一个示例的结构框图;
图9是根据本公开的另一实施例的处理消息同步装置的结构框图;
图10是根据本公开的一个实施例的区块链节点的结构框图;以及
图11是根据本公开的一个实施例的用于实现处理消息同步方法的计算设备的结构框图。
以下将参考示例实施方式讨论本文描述的主题。应该理解,讨论这些实施方式只是为了使得本领域技术人员能够更好地理解从而实现本文描述的主题,并非是对权利要求书中所阐述的保护范围、适用性或者示例的限制。可以在不脱离本公开内容的保护范围的情况下,对所讨论的元素的功能和排列进行改变。各个示例可以根据需要,省略、替代或者添加各种过程或组件。另外,相对一些示例所描述的特征在其它例子中也可以进行组合。
如本文中使用的,术语“包括”及其变型表示开放的术语,含义是“包括但不限于”。术语“基于”表示“至少部分地基于”。术语“一个实施例”和“一实施例”表示“至少一个实施例”。术语“另一个实施例”表示“至少一个其他实施例”。术语“第一”、“第二”等可以指代不同的或相同的对象。下面可以包括其他的定义,无论是明确的还是隐含的。除非上下文中明确地指明,否则一个术语的定义在整个说明书中是一致的。
现在结合附图来描述本公开的在区块链共识处理时进行处理消息同步的方法及装置。
图1是本公开的实施例的应用环境的一个示例的示意图。
在一些示例中,应用环境100使得实体能够参与联盟区块链网络101。应用环境100包括计算设备或系统102、104和网络103。在一些示例中,网络103包括局域网(LAN)、广域网(WAN)、因特网或其组合,并且连接网站、用户设备(例如,计算设备)和后端系统等。在一些示例中,可以通过有线和/或无线通信链路来访问网络103。在一些示例中,网络103使得能够与联盟区块链网络101进行通信。通常,网络103表示一个或多个通信网络。在一些情况下,计算设备102、104可以是云计算系统(未示出)的节点,或者每个计算设备102、104可以是单独的云计算系统。云计算系统可以包括通过网络互连的多个计算机并且可以用作分布式处理系统。
在所描述的示例中,每个计算系统102、104可以包括能够作为联盟区块链网络101中的区块链节点的任何适当的计算系统。示例的计算设备包括但不限于服务器、台式计算机、笔记本电脑、平板电脑设备和智能手机。在一些示例中,计算系统102、104可以主管用于与联盟区块链网络101交互的一个或多个计算机所实现的服务。例如,计算系统104可以主管第一实体(例如,用户A)的计算机实现的服务。例如,第一实体可以管理与一个或多个其他实体(例如,其他用户)的交易的交易管理系统。计算系统108可以主管第二实体(例如,用户B)的计算机实现的服务。例如第二实体可以管理其与一个或多个其他实体(例如,其他用户)的交易的交易管理系统。在图1的示例中在图1中,联盟区块链网络101被表示为对等节点网络,并且计算系统102、104分别提供参与联盟区块链网络102的第一实体和第二实体的节点。
图2是图1所示的区块链网络的示意图。在区块链网络200中,存在区块链节点201、202、203、204和205。
区块链网络中的各个区块链节点可以参与不同的处理。例如,一些区块链节点可以参与共识处理过程(例如,作为将数据块添加到区块链206上的共识节点),而其他区块链节点可以不参与共识处理过程。作为另一示例,一些区块链节点可以存储区块链206的完整副本,而其他区块链节点可以仅存储区块链206的部分的副本。例如,数据访问权限可以限制相应参与者在其相应系统内存储的区块链数据。
区块链(例如,图2的区块链206)由块的链组成,每个块存储有数据。数据的示 例包括表示两个或更多参与者之间的交易的交易数据。区块链中可以存储有任何适合的数据,例如文档、图像、视频、音频等。交易的示例可以包括但不限于交换有价值的东西(例如,资产,产品,服务和货币)。在区块链中存储的交易数据是不可更改的。
图3是用于说明区块链共识处理过程的一个示例的示意图。如图2所示,共识处理过程200包括共识启动阶段210、共识响应阶段220、数据块恢复阶段230和共识确认阶段240。
在共识启动阶段210,区块链网络的主节点(Leader Node)向其他区块链网络中的其它区块链节点(即备份节点(Replica Node))发送对待共识数据块进行共识处理的共识启动消息(Initial消息)。共识启动消息表明主节点正在启动共识处理过程。如图3所示,主节点R0向其他区块链节点R1、R2和R3发送Initial消息。注意,共识处理过程200被示为包括四个区块链节点R0、R1、R2和R3仅用于说明目的,共识处理过程200可以包括任何合适数量的区块链节点。
在一个示例中,主节点可以基于纠删码算法,将待共识数据块分割为多个数据块分片,数据块分片的数量等于区块链网络中的备份节点的数量。然后,主节点可以在共识启动消息中将各个数据块分片单播发送给其它区块链节点。在图2中,主节点R0将各个数据块分片发送给区块链节点R1、R2和R3。在该示例中,Initial消息的格式例如可以是:Initial<epoch,tx_root_hash,ec_block_hash[],ec_block,seq,j>,其中,epoch为区块链时代标识,tx_root_hash为默克尔树的根哈希,ec_block_hash[]为默克尔树分支节点的哈希值,ec_block为通过纠删码算法折分后的针对目标区块链节点的数据块分片,seq为待共识数据块在区块链时代epoch下的编号,j为该Initial消息的目标区块链节点标识。
区块链时代(epoch)是指在某区块链节点作为主节点时的区块链网络时期。例如,在图2所示的示例中,当前区块链网络处于主节点R0所对应的区块链时代下。如果触发共识换主且换主成功,主节点切换为其它区块链节点,则区块链网络时期相应地切换至下一个区块链时代。区块链时代可以用区块链时代序号来标识。例如,如果在图2所示的区块链时代序号为N,那么当下一次共识换主后的区块链时代为N+1。
在其它区块链节点接收到共识启动消息之后,共识处理进入共识响应阶段220。在共识响应阶段220,当备份节点接收到共识启动消息时,响应于共识启动消息准备共识响应消息(Echo消息),并将共识响应消息广播给其它区块链节点。共识响应消息是备份节点针对主节点所发送的共识启动消息的应答。如图2所示,备份节点R1接收由 主节点R0发送的Initial消息,并以Echo消息作为应答来回复主节点R0。同时,备份节点R1还将Echo消息多播到其他备份节点,例如备份节点R2和R3。类似地,备份节点R2和R3每个都将Echo消息多播到包括主节点R0的其他区块链节点。
当区块链节点(例如主节点或备用节点)从其他区块链节点接收Echo消息时,共识处理可以进入共识确认阶段。在共识确认阶段,区块链节点可以验证Echo消息中的信息。在图3所示的示例中,当Initial消息中包括数据块分片时,各个备份节点将自己所接收到的数据块分片包括在Echo消息中广播给其它区块链节点。此时,各区块链节点在接收到Echo消息时进入数据块恢复阶段230。每个区块链节点(例如备份节点)可以基于所接收到的数据块分片来执行数据块恢复。Echo消息的格式例如可以是Echo<epoch,tx_root_hash,ec_block_hash[],ec_block,seq,sign_proof,j>,其中,ec_block为数据块分片,j为Echo消息的发送节点标识,sign_proof为区块链节点j针对其数据块分片的签名。
在数据块恢复阶段230,各个区链节点可以基于纠删码算法,对所拥有的各个数据块分片(从主节点和从其他备份节接收到的)进行数据块恢复,以恢复出待共识数据块。在恢复出待共识数据块之后,区块链节点对待共识数据块执行共识确认阶段240。
在共识确认阶段240,各个区块链节点对待共识数据块进行共识验证,当共识验证通过时,向其它区块链节点广播确认消息(Accept消息)。如果验证不通过,则可以丢弃该数据块,并不进行任何处理。例如,如图2所示,主节点R0将Accept消息广播到备份节点R1、R2和R3。类似地,备份节点R1、R2和R2各自将Accept消息广播到其他区块链节点。Accept消息的格式例如可以是Accept<epoch,tx_root_hash,seq,sign_proofs,j>,在Accept消息中,j表示Accept消息的发送节点标识,sign_proofs为区块链节点j恢复出待共识数据块所利用的所有数据块分片的签名集合。例如,如果区块链节点R1利用区块链节点R2和R3的Echo消息中携带的数据块分片恢复出了待共识数据块,则sign_proofs字段包括区块链节点R2和R3的签名集合。
在本公开的一些实施场景中,共识处理过程可以不包括数据恢复阶段230。例如,在主节点未基于纠删码将待共识数据块分割成数据块区片时,可以不包括数据恢复阶段230。
当区块链节点从其他区块链节点接收到足够数量的Accept消息时,区块链节点确定待共识数据块已经达成共识。例如,如果主节点R0或备份节点R1、R2或R3接收到仲裁(例如,2f+1,其中f表示多个故障网络节点)的Accept消息的数量,则确定达成 共识。
图4是用于说明区块链网络中的共识换主过程的示意图。共识换主过程(如图4所示的共识换主过程400)是指,在共识处理过程中,区块链网络中的备份节点认为主节点存在异常行为(如主节点作恶)而启动的主节点更换过程。与共识换主和主节点相关的一个概念是区块链时代。当主节点发生更换时,区块链时代相应地切换到下一个区块链时代。
在一个示例中,在换主启动阶段410,当区块链网络中的备份节点认为需要进行共识换主时,备份节点将发送换主启动消息(Epoch_Change消息)发送到其他区块链节点。换主启动消息表明备份节点希望成为新区块链时代中的新主节点。例如,如图4所示,如果备份节点R0确定当前主节点有故障并且需要执行共识换主,则向区块链网络中的其他区块链节点R1、R2和R3发送Epoch_Change消息,以表明区块链节点R0想要成为新的主节点。注意,共识换主过程400被示为结合四个网络节点实现,但这仅仅是示例,共识换主过程400可以结合任何合适数量的区块链节点来实现。
然后,在换主响应阶段420,每个网络节点接收由备份节点R0发送的换主启动消息,并响应于换主启动消息准备换主响应消息(New_Epoch消息),并将换主响应消息广播到其他区块链节点。例如,如图4所示,区块链节点R1接收由备份节点R0发送的Epoch_Change消息,并且用New_Epoch消息回复备份节点R0,该消息表示对备份节点R0可以成为新的主节点的确认。同时,区块链节点R1还将New_Epoch消息广播到其他区块链节点,例如网络节点R2和R3。类似地,区块链节点R2和R3也分别将各自的New_Epoch消息广播到其他区块链节点。各个区块链节点可以基于所接收到的换主响应消息确定换主是否成功,并确认新的主节点和新的区块链时代。
在共识处理过程中,数据块恢复阶段和共识确认阶段都需要收到足够数量的消息才能完成本阶段的处理。如果区块链节点故障等原因导致消息丢失,相应阶段的共识处理将不能完成,因而区块链节点将不会做出任何响应,针对相应待共识数据块的共识处理也会被中断。然而,在区块链网络中,同一时间段进行共识处理的待共识数据块可能有多个,各个区块链节点对待共识数据块的共识处理需要保持一致,即保持同步。此外,在共识换主过程中,各个区块链节点需要接收到足够的换主响消息才能确认换主是否成功并确认新的主节点。以下实施例提供了一种使各个区块链节点能够及时接收到处理消息,从而实现针对待共识数据块的同步共识。
图5是根据本公开的一个实施例的处理消息同步方法的流程图。图5以区块链网 络中的任意两个区块链节点为例进行了图示。
如图5所示,在块502,区块链节点R1判断给定期间是否期满。处理消息是在针对待共识数据块的当前处理阶段,从其它区块链节点接收的处理消息。当前处理阶段例如可以是图3所示的数据块恢复阶段或共识确认阶段。当前处理阶段还可以是图4所示的换主响应阶段。
给定期间的起点可以是在相应处理阶段发出自己的处理消息的时刻,或相应处理阶段接收到首个其他区块链节点的处理消息的时刻。在一个示例中,在数据块恢复阶段,给定期间的起点可以是区块链节点接收到某一区块链节点的Echo消息的时刻,或在发出自己的Echo消息之后经过预定时间段的时刻。在另一示例中,在共识换主过程中的换主响应过程中,给定期间的起点可以是发出自己的共识响应消息的时刻,或接收到首个其他区块链节点的共识响应消息的时刻。
如果给定期间期满,则在块504,针对待共识数据块,判断是否存在处理消息缺失。例如,在图3所示的数据恢复阶段,区块链节点R1可以判断是否收到了针对待共识数据的所有来自其他备份节点(例如,区块链节点R2和R3)的Echo消息,如果没有收到R2或R3中的任何一个Echo消息,则确定存在处理消息缺失。类似地,在共识确认阶段,可以判断是否接收到了所有来自其他备份节点(例如,区块链节点R0、R2和R3)的Accept消息。
当区块链节点R1判断出存在消息缺失时,在块506,区块链节点R1向区块链网络中的目标区块链节点发送处理消息重发请求。处理消息重发请求包括待共识数据块标识。待共识数据块标识可以是待共识数据块在区块链网络中的数据块序列号。数据块序列号可以是从创世区块开始的所有数据块的连续编号,也可以是相应区块链时代中的编号。因而,在处理消息重发请求中还可以包括区块链时代标识。目标区块链可以是区块链网络中的所有其它区块链节点(例如图3所示的区块链节点R0、R2和R3)。此时,可以向区块链网络中的其它区块链节点广播处理消息重发请求。作为示例,处理消息重发请求的格式可以是Status<seq>。
在另一示例中,在判断出存在消息缺失时,还可以确定缺失的处理消息的源区块链节点。处理消息的源区块链节点是指发送该处理消息的区块链节点。在判断出缺失处理消息的源区块链节点时,可以向确定的源区块链节点发送处理消息重发请求。例如,在数据块恢复阶段,如果区块链节点R1判断出缺失区块链节点R2的响应消息,则可以仅向区块链节点R2发送消息重发请求。由此,能够减少网络资源占用。
当接收到消息重发请求时,在块508,区块链节点R2向区块链网络中的目标区块链节点发送与处理消息重发请求对应的处理消息。虽然图5中示出了接收区块链节点R1发送的消息重发请求,区块链网络中的区块链节点可以接收任意其它区块链节点的消息重发请求。
在一个示例中,各个区块链节点在接收到消息重发请求时,可以将自己发送过的针对待共识数据块的处理消息广播给其它区块链节点。例如,如果区块链节点接收到针对待共识数据块K的消息重发请求时,区块链节点R2可以将自己发送过的针对待共识数据块K的所有处理消息广播给其它区块链节点。在一个示例中,接收到处理消息重发请求的区块链节点可以只发送Echo消息和数据块Accept消息。
处理消息重发请求中还可以包括缺失处理消息标识。作为示例,处理消息重发请求的格式可以是Status<epoch,seq,L>,L为缺失处理消息标识。可以设置为L的不同取值对应于共识处理过程的各种处理消息,从而通过L的值可以判断出所缺失的处理消息。在该示例中,其它区块链节点(例如区块链节点R2)在接收到消息重发请求时,可以发送与sep和L对应的处理消息。例如,如果区块链节点R1判断出自己缺失的是Echo消息,则可以在处理消息重发请求中标识出所缺失的是针对待共识数据块的Echo消息。从而R2在接收到该处理消息重发请求时,可以向其它区块链节点广播针对待共识数据块的Echo消息。
此外,处理消息重发请求中还可以包括处理阶段标识。作为示例,处理消息重发请求的格式可以是Status<seq,E,A>,其中,E表示数据块恢复阶段,A表示共识确认阶段。当E取值为1时表示数据块恢复阶段所需的消息(即Echo消息),当E取值为0时,表示Echo消息不存在缺失。类似地,当A取值为1时,表示缺失共识确认阶段所需的消息(即Accept消息),当A取值为0时,表示Accept消息不存在缺失。由此,接收到处理消息重发请求的区块链节点可以只重发区块链节点R1缺失的处理消息。例如,如果区块链节点R2接收到的消息重发请求为Status<K,1,0>,则可以将针对待共识数据块K的Echo消息重发给其它区块链节点。
在另一示例中,处理消息重发请求还包括重发请求发送节点标识。作为示例,处理消息重发请求可以为Status<seq,E,A,j>,其中,j表示发送处理消息重发请求的区块链节点标识。当其它区块链节点接收到该处理消息请求时,可以将相应的处理消息重发给区块链节点j。
图6是根据本公开的一个实施例的处理消息同步方法中的消息重发请求发送过程 的一个示例的流程图。
如图6所示,在块602判断给定期间是否期满。当给定期间期满时,在块604,判断是否存在处理消息缺失。
如果存在处理消息缺失,则在块606,则判断是否能完成针对待共识数据块的当前处理。例如,在图3所示的数据恢复阶段,如果区块链节点R1能够基于纠删码算法,并根据当前已收集到的数据块分片能够恢复出待共识数据块,则表明虽然存在消息缺失,但能够完成针对待共识数据块的当前处理。类似地,在共识确认阶段,如果已接收到了足够数量的数据确认消息并能够得出共识通过的确认结果,则可以确定能够完成该阶段的处理。在换主响应阶段,如果基于已接收到的换主响应消息能够确定出新主节点,则可以确定能够完成换主响应阶段的处理。
当不能完成当前处理时,在块608,向区块链网络中的目标区块链节点发送处理消息重发请求。如果存在消息缺失的区块链节点能够完成当前处理,则没有必要再请求重发所缺失的处理消息。由此,能够减少消息发送所占用的网络资源,并减轻各区块链节点的负荷。
通过以上实施例,在共识处理的各个过程(包括共识换主过程)中可以使用通用格式的消息重发请求来实现处理消息同步。
图7是根据本公开的一个实施例的处理消息同步装置的结构框图。如图7所示,处理消息同步装置700包括消息重发请求发送单元710和处理消息接收单元720。
消息重发请求发送单元710被配置为如果在给定期间期满时存在处理消息缺失,则向区块链网络中的目标区块链节点发送处理消息重发请求,处理消息是在针对待共识数据块的当前处理时从其它区块链节点接收的处理消息,处理消息重发请求包括待共识数据块标识。
在一个示例中,消息重发请求发送单元710可以被配置为当在给定期间期满时存在处理消息缺失并且不能完成针对待共识数据块的当前处理时,向区块链网络中的目标区块链节点发送处理消息重发请求。消息重发请求发送单元710可以向区块链网络中的其它区块链节点广播处理消息重发请求。
处理消息接收单元720被配置为从区块链网络中的目标区块链节点接收响应于处理消息重发请求而重发的处理消息。
图8是图7所示的处理消息同步装置中的消息重发请求发送单元的一个示例的结 构框图。如图8所示,消息重发请求发送单元710包括源节点确定模块711和消息重发请求发送模块712。
源节点确定模块711被配置为如果在给定期间期满时存在处理消息缺失,则确定所缺失的处理消息的源区块链节点。消息重发请求发送模块712被配置为向所确定的源区块链节点发送处理消息重发请求。
处理消息重发请求还可以包括缺失处理消息标识,还可以包括处理阶段标识,从而其它区块链节点在接收到消息重发请求时,可以只发送对应于缺失处理消息标识和/或处理阶段标识的处理消息。此外,处理消息重发请求还可以包括待共识数据块的对应的区块链时代标识。
图9是根据本公开的另一实施例的处理消息同步装置的结构框图。如图9所示,处理消息同步装置900包括消息重发请求接收单元910和消息发送单元920。
消息重发请求接收单元910被配置为接收处理消息重发请求。处理消息重发请求包括待共识数据块标识。在接收到处理消息重发请求时,消息发送单元920向区块链网络中的目标区块链节点发送与处理消息重发请求对应的处理消息。
在一个示例中,消息发送单元920可以被配置为向区块链网络中的其它区块链节点广播与处理消息重发请求对应的处理消息。
此外,当处理消息重发请求还包括重发请求发送节点标识时,消息发送单元可以向重发请求发送节点标识所指示的区块链节点发送与处理消息重发请求对应的处理消息。
图10是根据本公开的一个实施例的区块链节点的结构框图。如图9所示,区块链节点1000包括处理消息同步装置1010和处理消息同步装置1020。
处理消息同步装置1010可以具有以上结合图7和图8所描述的功能和结构。处理消息同步装置1020可以具有以上结合图9描述的功能和结构。
以上参照图1到图9,对根据本公开的处理消息同步方法及装置的实施例进行了描述。在以上对方法实施例的描述中所提及的细节,同样适用于本公开的装置的实施例。
本公开的处理消息同步装置可以采用硬件实现,也可以采用软件或者硬件和软件的组合来实现。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见。
本公开的处理消息同步的装置可以采用硬件实现,也可以采用软件或者硬件和软件的组合来实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的 处理器将存储器中对应的计算机程序指令读取到内存中运行形成的。在本公开中,处理消息同步的装置例如可以利用计算设备实现。
图11是根据本公开的一个实施例的用于实现处理消息同步方法的计算设备的结构框图。如图11所示,计算设备1100包括处理器1110、存储器1120、内存1130、通信接口1140和内部总线1150,处理器1110、存储器1120、内存1130、通信接口1140经由内部总线1150连接在一起。根据一个实施例,计算设备1100可以包括至少一个处理器1110,该至少一个处理器1110执行在计算机可读存储介质(即,存储器1120)中存储或编码的至少一个计算机可读指令(即,上述以软件形式实现的元素)。
在一个实施例中,在存储器1120中存储计算机可执行指令,其当执行时使得至少一个处理器1110:如果在给定期间期满时存在处理消息缺失,则向区块链网络中的目标区块链节点发送处理消息重发请求,所述处理消息是在针对待共识数据块的当前处理时从所述其它区块链节点接收的处理消息,所述处理消息重发请求包括待共识数据块标识;以及从所述区块链网络中的目标区块链节点接收响应于所述处理消息重发请求而重发的处理消息。
在另一实施例中,在存储器1120中存储计算机可执行指令,其当执行时使得至少一个处理器1110:接收处理消息重发请求,处理消息重发请求包括待共识数据块标识;以及向区块链网络中的目标区块链节点发送与处理消息重发请求对应的处理消息。
应该理解,在存储器1120中存储的计算机可执行指令当执行时使得至少一个处理器1110进行本公开的各个实施例中以上结合图1-9描述的各种操作和功能。
根据一个实施例,提供了一种例如非暂时性机器可读介质的程序产品。非暂时性机器可读介质可以具有指令(即,上述以软件形式实现的元素),该指令当被机器执行时,使得机器执行本公开的各个实施例中以上结合图1-9描述的各种操作和功能。
具体地,可以提供配有可读存储介质的系统或者装置,在该可读存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机或处理器读出并执行存储在该可读存储介质中的指令。
在这种情况下,从可读介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此机器可读代码和存储机器可读代码的可读存储介质构成了本发明的一部分。
可读存储介质的实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD-RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上或云上下载程序代码。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
上述各流程和各系统结构图中不是所有的步骤和单元都是必须的,可以根据实际的需要忽略某些步骤或单元。各步骤的执行顺序不是固定的,可以根据需要进行确定。上述各实施例中描述的装置结构可以是物理结构,也可以是逻辑结构,即,有些单元可能由同一物理实体实现,或者,有些单元可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
在整个本说明书中使用的术语“示例性”意味着“用作示例、实例或例示”,并不意味着比其它实施例“优选”或“具有优势”。出于提供对所描述技术的理解的目的,具体实施方式包括具体细节。然而,可以在没有这些具体细节的情况下实施这些技术。在一些实例中,为了避免对所描述的实施例的概念造成难以理解,公知的结构和装置以框图形式示出。
以上结合附图详细描述了本公开的实施例的可选实施方式,但是,本公开的实施例并不限于上述实施方式中的具体细节,在本公开的实施例的技术构思范围内,可以对本公开的实施例的技术方案进行多种简单变型,这些简单变型均属于本公开的实施例的保护范围。
本公开内容的上述描述被提供来使得本领域任何普通技术人员能够实现或者使用本公开内容。对于本领域普通技术人员来说,对本公开内容进行的各种修改是显而易见的,并且,也可以在不脱离本公开内容的保护范围的情况下,将本文所定义的一般性原理应用于其它变型。因此,本公开内容并不限于本文所描述的示例和设计,而是与符合本文公开的原理和新颖性特征的最广范围相一致。
Claims (27)
- 一种用于在区块链共识处理时进行处理消息同步的方法,包括:如果在给定期间期满时存在处理消息缺失,则向区块链网络中的目标区块链节点发送处理消息重发请求,所述处理消息是在针对待共识数据块的当前处理时从所述其它区块链节点接收的处理消息,所述处理消息重发请求包括待共识数据块标识;以及从所述区块链网络中的目标区块链节点接收响应于所述处理消息重发请求而重发的处理消息。
- 如权利要求1所述的方法,其中,如果在给定期间期满时存在处理消息缺失,则向区块链网络中的目标区块链节点发送处理消息重发请求包括:如果在给定期间期满时存在处理消息缺失并且不能完成针对所述待共识数据块的当前处理,则向所述区块链网络中的目标区块链节点发送处理消息重发请求。
- 如权利要求1所述的方法,其中,所述处理消息重发请求还包括缺失处理消息标识。
- 如权利要求1到3中任一所述的方法,其中,所述处理消息重发请求还包括处理阶段标识。
- 如权利要求4所述的方法,其中,所述处理阶段标识包括下述阶段标识中的任一种:区块链数据块恢复阶段标识;共识确认阶段标识。
- 如权利要求1到3中任一所述的方法,其中,向区块链网络中的目标区块链节点发送处理消息重发请求包括:向所述区块链网络中的其它区块链节点广播处理消息重发请求。
- 如权利要求6所述的方法,其中,所述处理消息重发请求还包括重发请求发送节点标识,其中,所述其它区块链节点响应于所述处理消息重发请求而向所述重发请求发送节点重发处理消息。
- 如权利要求1到3中任一所述的方法,其中,如果在给定期间期满时存在处理消息缺失,则向区块链网络中的目标区块链节点发送处理消息重发请求包括:如果在给定期间期满时存在处理消息缺失,则确定所缺失的处理消息的源区块链节点;以及向所确定的源区块链节点发送所述处理消息重发请求。
- 一种用于在区块链共识处理时进行处理消息同步的方法,包括:接收处理消息重发请求,所述处理消息重发请求包括待共识数据块标识;以及向所述区块链网络中的目标区块链节点发送与所述处理消息重发请求对应的处理消息。
- 如权利要求9述的方法,其中,所述处理消息重发请求还包括缺失处理消息标识。
- 如权利要求9或10所述的方法,其中,所述处理消息重发请求还包括处理阶段标识。
- 如权利要求9或10所述的方法,其中,向所述区块链网络中的目标区块链节点发送与所述处理消息重发请求对应的处理消息包括:向所述区块链网络中的其它区块链节点广播与所述处理消息重发请求对应的处理消息。
- 如权利要求9或10所述的方法,其中,所述处理消息重发请求还包括重发请求发送节点标识,以及向所述区块链网络中的目标区块链节点发送与所述处理消息重发请求对应的处理消息包括:向所述重发请求发送节点标识所指示的区块链节点发送与所述处理消息重发请求对应的处理消息。
- 一种用于在区块链共识处理时进行处理消息同步的装置,包括:消息重发请求发送单元,被配置为如果在给定期间期满时存在处理消息缺失,则向区块链网络中的目标区块链节点发送处理消息重发请求,所述处理消息是在针对待共识数据块的当前处理时从所述其它区块链节点接收的处理消息,所述处理消息重发请求包括待共识数据块标识;以及处理消息接收单元,被配置为从所述区块链网络中的目标区块链节点接收响应于所述处理消息重发请求而重发的处理消息。
- 如权利要求14所述的装置,其中,所述消息重发请求发送单元被配置为:如果在给定期间期满时存在处理消息缺失并且不能完成针对所述待共识数据块的当前处理,则向所述区块链网络中的目标区块链节点发送处理消息重发请求。
- 如权利要求14所述的装置,其中,所述处理消息重发请求还包括缺失处理消息标识。
- 如权利要求14到16中任一所述的装置,其中,所述处理消息重发请求还包括 处理阶段标识。
- 如权利要求14到16中任一所述的装置,其中,所述消息重发请求发送单元被配置为:向所述区块链网络中的其它区块链节点广播处理消息重发请求。
- 如权利要求14到16中任一所述的装置,其中,所述消息重发请求发送单元包括:源节点确定模块,被配置为如果在给定期间期满时存在处理消息缺失,则确定所缺失的处理消息的源区块链节点;以及消息重发请求发送模块,被配置为向所确定的源区块链节点发送所述处理消息重发请求。
- 一种用于在区块链共识处理时进行处理消息同步的装置,包括:消息重发请求接收单元,被配置为接收处理消息重发请求,所述处理消息重发请求包括待共识数据块标识;以及消息发送单元,被配置为向所述区块链网络中的目标区块链节点发送与所述处理消息重发请求对应的处理消息。
- 如权利要求20所述的装置,其中,所述消息发送单元被配置为:向所述区块链网络中的其它区块链节点广播与所述处理消息重发请求对应的处理消息。
- 如权利要求20所述的装置,其中,所述处理消息重发请求还包括重发请求发送节点标识,以及所述消息发送单元被配置为:向所述重发请求发送节点标识所指示的区块链节点发送与所述处理消息重发请求对应的处理消息。
- 一种区块链节点,包括:如权利要求14到19中任一所述的装置;以及如权利要求20到22中任一所述的装置。
- 一种计算设备,包括:至少一个处理器;以及存储器,所述存储器存储指令,当所述指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如权利要求1到8中任一所述的方法。
- 一种机器可读存储介质,其存储有可执行指令,所述指令当被执行时使得所述 机器执行如权利要求1到8中任一所述的方法。
- 一种计算设备,包括:至少一个处理器;以及存储器,所述存储器存储指令,当所述指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如权利要求9到13中任一所述的方法。
- 一种机器可读存储介质,其存储有可执行指令,所述指令当被执行时使得所述机器执行如权利要求9到13中任一所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010181621.X | 2020-03-16 | ||
CN202010181621.XA CN111064813B (zh) | 2020-03-16 | 2020-03-16 | 在区块链共识处理时进行处理消息同步的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021184879A1 true WO2021184879A1 (zh) | 2021-09-23 |
Family
ID=70307904
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2020/139718 WO2021184879A1 (zh) | 2020-03-16 | 2020-12-26 | 在区块链共识处理时进行处理消息同步的方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (2) | CN111064813B (zh) |
WO (1) | WO2021184879A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113873030A (zh) * | 2021-09-24 | 2021-12-31 | 支付宝(杭州)信息技术有限公司 | 一种区块链的共识方法、共识节点及电子设备 |
CN113872961A (zh) * | 2021-09-24 | 2021-12-31 | 支付宝(杭州)信息技术有限公司 | 一种区块链的共识方法、共识节点及电子设备 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111064813B (zh) * | 2020-03-16 | 2020-06-30 | 支付宝(杭州)信息技术有限公司 | 在区块链共识处理时进行处理消息同步的方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107392611A (zh) * | 2017-03-24 | 2017-11-24 | 阿里巴巴集团控股有限公司 | 一种发送交易信息和共识验证的方法及装置 |
CN108376106A (zh) * | 2018-02-01 | 2018-08-07 | 中国工商银行股份有限公司 | 一种区块链消息反馈方法及系统 |
CN108462724A (zh) * | 2018-05-17 | 2018-08-28 | 北京京东金融科技控股有限公司 | 数据共享方法、装置、系统、成员节点和可读存储介质 |
WO2019119929A1 (zh) * | 2017-12-21 | 2019-06-27 | 广州广电运通金融电子股份有限公司 | 区块链共识方法、装置和系统、标识信息处理方法和装置 |
CN111064813A (zh) * | 2020-03-16 | 2020-04-24 | 支付宝(杭州)信息技术有限公司 | 在区块链共识处理时进行处理消息同步的方法及装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170236120A1 (en) * | 2016-02-11 | 2017-08-17 | Oracle International Corporation | Accountability and Trust in Distributed Ledger Systems |
US10049017B2 (en) * | 2016-10-04 | 2018-08-14 | Nec Corporation | Method and system for byzantine fault-tolerance replicating of data on a plurality of servers |
CN107196772B (zh) * | 2017-03-24 | 2020-03-13 | 创新先进技术有限公司 | 一种广播消息的方法及装置 |
CN111327703B (zh) * | 2017-03-28 | 2022-05-31 | 创新先进技术有限公司 | 一种基于区块链的共识方法及装置 |
CN107046542B (zh) * | 2017-04-24 | 2020-04-14 | 杭州云象网络技术有限公司 | 一种在网络级采用硬件实现共识验证的方法 |
CN109347917A (zh) * | 2018-09-14 | 2019-02-15 | 北京沃杰知识产权有限公司 | 区块链数据共识处理方法、系统、存储介质和电子设备 |
BR112019008172B1 (pt) * | 2018-11-07 | 2022-01-25 | Advanced New Technologies Co., Ltd | Método implementado por computador para facilitar um processo de consenso em uma rede de protocolo de confiança baseada na tolerância a falhas bizantinas práticas, meio de armazenamento não transitório legível por computador e sistema |
CN110349029B (zh) * | 2019-07-17 | 2022-04-15 | 中国银行股份有限公司 | 一种基于区块链的交易一致性的处理方法、设备以及系统 |
-
2020
- 2020-03-16 CN CN202010181621.XA patent/CN111064813B/zh active Active
- 2020-03-16 CN CN202010779693.4A patent/CN112019599A/zh active Pending
- 2020-12-26 WO PCT/CN2020/139718 patent/WO2021184879A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107392611A (zh) * | 2017-03-24 | 2017-11-24 | 阿里巴巴集团控股有限公司 | 一种发送交易信息和共识验证的方法及装置 |
WO2019119929A1 (zh) * | 2017-12-21 | 2019-06-27 | 广州广电运通金融电子股份有限公司 | 区块链共识方法、装置和系统、标识信息处理方法和装置 |
CN108376106A (zh) * | 2018-02-01 | 2018-08-07 | 中国工商银行股份有限公司 | 一种区块链消息反馈方法及系统 |
CN108462724A (zh) * | 2018-05-17 | 2018-08-28 | 北京京东金融科技控股有限公司 | 数据共享方法、装置、系统、成员节点和可读存储介质 |
CN111064813A (zh) * | 2020-03-16 | 2020-04-24 | 支付宝(杭州)信息技术有限公司 | 在区块链共识处理时进行处理消息同步的方法及装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113873030A (zh) * | 2021-09-24 | 2021-12-31 | 支付宝(杭州)信息技术有限公司 | 一种区块链的共识方法、共识节点及电子设备 |
CN113872961A (zh) * | 2021-09-24 | 2021-12-31 | 支付宝(杭州)信息技术有限公司 | 一种区块链的共识方法、共识节点及电子设备 |
CN113872961B (zh) * | 2021-09-24 | 2023-09-29 | 支付宝(杭州)信息技术有限公司 | 一种区块链的共识方法、共识节点及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111064813B (zh) | 2020-06-30 |
CN112019599A (zh) | 2020-12-01 |
CN111064813A (zh) | 2020-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021184879A1 (zh) | 在区块链共识处理时进行处理消息同步的方法及装置 | |
US11128522B2 (en) | Changing a master node in a blockchain system | |
EP3780553B1 (en) | Blockchain-based transaction consensus processing method and apparatus, and electrical device | |
US10833919B2 (en) | Node device operation method, work status switching apparatus, node device, and medium | |
US20210248030A1 (en) | Method, apparatus and electronic device for blockchain-based transaction consensus processing | |
CN110351133B (zh) | 用于区块链系统中的主节点切换处理的方法及装置 | |
AU2019203861B2 (en) | System and method for ending view change protocol | |
CN112685796B (zh) | 一种基于区块链的区块共识方法以及相关设备 | |
JP7154234B6 (ja) | ブロックチェーン・ネットワークにおける高速伝搬のための方法及び特殊ネットワーク・ノード | |
CN111539726B (zh) | 区块链共识系统及方法 | |
TWI717135B (zh) | 用於結束視域變換協定的系統和方法 | |
WO2023045620A1 (zh) | 一种交易数据处理方法、装置、计算机设备以及存储介质 | |
CN104335159A (zh) | 间隔控制复制 | |
CN107197036A (zh) | 一种基于区块链的信息一致处理方法及终端 | |
WO2017088705A1 (zh) | 数据处理方法和装置 | |
CN108667635B (zh) | 一种容灾处理的方法、设备及系统 | |
CN111275555B (zh) | 区块链交易处理方法、交易节点以及区块链系统 | |
JP2024517445A (ja) | ブロックチェーンに基づくデータ処理方法、データ処理装置、コンピュータ機器、及びコンピュータプログラム | |
Zhao | Optimistic byzantine fault tolerance | |
CN108228581B (zh) | Zookeeper兼容通信方法、服务器及系统 | |
KR20220074971A (ko) | 블록체인 기반 데이터 프로세싱 방법, 장치 및 디바이스, 그리고 판독가능 저장 매체 | |
CN116232893A (zh) | 分布式系统的共识方法、装置、电子设备及存储介质 | |
CN114979234A (zh) | 分布式集群系统中会话控制共享方法及系统 | |
CN116846888A (zh) | 区块链网络的共识处理方法、装置、设备及存储介质 | |
WO2024066974A1 (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: 20925921 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: 20925921 Country of ref document: EP Kind code of ref document: A1 |