CN116192394A - Block consensus method, apparatus, computer, readable storage medium, and program product - Google Patents
Block consensus method, apparatus, computer, readable storage medium, and program product Download PDFInfo
- Publication number
- CN116192394A CN116192394A CN202111431218.9A CN202111431218A CN116192394A CN 116192394 A CN116192394 A CN 116192394A CN 202111431218 A CN202111431218 A CN 202111431218A CN 116192394 A CN116192394 A CN 116192394A
- Authority
- CN
- China
- Prior art keywords
- block
- consensus
- voting
- aggregate signature
- proposal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0442—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2463/00—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
- H04L2463/062—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying encryption of the keys
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Signal Processing (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
The embodiment of the application discloses a block consensus method, a device, a computer, a readable storage medium and a program product, wherein the method comprises the following steps: receiving a first proposal block, and acquiring a first aggregate signature and first transaction data included in the first proposal block; the first aggregate signature is used for indicating voting to pass through the target block; the target block is a successor of the first proposed block; verifying the first aggregate signature and the first transaction data, and if the verification is passed, adding the first proposal block into a cache block chain; searching a block to be uplinked corresponding to the first aggregate signature from the cache block chain, if the block to be uplinked is searched, determining that the block to be uplinked passes through the consensus, and adding the block to be uplinked into a block account book; the block to be uplink corresponding to the first aggregate signature is the successor block of the target block. By adopting the method and the device, the efficiency of block consensus can be improved.
Description
Technical Field
The present disclosure relates to the field of blockchain technologies, and in particular, to a block consensus method, device, computer, readable storage medium, and program product.
Background
Due to the decentralization and non-falsification characteristics of the blockchain, the security of data in the blockchain is higher, the efficiency of synchronous sharing and information transmission is higher, and the like, so that the blockchain technology is more and more widely applied. In order to improve the security of the block data, it is important to perform the consensus on the transaction blocks in the blockchain, at present, a serial mode is generally adopted to perform the consensus on the transaction blocks, that is, when one transaction block is generated or received, the transaction block is subjected to the consensus, and after the consensus is passed, the transaction block is subjected to the uplink, and then the next block of the transaction block is subjected to the consensus, so that the time consumption of the consensus process on the transaction block is longer, and the efficiency is lower.
Disclosure of Invention
The embodiment of the application provides a block consensus method, a device, a computer, a readable storage medium and a program product, which can improve the efficiency of block consensus.
In one aspect, an embodiment of the present application provides a block consensus method, including:
receiving a first proposal block, and acquiring a first aggregate signature and first transaction data included in the first proposal block; the first aggregate signature is used for indicating voting to pass through the target block; the target block is a successor of the first proposed block;
Verifying the first aggregate signature and the first transaction data, and if the verification is passed, adding the first proposal block into a cache block chain;
searching a block to be uplinked corresponding to the first aggregate signature from the cache block chain, if the block to be uplinked is searched, determining that the block to be uplinked passes through the consensus, and adding the block to be uplinked into a block account book; the block to be uplink corresponding to the first aggregate signature is the successor block of the target block.
In one aspect, an embodiment of the present application provides a block consensus device, including:
the block receiving module is used for receiving the first proposal block and acquiring a first aggregate signature and first transaction data included in the first proposal block; the first aggregate signature is used for indicating voting to pass through the target block; the target block is a successor of the first proposed block;
the block verification module is used for verifying the first aggregate signature and the first transaction data;
the block cache module is used for adding the first proposal block into a cache block chain if the verification is passed;
the block uplink module is used for searching a block to be uplink corresponding to the first aggregate signature from the cache block chain, if the block to be uplink is searched, determining that the block to be uplink passes through the consensus, and adding the block to be uplink into the block account book; the block to be uplink corresponding to the first aggregate signature is the successor block of the target block.
Wherein, this block verification module includes:
the target acquisition unit is used for acquiring a target block from the cache block chain and acquiring a target aggregate signature and target transaction data from the target block;
the signature verification unit is used for verifying the first aggregate signature based on the target transaction data and the target aggregate signature;
the data detection unit is used for carrying out data legal detection on the first transaction data;
and the verification determining unit is used for determining that the first aggregate signature and the first transaction data are verified to pass if the first aggregate signature is verified to pass and the first transaction data are detected to pass legally.
Wherein the signature verification unit includes:
the signature verification generation subunit is used for verifying the target transaction data and the target aggregate signature, and if the verification is passed, a verification signature corresponding to the target transaction data and the target aggregate signature is generated;
and the signature matching subunit is used for determining that the first aggregate signature passes the verification if the first aggregate signature is matched with the verification signature.
Wherein the apparatus further comprises:
the voting acquisition module is used for acquiring first associated voting information of N associated consensus nodes aiming at the first proposal block respectively;
The voting aggregation module is used for generating a second aggregation signature according to the first association voting information respectively corresponding to the N association consensus nodes if the first association voting information respectively corresponding to the N association consensus nodes meets the consensus passing condition; n is a positive integer;
the block generation module is used for generating a second proposal block according to the second aggregate signature and the second transaction data when the second transaction data is acquired, and broadcasting the second proposal block to N associated consensus nodes for consensus; the second proposed block is a subsequent block to the first proposed block.
Wherein the apparatus further comprises:
the voting analysis module is used for acquiring the voting passing number of the first associated voting information with the voting result being a voting success result from the first associated voting information respectively corresponding to the N associated consensus nodes, and determining that the first associated voting information respectively corresponding to the N associated consensus nodes meets the consensus passing condition if the voting passing number is greater than or equal to a voting success threshold;
the voting aggregation module comprises:
the voting classification unit is used for classifying and integrating first associated voting information respectively corresponding to the N associated consensus nodes based on voting results; the voting result comprises a voting success result and a voting failure result;
And the voting encryption unit is used for acquiring a node private key, encrypting the first association voting information respectively corresponding to the N association consensus nodes after the classification integration by adopting the node private key, and generating a second aggregation signature.
Wherein the apparatus further comprises:
the voting broadcasting module is used for generating first node voting information aiming at the first proposal block and broadcasting the first node voting information to N associated consensus nodes; n is a positive integer;
the data generation module is used for acquiring first associated voting information of N associated consensus nodes aiming at the first proposal block respectively and generating verification data according to the first associated voting information corresponding to the first node voting information and the N associated consensus nodes respectively;
the aggregation verification module is used for verifying the third aggregation signature by adopting verification data to obtain a first verification result when a third proposal block comprising the third aggregation signature and third transaction data is received, verifying the third transaction data to obtain a second verification result, and generating second node voting information aiming at the third proposal block according to the first verification result and the second verification result;
the voting broadcasting module is further used for broadcasting second node voting information to N associated consensus nodes.
Wherein the apparatus further comprises:
a block removal module for removing the block to be uplinked from the cache blockchain when the block to be uplinked is added to the blockbook;
and the uplink sending module is used for broadcasting block uplink success results aiming at the block to be uplink to N associated consensus nodes so that the N associated consensus nodes uplink the block to be uplink based on the block uplink success results.
Wherein the apparatus further comprises:
the height acquisition module is used for acquiring the height of the signature block corresponding to the first aggregate signature and acquiring the height of a cache block in the cache block chain; the cache block height is the maximum block height corresponding to the cache block chain;
the block request module is used for broadcasting a first block synchronization request to N associated consensus nodes if the height of the signature block is different from the height of the cache block, and acquiring the cache block requested by the first block synchronization request from any one of the N associated consensus nodes; n is a positive integer;
the buffer verification module is used for verifying the buffer block;
and the block storage module is used for storing the buffer block and executing the process of acquiring the first aggregate signature and the first transaction data included in the first proposal block if the verification is passed.
The cache verification module comprises:
the transaction execution unit is used for acquiring executable transaction data in the cache block, executing a transaction process corresponding to the executable transaction data and obtaining a transaction execution result;
and the transaction verification unit is used for verifying the transaction execution result, and if the transaction execution result is legal, the cache block is verified to pass.
Wherein the cache block carries the block storage state of the cache block;
the block memory module includes:
the state acquisition unit is used for acquiring the block storage state carried by the cache block if the verification is passed;
the cache storage unit is used for adding the cache block into the cache block chain based on the block height of the cache block if the block storage state is the block cache state;
and the ledger memory unit is used for adding the buffer block into the block ledger based on the block height of the buffer block if the block memory state is the block uplink state.
Wherein the apparatus further comprises:
the synchronization acquisition module is used for acquiring a block height synchronization interval carried by the second block synchronization request if the second block synchronization request sent by the missing consensus node is received;
The state determining module is used for obtaining a block to be synchronized corresponding to the block height synchronization interval from the cache block chain and the block account book, and determining the block storage state of the block to be synchronized based on the storage position of the block to be synchronized; the block storage state comprises a block cache state and a block uplink state;
and the synchronous response module is used for sending the block to be synchronized and the block storage state of the block to be synchronized to the missing consensus node so that the missing consensus node carries out synchronous processing on the block to be synchronized based on the block storage state of the block to be synchronized.
In one aspect, a computer device is provided, including a processor, a memory, and an input/output interface;
the processor is respectively connected with the memory and the input/output interface, wherein the input/output interface is used for receiving data and outputting data, the memory is used for storing a computer program, and the processor is used for calling the computer program so as to enable the computer equipment comprising the processor to execute the block consensus method in one aspect of the embodiment of the application.
An aspect of the present application provides a computer readable storage medium storing a computer program adapted to be loaded and executed by a processor to cause a computer device having the processor to perform the block consensus method in an aspect of the present application.
In one aspect, the present application provides a computer program product or computer program comprising computer instructions stored in a computer readable storage medium. The computer instructions are read from the computer-readable storage medium by a processor of a computer device, and executed by the processor, cause the computer device to perform the methods provided in the various alternatives in an aspect of the embodiments of the present application. In other words, the computer instructions, when executed by a processor, implement the methods provided in various alternatives in an aspect of the embodiments of the present application.
Implementation of the embodiment of the application has the following beneficial effects:
in the embodiment of the application, a first proposal block is received, and a first aggregate signature and first transaction data included in the first proposal block are acquired; the first aggregate signature is used for indicating voting to pass through the target block; the target block is a successor of the first proposed block; verifying the first aggregate signature and the first transaction data, and if the verification is passed, adding the first proposal block into a cache block chain; searching a block to be uplinked corresponding to the first aggregate signature from the cache block chain, if the block to be uplinked is searched, determining that the block to be uplinked passes through the consensus, and adding the block to be uplinked into a block account book; the block to be uplink corresponding to the first aggregate signature is the successor block of the target block. Through the above process, each consensus node can directly perform consensus verification on the generated proposed block, that is, in the block consensus process, the method is realized based on pipeline consensus, specifically, each proposed block comprises an aggregate signature and transaction data of the proposed block, the aggregate signature is used for representing that the previous block of the proposed block where the aggregate signature is located voted through, so that when the proposed block votes through, approval of voting information (i.e. the aggregate signature) of the previous block of the proposed block is also implicitly approved, that is, approval of voting stages of the previous block of the proposed block is implicitly approved, that is, after the voting of the proposed block is passed, the previous block of the proposed block can be considered to pass through the two-stage consensus, and the previous block of the proposed block can be added into the block account book, so that in the process, the proposal block is subjected to consensus voting, and the two-stage consensus of the proposed block is implicitly approved in the voting information of the proposed block itself, and the efficiency of the consensus process is improved.
Drawings
In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the drawings that are required in the embodiments or the description of the prior art will be briefly described below, it being obvious that the drawings in the following description are only some embodiments of the present application, and that other drawings may be obtained according to these drawings without inventive effort for a person skilled in the art.
Fig. 1a is a schematic diagram of a block consensus network according to an embodiment of the present application;
FIG. 1b is a schematic diagram of a node interaction architecture according to an embodiment of the present application;
FIG. 2a is a schematic diagram of a blockchain architecture provided in accordance with embodiments of the present application;
fig. 2b is a schematic diagram of a block consensus scenario provided in an embodiment of the present application;
FIG. 3 is a flowchart of a method for block consensus according to an embodiment of the present application;
fig. 4 is a schematic diagram of an aggregate signature generation scenario provided in an embodiment of the present application;
fig. 5 is a schematic diagram of a block synchronization scenario provided in an embodiment of the present application;
FIG. 6 is a schematic diagram of another block synchronization scenario provided in an embodiment of the present application;
fig. 7 is a schematic diagram of a block consensus device according to an embodiment of the present application;
Fig. 8 is a schematic structural diagram of a computer device according to an embodiment of the present application.
Detailed Description
The following description of the embodiments of the present application will be made clearly and fully with reference to the accompanying drawings, in which it is evident that the embodiments described are only some, but not all, of the embodiments of the present application. All other embodiments, which can be made by one of ordinary skill in the art based on the embodiments herein without making any inventive effort, are intended to be within the scope of the present application.
In the application, before and during data collection, a prompt interface or popup window is displayed, and is used for prompting a user to collect XXXX data currently, and only after confirmation operation of the user on the prompt interface or popup window is obtained, relevant steps of data acquisition are started, otherwise, the steps are ended.
The embodiment of the application can store and transmit the related data of the proposal block and voting information and the like of each consensus node to the proposal block based on the cloud technology, and is suitable for the field of data transmission in big data.
Cloud technology (Cloud technology) refers to a hosting technology that unifies serial resources such as hardware, software, networks and the like in a wide area network or a local area network to realize calculation, storage, processing and sharing of data.
Cloud technology (Cloud technology) is based on the general terms of network technology, information technology, integration technology, management platform technology, application technology and the like applied by Cloud computing business models, and can form a resource pool, so that the Cloud computing business model is flexible and convenient as required. Cloud computing technology will become an important support. Background services of technical networking systems require a large amount of computing, storage resources, such as video websites, picture-like websites, and more portals. Along with the high development and application of the internet industry, each article possibly has an own identification mark in the future, the identification mark needs to be transmitted to a background system for logic processing, data with different levels can be processed separately, and various industry data needs strong system rear shield support and can be realized only through cloud computing.
Big data (Big data) refers to a data set which cannot be captured, managed and processed by a conventional software tool within a certain time range, and is a massive, high-growth-rate and diversified information asset which needs a new processing mode to have stronger decision-making ability, insight discovery ability and flow optimization ability. With the advent of the cloud age, big data has attracted more and more attention, and special techniques are required for big data to effectively process a large amount of data within a tolerant elapsed time. Technologies applicable to big data include massively parallel processing databases, data mining, distributed file systems, distributed databases, cloud computing platforms, the internet, and scalable storage systems.
Optionally, the consensus node may store relevant data of the proposal block mentioned in the present application based on a cloud storage technology.
In this embodiment of the present application, please refer to fig. 1a, fig. 1a is a schematic diagram of a block consensus network provided in this embodiment of the present application, as shown in fig. 1a, the consensus network 100 refers to a network for sharing data between a consensus node and a consensus node, and each consensus node may perform consensus on an obtained proposal block, where the consensus network 100 may include a plurality of consensus nodes 101, and the plurality of consensus nodes 101 may refer to each computer device in the consensus network 100. Wherein each consensus node 101 may receive input information during normal operation and maintain shared data within the consensus network 100 based on the received input information. In order to ensure information interworking in the consensus network 100, information connections may exist between the consensus nodes 101 in the consensus network 100, and information transmission may be performed between the consensus nodes 101 through the information connections. For example, when any consensus node in the consensus network 100 receives input information, other consensus nodes in the consensus network 100 acquire the input information according to a consensus algorithm, perform consensus on the input information, and store the input information as data in shared data after the input information is successfully consensus, so that all the data stored in the consensus nodes in the consensus network 100 are consistent, and the data stored in each consensus node is consensus-passed, thereby improving the security of the data in the block chain.
Alternatively, each of the consensus nodes 101 in the consensus network 100 may have a node identification corresponding thereto, and each of the consensus nodes in the consensus network 100 stores node identifications of other consensus nodes in the consensus network 100, so that the generated transaction block or the consensus result for the transaction block may be subsequently broadcast to the other consensus nodes in the consensus network 100 according to the node identifications of the other consensus nodes. For any one of the consensus nodes, a node identifier list may be maintained, where the node identifier list includes node identifiers of other consensus nodes in the consensus network 100, a consensus node name corresponding to the node identifiers, and the like. The node identifier may be an IP (Internet Protocol, protocol of interconnection between networks) address, or any other information that can be used to identify the node (e.g., factory identifier of the node). The data interaction between the consensus nodes 101 in the consensus network 100 may also be performed by other network interconnection manners.
Specifically, as shown in fig. 1b, fig. 1b is a node interaction architecture diagram improved in the embodiment of the present application. The plurality of consensus nodes included in the consensus network include a performing consensus node 103 and at least two consensus nodes, such as a consensus node 104a, a consensus node 104b, a consensus node 104c, and the like, and data interaction can be performed between the respective consensus nodes. The executing consensus node 103 (may also be referred to as a local consensus node or a master consensus node) may execute the scheme implemented in the present application, where the executing consensus node 103 may be any one of the consensus nodes in the consensus network, and the consensus nodes in the consensus network except for the executing consensus node 103 may be referred to as associated consensus nodes, such as the associated consensus node 104a, the associated consensus node 104b, and the associated consensus node 104 c. For example, when the executing consensus node 103 receives the first proposed block sent by the associated consensus node 104b, it can verify the first aggregate signature and the first transaction data included in the first proposed block, and if the verification is passed, it can indirectly consider that the voting phase verification of the preceding block of the first proposed block is passed, based on the implicit voting information of such proposed block, it can be considered that if the block height of the first proposed block is large, the first aggregate signature implies the voting information of the second stage (or the voting phase) of one proposed block (recorded as the block to be uplinked), that is, when the first aggregate signature passes, it can consider that the block to be uplinked is passed, and the block to be uplinked can be added to the block ledger, so that the consensus node performs voting consensus on each proposed block, and two-stage consensus on each proposed block is implied in the consensus process on each proposed block, thereby improving the efficiency of the consensus process on each proposed block.
Referring to fig. 2a, fig. 2a is a schematic structural diagram of a blockchain according to an embodiment of the present application. As shown in fig. 2a, a blockchain is composed of blocks (referred to herein as proposed blocks), each of which includes two parts: a chunk header and a chunk, and the chunk header includes a timestamp, a current hash value, and a successor hash value. The time stamp is used for recording the generation time of the block; the current hash value is the hash value of the block; the preceding hash value is the hash value of the preceding block of the block; and the block body is transaction information stored for the block body. Specifically, as shown in fig. 2a, the process may be as follows:
taking the buffer blockchain as an example, generating a proposal block 201 with a block height of 1, wherein the block body of the proposal block 201 comprises an aggregate signature, and the aggregate signature of the proposal block 201 can be empty because the block height is 1; when generating the proposal block 202, voting information for the proposal block 201 may be integrated, an aggregate signature for the proposal block 201 may be generated, the aggregate signature for the proposal block 201 may be added to a block body of the proposal block 202, and the aggregate signature included in the proposal block 202 may be used to indicate that the proposal phase consensus for the proposal block 201 passes (i.e., the proposal block 201 votes for passing); when generating the proposal block 203, voting information for the proposal block 202 may be integrated, an aggregate signature for the proposal block 202 may be generated, the aggregate signature for the proposal block 202 may be added to a block body of the proposal block 203, the aggregate signature included in the proposal block 203 may be used to indicate that the proposal block 202 passes the proposal phase consensus (i.e., the proposal block 202 votes through), and the proposal block 202 includes the aggregate signature for the proposal block 201, so that the proposal block 202 passes the proposal phase consensus, implicitly indicates that the proposal block 201 passes the voting phase consensus, that is, the two-phase consensus for the proposal block 201 is achieved, and the proposal block 201 may be added to the block ledger. Similarly, generation of other proposal blocks, uplink, and the like can be realized.
The proposal block comprises three stages, namely a proposal stage (proposal), a voting stage (endorse) and a submission stage (commit), wherein the proposal stage refers to a stage of generating the proposal block; the voting stage is a stage of carrying out first round consensus on the generated proposal block; the commit phase refers to a phase of performing a second round of consensus on the generated proposal block, that is, a phase of performing consensus voting on the voting phase of the proposal block. Optionally, the consensus node receives or generates the proposed block from the proposed stage to the voting stage of the proposed block, in one case within the block voting period, in one case without receiving or generating the proposed block after exceeding the block voting period, etc. The consensus node can enter the submitting stage from the voting stage when the voting information of the proposal block is received to meet the first round of consensus passing condition from the voting stage to the submitting stage. Alternatively, since the multiple phases of block consensus are simplified into one common consensus phase, only one consensus passing condition may exist, i.e. the first round of consensus passing condition is the consensus passing condition.
For example, please refer to fig. 2b, fig. 2b is a schematic diagram of a block consensus scenario provided in an embodiment of the present application. In fig. 2b, reference numerals after the stage and the like may be used to indicate corresponding blocks, for example, the proposal stage 2 may be used to indicate the proposal stage of the proposal block 2 and the like. As shown in fig. 2b, in proposal phase 1, a proposal block 1 is generated, and the proposal block 1 includes an aggregate signature 0, wherein, assuming that the block height of the proposal block 1 is 1, no successor block exists in the proposal block 1, the aggregate signature 0 may be null, or may be a default signature, or may be an invalid value, etc. In proposal phase 2, proposal block 1 may be voted, and when voting through proposal block 1, an aggregate signature 1 for proposal block 1 is generated, which aggregate signature 1 may be used to represent the first round of voting through proposal block 1, that is, proposal phase 2 may imply voting phase 1 of proposal block 1. In proposal phase 3, the proposal block 2 may be voted, and when the proposal block 2 is voted for passage, an aggregate signature 2 for the proposal block 2 is generated, and since the proposal block 2 includes the aggregate signature 1, the aggregate signature 2 may be used to indicate the first round of voting for the proposal block 2, that is, the proposal phase 3 may imply the voting phase 2 of the proposal block 2; the aggregate signature 2 may also be used to represent a vote pass for the aggregate signature 1, and from the meaning of the aggregate signature 1, the aggregate signature 2 may also be used to represent a first round of vote for the proposed block 1 (i.e., voting stage 1) pass, i.e., a second round of vote for the proposed block 1, if the present application is based on two-stage consensus uplink, the proposed block 1 may be considered to be consensus complete, the proposed block 1 may be determined to be a block to be uplink, i.e., the proposed block 1 is added to the block ledger 204, i.e., the proposed stage 3 may imply the commit stage 1 of the proposed block 1. In proposal phase 4, the proposal block 3 may be voted, and when the proposal block 3 is voted for passage, an aggregate signature 3 for the proposal block 3 is generated, and since the proposal block 3 includes the aggregate signature 2, the aggregate signature 3 may be used to indicate the first round of voting for the proposal block 3, that is, the proposal phase 4 may imply the voting phase 3 of the proposal block 3; the aggregate signature 3 may also be used to represent a voting pass for the aggregate signature 2, and from the meaning of the aggregate signature 2, the aggregate signature 3 may also be used to represent a voting pass for a first round of voting for the proposed block 2 (i.e., voting stage 2), i.e., a second round of voting pass for the proposed block 2, and if the present application is based on two-stage consensus uplink, the proposed block 2 may be considered to be completed in a consensus, the proposed block 2 may be determined to be a block to be uplink, i.e., the proposed block 2 may be added to the block ledger 204, i.e., the proposed stage 4 may imply the proposed block 2 to be submitted stage 2. Similarly, a proposal block 5 may be generated containing an aggregate signature 4, which aggregate signature 4 may be used to represent a first round of voting passes through the proposal block 4, i.e. the proposal stage 5 of the proposal block 5 implies the voting stage 4 of the proposal block 4; the second round of voting through proposed block 3 may be indicated, i.e., proposed stage 5 implies a commit stage 3 of proposed block 3, proposed block 3 may be added to block ledger 204, etc. Similarly, the consensus and the uplink of the proposal block can be realized through the above processes. Alternatively, the chain structure indicated by region 205 in FIG. 2b may be considered a cache blockchain, may be considered to be stored in a cache database, or may be stored in a common blockdata cache component.
Through the above process, the consensus process of each proposal block can be subjected to pipelining expansion, and each round can obtain the initiation of one proposal, so that the throughput rate of the system can be improved, and the consensus protocol can be simplified, namely, the original three-stage message (namely, the proposal message of the proposal stage, the voting message of the voting stage, the commit message of the commit stage and the like) is simplified into a general stage message, which can be regarded as the consensus message of the proposal block, and the efficiency of block consensus is further improved.
It is understood that the common node mentioned in the embodiments of the present application may be a computer device, which in the embodiments of the present application includes, but is not limited to, a terminal device or a server. In other words, the computer device may be a server or a terminal device, or may be a system formed by the server and the terminal device. The above-mentioned terminal device may be an electronic device, including but not limited to a mobile phone, a tablet computer, a desktop computer, a notebook computer, a palm computer, a vehicle-mounted device, an augmented Reality/Virtual Reality (AR/VR) device, a head-mounted display, a smart television, a wearable device, a smart speaker, a digital camera, a camera, and other mobile internet devices (mobile internet device, MID) with network access capability, or a terminal device in a scene such as a train, a ship, or a flight. The servers mentioned above may be independent physical servers, or may be server clusters or distributed systems formed by a plurality of physical servers, or may be cloud servers that provide cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communication, middleware services, domain name services, security services, vehicle-road collaboration, content distribution networks (Content Delivery Network, CDN), and basic cloud computing services such as big data and artificial intelligence platforms.
Alternatively, the data related to the embodiments of the present application may be stored in a computer device, or may be stored based on a cloud storage technology, which is not limited herein.
Further, referring to fig. 3, fig. 3 is a flowchart of a method for block consensus according to an embodiment of the present application. As shown in fig. 3, the execution subject may be any one of the consensus nodes in the consensus network, where the execution subject may be referred to as an execution consensus node, or a master consensus node, or a local consensus node, or the like, and the consensus nodes other than the execution subject may be referred to as associated consensus nodes, where the individual consensus nodes in the consensus network may be regarded as identical in nature, only for distinguishing the execution subjects, using different designations for distinguishing, and in particular, the block consensus process includes the steps of:
step S301, a first proposal block is received, and a first aggregate signature and first transaction data included in the first proposal block are obtained.
In this embodiment, taking the example that the first proposal block is generated by other consensus nodes, the executing consensus node may receive the first proposal block and acquire the first aggregate signature and the first transaction data included in the first proposal block. Wherein the first aggregate signature is used for indicating the voting passing of the target block, or the first aggregate signature is used for indicating the first round of voting passing of the target block; the target block is a successor of the first proposed block. Alternatively, if the block height of the first proposed block is 1, it indicates that the first proposed block has no preceding block (i.e. there is no target block), that is, the first aggregate signature does not point to the proposed block that needs to be voted, and the first aggregate signature may be considered to have no practical meaning, so the first aggregate signature may be null, or a default signature, or an invalid value, etc., which is not limited herein.
Optionally, when the executing consensus node receives the first proposal block, the executing consensus node may acquire a first aggregate signature and first transaction data from a block body of the first proposal block, where the first transaction data is data for generating the first proposal block.
Step S302, the first aggregate signature and the first transaction data are verified, and if the verification is passed, the first proposal block is added into the cache block chain.
In this embodiment, the executing consensus node may verify the first proposed block, and if the verification passes, it indicates that the first proposed block is approved, and the first proposed block may be added to the cache blockchain. The cache blockchain may be obtained from a cache database or a common blockdata cache component, or the like. Alternatively, if the verification of the first proposed block is not passed, voting information for the first proposed block may be broadcasted to N associated consensus nodes, where the voting information is voting failure information, and the execution consensus node may wait for a subsequent block of the first proposed block, if the subsequent block of the first proposed block is acquired, it indicates that the first proposed block is voted for, and may add the first proposed block to the cache block chain, where N is a positive integer. Optionally, when the verification of the first proposed block fails, voting information of N associated consensus nodes for the first proposed block may be further obtained, and if the voting information of N associated consensus nodes for the first proposed block meets a consensus passing condition, that is, the voting information of N associated consensus nodes for the first proposed block is used to indicate that voting for the first proposed block passes, the first proposed block may be added to the cache block chain; optionally, the acquiring the voting information of the N associated consensus nodes for the first proposal block may refer to acquiring the voting information of some or all associated consensus nodes in the N associated consensus nodes for the first proposal block respectively. Specifically, the first proposal block includes a first aggregate signature and first transaction data, and when the first proposal block is verified, the first aggregate signature and the first transaction data may be verified.
Specifically, the executing consensus node may obtain a target block from the cache blockchain, and obtain a target aggregate signature and target transaction data from the target block. And verifying the first aggregate signature based on the target transaction data and the target aggregate signature, and performing data legal detection on the first transaction data. Specifically, the first aggregate signature may be considered to be obtained by integrating the target transaction data with the voting information of the target aggregate signature, so that the first aggregate signature may be verified based on the target transaction data and the target aggregate signature. Further, if the verification of the first aggregate signature passes and the legal detection of the first transaction data passes, determining that the verification of the first aggregate signature and the first transaction data passes.
Optionally, when verifying the first aggregate signature based on the target transaction data and the target aggregate signature, assuming that the first aggregate signature is obtained by encrypting the target transaction data and the target aggregate signature, the executing consensus node may generate a verification signature of the target transaction data and the target aggregate signature, and match the verification signature with the first aggregate signature. Optionally, the target transaction data and the target aggregate signature may be verified, if the verification is passed, a verification signature corresponding to the target transaction data and the target aggregate signature is generated, and if the first aggregate signature is matched with the verification signature, the verification of the first aggregate signature is determined to be passed. Alternatively, the public key of the proposal node of the first proposal block may be used to verify the first aggregate signature, and if the verification passes, it is determined that the verification passes on the first aggregate signature. Optionally, after the executing consensus node generates the target block, the voting information of N associated consensus nodes for the target block may also be received, so when the first aggregate signature is verified based on the target transaction data and the target aggregate signature, the voting information of N associated consensus nodes for the target block (specifically, for the target transaction data and the target aggregate signature in the target block) may be obtained, and if the first aggregate signature and the voting information of N associated consensus nodes for the target block are matched, it may be determined that the verification of the first aggregate signature is passed.
Step S303, searching the block to be uplink corresponding to the first aggregate signature from the cache block chain, if the block to be uplink is searched, determining that the block to be uplink passes the consensus, and adding the block to be uplink into the block account book.
In this embodiment of the present application, the to-be-uplink block corresponding to the first aggregate signature refers to a preceding block of the target block, that is, a preceding block of the first proposal block where the first aggregate signature is located. Specifically, the first aggregate signature may be used to indicate that the target block is voted for passing, that is, the first round of voting for passing the target block, and accordingly, the target aggregate signature in the target block is voted for passing, and the target aggregate signature is used to indicate that the target block is voted for passing the target block, when the first aggregate signature indicates that the target aggregate signature is voted for passing, the voting information (that is, the first round of voting) of the target block indicated by the target aggregate signature may be considered to be voted for passing, that is, simply, the second round of voting for the target block that is the target block may be considered to be passed when the block consensus in the present application is two-phase consensus, and the target block that is the target block may be considered to be determined as the block to be uplink. Optionally, if no successor block of the target block is found in the cache block chain, i.e. no block to be uplink is found, voting is performed on the first proposed block.
When the block to be uploaded is added to the blockbook, the block to be uploaded is removed from the cache blockchain, that is, the proposed block without the blockbook added can be stored in the cache blockchain. Further optionally, the block uplink success result for the block to be uplink may be broadcasted to N associated consensus nodes, so that the N associated consensus nodes perform uplink for the block to be uplink based on the block uplink success result, where, when performing message interaction in the present application, each consensus node performs block synchronization based on the received message, so as to improve efficiency and effectiveness of block synchronization, and when executing the consensus node to add the block to be uplink to the block ledger, the block uplink success result is broadcasted, so that each consensus node may further perform block synchronization, and further improve efficiency of block synchronization.
Further, the executing consensus node may obtain first associated voting information of the N associated consensus nodes for the first proposal block, respectively, may generate first node voting information for the first proposal block, and broadcast the first node voting information to the N associated consensus nodes. If the first associated voting information corresponding to each of the N associated consensus nodes meets the consensus passing condition, specifically, if the first associated voting information corresponding to each of the N associated consensus nodes and the first node voting information meet the consensus passing condition, generating a second aggregate signature according to the first associated voting information corresponding to each of the N associated consensus nodes; n is a positive integer. Taking the generation of the following blocks of the first proposal block by the executing consensus node as an example, when the executing consensus node obtains the second transaction data, the executing consensus node can generate a second proposal block according to the second aggregate signature and the second transaction data, broadcast the second proposal block to N associated consensus nodes for consensus, and when the N associated consensus nodes receive the second proposal block, the consensus process of the second proposal block can refer to the consensus process of the first proposal block in the steps S301 to S303; the second proposal block refers to a subsequent block of the first proposal block generated by the executing consensus node.
Specifically, in the first associated voting information corresponding to each of the N associated consensus nodes, the voting passing number of the first associated voting information with the voting result being the voting success result is obtained, and if the voting passing number is greater than or equal to the voting success threshold, it is determined that the first associated voting information corresponding to each of the N associated consensus nodes meets the consensus passing condition. Or, acquiring the total number of the consensus nodes included in the consensus network, acquiring the consensus proportion of the voting passing number and the total number of the consensus nodes, and if the consensus proportion is greater than or equal to the consensus proportion threshold value, determining that the first association voting information respectively corresponding to the N association consensus nodes meets the consensus passing condition. Alternatively, the consensus passing condition may be a consensus passing condition corresponding to a consensus mechanism, where the consensus mechanism may include, but is not limited to, a bayer consensus mechanism, a workload proof mechanism, a rights proof mechanism, and the like, and is not limited herein. For example, assuming that the consensus duty ratio threshold is 2/3, when the consensus specific gravity is greater than or equal to 2/3, it is determined that the first association voting information respectively corresponding to the N association consensus nodes satisfies the consensus passing condition. Optionally, the executing consensus node may acquire the target number of votes of the voting information whose voting result is the voting success result from the first associated voting information and the first node voting information respectively corresponding to the N associated consensus nodes, and if the target number of votes is greater than or equal to the voting success threshold, determine that the first associated voting information respectively corresponding to the N associated consensus nodes meets the consensus passing condition. That is, if the voting result of the first node voting information is a voting success result, the target voting number is the sum of the voting passing number and the first node voting information; if the voting result of the first node voting information is a voting failure result, the target voting number is the same as the voting passing number. And detecting whether the first associated voting information corresponding to the N associated consensus nodes respectively meets the consensus passing condition or not according to the target voting number.
Specifically, when generating the second aggregate signature according to the first associated voting information corresponding to each of the N associated consensus nodes, the first associated voting information and the first node voting information corresponding to each of the N associated consensus nodes may be directly aggregated into the second aggregate signature, where the second aggregate signature is an aggregate for representing the plurality of voting information (or becomes the voting signature); the first association voting information and the first node voting information corresponding to the N association consensus nodes respectively may be encrypted to obtain a second aggregate signature and the like.
Specifically, referring to fig. 4, fig. 4 is a schematic diagram of an aggregate signature generation scenario provided in the embodiment of the present application, as shown in fig. 4, N associated consensus nodes 401 may vote on a first proposal block, and send first associated voting information for the first proposal block to an executing consensus node 402. For example, the N associated consensus nodes 401 include an associated consensus node 401a, an associated consensus node 401b, an associated consensus node 401c, and the like. The executing consensus node 402 may receive the first associated voting information and the like for the first proposal block sent by the N associated consensus nodes 401, respectively, that is, obtain the voting information 403 for the first proposal block, including the first node voting information for the first proposal block by the executing consensus node 402, and the first associated voting information and the like, such as the first associated voting information 1 to the first associated voting information N and the like, for the first proposal block by the N associated consensus nodes, respectively.
Under the aggregate signature generation process (1), the executing consensus node 402 may sort and integrate the voting information 403 for the first proposal block based on the voting result, to obtain first-class voting information and second-class voting information, where the first-class voting information is voting information in which the voting result is a voting success result, and the second-class voting information is voting information in which the voting result is a voting failure result. The first category voting information is aggregated with the second category voting information to obtain a second aggregated signature 404a.
Under the aggregate signature generation process (2), the executing consensus node 402 may obtain the node private key 405, encrypt the voting information 403 for the first proposal block with the node private key 405, and generate the second aggregate signature 404b. Alternatively, the voting information for the first proposal block carrying the second polymeric signature 404b may be noted as a block license credential 406. At this time, when generating the second proposal block from the second aggregate signature and the second transaction data, the second proposal block may be generated from the block license credential 406 including the second aggregate signature 404b and the second transaction data.
Under the aggregate signature generation process (3), the executing consensus node 402 may directly determine the executing consensus node 402 and N associated consensus nodes as second aggregate signatures for the first proposed block respectively with respect to the voting information 403 of the first proposed block, where the voting information 403 for the first proposed block includes the first node voting information of the executing consensus node 402 for the first proposed block, and the N associated consensus nodes respectively with respect to the first associated voting information of the first proposed block, and so on.
Under the aggregate signature generation process (4), the executing consensus node 402 may perform classification integration on first associated voting information corresponding to each of the N associated consensus nodes based on the voting result; the voting result comprises a voting success result and a voting failure result. Optionally, the first node voting information and the first associated voting information corresponding to the N associated consensus nodes respectively may be classified and integrated. Further, the node private key 405 is obtained, and the node private key 405 is used to encrypt the first associated voting information (or the N first associated voting information and the first node voting information) respectively corresponding to the N associated consensus nodes after the classification integration, so as to generate a second aggregate signature.
The above is merely an exemplary process of generating an aggregate signature, and other methods of carrying voting information for a proposal block in an aggregate signature may be used. The above processes are all described in terms of the generation of the second aggregate signature, and other aggregate signature generation processes in the present application may refer to the second aggregate signature generation process.
Further, the executing consensus node may generate first node voting information for the first proposal block, broadcast the first node voting information to the N associated consensus nodes; n is a positive integer. And acquiring first associated voting information of N associated consensus nodes aiming at the first proposal block respectively, and generating verification data according to the first associated voting information corresponding to the first node voting information and the N associated consensus nodes respectively. Taking the example that the subsequent block of the first proposal block is generated by any one of N associated consensus nodes, when a third proposal block comprising a third aggregation signature and third transaction data is received, the third aggregation signature is verified by adopting verification data to obtain a first verification result, the third transaction data is verified to obtain a second verification result, and second node voting information aiming at the third proposal block is generated according to the first verification result and the second verification result. And broadcasting second node voting information to N associated consensus nodes. The third proposed block refers to a subsequent block of the first proposed block generated by the associated consensus node. In the case that the second proposed block and the third proposed block are independent, for the executing consensus node, if the subsequent block of the first proposed block is generated by the executing consensus node, the subsequent block of the first proposed block may be recorded as the second proposed block; if the following blocks of the first proposed block are generated by the associated consensus node executing the consensus node, the following blocks of the first proposed block may be denoted as third proposed blocks, but the calls for the different cases are different, and do not indicate that the two define conflicts. Since the executing consensus node may be any one of the consensus nodes in the consensus network, that is, when voting on the first proposal block, there is a consensus node in the consensus network that executes a process related to the second proposal block, and there is a consensus node that executes a process related to the third proposal block.
Wherein upon receipt of a message, block synchronization may be performed based on the received message. For example, the executing consensus node may obtain the signature block height corresponding to the first aggregate signature, and obtain the cache block height in the cache block chain; the cache block height is the maximum block height corresponding to the cache block chain. Specifically, referring to fig. 5, fig. 5 is a schematic view of a block synchronization scenario provided in the embodiment of the present application. As shown in fig. 5, the executing consensus node may obtain a first aggregate signature in the first proposal block 501, and may obtain a signature block height corresponding to the first aggregate signature, where the signature block height refers to a block height of a proposal block through which votes indicated by the first aggregate signature pass, and herein refers to a block height of a target block. Obtaining a cache block height from blockbook 502 and cache blockchain 503, where the cache block height may be considered a maximum block height of proposed blocks stored by the executing consensus node, e.g., blockbook 502 in fig. 5 includes proposed blocks 1 through s, where s is a positive integer; the proposed block in blockchain 503 includes proposed block (s+1) through proposed block t, where t is a positive integer, where proposed block in blockbook 502 is comprised of blocks that are identified as passing through in the cached blockchain 503, and thus the cache block height shown in FIG. 5 may be considered to be t. Further, if the signature block height is different from the cache block height, it means that other consensus nodes have already agreed on the proposed block whose block height is the signature block height, and executing the consensus node records only the proposed block whose block height is the cache block height, and block synchronization can be performed through synchronization blocking. Specifically, a first block synchronization request may be broadcast to N associated consensus nodes 504, and a cache block requested by the first block synchronization request may be obtained from any one of the N associated consensus nodes 504 (e.g., the associated consensus node 504a, the associated consensus node 504b, the associated consensus node 504c, etc.); n is a positive integer. Optionally, the N associated consensus nodes may perform block synchronization based on the first block synchronization request, for example, the associated consensus node 504a may receive the first block synchronization request, where the first block synchronization request may include a request height interval from a cache block height to a signature block height, the associated consensus node 504a searches a stored proposed block, and if the block height of the proposed block stored by the associated consensus node 504a does not reach the signature block height, block synchronization may be performed based on the signature block height, and so on. The executing consensus node can verify the cache block, if the verification is passed, the cache block is stored, and a process of acquiring the first aggregate signature and the first transaction data included in the first proposal block is executed.
Specifically, when the cache block is verified, the executing consensus node can verify the cache transaction data and the cache aggregate signature in the cache block, and if the verification is passed, the verification is passed for the cache block. Optionally, executable transaction data in the cache block can be obtained, and a transaction process corresponding to the executable transaction data is executed to obtain a transaction execution result; and verifying the transaction execution result, and if the transaction execution result is legal, determining that the verification of the cache block is passed.
Optionally, the cache block carries a block storage state of the cache block. And when the verification is passed, storing the cache block, and if the verification is passed, acquiring the block storage state carried by the cache block. If the block storage state is a block cache state, adding the cache block into a cache block chain based on the block height of the cache block; if the block storage state is a block uplink state, adding the cache block to the block ledger based on the block height of the cache block. That is, the proposed block that performs the miss of the consensus node may not be just a block that is not uplink, and at this time, the performing consensus node may store the cache block based on the block storage state of the cache block. The blockchain in the present application refers to adding the proposed block to the blockbook, and the cache blockchain is not an actual blockchain but may refer to a storage format for caching the proposed block.
Alternatively, when the executing consensus node receives the voting information sent by the N associated consensus nodes, the theoretical block height may also be determined based on the received voting information, where the theoretical block height is the maximum block height of a proposed block that should be theoretically stored by the executing consensus node, and when determining that a block is missing, block synchronization may be performed based on the theoretical block height.
Optionally, the executing consensus node may also receive a block synchronization request sent by another consensus node, and respond to the block synchronization request. Specifically, if a second block synchronization request sent by the missing consensus node is received, a block height synchronization interval carried by the second block synchronization request is obtained. Obtaining a block to be synchronized corresponding to a block height synchronization interval from a cache block chain and a block account book, and determining a block storage state of the block to be synchronized based on a storage position of the block to be synchronized; the block storage state includes a block cache state and a block uplink state. And sending the blocks to be synchronized and the block storage states of the blocks to be synchronized to the missing consensus node so that the missing consensus node carries out synchronous processing on the blocks to be synchronized based on the block storage states of the blocks to be synchronized. For example, referring to fig. 6, fig. 6 is a schematic diagram of another block synchronization scenario provided in the embodiments of the present application. As shown in fig. 6, if the executing consensus node receives the second block synchronization request sent by the missing consensus node 601, the block height synchronization interval carried by the second block synchronization request is obtained, where the missing consensus node 601 may be any one of the consensus nodes in the consensus network, in other words, each of the consensus nodes mentioned in the present application may be any one of the consensus nodes in the consensus network, and in order to distinguish execution objects under different scenes, different naming is performed on the consensus nodes under different scenes. Further, the executing consensus node may obtain a block to be synchronized 604 corresponding to the block height synchronization interval from the block ledger 602 and the cache blockchain 603. For example, the block height synchronization interval is used to indicate the proposed blocks p to t in the cache blockchain 603, and the to-be-synchronized blocks 604 include the proposed blocks p to t, that is, the number of to-be-synchronized blocks 604 may be one or at least two, and p is a positive integer. The executing consensus node may obtain the block storage status of the block to be synchronized 604, for example, in fig. 6, the proposed block p to the proposed block t are all stored in the cache blockchain 603, i.e. the block storage status of the block to be synchronized 604 is the block cache status. The executing consensus node may send the block to be synchronized 604 and the block storage state of the block to be synchronized 604 to the missing consensus node 601, and the missing consensus node 601 may perform synchronization processing on the block to be synchronized 604 based on the block storage state of the block to be synchronized 604.
Based on the description about block synchronization, when any one of the consensus nodes in the consensus network receives the message, the theoretical block height can be determined based on the message, whether block synchronization is needed or not is detected based on the theoretical block height, if block synchronization is needed, the proposed block is requested to other consensus nodes based on the theoretical block height, and block synchronization is performed, so that each consensus node can guarantee the synchronization degree of the proposed block as much as possible, and the effectiveness and the synchronization efficiency of block synchronization are improved.
In the embodiment of the application, a first proposal block is received, and a first aggregate signature and first transaction data included in the first proposal block are acquired; the first aggregate signature is used for indicating voting to pass through the target block; the target block is a successor of the first proposed block; verifying the first aggregate signature and the first transaction data, and if the verification is passed, adding the first proposal block into a cache block chain; searching a block to be uplinked corresponding to the first aggregate signature from the cache block chain, if the block to be uplinked is searched, determining that the block to be uplinked passes through the consensus, and adding the block to be uplinked into a block account book; the block to be uplink corresponding to the first aggregate signature is the successor block of the target block. Through the above process, each consensus node can directly perform consensus verification on the generated proposed block, that is, in the block consensus process, the method is realized based on pipeline consensus, specifically, each proposed block comprises an aggregate signature and transaction data of the proposed block, the aggregate signature is used for representing that the previous block of the proposed block where the aggregate signature is located voted through, so that when the proposed block votes through, approval of voting information (i.e. the aggregate signature) of the previous block of the proposed block is also implicitly approved, that is, approval of voting stages of the previous block of the proposed block is implicitly approved, that is, after the voting of the proposed block is passed, the previous block of the proposed block can be considered to pass through the two-stage consensus, and the previous block of the proposed block can be added into the block account book, so that in the process, the proposal block is subjected to consensus voting, and the two-stage consensus of the proposed block is implicitly approved in the voting information of the proposed block itself, and the efficiency of the consensus process is improved.
Further, referring to fig. 7, fig. 7 is a schematic diagram of a block consensus device according to an embodiment of the present application. The block consensus means may be a computer program (comprising program code, etc.) running in a computer device, for example the block consensus means may be an application software; the device can be used for executing corresponding steps in the method provided by the embodiment of the application. As shown in fig. 7, the block consensus apparatus 700 may be used in the computer device in the embodiment corresponding to fig. 3, and specifically, the apparatus may include: a block receiving module 11, a block verifying module 12, a block buffering module 13 and a block uplink module 14.
A block receiving module 11, configured to receive a first proposal block, and acquire a first aggregate signature and first transaction data included in the first proposal block; the first aggregate signature is used for indicating voting to pass through the target block; the target block is a successor of the first proposed block;
a block verification module 12 for verifying the first aggregate signature and the first transaction data;
a block cache module 13, configured to add the first proposal block to the cache block chain if the verification is passed;
the block uplink module 14 is configured to search a block to be uplink corresponding to the first aggregate signature from the cache blockchain, determine that the block to be uplink passes through the consensus if the block to be uplink is found, and add the block to be uplink to the block ledger; the block to be uplink corresponding to the first aggregate signature is the successor block of the target block.
Wherein, the block verification module 12 comprises:
a target obtaining unit 121, configured to obtain a target block from the cache block chain, and obtain a target aggregate signature and target transaction data from the target block;
a signature verification unit 122 for verifying the first aggregate signature based on the target transaction data and the target aggregate signature;
a data detection unit 123, configured to perform data legal detection on the first transaction data;
the verification determining unit 124 is configured to determine that verification of the first aggregate signature and the first transaction data is passed if verification of the first aggregate signature is passed and the first transaction data is legal.
Wherein the signature verification unit 122 includes:
the signature verification generation subunit 1221 is configured to verify the target transaction data and the target aggregate signature, and if the verification passes, generate a verification signature corresponding to the target transaction data and the target aggregate signature;
the signature matching subunit 1222 is configured to determine that the first aggregate signature passes the verification if the first aggregate signature matches the verification signature.
Wherein the apparatus 700 further comprises:
the voting obtaining module 15 is configured to obtain first associated voting information of N associated consensus nodes for the first proposal block respectively;
The voting aggregation module 16 is configured to generate a second aggregate signature according to the first associated voting information corresponding to the N associated consensus nodes if the first associated voting information corresponding to the N associated consensus nodes respectively meets a consensus passing condition; n is a positive integer;
the block generating module 17 is configured to generate a second proposal block according to the second aggregate signature and the second transaction data when the second transaction data is acquired, and broadcast the second proposal block to N associated consensus nodes for consensus; the second proposed block is a subsequent block to the first proposed block.
Wherein the apparatus 700 further comprises:
the voting analysis module 18 is configured to obtain, from first associated voting information corresponding to each of the N associated consensus nodes, a number of votes passing through the first associated voting information whose voting result is a voting success result, and if the number of votes passing through is greater than or equal to a voting success threshold, determine that the first associated voting information corresponding to each of the N associated consensus nodes satisfies a consensus passing condition;
the vote aggregation module 16 includes:
a voting classification unit 161, configured to classify and integrate first associated voting information corresponding to each of the N associated consensus nodes based on a voting result; the voting result comprises a voting success result and a voting failure result;
The voting encryption unit 162 is configured to obtain a node private key, encrypt first association voting information corresponding to each of the N association consensus nodes after the classification by using the node private key, and generate a second aggregate signature.
Wherein the apparatus 700 further comprises:
a voting broadcasting module 19, configured to generate first node voting information for the first proposal block, and broadcast the first node voting information to N associated consensus nodes; n is a positive integer;
the data generating module 20 is configured to obtain first associated voting information of N associated consensus nodes for the first proposal block, and generate verification data according to the first associated voting information corresponding to the first node voting information and the N associated consensus nodes;
the aggregation verification module 21 is configured to, when receiving a third proposal block including a third aggregation signature and third transaction data, verify the third aggregation signature with verification data to obtain a first verification result, verify the third transaction data to obtain a second verification result, and generate second node voting information for the third proposal block according to the first verification result and the second verification result;
the voting broadcasting module 19 is further configured to broadcast second node voting information to N associated consensus nodes.
Wherein the apparatus 700 further comprises:
a block removal module 22 for removing the block to be uplinked from the cache blockchain when the block to be uplinked is added to the blockbook;
the uplink sending module 23 is configured to broadcast a block uplink success result for the block to be uplink to the N associated consensus nodes, so that the N associated consensus nodes uplink the block to be uplink based on the block uplink success result.
Wherein the apparatus 700 further comprises:
the height obtaining module 24 is configured to obtain a signature block height corresponding to the first aggregate signature, and obtain a cache block height in a cache block chain; the cache block height is the maximum block height corresponding to the cache block chain;
a block request module 25, configured to broadcast a first block synchronization request to N associated consensus nodes if the signature block height is different from the buffer block height, and acquire a buffer block requested by the first block synchronization request from any one of the N associated consensus nodes; n is a positive integer;
the cache verification module 26 is configured to verify the cache block;
the block storage module 27 is configured to store the buffer block and perform a process of acquiring the first aggregate signature and the first transaction data included in the first proposal block if the verification is passed.
Wherein, this buffering verification module 26 includes:
the transaction execution unit 261 is configured to obtain executable transaction data in the cache block, execute a transaction process corresponding to the executable transaction data, and obtain a transaction execution result;
the transaction verification unit 262 is configured to verify the transaction execution result, and if the transaction execution result is legal, determine that the verification of the cache block is passed.
Wherein the cache block carries the block storage state of the cache block;
the block storage module 27 includes:
a state obtaining unit 271, configured to obtain a block storage state carried by the cache block if the verification is passed;
a cache storage unit 272, configured to add a cache block to the cache blockchain based on a block height of the cache block if the block storage state is a block cache state;
the ledger storing unit 273 is configured to add the cache block to the block ledger based on the block height of the cache block if the block storing state is the block uplink state.
Wherein the apparatus 700 further comprises:
the synchronization obtaining module 28 is configured to obtain a block height synchronization interval carried by the second block synchronization request if the second block synchronization request sent by the missing consensus node is received;
The state determining module 29 is configured to obtain a block to be synchronized corresponding to the block height synchronization interval from the cache block chain and the block ledger, and determine a block storage state of the block to be synchronized based on a storage position of the block to be synchronized; the block storage state comprises a block cache state and a block uplink state;
the synchronization response module 30 is configured to send the block to be synchronized and the block storage state of the block to be synchronized to the missing consensus node, so that the missing consensus node performs synchronization processing on the block to be synchronized based on the block storage state of the block to be synchronized.
The embodiment of the application provides a block consensus device, which can receive a first proposal block and acquire a first aggregate signature and first transaction data included in the first proposal block; the first aggregate signature is used for indicating voting to pass through the target block; the target block is a successor of the first proposed block; verifying the first aggregate signature and the first transaction data, and if the verification is passed, adding the first proposal block into a cache block chain; searching a block to be uplinked corresponding to the first aggregate signature from the cache block chain, if the block to be uplinked is searched, determining that the block to be uplinked passes through the consensus, and adding the block to be uplinked into a block account book; the block to be uplink corresponding to the first aggregate signature is the successor block of the target block. Through the above process, each consensus node can directly perform consensus verification on the generated proposed block, that is, in the block consensus process, the method is realized based on pipeline consensus, specifically, each proposed block comprises an aggregate signature and transaction data of the proposed block, the aggregate signature is used for representing that the previous block of the proposed block where the aggregate signature is located voted through, so that when the proposed block votes through, approval of voting information (i.e. the aggregate signature) of the previous block of the proposed block is also implicitly approved, that is, approval of voting stages of the previous block of the proposed block is implicitly approved, that is, after the voting of the proposed block is passed, the previous block of the proposed block can be considered to pass through the two-stage consensus, and the previous block of the proposed block can be added into the block account book, so that in the process, the proposal block is subjected to consensus voting, and the two-stage consensus of the proposed block is implicitly approved in the voting information of the proposed block itself, and the efficiency of the consensus process is improved.
Referring to fig. 8, fig. 8 is a schematic structural diagram of a computer device according to an embodiment of the present application. As shown in fig. 8, the computer device in the embodiment of the present application may include: one or more processors 801, memory 802, and input-output interfaces 803. The processor 801, memory 802, and input-output interface 803 are connected via a bus 804. The memory 802 is used for storing a computer program comprising program instructions, and the input/output interface 803 is used for receiving data and outputting data, such as for data interaction between the consensus nodes; the processor 801 is configured to execute program instructions stored in the memory 802.
The processor 801 may perform the following operations, among others:
receiving a first proposal block, and acquiring a first aggregate signature and first transaction data included in the first proposal block; the first aggregate signature is used for indicating voting to pass through the target block; the target block is a successor of the first proposed block;
verifying the first aggregate signature and the first transaction data, and if the verification is passed, adding the first proposal block into a cache block chain;
searching a block to be uplinked corresponding to the first aggregate signature from the cache block chain, if the block to be uplinked is searched, determining that the block to be uplinked passes through the consensus, and adding the block to be uplinked into a block account book; the block to be uplink corresponding to the first aggregate signature is the successor block of the target block.
In some possible implementations, the processor 801 may be a central processing unit (central processing unit, CPU), which may also be other general purpose processors, digital signal processors (digital signal processor, DSP), application specific integrated circuits (application specific integrated circuit, ASIC), off-the-shelf programmable gate arrays (field-programmable gate array, FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, or the like. A general purpose processor may be a microprocessor or the processor may be any conventional processor or the like.
The memory 802 may include read only memory and random access memory, and provides instructions and data to the processor 801 and the input output interface 803. A portion of memory 802 may also include non-volatile random access memory. For example, the memory 802 may also store information of device type.
In a specific implementation, the computer device may execute, through each functional module built in the computer device, an implementation manner provided by each step in fig. 3, and specifically, the implementation manner provided by each step in fig. 3 may be referred to, which is not described herein.
Embodiments of the present application provide a computer device, comprising: the processor, the input/output interface and the memory acquire the computer program in the memory through the processor, execute the steps of the method shown in fig. 3, and perform the block consensus operation. The embodiment of the application realizes the receiving of the first proposal block and obtains the first aggregate signature and the first transaction data included in the first proposal block; the first aggregate signature is used for indicating voting to pass through the target block; the target block is a successor of the first proposed block; verifying the first aggregate signature and the first transaction data, and if the verification is passed, adding the first proposal block into a cache block chain; searching a block to be uplinked corresponding to the first aggregate signature from the cache block chain, if the block to be uplinked is searched, determining that the block to be uplinked passes through the consensus, and adding the block to be uplinked into a block account book; the block to be uplink corresponding to the first aggregate signature is the successor block of the target block. Through the above process, each consensus node can directly perform consensus verification on the generated proposed block, that is, in the block consensus process, the method is realized based on pipeline consensus, specifically, each proposed block comprises an aggregate signature and transaction data of the proposed block, the aggregate signature is used for representing that the previous block of the proposed block where the aggregate signature is located voted through, so that when the proposed block votes through, approval of voting information (i.e. the aggregate signature) of the previous block of the proposed block is also implicitly approved, that is, approval of voting stages of the previous block of the proposed block is implicitly approved, that is, after the voting of the proposed block is passed, the previous block of the proposed block can be considered to pass through the two-stage consensus, and the previous block of the proposed block can be added into the block account book, so that in the process, the proposal block is subjected to consensus voting, and the two-stage consensus of the proposed block is implicitly approved in the voting information of the proposed block itself, and the efficiency of the consensus process is improved.
The embodiment of the present application further provides a computer readable storage medium, where the computer readable storage medium stores a computer program, where the computer program is adapted to be loaded by the processor and execute the block consensus method provided by each step in fig. 3, and specifically refer to an implementation manner provided by each step in fig. 3, which is not described herein again. In addition, the description of the beneficial effects of the same method is omitted. For technical details not disclosed in the embodiments of the computer-readable storage medium according to the present application, please refer to the description of the method embodiments of the present application. As an example, a computer program may be deployed to be executed on one computer device or on multiple computer devices at one site or distributed across multiple sites and interconnected by a communication network.
The computer readable storage medium may be a block consensus apparatus provided in any of the previous embodiments or an internal storage unit of the computer device, such as a hard disk or a memory of the computer device. The computer readable storage medium may also be an external storage device of the computer device, such as a plug-in hard disk, a Smart Media Card (SMC), a Secure Digital (SD) card, a flash card (flash card) or the like, which are provided on the computer device. Further, the computer-readable storage medium may also include both internal storage units and external storage devices of the computer device. The computer-readable storage medium is used to store the computer program and other programs and data required by the computer device. The computer-readable storage medium may also be used to temporarily store data that has been output or is to be output.
Embodiments of the present application also provide a computer program product or computer program comprising computer instructions stored in a computer-readable storage medium. The processor of the computer device reads the computer instructions from the computer readable storage medium, and executes the computer instructions, so that the computer device executes the methods provided in various optional modes in fig. 3, and each consensus node can directly perform consensus verification on the generated proposed block, that is, in the block consensus process, the method is realized based on pipeline consensus, specifically, each proposed block includes an aggregate signature and transaction data of the proposed block, the aggregate signature is used for representing that the previous block of the proposed block where the aggregate signature is located votes through, so that when the proposed block votes through, approval of voting information (i.e., aggregate signature) of the previous block of the proposed block is implicitly approved, that is, approval of voting stages of the previous block of the proposed block is implicitly approved, that is, after the proposed block votes are passed, the previous block of the proposed block can be considered to pass through two stages of consensus, and the previous block of the proposed block can be added to the proposed block, thus the efficiency of the two blocks is improved in the process of the consensus process, and the voting of the two proposed blocks is implicitly approved.
The terms first, second and the like in the description and in the claims and drawings of the embodiments of the present application are used for distinguishing between different objects and not for describing a particular sequential order. Furthermore, the term "include" and any variations thereof is intended to cover a non-exclusive inclusion. For example, a process, method, apparatus, article, or device that comprises a list of steps or elements is not limited to the list of steps or modules but may, in the alternative, include other steps or modules not listed or inherent to such process, method, apparatus, article, or device.
Those of ordinary skill in the art will appreciate that the elements and algorithm steps described in connection with the embodiments disclosed herein may be embodied in electronic hardware, in computer software, or in a combination of the two, and that the elements and steps of the examples have been generally described in terms of function in this description to clearly illustrate the interchangeability of hardware and software. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the solution. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present application.
The methods and related devices provided in the embodiments of the present application are described with reference to the method flowcharts and/or structure diagrams provided in the embodiments of the present application, and each flowchart and/or block of the method flowcharts and/or structure diagrams may be implemented by computer program instructions, and combinations of flowcharts and/or blocks in the flowchart and/or block diagrams. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable block co-ordination device to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable block co-ordination device, create means for implementing the functions specified in the flowchart block or blocks and/or block diagram block or blocks. These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable block consensus device to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart flow or flows and/or block diagram block or blocks. These computer program instructions may also be loaded onto a computer or other programmable apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart flow or flows and/or structures block or blocks.
The steps in the method of the embodiment of the application can be sequentially adjusted, combined and deleted according to actual needs.
The modules in the device of the embodiment of the application can be combined, divided and deleted according to actual needs.
The foregoing disclosure is only illustrative of the preferred embodiments of the present application and is not intended to limit the scope of the claims herein, as the equivalent of the claims herein shall be construed to fall within the scope of the claims herein.
Claims (15)
1. A block consensus method, the method comprising:
receiving a first proposal block, and acquiring a first aggregate signature and first transaction data included in the first proposal block; the first aggregate signature is used for indicating voting to pass through a target block; the target block is a successor of the first proposal block;
verifying the first aggregate signature and the first transaction data, and if the verification is passed, adding the first proposal block into a cache block chain;
searching a block to be uplinked corresponding to the first aggregate signature from the cache blockchain, if the block to be uplinked is searched, determining that the block to be uplinked passes through consensus, and adding the block to be uplinked into a blockbook; the block to be uplink corresponding to the first aggregate signature is a successor block of the target block.
2. The method of claim 1, wherein verifying the first aggregate signature and the first transaction data comprises:
acquiring the target block from the cache block chain, and acquiring a target aggregate signature and target transaction data from the target block;
verifying the first aggregate signature based on the target transaction data and the target aggregate signature, and performing data legal detection on the first transaction data;
if the first aggregate signature passes verification and the first transaction data is legally detected to pass, determining that the first aggregate signature and the first transaction data pass verification.
3. The method of claim 2, wherein the verifying the first aggregate signature based on the target transaction data and the target aggregate signature comprises:
verifying the target transaction data and the target aggregate signature, and if the verification is passed, generating a verification signature corresponding to the target transaction data and the target aggregate signature;
and if the first aggregate signature is matched with the verification signature, determining that the first aggregate signature is verified.
4. The method of claim 1, wherein the method further comprises:
acquiring first associated voting information of N associated consensus nodes aiming at the first proposal block respectively, and if the first associated voting information corresponding to the N associated consensus nodes meets a consensus passing condition, generating a second aggregate signature according to the first associated voting information corresponding to the N associated consensus nodes respectively; n is a positive integer;
when second transaction data are acquired, generating a second proposal block according to the second aggregate signature and the second transaction data, and broadcasting the second proposal block to the N associated consensus nodes for consensus; the second proposed block is a subsequent block to the first proposed block.
5. The method of claim 4, wherein the method further comprises:
acquiring the voting passing number of first associated voting information with voting results being voting success results in first associated voting information corresponding to the N associated consensus nodes respectively, and if the voting passing number is greater than or equal to a voting success threshold value, determining that the first associated voting information corresponding to the N associated consensus nodes respectively meets consensus passing conditions;
The generating a second aggregate signature according to the first associated voting information respectively corresponding to the N associated consensus nodes includes:
classifying and integrating the first associated voting information respectively corresponding to the N associated consensus nodes based on the voting result; the voting result comprises the voting success result and the voting failure result;
and acquiring a node private key, encrypting first association voting information respectively corresponding to the N association consensus nodes after the classification integration by adopting the node private key, and generating a second aggregation signature.
6. The method of claim 1, wherein the method further comprises:
generating first node voting information aiming at the first proposal block, and broadcasting the first node voting information to N associated consensus nodes; n is a positive integer;
acquiring first associated voting information of the N associated consensus nodes for the first proposal block respectively, and generating verification data according to the first associated voting information corresponding to the first node voting information and the N associated consensus nodes respectively;
when a third proposal block comprising a third aggregation signature and third transaction data is received, verifying the third aggregation signature by adopting the verification data to obtain a first verification result, verifying the third transaction data to obtain a second verification result, and generating second node voting information aiming at the third proposal block according to the first verification result and the second verification result;
Broadcasting the second node voting information to the N associated consensus nodes.
7. The method of claim 1, wherein the method further comprises:
removing the block to be uplinked from the cache blockchain when the block to be uplinked is added to a blockbook;
broadcasting block uplink success results aiming at the block to be uplink to N associated consensus nodes so that the N associated consensus nodes uplink the block to be uplink based on the block uplink success results.
8. The method of claim 1, wherein the method further comprises:
acquiring a signature block height corresponding to the first aggregate signature, and acquiring a cache block height in the cache block chain; the cache block height is the maximum block height corresponding to the cache block chain;
if the signature block height is different from the cache block height, broadcasting a first block synchronization request to N associated consensus nodes, and acquiring a cache block requested by the first block synchronization request from any one of the N associated consensus nodes; n is a positive integer;
and verifying the cache block, if the verification is passed, storing the cache block, and executing the process of acquiring the first aggregate signature and the first transaction data included in the first proposal block.
9. The method of claim 8, wherein verifying the cache block comprises:
acquiring executable transaction data in the cache block, and executing a transaction process corresponding to the executable transaction data to obtain a transaction execution result;
and verifying the transaction execution result, and if the transaction execution result is legal, determining that the cache block is verified to pass.
10. The method of claim 8, wherein the cache block carries a block storage state of the cache block;
and if the verification is passed, storing the cache block, including:
if the verification is passed, obtaining a block storage state carried by the cache block;
if the block storage state is a block cache state, adding the cache block into the cache block chain based on the block height of the cache block;
and if the block storage state is a block uplink state, adding the buffer block into the block ledger based on the block height of the buffer block.
11. The method of claim 1, wherein the method further comprises:
if a second block synchronization request sent by a missing consensus node is received, acquiring a block height synchronization interval carried by the second block synchronization request;
Obtaining a block to be synchronized corresponding to the block height synchronization interval from the cache block chain and the block account book, and determining a block storage state of the block to be synchronized based on a storage position of the block to be synchronized; the block storage state comprises a block cache state and a block uplink state;
and sending the blocks to be synchronized and the block storage state of the blocks to be synchronized to the missing consensus node so that the missing consensus node performs synchronization processing on the blocks to be synchronized based on the block storage state of the blocks to be synchronized.
12. A block consensus device, the device comprising:
the block receiving module is used for receiving a first proposal block and acquiring a first aggregate signature and first transaction data included in the first proposal block; the first aggregate signature is used for indicating voting to pass through a target block; the target block is a successor of the first proposal block;
the block verification module is used for verifying the first aggregate signature and the first transaction data, and if the verification is passed, the first proposal block is added into a cache block chain;
The block uplink module is used for searching a block to be uplink corresponding to the first aggregate signature from the cache block chain, if the block to be uplink is searched, determining that the block to be uplink passes through the consensus, and adding the block to be uplink into a block account book; the block to be uplink corresponding to the first aggregate signature is a successor block of the target block.
13. A computer device, comprising a processor, a memory, and an input-output interface;
the processor is connected to the memory and the input/output interface, respectively, wherein the input/output interface is used for receiving data and outputting data, the memory is used for storing a computer program, and the processor is used for calling the computer program to enable the computer device to execute the method of any one of claims 1-11.
14. A computer readable storage medium, characterized in that the computer readable storage medium stores a computer program adapted to be loaded and executed by a processor to cause a computer device having the processor to perform the method of any of claims 1-11.
15. A computer program product comprising computer programs/instructions which, when executed by a processor, implement the method of any of claims 1-11.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111431218.9A CN116192394A (en) | 2021-11-29 | 2021-11-29 | Block consensus method, apparatus, computer, readable storage medium, and program product |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111431218.9A CN116192394A (en) | 2021-11-29 | 2021-11-29 | Block consensus method, apparatus, computer, readable storage medium, and program product |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116192394A true CN116192394A (en) | 2023-05-30 |
Family
ID=86449451
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111431218.9A Pending CN116192394A (en) | 2021-11-29 | 2021-11-29 | Block consensus method, apparatus, computer, readable storage medium, and program product |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116192394A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118400095A (en) * | 2024-06-27 | 2024-07-26 | 杭州高新区(滨江)区块链与数据安全研究院 | Consensus method and device for block chain system |
-
2021
- 2021-11-29 CN CN202111431218.9A patent/CN116192394A/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118400095A (en) * | 2024-06-27 | 2024-07-26 | 杭州高新区(滨江)区块链与数据安全研究院 | Consensus method and device for block chain system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112104665B (en) | Block chain-based identity authentication method and device, computer and storage medium | |
CN111614761B (en) | Block chain message transmission method, device, computer and readable storage medium | |
CN112685796B (en) | Block chain-based block consensus method and related equipment | |
CN111143883B (en) | Digital content evidence obtaining method, device and equipment based on block chain | |
CN112714192B (en) | Data synchronization method and device, computer readable medium and electronic equipment | |
Saia et al. | Internet of entities (IoE): A blockchain-based distributed paradigm for data exchange between wireless-based devices | |
CN111949672A (en) | Block chain storage method for supporting incremental update of Internet-of-things data | |
CN113342838B (en) | Data processing method, device and equipment based on block chain and readable storage medium | |
US20180007024A1 (en) | Methods and apparatus for obtaining a scoped token | |
US11914579B2 (en) | Blockchain-based data processing method and apparatus, device, and readable storage medium | |
CN110188129A (en) | Data processing method, device, system, equipment and the medium of testimony of a witness verification terminal | |
CN110660466A (en) | Personal health data chaining method and system of Internet of things by combining block chains | |
CN113505260A (en) | Face recognition method and device, computer readable medium and electronic equipment | |
CN112200680B (en) | Block link point management method, device, computer and readable storage medium | |
CN116192394A (en) | Block consensus method, apparatus, computer, readable storage medium, and program product | |
CN113037824B (en) | Cloud computing-oriented high-performance block chain construction method | |
CN112069529B (en) | Block chain-based volume management method and device, computer and storage medium | |
CN110633326A (en) | Method and system for uplink of weather data of Internet of things on block chain | |
CN109558744B (en) | Data processing method and system | |
CN109120714B (en) | Security data recovery method and system, and node server | |
CN113590711A (en) | High-elasticity extensible multi-chain data hierarchical shared storage system and method | |
CN116668214A (en) | Data interaction method and device | |
CN116886444B (en) | Cross-chain data processing method, device, computer, storage medium and program product | |
CN117909406A (en) | Hierarchical blockchain-based data processing method and device and readable storage medium | |
CN116760632A (en) | Data processing method, device, equipment and readable storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40086067 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |