CN115174573B - Data broadcasting method in block chain system, node and block chain system - Google Patents
Data broadcasting method in block chain system, node and block chain system Download PDFInfo
- Publication number
- CN115174573B CN115174573B CN202210762918.4A CN202210762918A CN115174573B CN 115174573 B CN115174573 B CN 115174573B CN 202210762918 A CN202210762918 A CN 202210762918A CN 115174573 B CN115174573 B CN 115174573B
- Authority
- CN
- China
- Prior art keywords
- nodes
- node
- data
- data blocks
- cluster
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 83
- 238000004422 calculation algorithm Methods 0.000 claims description 30
- 238000003860 storage Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 10
- 238000004364 calculation method Methods 0.000 claims 5
- 238000010586 diagram Methods 0.000 description 23
- 230000008569 process Effects 0.000 description 23
- 230000006870 function Effects 0.000 description 20
- 230000007246 mechanism Effects 0.000 description 10
- 230000001934 delay Effects 0.000 description 9
- 238000009826 distribution Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 8
- 230000006872 improvement Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 238000002360 preparation method Methods 0.000 description 6
- 239000010749 BS 2869 Class C1 Substances 0.000 description 5
- 238000012546 transfer Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 239000012634 fragment Substances 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 101100148253 Mus musculus Rttn gene Proteins 0.000 description 1
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000007795 chemical reaction product Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 229920001296 polysiloxane Polymers 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1042—Peer-to-peer [P2P] networks using topology management mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1059—Inter-group management mechanisms, e.g. splitting, merging or interconnection of groups
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
A data broadcasting method in a blockchain system, a node, and a blockchain system, a plurality of nodes in the blockchain system being divided into a plurality of clusters, the plurality of clusters including a first cluster and a second cluster, the first cluster including a first node and a plurality of second nodes, the second cluster including a plurality of third nodes, the method comprising: the first node obtains n data blocks based on the data, distributes the n data blocks to m nodes in a first cluster, and respectively transmits one or more distributed data blocks to each second node in the m nodes; m nodes respectively distribute the corresponding data blocks to at least part of the third nodes in the k third nodes, and respectively send the distributed one or more data blocks to at least part of the third nodes; the k third nodes broadcast one or more data blocks received by the k third nodes in the third nodes respectively; each third node generates the data based on the received data blocks.
Description
Technical Field
The embodiment of the specification belongs to the technical field of block chains, and particularly relates to a data broadcasting method in a block chain system, a node and the block chain system.
Background
Blockchain (Blockchain) is a new application mode of computer technologies such as distributed data storage, point-to-point transmission, consensus mechanisms, encryption algorithms, and the like. In the block chain system, the data blocks are combined into a chain data structure in a sequential connection mode according to the time sequence, and the distributed account book which is not tamperable and counterfeit and is ensured in a cryptographic mode is formed. Because the blockchain has the characteristics of decentralization, non-tamperability of information, autonomy and the like, the blockchain is also receiving more and more attention and application.
Disclosure of Invention
The invention aims to provide a data broadcasting method in a block chain system, which improves the data distribution efficiency by transmitting a plurality of fragments to a plurality of nodes in a cluster after obtaining the plurality of fragments of data by a data source node and transmitting the plurality of fragments to a plurality of nodes in other clusters by the plurality of nodes in the cluster for data broadcasting.
A first aspect of the present specification provides a data broadcasting method in a blockchain system in which a plurality of nodes are divided into a plurality of clusters based on access delay between nodes, the plurality of clusters including a first cluster including a first node and a plurality of second nodes, the second cluster including a plurality of third nodes including k third nodes for data broadcasting, the method comprising:
The first node obtains n data blocks based on data to be broadcasted, distributes the n data blocks to m nodes in the first cluster, wherein the m nodes comprise at least one second node, and respectively transmits the distributed one or more data blocks to each second node in the m nodes, wherein n is greater than or equal to m, and n is greater than or equal to k;
the m nodes respectively distribute the corresponding data blocks to at least part of the third nodes in the k third nodes, and respectively send the distributed one or more data blocks to the at least part of the third nodes;
broadcasting one or more data blocks received by the k third nodes in the third nodes respectively;
each third node generates the data based on the received data blocks.
A second aspect of the present specification provides a data broadcasting method in a blockchain system, a plurality of nodes in the blockchain system being divided into a plurality of clusters based on access latency between nodes, the plurality of clusters including a first cluster including a first node and a plurality of second nodes, and a second cluster including a plurality of third nodes, the method being performed by the first node, comprising:
Obtaining n data blocks based on data to be broadcast;
allocating the n data blocks to m nodes in the first cluster, the m nodes including at least one of the second nodes;
respectively transmitting the allocated one or more data blocks to each second node in the m nodes, wherein n is greater than or equal to m;
and distributing one or more data blocks distributed to the first node in the n data blocks to k third nodes in the plurality of third nodes, and respectively transmitting the distributed one or more data blocks to each third node in the k third nodes, wherein n is greater than or equal to k.
A third aspect of the present specification provides a data broadcasting method in a blockchain system in which a plurality of nodes are divided into a plurality of clusters based on access latency between nodes, the plurality of clusters including a first cluster and a second cluster, the first cluster including a first node and a plurality of second nodes, the second cluster including a plurality of third nodes including k third nodes for broadcasting data, the first node including data to be broadcast, and n data blocks derived based on the data, the n data blocks being allocated to m nodes in the first cluster, the m nodes including at least one of the second nodes, the method being performed by one of the m nodes, comprising:
Receiving the allocated one or more data blocks from the first node;
and distributing the one or more data blocks to at least part of the k third nodes, and respectively transmitting the distributed one or more data blocks to the at least part of the third nodes, wherein n is greater than or equal to k.
A fourth aspect of the present specification provides a data broadcasting method in a blockchain system in which a plurality of nodes are divided into a plurality of clusters based on an access delay between nodes, the plurality of clusters including a first cluster and a second cluster, the first cluster including a first node and a plurality of second nodes, the second cluster including a plurality of third nodes including k third nodes for broadcasting data, the first node including data to be broadcast, and n data blocks derived based on the data, the n data blocks being allocated to m nodes in the first cluster, the m nodes including at least one of the second nodes, the method being performed by one of the k third nodes, comprising:
receiving the allocated one or more data blocks from at least some of the m nodes, respectively;
Broadcasting the one or more data blocks in the plurality of third nodes;
receiving data blocks other than the one or more data blocks from other nodes of the k third nodes;
the data is generated based on the received data blocks.
A fifth aspect of the present disclosure provides a first node in a blockchain system, the plurality of nodes in the blockchain system being divided into a plurality of clusters based on an access latency between the nodes, the plurality of clusters including a first cluster and a second cluster, the first cluster including the first node and the plurality of second nodes, the second cluster including the plurality of third nodes, the first node comprising:
an acquisition unit for acquiring n data blocks based on data to be broadcast;
an allocation unit configured to allocate the n data blocks to m nodes in the first cluster, where the m nodes include at least one of the second nodes;
a transmitting unit, configured to transmit the allocated one or more data blocks to each second node of the m nodes, where n is greater than or equal to m;
the allocation unit is further configured to allocate one or more data blocks allocated to the first node from the n data blocks to k third nodes from the plurality of third nodes, and send the allocated one or more data blocks to each third node from the k third nodes, where n is greater than or equal to k.
A sixth aspect of the present specification provides a second node in a blockchain system, the plurality of nodes in the blockchain system being divided into a plurality of clusters based on access latency between nodes, the plurality of clusters including a first cluster and a second cluster, the first cluster including a first node and a plurality of second nodes, the second cluster including a plurality of third nodes including k third nodes for broadcasting data, the first node including data to be broadcast, and n data blocks derived based on the data, the n data blocks being allocated to m nodes in the first cluster, the m nodes including at least one of the second nodes, one of the m nodes including:
a receiving unit configured to receive the allocated one or more data blocks from the first node;
an allocation unit for allocating the one or more data blocks to at least some of the k third nodes;
and a transmitting unit, configured to transmit the allocated one or more data blocks to the at least part of third nodes respectively, where n is greater than or equal to k.
A seventh aspect of the present specification provides a third node in a blockchain system, the plurality of nodes in the blockchain system being divided into a plurality of clusters based on access latency between nodes, the plurality of clusters including a first cluster and a second cluster, the first cluster including a first node and a plurality of second nodes, the second cluster including a plurality of third nodes including k third nodes for broadcasting data, the first node including data to be broadcast, and n data blocks derived based on the data, the n data blocks being allocated to m nodes in the first cluster, the m nodes including at least one of the second nodes, one of the k third nodes including:
A receiving unit configured to receive the allocated one or more data blocks from at least some of the m nodes, respectively;
a broadcasting unit for broadcasting the one or more data blocks in the plurality of third nodes;
a receiving unit configured to receive data blocks other than the one or more data blocks from other nodes of the k third nodes;
and the generating unit is used for generating the data based on the received data block.
An eighth aspect of the present specification provides a blockchain system in which a plurality of nodes are divided into a plurality of clusters based on access latency between nodes, the plurality of clusters including a first cluster including a first node and a plurality of second nodes, the second cluster including a plurality of third nodes including k third nodes for data broadcasting,
the first node is configured to obtain n data blocks based on data to be broadcast, allocate the n data blocks to m nodes in the first cluster, where the m nodes include at least one second node, and send the allocated one or more data blocks to each second node in the m nodes respectively, where n is greater than or equal to m, and n is greater than or equal to k;
The m nodes are used for respectively distributing the corresponding data blocks to at least part of the third nodes in the k third nodes, and respectively transmitting the distributed one or more data blocks to the at least part of the third nodes;
the k third nodes are used for broadcasting one or more data blocks received by the k third nodes in the plurality of third nodes respectively;
each third node is configured to generate the data based on the received data block.
A ninth aspect of the present description provides a computer-readable storage medium having stored thereon a computer program which, when executed in a computer, causes the computer to perform the method of the second, third or fourth aspect.
A tenth aspect of the present specification provides a blockchain node comprising a memory having executable code stored therein and a processor which when executing the executable code implements the method of the second, third or fourth aspect.
According to the data broadcasting scheme in the embodiment of the specification, a plurality of data blocks are obtained according to data, the plurality of data blocks are distributed and sent to a plurality of nodes in a cluster to be respectively broadcasted, and the plurality of data blocks are distributed and sent to a plurality of nodes in other clusters to be distributed and broadcasted through the plurality of nodes in the cluster, so that the throughput of data broadcasting and the efficiency of data distribution are improved.
Drawings
In order to more clearly illustrate the technical solutions of the embodiments of the present disclosure, the drawings that are needed in the description of the embodiments will be briefly described below, and it is obvious that the drawings in the following description are only some embodiments described in the present disclosure, and that other drawings may be obtained according to these drawings without inventive effort for a person skilled in the art.
FIG. 1 illustrates a block chain system architecture diagram in one embodiment;
FIG. 2 is a schematic diagram of a consensus process in a PBFT consensus algorithm;
FIG. 3 is a flow chart of a block link point grouping method in an embodiment of the present disclosure;
FIG. 4 is a schematic diagram of connections between nodes therein;
fig. 5 is a flowchart of a data broadcasting method in an embodiment of the present disclosure;
fig. 6 is a schematic diagram of a data broadcasting process in an embodiment of the present disclosure;
FIG. 7 is a schematic diagram of a process for determining a fastest path between nodes according to an embodiment of the present disclosure;
FIG. 8 is an architecture diagram of a first node in a blockchain in an embodiment of the present disclosure;
FIG. 9 is an architectural diagram of a second node in a blockchain in an embodiment of the present description;
FIG. 10 is a block diagram of a third node in a blockchain in an embodiment of the present disclosure.
Detailed Description
In order to make the technical solutions in the present specification better understood by those skilled in the art, the technical solutions in the embodiments of the present specification will be clearly and completely described below with reference to the drawings in the embodiments of the present specification, and it is obvious that the described embodiments are only some embodiments of the present specification, not all embodiments. All other embodiments, which can be made by one of ordinary skill in the art without undue burden from the present disclosure, are intended to be within the scope of the present disclosure.
FIG. 1 illustrates a block chain system architecture diagram in one embodiment. In the blockchain system architecture diagram shown in fig. 1, the blockchain 100 includes N nodes, and node 1-node 8 are schematically shown in fig. 1. The connections between nodes schematically represent P2P (Peer to Peer) connections, which may be TCP connections or the like, for example, for transmitting data between nodes. The nodes may store a full amount of ledgers, i.e., the state of all blocks and all accounts. Wherein each node in the blockchain may generate the same state in the blockchain by performing the same transaction, each node in the blockchain may store the same state database.
Transactions in the blockchain domain may refer to task units that execute in the blockchain and are recorded in the blockchain. The transaction typically includes a send field (From), a receive field (To), and a Data field (Data). Where the transaction is a transfer transaction, the From field indicates an account address From which the transaction was initiated (i.e., a transfer task To another account was initiated), the To field indicates an account address From which the transaction was received (i.e., a transfer was received), and the Data field includes the transfer amount. In the case of a transaction calling a smart contract in a blockchain, the From field represents the account address From which the transaction originated, the To field represents the account address of the contract that the transaction called, and the Data field includes Data, such as the name of the function in the calling contract, and the incoming parameters To the function, for retrieving the code of the function From the blockchain and executing the code of the function when the transaction is executed.
The functionality of the smart contract may be provided in the blockchain. Intelligent contracts on blockchains are contracts on blockchain systems that can be executed by transaction triggers. The smart contracts may be defined in the form of codes. Invoking the smart contract in the blockchain initiates a transaction directed to the smart contract address such that each node in the blockchain runs the smart contract code in a distributed manner. It should be noted that, in addition to the smart contracts that can be created by the user, the smart contracts can also be set by the system in the creation block. Such contracts are commonly referred to as an opening contract. In general, some blockchain data structures, parameters, properties, and methods may be set in the creating contract. In addition, an account with system administrator rights may create a system level contract, or modify a system level contract (simply referred to as a system contract). Wherein the system contracts can be used to add data structures for data of different services in the blockchain.
In the scenario of deploying contracts, for example, bob sends a transaction containing information to create an intelligent contract (i.e., deploying a contract) into a blockchain as shown in fig. 1, the data field of the transaction includes the code (e.g., bytecode or machine code) of the contract to be created, and the to field of the transaction is empty to indicate that the transaction is for deploying the contract. After agreement is reached between nodes through a consensus mechanism, determining a contract address '0 x6f8ae93 …' of the contract, adding a contract account corresponding to the contract address of the intelligent contract in a state database by each node, distributing a state storage corresponding to the contract account, and storing a contract code in the state storage of the contract, so that the contract is successfully created.
In the scenario of invoking a contract, for example, bob sends a transaction for invoking a smart contract into a blockchain as shown in fig. 1, the from field of the transaction is the address of the account of the transaction initiator (i.e., bob), the "0x6f8ae93 …" in the to field represents the address of the invoked smart contract, and the data field of the transaction includes the method and parameters for invoking the smart contract. After the transaction is consensus in the blockchain, each node in the blockchain may execute the transaction separately, thereby executing the contract separately, updating the status database based on execution of the contract.
Blockchain technology differs from one of the decentralized features of conventional technology in that accounting is performed on individual nodes, otherwise known as distributed accounting, rather than conventional centralized accounting. The blockchain system is to be a hard-to-break, public, untampered, decentralised, honest and trusted system for data records, and needs to be secure, clear and irreversible for distributed data records in as short a time as possible. In different types of blockchain networks, in order to keep account books consistent among the nodes of each record account book, a consensus algorithm is generally adopted to ensure that the above-mentioned consensus mechanism is adopted. For example, a block granularity consensus mechanism may be implemented between blockchain nodes, such as after a node (e.g., a unique node) generates a block, if the generated block is approved by other nodes, the other nodes record the same block. For another example, a transaction granularity consensus mechanism may be implemented between blockchain nodes, for example, after a node (e.g., a unique node) obtains a blockchain transaction, if the blockchain transaction is approved by other nodes, each node approving the blockchain transaction may respectively add the blockchain transaction to its own maintained latest block, and finally, each node may be ensured to generate the same latest block. The consensus mechanism is a mechanism that the blockchain node achieves the consensus of the whole network about the blockinformation (or blockdata), and can ensure that the latest block is accurately added to the blockchain. The consensus mechanisms of the current mainstream include: proof of Work (POW), proof of equity (POS), proof of commission (Delegated Proof of Stake, DPOS), practical bayer fault tolerance (Practical Byzantine Fault Tolerance, PBFT) algorithms, and the like. Among the various consensus algorithms, the success of consensus on a consensus proposal is determined, typically after a preset number of nodes agree on the data to be consensus (i.e., the consensus proposal). Specifically, in the PBFT algorithm, f malicious nodes can be tolerated for N.gtoreq.3f+1 consensus nodes, that is, when 2f+1 nodes in the N consensus nodes agree, success of the consensus can be determined.
Fig. 2 is a schematic diagram of a consensus process in a PBFT consensus algorithm. As shown in fig. 2, according to the PBFT consensus algorithm, the consensus process can be divided into four phases of Request, preparation and Commit. Assuming that a blockchain includes four consensus nodes of node n 1-node n4, wherein node n1 is, for example, a master node, and node n 2-node n4 is, for example, a slave node, f=1 malicious nodes can be tolerated in node n 1-node n4 according to the PBFT algorithm. Specifically, during the request phase, a user of the blockchain may send a request, for example in the form of a blockchain transaction, to node n1 through his user device. In the preliminary stage, the node n1 may package a plurality of transactions into a consensus proposal after receiving the plurality of transactions from one or more user devices, and send the consensus proposal and a signature of the consensus proposal by the node n1 to other consensus nodes (i.e. nodes n 2-n 4) for generating blocks, where the consensus proposal may include information such as a transaction body of the plurality of transactions and a submitting sequence of the plurality of transactions. In the preparation phase, each slave node may sign the consensus proposal and send it to the other individual nodes. Assuming node n4 is a malicious node, nodes n1, n2, and n3, after each receiving the signatures of 2 f=2 other consensus nodes for the consensus proposal, may determine that the preparation phase is complete, and may enter the commit phase. For example, as shown in fig. 2, after receiving the signatures of node n2 and node n3, node n1 verifies that both the signatures of node n2 and node n3 are correct signatures of the consensus proposal, and then determines that the preparation phase is complete, and node n2 determines that the preparation phase is complete after receiving the signature of node n3 and the signature of preparation phase node n1 and verifying passed. In the submitting stage, each consensus node performs signature of the submitting stage on the consensus proposal and sends the signature to other consensus nodes, and each consensus node can determine that the submitting stage is completed and the consensus is successful after receiving the signatures of the submitting stages of 2 f=2 other consensus nodes. For example, the node n1 may determine that the commit phase is completed after receiving the signatures of the commit phases of the node n2 and the node n3 and verifying, so that the node n1 may perform executing the plurality of transactions according to the consensus proposal, generate and store a block (e.g., block B1) including the plurality of transactions, update the world state according to the execution results of the plurality of transactions, and return the execution results of the plurality of transactions to the user device. Similarly, after determining that the commit phase is complete, nodes n2 and n3 execute the plurality of transactions, generate and store block B1, and update the world state based on the execution results of the plurality of transactions. Through the above process, the storage consistency of the node n1, the node n2 and the node n3 is realized. That is, the nodes n 1-n 4 can still realize successful consensus of the consensus proposal in the presence of a malicious node, and complete execution of the block.
There are many scenarios in blockchains where data broadcasting is required, for example, a blockchain node needs to broadcast a received transaction into the blockchain after receiving the transaction. Alternatively, in the consensus scenario shown in fig. 2, each node needs to broadcast a consensus proposal to other nodes during the consensus process.
In addition, for blockchain systems built from large-scale nodes, a small number of nodes may be selected from the large-scale nodes as consensus nodes that participate in performing a consensus mechanism. The consensus nodes with relatively small number participate in executing the consensus mechanism to agree on the consensus proposal, and the consensus proposal which is agreed on can be distributed to other non-consensus nodes which are not selected as the consensus nodes in the large-scale nodes by the consensus nodes, so that the consensus efficiency of the blockchain system can be improved. After the consensus proposal is agreed by the multiple consensus nodes through the process shown in fig. 2, each consensus node may broadcast the consensus proposal acquired by itself to other non-consensus nodes in the blockchain, that is, each consensus node becomes a data source in the blockchain and broadcasts data to the non-consensus nodes.
In one related art, data broadcasting is performed by clustering a plurality of nodes in a blockchain according to access delay information between the respective nodes and according to the clustering result.
Fig. 3 is a flowchart of a block link point grouping method in an embodiment of the present disclosure. Wherein in fig. 3, the nodes in the blockchain are divided into a plurality of node groups by clustering the nodes by the computing device according to access latency information between the nodes. Here, the computing device may be a server, or may be a node in a blockchain, and fig. 3 schematically illustrates the node 1 in fig. 1 as the computing device. In addition, node 2 shown in FIG. 3 is an example, and other nodes in the blockchain may implement similar method flows as node 2.
As shown in fig. 3, first, in step S301, the node 2 generates local access latency information.
Each node in the blockchain may generate access latency information between the node and other nodes, thereby generating local access latency information. Specifically, taking node 2 as an example, node 2 may first obtain a node list. For example, a node list of all nodes included in a blockchain is stored in a contract state of a particular contract in the blockchain. The node list includes, for example, an identification of each node and connection information of each node, where the connection information includes, for example, information of an IP address, a port, and the like. Node 2 may retrieve the list of nodes by invoking the query interface of the contract.
Node 2 may then establish connections with other various nodes in the blockchain based on the list of nodes. In the case where the node 2 cannot establish a direct connection with another node (hereinafter referred to as a target node), it is possible to find the shortest path with the target node, the number of nodes in the shortest path being the smallest, among the nodes on the connection, and connect to the target node through the shortest path.
After the node 2 establishes a connection (direct or indirect connection) with other nodes in the blockchain as described above, the node 2 transmits a lightweight packet to each of the other nodes, respectively, and records transmission times corresponding to the respective other nodes. Each other node returns an Acknowledgement (ACK) for the heartbeat packet immediately after receiving the heartbeat packet. After receiving the ACK from the other nodes, the node 2 records the reception time of the ACK received from each other node. Then, access delays corresponding to the respective other nodes may be calculated according to the transmission time and the reception time corresponding to the respective other nodes.
For example, for the node 3, the node 2 records the transmission time T1 of the heartbeat packet to the node 3, records the reception time T2 of the ACK received after the ACK is received from the node 3, and then can calculate the access delay rtt=t2-T1 with the node 3. Wherein node 3 may be directly connected to node 2 or may be indirectly connected to node 2 through other nodes. In one embodiment, node 2 may send heartbeat packets to node 3 multiple times to obtain multiple access delays RTT1, RTT2, RTT3, … RTTn, and node 2 may calculate an average of the multiple access delays as an average access delay with node 3.
The node 2 can acquire access delay information of other nodes in the blockchain by repeating the detection process with each node, so that local access delay information can be generated. The local access delay information is, for example, a local routing table, where access delay information between the node 2 and each other node in the blockchain is included, and the access delay information is, for example, an access delay, or an average access delay, etc.
In step S303, node 2 transmits the local access latency information to the computing device.
Taking the computing device as node 1 as an example, node 2 may send the generated local access latency information to node 1. In one embodiment, node 2 may cause each node in the blockchain to store the local access latency information into the contract state of the contract by executing a transaction that invokes the contract by sending the transaction into the blockchain. The node 1 may obtain the local access latency information by receiving the transaction. Other nodes in the blockchain may also query the local access latency information by sending a transaction invoking the contract.
In step S305, the computing device generates global access latency information.
Specifically, after the node 1 obtains the local access delay information of each of all the nodes in the blockchain, the node may aggregate a plurality of local access delay information, thereby generating global access delay information. Wherein the local access delay information of the node A comprises the access delay RTT between the node A and the node B A-B The local access delay information of the node B comprises the access delay RTT between the node B and the node A B-A Can take RTT A-B And RTT (round trip time) B-A The larger value between them acts as access delay between node a and node B.
In step S307, the computing device clusters a plurality of nodes in the blockchain according to the global access latency information.
Node 1 may cluster nodes by a variety of known clustering algorithms.
In one embodiment, node 1 may first perform coarse clustering of multiple nodes by the Canopy algorithm to determine the K value for clustering.
Specifically, node 1 sets set S1, and all nodes in the blockchain are initially included in set S1. Node 1 may preset two access latency thresholds T3 and T4, where T3> T4. Node 1 then selects one node P from set S1 as a class C1, and selects another node Q, and determines whether the time delay between node Q and class C1 is less than or equal to time T3. Here the delay between node Q and class C1 is the delay between node Q and node P. If so, the node Q is also added to class C1, and it is determined whether the time delay between the node Q and the node P is less than or equal to T4, if so, the node Q is deleted in the source S1. If the delay between node Q and node P is greater than time T3, then node Q is taken as a new class. When a plurality of nodes are included in the class C1, the time delay between the node and the class may be calculated in various ways, for example, an average value of the time delays of the node and the plurality of nodes included in the class may be calculated as the time delay between the node and the class.
Thereafter, the next node in the set S1 may be selected to repeat the above process, and finally, the plurality of nodes in the set S1 may be divided into K classes, so that the K value used in clustering may be obtained. And the K value of the clustering algorithm is determined by coarsely clustering the plurality of nodes based on global access delay information based on a canopy algorithm, so that the accuracy of subsequent clustering of the plurality of nodes is improved. It will be appreciated that the K values for clustering are not limited to being determined by the canopy algorithm in the embodiments of the present description, and may be manually specified empirically by business personnel, for example.
After determining the K value, node 1 may cluster multiple nodes in the blockchain, for example, by a K-means algorithm.
Specifically, node 1 first randomly determines K nodes among a plurality of nodes in the blockchain as initial center points of K clusters. Then, the node 1 may allocate other nodes in the blockchain to the cluster where the nearest center point is located according to the global access latency information, where the nearest refers to that the access latency is the shortest. After node 1 allocates all other nodes in the blockchain into K clusters as described above, node 1 may recalculate the center point of each cluster. Specifically, for example, for the cluster Cr1, the node 1 may calculate, according to the global routing table, statistical information of multiple delays between each node in the cluster Cr1 and other nodes in the cluster Cr1, where the statistical information may be, for example, a sum, a mean, a variance, a mean square error, and the like of the multiple delays. Taking the average value as an example, the node 1 may redetermine the node with the smallest average value of the time delays in the cluster Cr1 as a new center point, where the new center point has the smallest average value of a plurality of time delays with other nodes in the cluster Cr1, that is, is equivalent to being located at the center of the cluster Cr 1.
If the calculated position of the center point is the same as the original center point, the clustering process can be ended, otherwise, the center points of all clusters are updated, and the clustering process is repeated. Node 1 may determine the final clustering result, i.e., K clusters, by iterating the clustering process multiple times, with low access latency between nodes included in each cluster.
In step S309, the computing device transmits the clustering result to node 2.
The clustering result includes, for example, the information of the K clusters described above, including the node identification included in each cluster.
In step S311, the node 2 performs data broadcasting according to the clustering result.
After receiving the clustering result, the node 2 may make a connection (e.g., a connection such as a TCP connection or the like) with another node according to the clustering result, and perform data broadcasting through the connection. FIG. 4 is a schematic diagram of connections between nodes in a blockchain. Taking node 2 as an example, as shown in fig. 4, node 2 may establish a connection with most of the nodes in the cluster in which it is located, the nodes with which node 2 establishes a connection being indicated in light grey boxes in fig. 4. It will be appreciated that the node 2 may establish a connection with as many other nodes as possible in the cluster Cr1 to improve the data broadcasting efficiency in the cluster Cr1, and in some specific scenarios, for example, the node 2 may not establish a direct connection with a certain node in the cluster Cr1 due to a network connection number limitation, and the node 2 may still establish an indirect connection with the node that cannot be directly connected through other nodes. Meanwhile, the node 2 may randomly select a small number (e.g., 1 or 2) of nodes in other clusters to establish connection, for example, the node 2 may connect with the nodes 5 and 6 in the cluster Cr 2. Other nodes in the blockchain all establish connections with other nodes in the same manner as node 2, e.g., node 3 in cluster Cr1 may establish connections with a large portion of the other nodes in cluster Cr1 (not shown in fig. 4), while node 3 may establish connections with a small number of nodes randomly determined in the other clusters, e.g., node 3 may establish connections with node 5 in cluster Cr2 (not shown in fig. 4), and node 4 may establish connections with node 7 in cluster Cr2 (not shown in fig. 4). By establishing the connection between nodes as described above, the efficiency of data broadcasting within a cluster is ensured, while ensuring that a network path can be reached between any two nodes in the blockchain full network.
After the connection is established as described above, assuming that node 2 is a consensus node, node 2 becomes a data source node in cluster Cr1 after completing consensus with other consensus nodes, node 2 may send the consensus proposal to other individual nodes in cluster Cr1 through the connection shown in fig. 4, so that other individual nodes in cluster Cr1 may perform transactions based on the consensus proposal, generating a new block. Suppose there is no consensus node in cluster Cr2 in the K clusters and the delay between cluster Cr2 and cluster Cr1 is the lowest. Node 2 may send a consensus proposal to any node in cluster Cr2 via the connection shown in fig. 4, making that node the data source node in cluster Cr 2.
However, in this embodiment, data distribution is mainly performed by the node 2 as a data source node, and the bandwidth of the node 2 limits the throughput of the entire network distribution, making it difficult to perform performance expansion.
The embodiment of the specification provides a data broadcasting scheme in a block chain, wherein a data source node splits data to be broadcasted into a plurality of data blocks based on an erasure coding algorithm, the plurality of data blocks are respectively sent to a plurality of nodes in a cluster where the data source node is located, and the plurality of nodes respectively send the plurality of data blocks to a plurality of nodes in other clusters, so that the plurality of nodes in each cluster can distribute the data blocks, and the data distribution efficiency is improved.
Fig. 5 is a flowchart of a data broadcasting method in an embodiment of the present disclosure. The flow shown in fig. 5 will be described below with reference to fig. 6. Fig. 6 is a schematic diagram of a data broadcasting process in an embodiment of the present disclosure. As shown in fig. 6, it is assumed that in the above-described clustering result, node 1, node 2, node 3, and node 4 are clustered into cluster Cr1, and node 5, node 6, node 7, and node 8 are clustered into cluster Cr2, assuming that node 2 is a data source node. Specifically, node 2 may be a consensus node, and after the consensus is reached, node 2 may broadcast a consensus proposal determined by the consensus to other nodes, in which case it may be assumed that there are no consensus nodes in cluster Cr 2.
Referring to fig. 5, first, in step S501, the node 2 obtains n data blocks based on data.
Node 2 may determine the number of data blocks n based on a threshold number of nodes that cluster Cr1 may include. For example, if the threshold number of nodes in the cluster Cr1 is 10, n=10 can be determined.
The data may be, for example, a consensus proposal for Block1, which is denoted as data D1 below. Node 2 may split data D1 in a number of ways. In one embodiment, node 2 may divide data D1 into n portions, resulting in n data blocks (or data slices).
In another embodiment, node 2 may derive n data blocks based on data D1 using an Erasure Coding (EC) algorithm. Specifically, the node 2 first divides the data D1 into p data slices, and then calculates q check slices based on the p data slices through the EC algorithm, where n=p+q. The redundancy of the EC algorithm is determined by the p and q, and when the data is recovered by the data blocks, the data D1 can be recovered only by acquiring any p data blocks in the n data blocks.
Specifically, referring to fig. 6, the node 2 obtains data blocks b1 to b10 based on the data D1, and the data blocks are shown in rectangular boxes in fig. 6, wherein numerals 1 to 10 in the rectangular boxes are numbers of the respective data blocks.
In step S503, the node 2 allocates n data blocks to m nodes in the cluster.
In one embodiment, after n data blocks are obtained, node 2 may assign n data blocks to all or part of the nodes in cluster Cr 1. Specifically, as shown in fig. 6, the node 2 may allocate n data blocks to any m nodes in the cluster Cr1, where n is greater than or equal to m, so that each of the m nodes may be divided into one or more data blocks.
In another embodiment, node 2 may allocate n data blocks to m nodes according to a preset algorithm. For example, as shown in fig. 6, after determining to allocate 10 data blocks to four nodes of nodes 1 to 4, a hash value corresponding to each data block number may be calculated by a preset hash algorithm, for example, corresponding to the node number included in the cluster Cr1, thereby allocating the data blocks b2, b6, and b10 to the node 2, the data blocks b3 and b7 to the node 3, the data blocks b1, b5, and b9 to the node 1, and the data blocks b4, b8 to the node 4. The hash function is, for example, a modulo function.
In step S505, the node 2 transmits the allocated one or more data blocks to other nodes in the cluster Cr 1.
Specifically, referring to fig. 6, node 2 may transmit data blocks b3 and b7 allocated to node 3, data blocks b1, b5, and b9 allocated to node 1, and data blocks b4 and b8 allocated to node 4 through the connection shown in fig. 4. Wherein, none of node 1, node 3, and node 4 in fig. 6 are data source nodes. For example, in a consensus scenario, node 2 is a consensus node and thus may act as a data source, with node 1, node 3, and node 4 all being non-consensus nodes.
In step S507, m nodes in cluster Cr1 allocate n data blocks to k nodes in cluster Cr 2.
Referring to the description of step S503 above, each of the m nodes (i.e., nodes 1-4) may allocate its acquired data block to k nodes in the cluster Cr2 according to a preset algorithm. For example, the node 5, the node 6, and the node 7 in the cluster Cr2 are preset as nodes for receiving a data block and broadcasting the data block. Each of the nodes 1 to 4 may set the same hash function corresponding to the node 5, the node 6 and the node 7, the input of the hash function is the number of the data block, and the output value corresponds to the node 5, the node 6 and the node 7, respectively, so as to allocate the data block to one of the node 5, the node 6 and the node 7.
Specifically, referring to fig. 6, the node 3 determines that the data block b7 corresponds to the node 5 in the cluster Cr2 by using the hash algorithm, and the data block b3 corresponds to the node 7 in the cluster Cr 2. Node 4 determines, by using a hash algorithm, that data block b4 corresponds to node 5 in cluster Cr2 and data block b8 corresponds to node 6 in cluster Cr 2. The other nodes in cluster Cr1 may similarly allocate each data block allocated thereto to one of nodes 5, 6 and 7.
In step S509, m nodes in the cluster Cr1 transmit the allocated one or more data blocks to k nodes in the cluster Cr2, respectively.
Specifically, referring to fig. 6, the node 3 may transmit the data block b7 allocated to the node 5 and the data block b3 allocated to the node 7 through the connection shown in fig. 4. It will be appreciated that with reference to fig. 4, node 3 may send data block b3 to node 7 via a direct connection with node 7, and data block b7 may be sent to node 5 via a connection with node 7, a connection with node 7 and node 5, i.e., the connection between node 3 and node 5 need not be a direct connection.
Node 4 may send data block b4 allocated to node 5 and data block b8 allocated to node 6. Other nodes of the m nodes in cluster Cr1 may similarly send a data block to the node in cluster Cr2 corresponding to the data block. Thus, node 5 receives data blocks b1, b4, b7 and b10, node 6 receives data blocks b2, b5 and b8, and node 7 receives data blocks b3, b6 and b9.
In one embodiment, each of the m nodes in the cluster Cr1 may first determine a fastest path (node connection path) with the target node, and then may transmit data to the target node through the fastest path. As described above, each node stores a local routing table in which an access delay (RTT) with other nodes in the blockchain is recorded, so that a fastest path between two nodes can be determined according to information in the local routing table of each node.
Specifically, fig. 7 is a schematic diagram of a process of determining a fastest path between nodes in an embodiment of the present disclosure. As shown in fig. 7, assuming that node 2 wishes to determine the fastest path with node 6, node 2 first sends a query request to node 6 to its connected neighbor nodes (e.g., including node 3 and node 4). Node 3 and node 4, upon receiving the query request, similarly send a query request to node 6 to their other connected neighbor nodes. For example, assuming that node 3 is connected only to node 5 in cluster Cr2 and node 4 is connected only to node 7 in cluster Cr2, node 3 sends a query request to node 5 and node 4 to node 6, and node 4 sends a query request to node 7 and node 3 to node 6. And so on until each node sends a query request to node 6. After receiving the query request from a certain node, the node 6 returns the access delay with the node to the node according to the local routing table of the node. For example, node 6 returns access delay cost6 with node 5 to node 5, access delay cost9 with node 7 to node 7, and access delay cost11 with node 8 to node 8.
Each intermediate node between node 2 and node 6, after receiving the access delay from the next level node in one or more paths, selects the shortest access delay and its corresponding path, and returns the sum of the shortest access delay and the access delay between the intermediate node and the previous level node and the corresponding path to the previous level node.
For example, for node 5, a total of three paths to node 6 are connected:
(1) Node 5→node 6;
(2) Node 5→node 8→node 6;
(3) Node 5→node 7→node 8→node 6.
For path (1), node 5 receives delay cost6 from node 6, for path (2), node 5 receives delay cost7+ cost11 from node 8, and for path (3), node 5 receives delay cost8+ cost10+ cost11 from node 7. The node 5 selects one path with the shortest delay from the three paths, for example, the (1) th path, then the node 5 adds the cost6 and the cost3 to obtain the delay between the node 3 and the node 6 as the cost6+cost3, and returns the path node 3, the node 5, the node 6 and the corresponding delay cost6+cost3 to the node 3. Similarly, node 3 also receives path node 3→node 4→node 7→node 6 and the corresponding delay of cos4+cos5+cos9 from node 4, where path node 4→node 7→node 6 is the fastest path between node 4 to node 6. Node 3 determines a shorter delay between cos6+cos3 and cos4+cos5+cos9 and returns the sum of the shorter delay and cos1 and the corresponding path to node 2. Node 4 similarly returns a path to node 2 and a corresponding delay. Thus, the node 2 may pick the fastest path between the node 2 and the node 6 according to the paths and delays returned by the node 3 and the node 4, for example, the path is node 2→node 3→node 5→node 6, and the corresponding delay is cost1+cost3+cost6.
After determining the fastest path with node 6, node 2 may record the path and the corresponding access delay into the local routing table, and when node 2 sends data to node 6 again next time, the fastest path may be read from the local routing table, and data may be sent to node 6 through the fastest path.
In step S511, m nodes in the cluster Cr1 broadcast data blocks to non-data source nodes.
Specifically, node 1 broadcasts one or more data blocks allocated to node 1 to other non-data source nodes in cluster Cr 1. Referring to fig. 6, node 1 transmits data blocks b1, b5, and b9 allocated thereto to node 3 and node 4.
Node 3 broadcasts one or more data blocks allocated to node 3 to other non-data source nodes in cluster Cr 1. Referring to fig. 6, node 3 transmits data blocks b3 and b7 allocated thereto to nodes 1 and 4.
Node 4 broadcasts one or more data blocks allocated to node 4 to other non-data source nodes in cluster Cr 1. Referring to fig. 6, node 4 transmits data blocks b4 and b8 allocated thereto to nodes 1 and 3.
Node 2 broadcasts one or more data blocks allocated to node 2 to non-data source nodes in cluster Cr 1. Referring to fig. 6, node 2 transmits data blocks b2, b6, and b10 allocated thereto to node 1, node 3, and node 4.
In step S513, each non-data source node in the cluster Cr1 generates data based on the received data block.
Specifically, referring to fig. 6, after the above broadcast, node 1, node 3, and node 4 in cluster Cr1 may all receive at least part of the data blocks b1 to b 10. So that data D1 can be generated based on the received at least partial data blocks.
In one embodiment, the data blocks b1 to b10 are obtained by dividing the data D1, and each of the nodes 1, 3, and 4 receives the data blocks b1 to b10 by broadcasting and then splices the data blocks b1 to b10 to obtain the data D1.
In another embodiment, the data blocks b 1-b 10 are generated based on EC algorithm, assuming that p=6, so that each of the nodes 1, 3, 4 can generate the data D1 based on the received 6 data blocks by EC algorithm after receiving any 6 data blocks of the data blocks b 1-b 10 by broadcasting.
Through the above process, the m nodes in the cluster Cr1 broadcast the data block, instead of broadcasting the data D1 based on one node of the data source, so that the bandwidth of the data broadcasting is greatly improved, and the efficiency of data distribution is improved.
In step S515, k nodes in cluster Cr2 broadcast data blocks to multiple nodes in cluster Cr 2.
Specifically, each of the k nodes broadcasts one or more data blocks allocated thereto in the non-data source nodes in cluster Cr 2. Referring to fig. 6, the node 5 transmits the data blocks b1, b4, b7, and b10 received from the cluster Cr1 to the node 6, the node 7, and the node 8. Node 6 sends data blocks b2, b5, and b8 received from cluster Cr1 to node 5, node 7, and node 8. Node 7 sends data blocks b3, b6 and b9 received from cluster Cr1 to nodes 5, 6 and 8.
In step S517, each node in the cluster Cr2 generates data based on the received data block.
Specifically, referring to fig. 6, after the above broadcast, node 5, node 6, node 7, and node 8 in cluster Cr2 may all receive at least part of the data blocks b1 to b 10. So that data D1 can be generated based on the received at least partial data blocks. The specific process may refer to the description of step S513, and will not be described herein.
When a certain node in the cluster Cr2 does not receive enough data blocks due to network reasons and the like, so that the data cannot be restored, the node corresponding to the missing data block in the cluster Cr1 can be determined according to the hash algorithm, and the missing data block is requested to the node in the cluster Cr1, so that the complete data block is not required to be requested to other nodes, and the waste of bandwidth is reduced.
Through the above process, the m nodes in the cluster Cr1 transmit the data blocks to the k nodes in the cluster Cr2, and the k nodes in the cluster Cr2 broadcast the data blocks in the cluster Cr, so that the bandwidth of data broadcasting is greatly improved, and the efficiency of data distribution is improved.
Fig. 8 is an architecture diagram of a first node in a blockchain for performing the method of fig. 3 or 5 in an embodiment of the present disclosure. A plurality of nodes in the blockchain are divided into a plurality of clusters based on access delay among the nodes, wherein the plurality of clusters comprises a first cluster and a second cluster, the first cluster comprises a first node and a plurality of second nodes, the second cluster comprises a plurality of third nodes, k third nodes for data broadcasting are included in the plurality of third nodes, and the first node comprises:
an acquisition unit 81 for obtaining n data blocks based on data to be broadcast;
an allocation unit 82, configured to allocate the n data blocks to m nodes in the first cluster, where the m nodes include at least one of the second nodes;
a transmitting unit 83 configured to transmit the allocated one or more data blocks to each of the m nodes, where n is greater than or equal to m and n is greater than or equal to k;
The allocation unit 82 is further configured to allocate one or more data blocks allocated to the first node from the n data blocks to at least some of the k third nodes, and send the allocated one or more data blocks to the at least some third nodes, respectively.
FIG. 9 is an architecture diagram of a second node in a blockchain for performing the method of FIG. 3 or FIG. 5 in accordance with embodiments of the present description. A plurality of nodes in the blockchain are divided into a plurality of clusters based on access delay among nodes, the plurality of clusters comprises a first cluster and a second cluster, the first cluster comprises a first node and a plurality of second nodes, the second cluster comprises a plurality of third nodes, k third nodes for broadcasting data are included in the plurality of third nodes, the first node comprises data to be broadcasted, and n data blocks obtained based on the data, the n data blocks are distributed to m nodes in the first cluster, the m nodes comprise at least one second node, and one second node of the m nodes comprises:
a receiving unit 91, configured to receive the allocated one or more data blocks from the first node;
An allocation unit 92 for allocating the one or more data blocks to at least part of the k third nodes;
a transmitting unit 93, configured to transmit the allocated one or more data blocks to the at least part of the third nodes respectively.
FIG. 10 is an architecture diagram of a third node in a blockchain for performing the method of FIG. 3 or FIG. 5 in accordance with embodiments of the present description. A plurality of nodes in the blockchain are divided into a plurality of clusters based on access delay among nodes, the plurality of clusters comprises a first cluster and a second cluster, the first cluster comprises a first node and a plurality of second nodes, the second cluster comprises a plurality of third nodes, k third nodes for broadcasting data are included in the plurality of third nodes, the first node comprises data to be broadcasted, and n data blocks obtained based on the data, the n data blocks are distributed to m nodes in the first cluster, the m nodes comprise at least one second node, and one third node of the k third nodes comprises:
a receiving unit 101, configured to receive the allocated one or more data blocks from at least some of the m nodes;
A broadcasting unit 102 for broadcasting the one or more data blocks in the plurality of third nodes;
a receiving unit 103 configured to receive data blocks other than the one or more data blocks from other nodes of the k third nodes;
a generating unit 104, configured to generate the data based on the received data block.
The present description also provides a computer-readable storage medium having stored thereon a computer program which, when executed in a computer, causes the computer to perform the method as shown in fig. 3 or fig. 5.
Embodiments of the present disclosure also provide a blockchain node, including a memory having executable code stored therein and a processor that when executing the executable code, implements the method as shown in fig. 3 or fig. 5.
According to the data broadcasting scheme in the embodiment of the specification, a plurality of data blocks are obtained according to data, and are distributed to a plurality of nodes in a cluster to be respectively broadcasted, so that the throughput of data broadcasting and the efficiency of data distribution are improved.
In the 90 s of the 20 th century, improvements to one technology could clearly be distinguished as improvements in hardware (e.g., improvements to circuit structures such as diodes, transistors, switches, etc.) or software (improvements to the process flow). However, with the development of technology, many improvements of the current method flows can be regarded as direct improvements of hardware circuit structures. Designers almost always obtain corresponding hardware circuit structures by programming improved method flows into hardware circuits. Therefore, an improvement of a method flow cannot be said to be realized by a hardware entity module. For example, a programmable logic device (Programmable Logic Device, PLD) (e.g., field programmable gate array (Field Programmable Gate Array, FPGA)) is an integrated circuit whose logic function is determined by the programming of the device by a user. A designer programs to "integrate" a digital system onto a PLD without requiring the chip manufacturer to design and fabricate application-specific integrated circuit chips. Moreover, nowadays, instead of manually manufacturing integrated circuit chips, such programming is mostly implemented by using "logic compiler" software, which is similar to the software compiler used in program development and writing, and the original code before the compiling is also written in a specific programming language, which is called hardware description language (Hardware Description Language, HDL), but not just one of the hdds, but a plurality of kinds, such as ABEL (Advanced Boolean Expression Language), AHDL (Altera Hardware Description Language), confluence, CUPL (Cornell University Programming Language), HDCal, JHDL (Java Hardware Description Language), lava, lola, myHDL, PALASM, RHDL (Ruby Hardware Description Language), etc., VHDL (Very-High-Speed Integrated Circuit Hardware Description Language) and Verilog are currently most commonly used. It will also be apparent to those skilled in the art that a hardware circuit implementing the logic method flow can be readily obtained by merely slightly programming the method flow into an integrated circuit using several of the hardware description languages described above.
The controller may be implemented in any suitable manner, for example, the controller may take the form of, for example, a microprocessor or processor and a computer readable medium storing computer readable program code (e.g., software or firmware) executable by the (micro) processor, logic gates, switches, application specific integrated circuits (Application Specific Integrated Circuit, ASIC), programmable logic controllers, and embedded microcontrollers, examples of which include, but are not limited to, the following microcontrollers: ARC 625D, atmel AT91SAM, microchip PIC18F26K20, and Silicone Labs C8051F320, the memory controller may also be implemented as part of the control logic of the memory. Those skilled in the art will also appreciate that, in addition to implementing the controller in a pure computer readable program code, it is well possible to implement the same functionality by logically programming the method steps such that the controller is in the form of logic gates, switches, application specific integrated circuits, programmable logic controllers, embedded microcontrollers, etc. Such a controller may thus be regarded as a kind of hardware component, and means for performing various functions included therein may also be regarded as structures within the hardware component. Or even means for achieving the various functions may be regarded as either software modules implementing the methods or structures within hardware components.
The system, apparatus, module or unit set forth in the above embodiments may be implemented in particular by a computer chip or entity, or by a product having a certain function. One typical implementation device is a server system. Of course, the present application does not exclude that as future computer technology evolves, the computer implementing the functions of the above-described embodiments may be, for example, a personal computer, a laptop computer, a car-mounted human-computer interaction device, a cellular telephone, a camera phone, a smart phone, a personal digital assistant, a media player, a navigation device, an email device, a game console, a tablet computer, a wearable device, or a combination of any of these devices.
Although one or more embodiments of the present description provide method operational steps as described in the embodiments or flowcharts, more or fewer operational steps may be included based on conventional or non-inventive means. The order of steps recited in the embodiments is merely one way of performing the order of steps and does not represent a unique order of execution. When implemented in an actual device or end product, the instructions may be executed sequentially or in parallel (e.g., in a parallel processor or multi-threaded processing environment, or even in a distributed data processing environment) as illustrated by the embodiments or by the figures. The terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Without further limitation, it is not excluded that additional identical or equivalent elements may be present in a process, method, article, or apparatus that comprises a described element. For example, if first, second, etc. words are used to indicate a name, but not any particular order.
For convenience of description, the above devices are described as being functionally divided into various modules, respectively. Of course, when one or more of the present description is implemented, the functions of each module may be implemented in the same piece or pieces of software and/or hardware, or a module that implements the same function may be implemented by a plurality of sub-modules or a combination of sub-units, or the like. The above-described apparatus embodiments are merely illustrative, for example, the division of the units is merely a logical function division, and there may be additional divisions when actually implemented, for example, multiple units or components may be combined or integrated into another system, or some features may be omitted or not performed. Alternatively, the coupling or direct coupling or communication connection shown or discussed with each other may be an indirect coupling or communication connection via some interfaces, devices or units, which may be in electrical, mechanical or other form.
The present invention is described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each flow and/or block of the flowchart illustrations and/or block diagrams, and combinations of flows and/or blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions specified in the flowchart flow or flows 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 data processing apparatus 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 data processing 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 block diagram block or blocks.
In one typical configuration, a computing device includes one or more processors (CPUs), input/output interfaces, network interfaces, and memory.
The memory may include volatile memory in a computer-readable medium, random Access Memory (RAM) and/or nonvolatile memory, such as Read Only Memory (ROM) or flash memory (flash RAM). Memory is an example of computer-readable media.
Computer readable media, including both non-transitory and non-transitory, removable and non-removable media, may implement information storage by any method or technology. The information may be computer readable instructions, data structures, modules of a program, or other data. Examples of storage media for a computer include, but are not limited to, phase change memory (PRAM), static Random Access Memory (SRAM), dynamic Random Access Memory (DRAM), other types of Random Access Memory (RAM), read Only Memory (ROM), electrically Erasable Programmable Read Only Memory (EEPROM), flash memory or other memory technology, read only compact disc read only memory (CD-ROM), digital Versatile Discs (DVD) or other optical storage, magnetic cassettes, magnetic tape magnetic disk storage, graphene storage or other magnetic storage devices, or any other non-transmission medium, which can be used to store information that can be accessed by a computing device. Computer-readable media, as defined herein, does not include transitory computer-readable media (transmission media), such as modulated data signals and carrier waves.
One skilled in the relevant art will recognize that one or more embodiments of the present description may be provided as a method, system, or computer program product. Accordingly, one or more embodiments of the present description may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Moreover, one or more embodiments of the present description can take the form of a computer program product on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, etc.) having computer-usable program code embodied therein.
One or more embodiments of the present specification may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. One or more embodiments of the present specification may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices.
In this specification, each embodiment is described in a progressive manner, and identical and similar parts of each embodiment are all referred to each other, and each embodiment mainly describes differences from other embodiments. In particular, for system embodiments, since they are substantially similar to method embodiments, the description is relatively simple, as relevant to see a section of the description of method embodiments. In the description of the present specification, a description referring to terms "one embodiment," "some embodiments," "examples," "specific examples," or "some examples," etc., means that a particular feature, structure, material, or characteristic described in connection with the embodiment or example is included in at least one embodiment or example of the present specification. In this specification, schematic representations of the above terms are not necessarily directed to the same embodiment or example. Furthermore, the particular features, structures, materials, or characteristics described may be combined in any suitable manner in any one or more embodiments or examples. Furthermore, the different embodiments or examples described in this specification and the features of the different embodiments or examples may be combined and combined by those skilled in the art without contradiction.
The foregoing is merely an example of one or more embodiments of the present specification and is not intended to limit the one or more embodiments of the present specification. Various modifications and alterations to one or more embodiments of this description will be apparent to those skilled in the art. Any modification, equivalent replacement, improvement, or the like, which is within the spirit and principles of the present specification, should be included in the scope of the claims.
Claims (16)
1. A data broadcasting method in a blockchain system in which a plurality of nodes are divided into a plurality of clusters based on access latency between nodes, the plurality of clusters including a first cluster including a first node and a plurality of second nodes, the second cluster including a plurality of third nodes including k third nodes for data broadcasting, the method comprising:
the first node obtains n data blocks based on data to be broadcasted, distributes the n data blocks to m nodes in the first cluster, wherein the m nodes comprise at least one second node, and respectively transmits the distributed one or more data blocks to each second node in the m nodes, wherein n is greater than or equal to m, and n is greater than or equal to k;
The m nodes respectively distribute the corresponding data blocks to at least part of the third nodes in the k third nodes, and respectively send the distributed one or more data blocks to the at least part of the third nodes;
broadcasting one or more data blocks received by at least part of the third nodes in the k third nodes in the plurality of third nodes respectively;
each third node of the plurality of third nodes generates the data based on the received data block.
2. The method of claim 1, further comprising: the m nodes broadcast one or more data blocks allocated to the m nodes in the second nodes respectively;
each of the plurality of second nodes generates the data based on the received data block.
3. The method of claim 1, the first node allocating the n data blocks to m nodes in the first cluster comprising: the first node performs hash calculation on the identification of each data block, and distributes each data block to one node corresponding to the hash calculation result in m nodes according to the hash calculation result.
4. The method according to claim 1 or 2, the m nodes respectively allocating their corresponding data blocks to at least part of the k third nodes comprising: and performing hash calculation on the identification of the first data block allocated to the fourth node in the m nodes, and allocating the first data block to the fifth node in the k nodes according to a hash calculation result.
5. The method of claim 4, the m nodes respectively transmitting the allocated one or more data blocks to the at least a portion of the third nodes comprising:
the fourth node determines a first connection path to the fifth node, the first connection path having a shortest access latency as compared to other connection paths between the fourth node and the fifth node, the fourth node transmitting the first data block to the fifth node over the first connection path.
6. The method of claim 5, the fourth node determining the first connection path comprising:
the fourth node sends a query request to the fifth node to a plurality of sixth nodes of the fourth node's neighboring connections;
when the plurality of sixth nodes comprise a fifth node, the fifth node returns the access delay between the fifth node and the fourth node, which is acquired in advance, to the fourth node;
when the plurality of sixth nodes do not include a fifth node, a seventh node in the plurality of sixth nodes acquires a first access delay between the seventh node and the fourth node, a second connection path between the seventh node and the fifth node, and a second access delay of the second connection path, wherein the second connection path has the shortest access delay compared with other connection paths between the seventh node and the fifth node; the seventh node returns a third access delay and a third connection path to the fourth node, wherein the third access delay is equal to the sum of the first access delay and the second access delay, and the third connection path comprises a connection path of the fourth node and the seventh node with the first access delay and the second connection path;
And the fourth node determines the first connection path according to the access delay returned by each sixth node and the corresponding connection path.
7. The method of claim 6, further comprising:
the fourth node sends first information to the seventh node at a first time;
receiving acknowledgement information for the first information from the seventh node at a second time;
and determining access delay information between the seventh node and the first node according to the first time and the second time.
8. The method of claim 5, further comprising: a first connection is established among a plurality of nodes in the first cluster, a second connection is established between the nodes in the first cluster and a preset number of nodes in the second cluster, a third connection is established among a plurality of nodes in the second cluster, and a fourth node acquires a plurality of connection paths from the fourth node to the fifth node in the first connection, the second connection and the third connection.
9. The method according to claim 1 or 2, wherein the first node deriving n data blocks based on data to be broadcast comprises: the first node obtains n data blocks based on the data by using an erasure coding algorithm;
Generating the data based on the received data blocks by each of the plurality of third nodes includes: each third node of the plurality of third nodes, after receiving at least p of the data blocks, generates the data based on the p data blocks using the erasure coding algorithm, wherein the p is determined based on redundancy of the erasure coding algorithm.
10. A data broadcasting method in a blockchain system in which a plurality of nodes are divided into a plurality of clusters based on access latency between nodes, the plurality of clusters including a first cluster and a second cluster, the first cluster including a first node and a plurality of second nodes, the second cluster including a plurality of third nodes including k third nodes for broadcasting data, the first node including data to be broadcast and n data blocks derived based on the data, the n data blocks being allocated to m nodes in the first cluster, the m nodes including at least one of the second nodes, wherein n is greater than or equal to m, and n is greater than or equal to k, the method being performed by a second node of the m nodes, comprising:
Receiving the allocated one or more data blocks from the first node;
allocating the one or more data blocks to at least some of the k third nodes, and respectively transmitting the allocated one or more data blocks to the at least some third nodes, so that the at least some of the k third nodes respectively broadcast one or more data blocks received by the at least some third nodes in the plurality of third nodes; each third node of the plurality of third nodes generates the data based on the received data block.
11. A data broadcasting method in a blockchain system in which a plurality of nodes are divided into a plurality of clusters based on access latency between nodes, the plurality of clusters including a first cluster and a second cluster, the first cluster including a first node and a plurality of second nodes, the second cluster including a plurality of third nodes including k third nodes for broadcasting data, the first node including data to be broadcast, and n data blocks obtained based on the data, the n data blocks being allocated to m nodes in the first cluster, the m nodes including at least one of the second nodes, wherein n is greater than or equal to m, and n is greater than or equal to k, the method being performed by one of the k third nodes, comprising:
Receiving the allocated one or more data blocks from at least some of the m nodes;
broadcasting the one or more data blocks in the plurality of third nodes;
receiving data blocks other than the one or more data blocks from other nodes of the k third nodes;
the data is generated based on the received data blocks.
12. A second node in a blockchain system, the plurality of nodes in the blockchain system being divided into a plurality of clusters based on access latency between nodes, the plurality of clusters including a first cluster and a second cluster, the first cluster including a first node and a plurality of second nodes, the second cluster including a plurality of third nodes including k third nodes for broadcasting data, the first node including data to be broadcast and n data blocks derived based on the data, the n data blocks being allocated to m nodes in the first cluster, the m nodes including at least one of the second nodes, wherein n is greater than or equal to m, and n is greater than or equal to k, one of the m nodes including:
a receiving unit configured to receive the allocated one or more data blocks from the first node;
An allocation unit for allocating the one or more data blocks to at least some of the k third nodes;
a transmitting unit, configured to transmit the allocated one or more data blocks to the at least some third nodes, respectively, so that the at least some third nodes of the k third nodes broadcast the one or more data blocks received by the at least some third nodes in the plurality of third nodes, respectively; each third node of the plurality of third nodes generates the data based on the received data block.
13. A third node in a blockchain system, a plurality of nodes in the blockchain system being divided into a plurality of clusters based on access latency between nodes, the plurality of clusters including a first cluster and a second cluster, the first cluster including a first node and a plurality of second nodes, the second cluster including a plurality of third nodes including k third nodes for broadcasting data, the first node including data to be broadcast and n data blocks derived based on the data, the n data blocks being allocated to m nodes in the first cluster, the m nodes including at least one of the second nodes, wherein n is greater than or equal to m, and n is greater than or equal to k, one of the k third nodes including:
A receiving unit for receiving the allocated one or more data blocks from at least some of the m nodes;
a broadcasting unit for broadcasting the one or more data blocks in the plurality of third nodes;
a receiving unit configured to receive data blocks other than the one or more data blocks from other nodes of the k third nodes;
and the generating unit is used for generating the data based on the received data block.
14. A blockchain system in which a plurality of nodes are divided into a plurality of clusters based on access latency between nodes, the plurality of clusters including a first cluster including a first node and a plurality of second nodes, the second cluster including a plurality of third nodes including k third nodes for data broadcasting,
the first node is configured to obtain n data blocks based on data to be broadcast, allocate the n data blocks to m nodes in the first cluster, where the m nodes include at least one second node, and send the allocated one or more data blocks to each second node in the m nodes respectively, where n is greater than or equal to m, and n is greater than or equal to k;
The m nodes are used for respectively distributing the corresponding data blocks to at least part of the third nodes in the k third nodes, and respectively transmitting the distributed one or more data blocks to the at least part of the third nodes;
the at least some of the k third nodes are configured to broadcast one or more data blocks received by the at least some of the k third nodes in the plurality of third nodes, respectively;
each of the plurality of third nodes is configured to generate the data based on the received data block.
15. A computer readable storage medium having stored thereon a computer program which, when executed in a computer, causes the computer to perform the method of any of claims 10-11.
16. A blockchain node comprising a memory having executable code stored therein and a processor that, when executing the executable code, implements the method of any of claims 10-11.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210762918.4A CN115174573B (en) | 2022-06-30 | 2022-06-30 | Data broadcasting method in block chain system, node and block chain system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210762918.4A CN115174573B (en) | 2022-06-30 | 2022-06-30 | Data broadcasting method in block chain system, node and block chain system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115174573A CN115174573A (en) | 2022-10-11 |
CN115174573B true CN115174573B (en) | 2024-02-02 |
Family
ID=83489582
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210762918.4A Active CN115174573B (en) | 2022-06-30 | 2022-06-30 | Data broadcasting method in block chain system, node and block chain system |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115174573B (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN119172052B (en) * | 2024-09-26 | 2025-06-17 | 深圳辩话教育科技有限公司 | A method and device for sharing educational resources |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109345386A (en) * | 2018-08-31 | 2019-02-15 | 阿里巴巴集团控股有限公司 | Transaction common recognition processing method and processing device, electronic equipment based on block chain |
CN113645044A (en) * | 2021-10-09 | 2021-11-12 | 支付宝(杭州)信息技术有限公司 | Consensus method, block chain system and consensus node |
CN114679457A (en) * | 2022-03-30 | 2022-06-28 | 蚂蚁区块链科技(上海)有限公司 | Node grouping method in block chain and block chain link point |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201719654D0 (en) * | 2017-11-27 | 2018-01-10 | Nchain Holdings Ltd | Computer-implemented system and method |
CN109379397B (en) * | 2018-08-31 | 2019-12-06 | 阿里巴巴集团控股有限公司 | Transaction consensus processing method and device based on block chain and electronic equipment |
-
2022
- 2022-06-30 CN CN202210762918.4A patent/CN115174573B/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109345386A (en) * | 2018-08-31 | 2019-02-15 | 阿里巴巴集团控股有限公司 | Transaction common recognition processing method and processing device, electronic equipment based on block chain |
CN113645044A (en) * | 2021-10-09 | 2021-11-12 | 支付宝(杭州)信息技术有限公司 | Consensus method, block chain system and consensus node |
CN114679457A (en) * | 2022-03-30 | 2022-06-28 | 蚂蚁区块链科技(上海)有限公司 | Node grouping method in block chain and block chain link point |
Also Published As
Publication number | Publication date |
---|---|
CN115174573A (en) | 2022-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114679457B (en) | Node grouping method in block chain and block chain link point | |
CN114942847B (en) | Methods and blockchain nodes for executing transactions | |
CN114827165B (en) | Method and block link point for grouping multiple transactions | |
CN115150409B (en) | Method for executing transaction in blockchain system, node and computer readable storage medium | |
CN114390063B (en) | Message broadcasting method for blockchain network, blockchain node and blockchain system | |
CN113452747A (en) | Extensible and safe consensus method, system, storage medium and intelligent terminal | |
CN115174572B (en) | Data multicasting method in blockchain, blockchain node and storage medium | |
JP7553554B2 (en) | Synchronization processing method and related device | |
WO2023231337A1 (en) | Method for executing transaction in blockchain, and master node and slave node of blockchain | |
CN114710507A (en) | Consensus method and block link point | |
CN115174573B (en) | Data broadcasting method in block chain system, node and block chain system | |
CN115098595A (en) | Node grouping method in blockchain system and blockchain node | |
CN115941262A (en) | Transaction execution method and node in blockchain system | |
WO2023231335A1 (en) | Method for executing transaction in blockchain, and master node of blockchain | |
CN113935737B (en) | Random number generation method and device based on block chain | |
CN109496407B (en) | Message transmission method, device and storage medium in block chain system | |
CN115174574A (en) | Data broadcasting method in block chain system, node and block chain system | |
CN114785800B (en) | Cross-link communication method, device, storage medium and computing equipment | |
CN116366666A (en) | Chain state updating method and block link point in block chain system | |
CN116846912A (en) | View switching method, consensus node and block chain system in PBFT algorithm | |
CN115760386A (en) | Transaction execution method in blockchain system and blockchain node | |
CN116049170A (en) | Block chain state storage and verification method and block chain link point | |
CN116823466A (en) | Transaction proposal method in blockchain system, consensus node and blockchain system | |
CN116484417A (en) | Transaction proposal method in blockchain system, consensus node and blockchain system | |
CN115658808A (en) | Method for converting type of consensus node and consensus node |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |