专利摘要:
The present invention relates to implementations that describe a method and a device for sending transaction information and performing consensus verification. If another consensus node fails to receive transaction information sent through a handling node in a transaction handling phase, the other consensus node may send a consensus verification failure notification that includes a transaction information identifier. handling node in a consensus check phase, if the other consensus node determines that transaction information included in a preprocessed block does not exist in a transaction set of another consensus node, so that the handling resends transaction information to the other consensus node. According to the implementations of this application, it can be ensured as far as possible that transaction information stored in consensus node transaction sets is consistent and therefore the accuracy of a consensus node consensus check result. consensus is not reduced.
公开号:BR112019012905A2
申请号:R112019012905
申请日:2018-03-19
公开日:2019-12-03
发明作者:Li Ning
申请人:Alibaba Group Holding Ltd;
IPC主号:
专利说明:

"METHOD FOR SENDING TRANSACTION INFORMATION AND DEVICE FOR SENDING TRANSACTION INFORMATION" Field of the Invention [001] The present invention relates to the field of blockchain technologies and, in particular, to a method and device for the sending transaction information and checking consensus.
Background of the Invention [002] In the field of blockchain technologies, a blockchain node responsible for performing consensus verification on transactions is referred to as a consensus node.
[003] In a consensus verification phase, a consensus node that initiates consensus verification needs to package the transaction information generated within a period of time in one pre-processed block and send the pre-processed block to the other consensus node for consensus verification and another consensus node checks whether a set of transactions from the other consensus node includes all transaction information in the preprocessed block. A verification result is that the consensus verification is successful if the transaction set includes all transaction information in the pre-processed block. A verification result is that the consensus verification fails if the transaction set does not include all transaction information in the preprocessed block. Subsequently, the consensus nodes reach a consensus that the transaction information in the pre-processed block is valid or invalid based on the verification results of the consensus nodes in the pre-processed block and use consensus as a result of the consensus verification through consensus nodes in the pre-processed block. It is therefore necessary to ensure that the transaction information stored in the transaction sets of the consensus nodes
Petition 870190057392, of 6/21/2019, p. 81/114
2/29 are consistent, to make the result of consensus verification of consensus nodes as accurate as possible.
[004] In a transaction handling phase, for different transactions, each consensus node can serve as a transaction handling node (which is referred to as a handling node stroke) to obtain transaction information for a transaction. For a transaction, a handling node that corresponds to the transaction needs to send the transaction information to the other consensus node and another consensus node that receives the transaction information stores the transaction information in a set of transactions from the other consensus node . Consensus nodes keep transaction information consistent that is stored in the transaction sets of consensus nodes using this method.
[005] However, since network disturbances are always inevitable, network instability, in general, leads to instability in the transmission of information between consensus nodes, and some consensus nodes may stop receiving the information sent. . For example, a handling node sends the transaction information to the other consensus nodes. If a network disturbance occurs, the transaction information sent through the handling node to the other consensus nodes cannot be received by all other consensus nodes. Consequently, the transaction information stored in the consensus node transaction sets cannot remain consistent, thereby reducing the accuracy of a consensus nod consensus verification result.
Brief Description of the Invention [006] The implementations of the present application provide a method and a device for sending transaction information and for
Petition 870190057392, of 6/21/2019, p. 82/114
3/29 consensus verification, to alleviate the problem that the accuracy of a consensus nod consensus verification result is reduced using an existing method for submitting transaction information and performing consensus verification.
[007] To alleviate the previous technical problem, the implementations of this application are implemented as follows:
An implementation of the present application provides a method for sending transaction information, in which the method includes the following: obtaining, through a consensus node, the transaction information; send the transaction information to the other consensus node; and resending the transaction information based on a consensus verification failure notification upon receiving the consensus verification failure notification that is sent through another consensus node and that includes a transaction information identifier;
An implementation of the present application provides a method for verifying consensus, in which the method includes the following: receiving, through a consensus node, a pre-processed block sent through another consensus node; perform consensus verification on the preprocessed block based on the transaction information stored in a set of transactions and transaction information included in the preprocessed block; and in a consensus verification process, if it is determined that at least some of the transaction information included in the pre-processed block does not exist in the transaction set, determine an information identifier for the missing transaction information in the transaction set the transaction information included in the preprocessed block and send a consensus verification failure notification that includes the information identifier for the other consensus nodes;
An implementation of this application provides a device
Petition 870190057392, of 6/21/2019, p. 83/114
4/29 for sending the transaction information, in which the device includes the following: an acquisition module, configured to obtain the transaction information; a first sending module, configured to send the transaction information to the other consensus node; and a second submission module, configured to resend transaction information based on a consensus verification failure notification when the consensus verification failure notification sent through another consensus node and that includes a transaction information identifier is received; and
An implementation of the present application provides a device for checking consensus, in which the device includes the following: a receiving module, configured to receive a pre-processed block sent through another consensus node; a consensus verification module, configured to perform consensus verification on the preprocessed block based on the transaction information stored in a set of transactions and transaction information included in the preprocessed block; and a shipping module, configured to: in a consensus verification process, if it is determined that at least some of the transaction information included in the pre-processed block does not exist in the transaction set, determine a transaction information identifier missing from the transaction set in the transaction information included in the pre-processed block and send a consensus verification failure notification that includes the information identifier to the other consensus nodes.
[008] It can be seen in the technical solutions provided in previous implementations of the present application that, in the implementations of this application, if another consensus node fails to receive the transaction information sent through a handling node in a
Petition 870190057392, of 6/21/2019, p. 84/114
5/29 transaction handling phase, the other consensus node can send a consensus verification failure notification that includes a transaction information identifier to the handling node in a consensus verification phase if the other consensus node determine that the transaction information included in a preprocessed block does not exist in a transaction set from the other consensus node, so that the handling node resends the transaction information to the other consensus node. According to the implementations of the present application, it can be ensured, as far as possible, that the transaction information stored in consensus node transaction sets is consistent and, therefore, the accuracy of a consensus verification result of the nodules of consensus is not reduced.
Brief Description of the Figures [009] To more clearly describe the technical solutions in the implementations of the present application or in the existing technology, the following briefly describes the attached drawings necessary to describe the existing implementations or technology. Apparently, the attached drawings in the following description show only a few implementations of the present application, and a person skilled in the art can still derive other designs from these attached drawings without creative efforts.
[010] Figure 1 is a flow chart that illustrates a method for sending transaction information, according to an implementation of the present application.
[011] Figure 2 is a schematic diagram illustrating a reliable mechanism in a transaction handling phase, according to an implementation of the present application.
[012] Figure 3 is a flow chart illustrating a method for verifying consensus, in accordance with an implementation of this
Petition 870190057392, of 6/21/2019, p. 85/114
6/29 application.
[013] Figure 4 is a schematic diagram that illustrates a device for sending transaction information, according to an implementation of the present application.
[014] Figure 5 is a schematic diagram that illustrates a device for checking consensus, according to an implementation of the present application.
Detailed Description of the Invention [015] The implementations of the present application provide a method and a device for sending transaction information and for checking consensus.
[016] To make it possible for a technician on the subject to better understand the technical solutions in the present application, the following clearly and comprehensively describes the technical solutions in the implementations of this application with reference to the attached drawings in the implementations of this application. Apparently, the implementations described are merely just a few, but not all implementations of the present application. All other implementations obtained by a person skilled in the art based on implementations of the present application without creative efforts should fall within the scope of protection of the present application.
[017] The technical solutions provided in the implementations of this application are described in detail below with reference to the attached Figures.
[018] Figure 1 is a flow chart that illustrates a method for sending transaction information, according to an implementation of the present application. The method includes the following steps.
[019] S101. A consensus node obtains the transaction information.
Petition 870190057392, of 6/21/2019, p. 86/114
7/29 [020] In the present implementation of this application, the transaction information can be all the details involved in a transaction, such as an account address, a transaction amount and a type of transaction.
[021] In a transaction handling phase, the consensus node acts as a handling node and can receive transaction information sent via a customer device. The client device can be a client device of a blockchain node that participates in the transaction. Of course, the consensus node can initiate a transaction on its own and generate the transaction information for the transaction.
[022] For ease of description, the handling node described below is a consensus node that handles a transaction in a handling phase, and is an execution body of the present implementation of the present application.
[023] S102. Send the transaction information to the other consensus node.
[024] After obtaining the transaction information, the handling node stores the transaction information in a set of transactions in the handling node and sends the transaction information to the other consensus node, so that the other consensus node stores the transaction information in a transaction set from the other consensus node after receiving the transaction information. Then, in a consensus verification phase, each consensus node can verify a preprocessed block by determining whether the transaction information stored in a consensus node's transaction set includes all transaction information in the preprocessed block.
[025] The other consensus node is a consensus node other than the handling node. The transaction set is a bank of
Petition 870190057392, of 6/21/2019, p. 87/114
8/29 data used to store transaction information. Each consensus node has its own set of transactions. The transaction set can be built in a consensus node memory or an external consensus node memory.
[026] It is worth emphasizing that each consensus node can perform multi-process work, that is, simultaneously handle transaction A and participate in the consensus verification in a pre-processed block (which does not include transaction A) that includes a lot of information transaction. As long as the computing capacity is sufficient, the consensus node can simultaneously handle different transactions or carry out consensus verification through a plurality of processes.
[027] In the present implementation of this application, to describe in detail how to ensure, as far as possible, that each consensus node receives transaction information for a transaction, the transaction handling phase and the consensus verification phase are described in relation to the transaction information for the same transaction.
[028] In the present implementation of the present application, the consensus node can create a thread for each other consensus node and send the transaction information to the other consensus node via the thread. The consensus node can send transaction information through chaining using asynchronous invocation technology. After the transaction information is sent, the thread is revoked, regardless of whether another consensus node can receive the transaction information. Alternatively, the consensus node can send transaction information using synchronous invocation technology. After sending the transaction information, the consensus node continues to use the thread to wait for the
Petition 870190057392, of 6/21/2019, p. 88/114
9/29 receiving a response signal returned via another consensus node after the other consensus node receives the transaction information.
[029] S103. Resend transaction information based on a consensus verification failure notification when receiving the consensus verification failure notification that is sent through another consensus node and that includes a transaction information identifier.
[030] In the present implementation of this application, the consensus verification failure notification is sent through another consensus node in the subsequent consensus verification phase. In the consensus verification phase, a consensus node (which is called a leader nodding stroke) that initiates a consensus packs the transaction information for a batch of transactions into a set of transactions from the consensus node in a pre-block processed and sends the pre-processed block to a consensus node (which is referred to as a replica node) other than the leader node, so that the consensus nodes (the leader node and the replica nodes) perform the verification consensus in the pre-processed block. The leader node can be chosen through the consensus nodes or it can be specified at random.
[031] It is worth emphasizing that the present implementation of the present application is carried out through the handling node in the handling phase of the transaction. In the consensus verification phase, the handling node can be a leader node or a replica node. Implementations are not limited in this application. In addition, the other consensus node is a consensus node other than the handling node in the handling phase, and the other consensus node, in general, can be a replica node or a leader node.
[032] In summary, one identity from each consensus node
Petition 870190057392, of 6/21/2019, p. 89/114
10/29 may change accordingly, after the transition from the transaction handling phase to the consensus verification phase. The previous handling node can become a replica node and another previous consensus node can become a leader node.
[033] In the present implementation of the present application, when verifying the pre-processed block, a replica node compares the transaction information in the pre-processed block with the transaction information stored in a set of transactions in the replica node. If the transaction information stored in the replica node's transaction set includes all transaction information in the preprocessed block, it indicates that the replica node successfully receives the transaction information in the previous transaction handling phase.
[034] If the transaction information stored in the replica node's transaction set does not include all transaction information in the pre-processed block, in other words, if some transaction information in the pre-processed block is missing from the transaction information stored in the replica node's transaction set, this indicates that the replica node failed to successfully receive the transaction information in the handling phase of the previous transaction. In this case, the verification performed through the replica node in the preprocessed block fails and the replica node transmits a consensus verification failure notification that includes an information identifier of the missing transaction information to the other replica nodes and the replica node. leader. Each consensus node that receives the consensus verification failure notification can verify a set of transactions from the consensus node and send the transaction information that matches the information identifier to the replica node that sends the verification verification failure notification. consensus, if the set of transactions in the
Petition 870190057392, of 6/21/2019, p. 90/114
11/29 consensus stores the transaction information that corresponds to the information identifier included in the consensus verification failure notification (the consensus node successfully receives the transaction information in the transaction handling phase or the consensus node is the node handling).
[035] It is worth emphasizing that, in general, there is a very large number of transaction information included in the pre-processed block, and the transaction information, in general, is transmitted by different handling nodes. Therefore, in the consensus verification phase, each consensus node may not have some transaction information included in the pre-processed block. The transaction information that each consensus node does not have is certainly stored in a set of transactions from a handling node that originally transmits the transaction information. In addition, the transaction information that each consensus node does not have can be stored in a set of transactions from more than one other consensus node. In other words, in the consensus verification phase, the transaction information that each consensus node does not have can be offset through the joint assistance of other consensus nodes.
[036] For example, there are five consensus nodes A, B, C, D and E in a blockchain network. In a consensus verification phase, A that serves as a leader node generates a preprocessed block, and the transaction information included in the preprocessed block is L, M and N. OL is transmitted by E when E serves as the a handling node, M is transmitted by A when A serves as the handling node and N is transmitted by D when D serves as a handling node. Suppose B and C fail to receive L in a handling phase of L, B and E fail to receive M in a handling phase of Μ, B fails to receive N in a handling phase
Petition 870190057392, of 6/21/2019, p. 91/114
12/29 handling of N. In this case, in a consensus verification phase, after A sends the pre-processed block to B, C, D and E, B sends a consensus verification failure notification that includes the identifiers of information from L, M and N to A, C, D and E since L, M and N are absent in a set of transactions by B. As, B receives separately L, M and N sent via A; M and N sent via C; L, M and N sent via D; and L and N sent via E. In other words, the missing transaction information from B's transaction set can be cleared through consensus assistance from A, C, D, and E.
[037] In addition, due to network disturbances, all consensus nodes that receive notification of consensus verification failure send the transaction information to the replica node through compensation. In fact, it can be ensured that the replica node receives transaction information in a high probability, thereby alleviating network disturbances and ensuring consistency across the consensus node transaction sets.
[038] In conclusion, in the present implementation of this application, after sending the transaction information to the other consensus node, regardless of whether each other consensus node receives the transaction information or not, the consensus node can wait until consensus verification phase to resend, by clearing, the transaction information to the other consensus node that sends the consensus verification failure notification based on the received consensus verification failure notification.
[039] It can be seen that, according to the method for sending the information shown in Figure 1, if another consensus node fails to receive the transaction information sent through a handling node in a transaction handling phase, the other lump of
Petition 870190057392, of 6/21/2019, p. 92/114
13/29 consensus can send a consensus verification failure notification that includes a transaction information identifier to the handling node in one consensus verification phase if the other consensus node determines that the transaction information is included in a block preprocessed do not exist in a set of transactions from the other consensus node, so that the handling node resends the transaction information to the other consensus node. According to the present implementation of the present application, it can be ensured, as far as possible, that the transaction information stored in the transaction sets of the consensus nodes is consistent and, therefore, the accuracy of a consensus verification result of the nodes consensus is not reduced.
[040] In addition, in the present implementation of the present application, some reliable mechanisms can be used in the transaction handling phase to enhance the reliability of sending transaction information through the consensus node to the other consensus node.
[041] In step S102, the consensus node creates a chain for each other consensus node and sends the transaction information to the other consensus node via the chain; and resends the transaction information to the other consensus node via chaining if it is determined that the other consensus node fails to receive the transaction information, until it is determined that the other consensus node receives the transaction information or a condition predetermined send interruption is satisfied.
[042] It is determined that the other consensus node receives the transaction information if a response signal returned through another consensus node is received through chaining within a
Petition 870190057392, of 6/21/2019, p. 93/114
14/29 specified time period. It is determined that the other consensus node fails to receive the transaction information if no response signal returned through another consensus node is received via the thread within the specified period of time.
[043] The predetermined send interruption condition can be as follows: The number of times that transaction information is sent to the other consensus node reaches the predetermined number of times or a time that has elapsed since the first transaction were sent to the other consensus node exceeds the predetermined duration. The predetermined number of times and the predetermined duration are not limited in the present application.
[044] It is worth noting that the consensus node can resend transaction information to the other consensus node via chaining each time using the following method: The consensus node can resend transaction information when it is determined that the submission previous failure or you can wait for a specific time interval to delay sending. The specific time interval can be configured and the specific time interval to wait for each resend can be the same or different. For example, the specific time interval gradually increases or decreases.
[045] For example, the consensus node creates a thread for each other consensus node and, first, sends the transaction information to the other consensus node via the thread. The consensus node can resend transaction information after a 5S delay if the other consensus node does not return any response signals, it can resend transaction information after a 15S delay if it still fails to receive any response signals and can resend transaction information after a longer delay if not yet
Petition 870190057392, of 6/21/2019, p. 94/114
15/29 there is a corresponding signal received. Resubmission of transaction information, therefore, continues until the number of submission times reaches the predetermined number of times or the time that has elapsed since the first transaction information was sent to the other consensus node exceeds the predetermined duration .
[046] Especially, in the previous example, if the number of times the consensus node sends the transaction information reaches the predetermined number of times, the consensus node can still add the transaction information to a queue and create a thread recovery specially used to check the queue. Recovery scans the queue at each specific time interval to identify transaction information and transaction information is sent through recovery until the time that elapsed since the first transaction information was sent to the other consensus exceeds the predetermined duration. Of course, the specific time interval at which recovery scans the queue can also be configured. That is, the chain whose number of times the transaction information is sent reaches the predetermined number of times is revoked to save the resources of the consensus node, the transaction information is added to the queue and the permanent recovery chain is responsible for scanning the queue and sending transaction information at each specific time interval. Likewise, the waste of resources caused by maintaining a relatively large number of threads through the consensus node can be alleviated.
[047] In the previous example, the consensus node actually sends the transaction information to the other consensus node using weak sync invocation technology. After, asynchronously, invoking a thread for each other consensus node, the
Petition 870190057392, of 6/21/2019, p. 95/114
16/29 consensus sends the transaction information to the other consensus node via chaining using the synchronization invocation. The thread occupies a computing resource in the consensus node and the consensus node waits, through the thread, for the other consensus node to return the response signal. In addition, if the other consensus node fails to return the response signal within a specified period of time, it indicates that the other consensus node fails to receive the transaction information and the consensus node resends the transaction information to the other consensus node through chaining. Therefore, the use of weak synchronization invocation technology in the transaction handling phase may mean that the consensus node does not need to separate the most important work processes to wait especially for the response signal returned through another consensus node and the consensus node can also use the thread that corresponds to each other consensus node to wait for the response signal and to repeatedly send the transaction information, thereby ensuring that the other consensus node successfully receives the transaction information.
[048] Furthermore, in the present implementation of the present application, when the predetermined send interruption condition is satisfied, the transaction information can be added to the predetermined queue if the other consensus node still does not return any response signal. Upon receiving the consensus verification failure notification, the queue is searched for the transaction information that matches the information identifier based on the information identifier included in the consensus verification failure notification and the transaction information is sent.
[049] The queue is the storage space in the nodule's memory
Petition 870190057392, of 6/21/2019, p. 96/114
17/29 consensus and is configured to store the transaction information that the consensus node repeatedly tries to send in the handling phase, but which is not yet received through another consensus node. The transaction information that the consensus node repeatedly tries to send, but which has not yet been received, is stored in the queue when the consensus node's transaction set is not constructed in memory, so that the consensus node can send the information transaction information to the other consensus node that does not have the transaction information in the consensus verification phase.
[050] Especially, when the transaction set is not built in memory, in the consensus verification phase, when receiving a consensus verification failure notification sent through a replica node, the consensus node must verify that the queue the consensus node includes transaction information that the replica node does not have, instead of checking the consensus node transaction set; and can send transaction information to the replica node if the consensus node queue includes transaction information that the replica node does not have; or you do not need to send the transaction information to the replica node if the consensus node queue does not include the transaction information that the replica node does not have (even if the consensus node transaction set includes a transaction that the replica node does not have). Like, if the replica node does not get transaction information X, it can always be ensured that a handling node that transmits transaction information X obtains transaction information X from a queue in the handling node and sends the transaction information. transaction X. Therefore, the replica node that does not have the transaction information can always be cleared quickly.
[051] Figure 2 is a schematic diagram illustrating a
Petition 870190057392, of 6/21/2019, p. 97/114
18/29 reliable mechanism in a transaction handling phase, according to an implementation of the present application. As shown in Figure 2, in a transaction handling phase, a handling node attempts to send the transaction information to the other consensus node using a method such as a 5S delay or a 10 min delay, and the method to try sending transaction information is restricted. That is, the transaction information is sent using a longer delay when the number of send times is greater than 3. The transaction information is added to a predetermined queue and the dispatch is interrupted when an active period of the transaction information (a time elapsed since the first time the transaction information was sent to the other consensus node) exceeds the predetermined duration (for example, one hour). In a consensus verification phase, the consensus node activates the transaction information in the queue only upon receiving a consensus verification failure notification.
[052] It is worth emphasizing that the predetermined duration can be determined based on a period in which each consensus node performs a consensus check or can be determined based on a troubleshooting period for a common network failure.
[053] According to the reliable mechanism shown in Figure 2, the consensus node delays the attempt to send the transaction information, and after the consensus node repeatedly sends the transaction information after a 5S twice delay, indicates that there is a transmission problem that cannot be resolved temporarily (which may be that another consensus node that fails to successfully receive transaction information is interrupted or a major network failure occurs). Therefore, the consensus node temporarily stops sending transaction information to the other consensus node. After
Petition 870190057392, of 6/21/2019, p. 98/114
19/29 wait for a relatively long time (for example, 10 min), the transmission problem can be alleviated and then the consensus node continues to send the transaction information. If the active period of the transaction information is too long, the transaction information can be added to the predetermined queue to wait for the transaction information to be subsequently resubmitted to the other consensus node that does not have the transaction information.
[054] In the present implementation of the present application, in the consensus verification phase, the consensus nodes together compensate for each consensus node that does not have the transaction information, so that the problem of inconsistency in the transaction sets of the consensus is caused through network disturbances can be well alleviated. On this basis, according to the reliable mechanism shown in Figure 2, measures can be used in the transaction handling phase to increase the success rate of receiving transaction information through another consensus node.
[055] Figure 3 is a method for verifying consensus, according to an implementation of the present application. The method includes the following steps:
5301. A consensus node receives a pre-processed block sent through another consensus node;
5302. Perform consensus verification on the preprocessed block based on the transaction information stored in a set of transactions and the transaction information included in the preprocessed block;
5303. In a consensus verification process, if it is determined that at least part of the transaction information
Petition 870190057392, of 6/21/2019, p. 99/114
20/29 included in the pre-processed block does not exist in the transaction set, determine an information identifier from the transaction information missing from the transaction set in the transaction information included in the pre-processed block; and
S304. Send a consensus verification failure notification that induces the identifier information to the other consensus nodes.
[056] In the present implementation of this application, the consensus node is a consensus node that checks the preprocessed block in the consensus verification phase, that is, a replica node. The other node of consensus is a node that initiates consensus, that is, a leader node.
[057] The detailed description of the method for verifying consensus shown in Figure 3 has been recorded in the description of the method for sending the transaction information shown in Figure 1. Details are omitted in the present for simplification.
[058] Based on the method for sending transaction information shown in Figure 1, an implementation of the present application still correspondingly provides a device for sending transaction information. As shown in Figure 4, the device includes the following: an acquisition module (401), configured to obtain transaction information; a first sending module (402), configured to send the transaction information to the other consensus node; and a second submission module (403), configured to resend transaction information based on a consensus verification failure notification when the consensus verification failure notification sent through another consensus node and that includes a consensus identifier transaction information is received.
[059] The acquisition module (401) is configured to receive transaction information sent via a client device.
Petition 870190057392, of 6/21/2019, p. 100/114
21/29 [060] The first send module (402) is configured to create a thread for each other consensus node and send the transaction information to the other consensus node via the thread.
[061] The first sending module (402) is configured to resend transaction information to the other consensus node via chaining if it is determined that the other consensus node fails to receive the transaction information, until it is determined that the other consensus node receives the transaction information or a predetermined outage condition is met.
[062] The first sending module (402) is configured to determine that the other consensus node receives transaction information if a response signal returned through another consensus node is received via the thread within a specified period of time ; or determine that the other consensus node fails to receive transaction information if no response signal returned through another consensus node is received via the thread within the specified time period.
[063] The predetermined send interruption condition may include the following: The number of times the transaction information is sent to the other consensus node reaches the predetermined number of times or a time elapsed since the first time the transaction information were sent to the other consensus node exceeds the predetermined duration.
[064] The device also includes an addition module (404), configured to add the transaction information to a predetermined queue when the predetermined send interruption condition is satisfied.
Petition 870190057392, of 6/21/2019, p. 101/114
22/29 [065] The second submission module (403) is configured to search the queue for transaction information that matches the information identifier based on the information identifier included in the consensus verification failure notification and to send the information from transaction.
[066] Based on the consensus verification method shown in Figure 3, an implementation of the present application, correspondingly, still provides a device for the consensus verification. As shown in Figure 5, the device includes the following: a receiver module (501), configured to receive a pre-processed block sent through another consensus node; a consensus verification module (502), configured to perform consensus verification on the preprocessed block based on the transaction information stored in a set of transactions and transaction information included in the preprocessed block; and a shipping module (503), configured to: in a consensus verification process, if it is determined that at least some of the transaction information included in the pre-processed block does not exist in the transaction set, determine an identifier transaction information missing from the transaction set in the transaction information included in the preprocessed block and send a consensus verification failure notification that includes the information identifier to the other consensus nodes.
[067] In the 1990s, if a technical improvement is a hardware improvement (for example, an improvement to a circuit structure, such as a diode, a transistor or a switch) or a software improvement (an improvement in a method procedure) can be clearly distinguished. However, with the development of technologies, current improvements in many
Petition 870190057392, of 6/21/2019, p. 102/114
23/29 methods can be considered as direct improvements in the hardware circuit structures. A designer, in general, programs an improved method procedure on a hardware circuit to obtain a corresponding hardware circuit structure. Therefore, a method procedure can be improved using a hardware entity module. For example, a programmable logic device (PLD) (for example, a Field Programmable Gate Array (FPGA)) is an integrated circuit, and a logical PLD function is determined by a user through device programming. The designer performs programming to integrate a digital system with a PLD without requiring a chip manufacturer to design and produce an application-specific integrated circuit chip. In addition, today, instead of manually manufacturing an integrated circuit chip, this programming is mainly implemented using the logical compiler software. The logical compiler software is similar to a software compiler used to develop and write a program. The original code needs to be written in a specific programming language for compilation. The language is referred to as a hardware description language (HDL). There are many HDLs, such as Advanced Boolean Expression Language (ABEL), Altera Hardware Description Language), Confluence (AHDL), Cornell University Programming Language (CUPL), HDCal, Java Hardware Description Language (JHDL), Lava, Lola, MyHDL, PALASM and Ruby Hardware Description Language (RHDL). Very-High-Speed Integrated Circuit Hardware Description Language (VHDL) and Verilog are the most used. A person skilled in the art should also understand that a hardware circuit that implements a logical method procedure can be easily obtained since the method procedure is logically programmed using the various hardware description languages described and is programmed in an integrated circuit.
[068] A controller can be implemented using any
Petition 870190057392, of 6/21/2019, p. 103/114
24/29 suitable method. For example, the controller can be a microprocessor or processor and a computer-readable code from a computer-readable storage medium (such as software or firmware) that can be run by the microprocessor, or the processor, a logic port, a switch, an application-specific integrated circuit (ASIC), a programmable logic controller or a built-in microcontroller. Controller examples include, but are not limited to, the following microprocessors: ARC 625D, Atmel AT91SAM, Microchip PIC18F26K20 and Silicone Labs C8051F320. The memory controller can also be implemented as part of the memory control logic. A person skilled in the art also knows that, in addition to implementing the controller using computer-readable program code, logical programming can be performed in method steps to enable the controller to implement the same function in logic gate forms, the switch, the application-specific integrated circuit, the programmable logic controller and the built-in microcontroller. Therefore, the controller can be considered as a hardware component, and a device included in the controller configured to implement various functions can also be considered as a structure in the hardware component. Or in another way, the device configured to implement different functions can even be considered as a software module that implements the method and a structure in the hardware component.
[069] The system, device, module or unit illustrated in the previous implementations can be implemented using a computer chip or an entity, or they can be implemented using a product that has a specific function. A typical deployment device is a computer. The computer, for example, can be a personal computer, a portable computer, a cell phone, a
Petition 870190057392, of 6/21/2019, p. 104/114
25/29 camera phone, smartphone, personal digital assistant, media player, navigation device, e-mail device, game console, tablet computer, wearable device or any combination thereof of those devices.
[070] For ease of description, the device above is described by dividing the functions into several units. Certainly, when the present application is implemented, the functions of the units can be implemented in one or more pieces of software and / or hardware.
[071] A person skilled in the art should understand that an implementation of the present invention can be provided as a method, system or computer program product. Therefore, the present invention can use a form of hardware-only implementations, software-only implementations or implementations with a combination of software and hardware. In addition, the present invention may use a form of computer program product that is implemented in one or more storage media usable by computer (including, but not limited to, disk memory, CD-ROM, optical memory, and the like) that include the program code usable by the computer.
[072] The present invention is described with reference to the flowcharts and / or block diagrams of the method, the device (system) and the computer program product according to the implementations of the present invention. It is understood that the computer program instructions can be used to implement each process and / or each block in the flowcharts and / or block diagrams and a combination of a process and / or a block in the flowcharts and / or the block diagrams. These computer program instructions can be provided for a general purpose computer, a dedicated computer, an embedded processor, or a processor from another programmable data processing device for
Petition 870190057392, of 6/21/2019, p. 105/114
26/29 generate a machine, so that the instructions executed by the computer or by the processor of another programmable data processing device generate a device to implement a function specified in one or more processes in the flowcharts and / or in one or more blocks in the block diagrams.
[073] These computer program instructions can be stored in a computer-readable memory that can instruct the computer or other programmable data processing device to work in a specific way, so that the instructions stored in the computer memory generate an artifact that includes an instructional device. The instructional device implements a function specified in one or more processes in flowcharts and / or in one or more blocks in block diagrams.
[074] These computer program instructions can be loaded onto the computer or another programmable data processing device, so that a series of operations and operations and steps are performed on the computer or on another programmable device, thereby generating the computer-implemented processing. Therefore, instructions executed on the computer or other programmable device provide the steps to implement a specified function in one or more processes in the flowcharts and / or in one or more blocks in the block diagrams.
[075] In a typical configuration, a computing device includes one or more processors (CPU), one or more input / output interfaces, one or more network interfaces and one or more memories.
[076] Memory may include non-persistent memory, random access memory (RAM), non-volatile memory and / or any other way that is in a computer-readable medium, for example, a
Petition 870190057392, of 6/21/2019, p. 106/114
27/29 read-only memory (ROM) or a flash memory (flash RAM). Memory is an example of a computer-readable medium.
[077] The computer-readable medium includes the persistent, non-persistent, mobile and immobile medium that can store messages using any method or technology. The message can be a computer-readable instruction, a data structure, a program module or other data. Examples of a computer storage medium include, but are not limited to, parameter random access memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), or other type of memory random access (RAM), read-only memory (ROM), an electronically erasable programmable read-only memory (EEPROM), a flash memory or other memory technology, a compact disk read memory (CD-ROM), a digital versatile disc (DVD) or other optical storage, magnetic tape, magnetic tape, magnetic tape / magnetic disk memory or other magnetic storage device, or any other non-transmission medium that can be used to store messages that can be accessed by a computing device. Based on the definition of this application, the computer-readable medium does not include computer-readable transient means (transient means), such as a modulated data signal and vehicle.
[078] It is also worth noting that the terms include, understand, or any other variants, are intended to include a non-exclusive inclusion, that is, a process, a method, a product or a device that includes a list of elements that includes not only these elements, but also includes other elements that are not expressly listed or still includes the elements inherent to such a process, method, product or device. Without further restrictions, an element preceded by includes a ... does not exclude the existence of additional identical elements in the process, method, product or device that
Petition 870190057392, of 6/21/2019, p. 107/114
28/29 includes the element.
[079] A person skilled in the art should understand that an implementation of the present application can be provided as a method, system or computer program product. Therefore, the present application can use a form of hardware-only implementations, software-only implementations or implementations with a combination of software and hardware. In addition, the present application may use a form of computer program product that is implemented in one or more storage media usable by computer (including, but not limited to, disk memory, CD-ROM, optical memory, and the like) that include the program code usable by computer.
[080] The present application can be described in the general context of instructions executable by computer executed by a computer, for example, a program module. In general, the program module includes a routine, program, object, component, data structure, and the like, to perform a specific task or implement a specific abstract data type. The present application can also be practiced in distributed computing environments. In distributed computing environments, tasks are performed by remote processing devices connected via a communications network. In a distributed computing environment, the program module can be located on the storage medium of the local or remote computer, including storage devices.
[081] The implementations in this specification are described progressively. For equal or similar parts of the implementations, references to the implementations can be made. Each implementation focuses on a difference from other implementations. In particular, a system implementation is basically similar to a method implementation and is therefore briefly described. For related parties,
Petition 870190057392, of 6/21/2019, p. 108/114
29/29 references can be made to the related descriptions in the implementation of the method.
[082] Previous implementations are implementations of the present application and are not intended to limit the present application. A technician in the subject can make several modifications and changes in this application. Any modification, equivalent replacement, or enhancement made without departing from the spirit and principle of this application, will be within the scope of the claims of this application.
权利要求:
Claims (13)
[1]
Claims
1. METHOD FOR SENDING TRANSACTION INFORMATION, the method characterized by the fact that it comprises:
- obtain, through a consensus node, the transaction information associated with the transaction handled through a node in a blockchain network ·,
- send the transaction information to the other consensus node of a blockchain network ·, and
- resending the transaction information based on a consensus verification failure notification in response to receiving the consensus verification failure notification that is sent through another consensus node and comprising a transaction information identifier.
[2]
2. METHOD, according to claim 1, characterized by the fact that obtaining, through a consensus node, the transaction information comprises:
- receive, through the consensus node, the transaction information sent through a customer device.
[3]
3. METHOD, according to claim 1, characterized by the fact that sending the transaction information to the other consensus node comprises:
- create a chain for each other consensus node; and
- send the transaction information to the other consensus node via chaining.
[4]
4. METHOD, according to claim 3, characterized by the fact that the sending of transaction information to the other consensus node through chaining comprises:
Petition 870190057392, of 6/21/2019, p. 110/114
2/4
- forward the transaction information to the other consensus node via chaining in response to the determination that the other consensus node fails to receive the transaction information, until it is determined that the other consensus node receives the transaction information, or a predetermined outage condition is met.
[5]
5. METHOD, according to claim 4, characterized by the fact that the determination that the other consensus node receives the transaction information comprises:
- determining that the other consensus node receives transaction information in response to the determination that a response signal returned through another consensus node is received via the thread within a specified period of time.
[6]
6. METHOD, according to claim 5, characterized by the fact that the determination that the other consensus node fails to receive transaction information comprises:
- determining that the other consensus node fails to receive transaction information in response to the determination that no response signal returned through another consensus node is received through the thread within the specified period of time.
[7]
7. METHOD, according to claim 4, characterized by the fact that the predetermined sending interruption condition comprises:
- a number of times that transaction information is sent to the other consensus node reaches a predetermined number of times; or
- the time elapsed since the first time that the transaction information was sent to the other consensus node exceeds the predetermined duration.
Petition 870190057392, of 6/21/2019, p. 111/114
3/4
[8]
8. METHOD, according to claim 4, characterized by the fact that when the predetermined sending interruption condition is satisfied, the method still comprises:
- add the transaction information to a predetermined queue.
[9]
9. METHOD, according to claim 8, characterized by the fact of resending transaction information based on a consensus verification failure notification comprises:
- search the predetermined queue for transaction information that corresponds to the information identifier based on the information identifier included in the consensus verification failure notification; and
- send the transaction information.
[10]
10. METHOD, according to claim 1, characterized by the fact that notification of consensus verification failure is generated, in response to the determination that at least a part of the transaction information comprised in a pre-processed block does not exist in a set of transactions, and determination that the identifier of information missing in the set of transactions in the transaction information comprised in the pre-processed block.
[11]
11. METHOD, according to claim 1, characterized by the fact that the transaction information comprises at least one of an account address, a transaction amount, and a type of transaction.
[12]
12. METHOD, according to claim 1, characterized by the fact that the transaction information comprises waiting for a delay time before resending the transaction information.
Petition 870190057392, of 6/21/2019, p. 112/114
4/4
[13]
13. DEVICE FOR SENDING TRANSACTION INFORMATION, the device characterized by the fact that it comprises a plurality of modules configured to carry out the method, according to claims 1 to 12.
类似技术:
公开号 | 公开日 | 专利标题
BR112019012905A2|2019-12-03|method for submitting transaction information and device for submitting transaction information
BR112019020374B1|2022-01-25|Method, non-transient computer-readable storage media and system for blockchain consensus
WO2018177239A1|2018-10-04|Service processing and consensus method and device
KR102255724B1|2021-05-27|Blockchain-based consensus method and device
KR20190118630A|2019-10-18|Method and apparatus for consensus verification
BR112019013412B1|2022-02-01|Method for processing data based on a reliable protocol, computer-readable medium, and computer-implemented system.
JP6675518B1|2020-04-01|Method and device for processing a service request
BR112019014478A2|2020-05-26|METHOD FOR DETERMINING THE DATABASE STATUS AND DEVICE FOR DETERMINING THE DATABASE STATUS
BR112019013394A2|2020-03-03|DATA PROCESSING METHOD AND DATA PROCESSING DEVICE
JP2017524190A|2017-08-24|Data storage in case of database failure
WO2017219857A1|2017-12-28|Data processing method and device
WO2018171543A1|2018-09-27|Method and device for broadcasting messages
BR112019009576A2|2019-10-22|data processing method and device
US20210211428A1|2021-07-08|Addressing transaction conflict in blockchain systems
US10698770B1|2020-06-30|Regionally agnostic in-memory database arrangements with reconnection resiliency
US20180276062A1|2018-09-27|Memory store error check
BR112019010368B1|2021-12-14|METHOD FOR PROCESSING A SERVICE REQUEST AND DEVICE FOR PROCESSING A SERVICE REQUEST
WO2018024076A1|2018-02-08|Flow velocity control method and device
US20220075671A1|2022-03-10|High Availability Events in a Layered Architecture
BR112019009591B1|2021-11-23|COMPUTER IMPLEMENTED METHOD FOR PERFORMING DISPLAY SWITCHING IN A TRUST PROTOCOL NETWORK, COMPUTER-READABLE, NON- TRANSIENT, AND COMPUTER IMPLEMENTED SYSTEM
CN110622478A|2019-12-27|Method and device for data synchronous processing
BR112019009591A2|2019-12-17|trust protocol consensus method and trust protocol consensus device
同族专利:
公开号 | 公开日
CN107392611B|2020-04-24|
US20190347663A1|2019-11-14|
PH12019501470A1|2020-02-24|
KR102151899B1|2020-09-03|
JP6794551B2|2020-12-02|
WO2018171545A1|2018-09-27|
EP3543937A4|2019-12-04|
EP3543937A1|2019-09-25|
ZA201904053B|2021-01-27|
MX2019007557A|2019-09-06|
TW201835831A|2018-10-01|
AU2018240159A1|2019-07-11|
JP2020516973A|2020-06-11|
CA3047884A1|2018-09-27|
KR20190086747A|2019-07-23|
CA3047884C|2021-01-19|
CN107392611A|2017-11-24|
US10679217B2|2020-06-09|
AU2018240159B2|2021-02-04|
TWI727120B|2021-05-11|
RU2735156C1|2020-10-28|
SG10202107139RA|2021-08-30|
CN111612468A|2020-09-01|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题

US5819020A|1995-10-16|1998-10-06|Network Specialists, Inc.|Real time backup system|
US5931917A|1996-09-26|1999-08-03|Verifone, Inc.|System, method and article of manufacture for a gateway system architecture with system administration information accessible from a browser|
US7620680B1|2002-08-15|2009-11-17|Microsoft Corporation|Fast byzantine paxos|
US20060235795A1|2005-04-19|2006-10-19|Microsoft Corporation|Secure network commercial transactions|
SG183988A1|2010-04-09|2012-10-30|Visa Int Service Ass|System and method for securely validating transactions|
US11270298B2|2014-04-14|2022-03-08|21, Inc.|Digital currency mining circuitry|
US11232415B2|2015-05-28|2022-01-25|OX Labs Inc.|Method for cryptographically managing title transactions|
CN105488665A|2015-11-25|2016-04-13|布比(北京)网络技术有限公司|Decentralized transaction method|
CN105630609B|2016-02-24|2021-05-11|杭州复杂美科技有限公司|Block chain packing storage method|
RU2016123959A|2016-06-16|2017-12-21|Общество С Ограниченной Ответственностью "Яндекс"|METHOD AND SYSTEM FOR PROCESSING A TRANSACTION REQUEST IN DISTRIBUTED DATA PROCESSING SYSTEMS|
CN106445711B|2016-08-28|2019-04-30|杭州云象网络技术有限公司|A kind of Byzantine failure tolerance common recognition method applied to block chain|
CN106372868B|2016-09-06|2020-02-18|联动优势科技有限公司|Verification method and device for transaction data written into block chain|
CN106503589A|2016-10-26|2017-03-15|北京瑞卓喜投科技发展有限公司|The method of calibration of block chain Transaction Information correctness, apparatus and system|
CN106506146A|2016-10-26|2017-03-15|北京瑞卓喜投科技发展有限公司|Based on the Transaction Information method of calibration of block chain technology, apparatus and system|
US10862959B2|2016-11-28|2020-12-08|Keir Finlow-Bates|Consensus system and method for adding data to a blockchain|
CN107392611B|2017-03-24|2020-04-24|创新先进技术有限公司|Method and device for sending transaction information and consensus verification|CN107392611B|2017-03-24|2020-04-24|创新先进技术有限公司|Method and device for sending transaction information and consensus verification|
CN108009824A|2017-11-28|2018-05-08|北京博晨技术有限公司|Data common recognition method, apparatus and electronic equipment|
CN108537525B|2018-03-09|2020-06-09|阿里巴巴集团控股有限公司|Consensus verification method, device and equipment|
CN108600163B|2018-03-13|2020-12-15|南京邮电大学|Cloud environment distributed hash chain architecture and cloud data integrity verification method|
CN108765150A|2018-05-11|2018-11-06|中国联合网络通信集团有限公司|Exchange information processing method and memory node|
CN108665365B|2018-05-16|2021-07-13|四川大学|Mixed block chain architecture system, processing method and processing system|
CN108960604B|2018-06-25|2021-06-29|山东大海集团有限公司|Information processing method, system and device|
CN109191135A|2018-08-27|2019-01-11|北京京东金融科技控股有限公司|Transaction based on block chain retries method, apparatus, equipment and readable storage medium storing program for executing|
CN109461079A|2018-10-29|2019-03-12|众安信息技术服务有限公司|Transaction processing method and device based on block chain|
CN109639656B|2018-12-03|2020-12-25|北京瑞卓喜投科技发展有限公司|Block chain private data transmission method and private data transmission system|
CN109831425B|2019-01-25|2022-02-15|中国联合网络通信集团有限公司|Block chain consensus method, device, equipment and computer readable storage medium|
CN110782255A|2019-11-06|2020-02-11|杭州复杂美科技有限公司|Delayed transaction cancellation method, apparatus and storage medium|
CN111064813B|2020-03-16|2020-06-30|支付宝信息技术有限公司|Method and device for synchronizing processing messages during block chain consensus processing|
CN112883068A|2021-04-30|2021-06-01|支付宝信息技术有限公司|Block chain transaction execution method, block chain node and control device|
法律状态:
2021-04-06| B25A| Requested transfer of rights approved|Owner name: ADVANTAGEOUS NEW TECHNOLOGIES CO., LTD. (KY) |
2021-04-27| B25A| Requested transfer of rights approved|Owner name: ADVANCED NEW TECHNOLOGIES CO., LTD. (KY) |
2021-10-13| B350| Update of information on the portal [chapter 15.35 patent gazette]|
优先权:
申请号 | 申请日 | 专利标题
CN201710181241.4A|CN107392611B|2017-03-24|2017-03-24|Method and device for sending transaction information and consensus verification|
PCT/CN2018/079439|WO2018171545A1|2017-03-24|2018-03-19|Method and device for sending transaction information and for consensus verification|
[返回顶部]