WO2022143242A1 - Procédé et appareil d'exécution de distribution de transactions basée sur une chaîne de blocs, serveur, et support de stockage - Google Patents

Procédé et appareil d'exécution de distribution de transactions basée sur une chaîne de blocs, serveur, et support de stockage Download PDF

Info

Publication number
WO2022143242A1
WO2022143242A1 PCT/CN2021/139508 CN2021139508W WO2022143242A1 WO 2022143242 A1 WO2022143242 A1 WO 2022143242A1 CN 2021139508 W CN2021139508 W CN 2021139508W WO 2022143242 A1 WO2022143242 A1 WO 2022143242A1
Authority
WO
WIPO (PCT)
Prior art keywords
transaction
read
transactions
write
target
Prior art date
Application number
PCT/CN2021/139508
Other languages
English (en)
Chinese (zh)
Inventor
邱炜伟
李伟
黄方蕾
张珂杰
陶烨琪
Original Assignee
杭州趣链科技有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 杭州趣链科技有限公司 filed Critical 杭州趣链科技有限公司
Publication of WO2022143242A1 publication Critical patent/WO2022143242A1/fr

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange

Definitions

  • the present application relates to the field of blockchain technology, and in particular to a method, device, server and storage medium for transaction distribution and execution based on blockchain.
  • Blockchain is a new type of decentralized protocol that can securely store digital currency transactions or other data, and the information cannot be forged or tampered with. Transactions on the blockchain are jointly completed by all nodes on the blockchain, and the consensus algorithm maintains its in-line shape.
  • a public ledger is maintained on the blockchain. The public ledger is located on any node on the storage block to ensure that it cannot be forgery or tampering.
  • the present application provides a blockchain-based transaction distribution execution method, device, server and storage medium, aiming to solve the problem that in the transaction execution process of the blockchain in the prior art, the process of transaction execution is not recorded, and the transaction execution process is not recorded. Accuracy and execution inefficiency issues.
  • the present application provides a blockchain-based transaction distribution execution method, wherein the blockchain includes a plurality of blocks, and each block in the plurality of blocks includes a plurality of shards;
  • the method includes:
  • each transaction information in the multiple transaction information includes the initiator address of the current transaction, the transaction contract address of the current transaction and the transaction type of the current transaction;
  • the plurality of transactions are divided into different shards, and the transactions located in the same shard are associated;
  • the present application provides a transaction distribution and execution device based on a blockchain, the blockchain includes a plurality of blocks, and each block in the plurality of blocks includes a plurality of shards;
  • the blockchain-based transaction distribution execution device includes:
  • the acquisition module is used to acquire multiple transaction information corresponding to multiple transactions, each transaction information in the multiple transaction information includes the initiator address of the current transaction, the transaction contract address of the current transaction and the transaction type of the current transaction ;
  • a dividing module which is configured to divide the plurality of transactions into different shards according to the plurality of transaction information, and the transactions located in the same shard are associated;
  • an execution module which is configured to execute multiple transactions in different shards in parallel to obtain a first read-write set corresponding to each transaction
  • a conflict detection module configured to sort a plurality of the first read-write sets, obtain a set of sorted first read-write sets, and perform conflict detection on the set of the first read-write sets , to determine whether there is a conflict between any two adjacent first read-write sets in the set of the first read-write sets;
  • a merging module the merging module is configured to, if there is no conflict between a plurality of the first read-write sets in the set of the first read-write sets The first read-write set is merged to obtain a final read-write set to confirm that the multiple transactions are executed correctly.
  • the present application also provides a server, the server comprising:
  • processors one or more processors
  • one or more application programs wherein the one or more application programs are stored in the memory and configured to be executed by the processor to implement the blockchain-based transaction distribution execution as described in any of the above method.
  • the present application also provides a computer-readable storage medium on which a computer program is stored, and the computer program is loaded by a processor to execute the blockchain-based transaction distribution execution as described in any of the above steps in the method.
  • the present application also provides a computer-readable storage medium on which a computer program is stored, and the computer program is loaded by a processor to execute the blockchain-based transaction distribution execution as described in any of the above steps in the method.
  • the present application provides a blockchain-based transaction distribution execution method, device, server, and storage medium.
  • the transaction information corresponding to different transactions in the blockchain including the address of the initiator of the transaction, the transaction contract address of the transaction, and the transaction type, etc. , divide the transaction into different shards for parallel execution to ensure the efficiency of transaction execution; and use the read-write set to record the process of transaction execution, and also use the read-write set to avoid illegal transactions during the execution process and improve the transaction execution efficiency. accuracy.
  • FIG. 1 is a schematic diagram of a scenario of a transaction distribution execution system in a blockchain provided by an embodiment of the present application
  • FIG. 2 is a schematic flowchart of an embodiment of a blockchain-based transaction distribution and execution method provided in an embodiment of the present application
  • FIG. 3 is a schematic flowchart of an embodiment of transaction division provided in an embodiment of the present application.
  • FIG. 4 is a schematic flowchart of an embodiment of obtaining a pre-analysis result provided in the embodiment of the present application
  • FIG. 5 is a schematic diagram of an embodiment of transaction division provided in an embodiment of the present application.
  • FIG. 6 is a schematic flowchart of an embodiment of dividing a transaction into shards according to an embodiment of the present application
  • FIG. 7 is a schematic flowchart of another embodiment of dividing a transaction into shards according to an embodiment of the present application.
  • FIG. 8 is a schematic flowchart of an embodiment of read-write set conflict detection according to an embodiment of the present application.
  • FIG. 9 is a schematic flowchart of an embodiment of a read-write set merging provided by an embodiment of the present application.
  • FIG. 10 is a schematic diagram of an embodiment of read-write set merging provided by an embodiment of the present application.
  • FIG. 11 is a schematic flowchart of another embodiment of a merger transaction provided by an embodiment of the present application.
  • FIG. 12 provides a blockchain-based transaction distribution and execution device provided by an embodiment of the present application.
  • FIG. 13 shows a schematic structural diagram of a server involved in an embodiment of the present application.
  • first and second are only used for descriptive purposes, and should not be construed as indicating or implying relative importance or implying the number of indicated technical features. Thus, features defined as “first”, “second” may expressly or implicitly include one or more of said features. In the description of the present invention, “plurality” means two or more, unless otherwise expressly and specifically defined.
  • Embodiments of the present application provide a blockchain-based transaction distribution execution method, device, server, and storage medium, which will be described in detail below.
  • Blockchain is a term in the field of information technology, which is a new application mode of computer technology such as distributed data storage, point-to-point transmission, consensus mechanism, and encryption algorithm. Essentially, it is a shared database, and the data or information stored in it has the characteristics of "unforgeable, traceable, traceable, open and transparent, and collectively maintained.
  • Blockchain is a collection of transaction records, which is composed of It consists of connected blocks, each block contains some ordered transactions, and each transaction can be regarded as a query or update of the state of the world. The order of transactions in a block is determined at the beginning of the block's creation .
  • Fragmentation technology capacity expansion, the original intention is that the database can be split into small segments, and the verification method between various steps within the network can be changed to achieve fragmentation and increase throughput. It can be seen that sharding is a complex task, and many projects now use sharding to achieve capacity expansion. Fragmentation is a scaling technology based on the traditional concept of dividing the database into several fragments. It divides the database into multiple fragments and places these fragments on different servers. In the underlying public chain system, transactions on the network will be divided into Different shards, which consist of different nodes on the network. Therefore, only a small number of incoming transactions need to be processed, and a large amount of verification work can be done by parallel processing with other nodes on the network. Splitting the network into shards allows more transactions to be processed and validated simultaneously.
  • Block chain sharding refers to the horizontal expansion of the block chain execution module, from the original each node contains one execution module to each node has several execution modules, each execution module can independently execute and verify transactions.
  • Sharding uses the same ledger to save state data, and a unified shard manager manages shards.
  • FIG. 1 a schematic diagram of a scenario of a transaction distribution execution system in a blockchain provided by an embodiment of the present application
  • the system may include multiple hosts 100 and servers 200 , the hosts 100 and the servers 200 are connected to the network, and the server 200 is integrated with A transaction distribution execution device based on blockchain, such as the server in FIG. 1 , the host 100 can access the server 200 .
  • the server 200 is mainly used to obtain multiple transaction information corresponding to multiple transactions, and each transaction information in the multiple transaction information includes the initiator address of the current transaction, the transaction contract address of the current transaction, and the transaction type of the current transaction; According to multiple transaction information, multiple transactions are divided into different shards, and transactions located in the same shard are associated; multiple transactions in different shards are executed in parallel to obtain the first read-write set corresponding to each transaction; Sort a plurality of first read-write sets to obtain a set of sorted first read-write sets, and perform conflict detection on the set of first read-write sets to determine any adjacent two in the set of first read-write sets.
  • the server 200 may be an independent server, or may be a server network or server cluster composed of servers.
  • the server 200 described in this embodiment of the present invention includes but is not limited to a computer, a network host, A single web server, a set of multiple web servers, or a cloud server consisting of multiple servers.
  • the cloud server is composed of a large number of computers or network servers based on cloud computing (Cloud Computing).
  • communication between the server and the host may be implemented through any communication method, including but not limited to, based on the 3rd Generation Partnership Project (3rd Generation Partnership Project, 3GPP), Long Term Evolution (Long Term Evolution, LTE) , Mobile communication of Worldwide Interoperability for Microwave Access (WiMAX), or computer based on TCP/IP Protocol Suite (TCP/IP Protocol Suite, TCP/IP), User Datagram Protocol (User Datagram Protocol, UDP) network communication, etc.
  • 3rd Generation Partnership Project 3rd Generation Partnership Project, 3GPP
  • Long Term Evolution Long Term Evolution
  • LTE Long Term Evolution
  • WiMAX Worldwide Interoperability for Microwave Access
  • TCP/IP Protocol Suite TCP/IP Protocol Suite, TCP/IP
  • User Datagram Protocol User Datagram Protocol
  • UDP User Datagram Protocol
  • the host 100 used in this embodiment of the present invention may be a device including both receiving and transmitting hardware, that is, a device having receiving and transmitting hardware capable of performing bidirectional communication on a bidirectional communication link.
  • a host may include a cellular or other communication device with a single-line display or a multi-line display or a cellular or other communication device without a multi-line display.
  • the specific host 100 may specifically be a desktop terminal or a mobile terminal, and the host 100 may specifically be one of a mobile phone, a tablet computer, a notebook computer, and the like.
  • FIG. 1 is only one application scenario of the solution of the present application, and does not constitute a limitation to the application scenario of the solution of the present application.
  • Other application environments may also include more than those shown in FIG. More or less servers, or server network connection relationships, for example, only one server and two hosts are shown in FIG. 1.
  • the transaction distribution execution system in the blockchain may also include one or more other servers, or/and one or more hosts network-connected to the servers, which are not specifically limited here.
  • the transaction distribution execution system in the blockchain may further include a memory 300 for storing data, such as storing blockchain data, such as data during execution of transactions in the blockchain.
  • FIG. 1 the schematic diagram of the scenario of the transaction distribution and execution system in the blockchain shown in FIG. 1 is only an example, and the transaction distribution and execution system and the scenario in the blockchain described in the embodiments of the present invention are for clearer description
  • the technical solutions of the embodiments of the present invention do not constitute limitations to the technical solutions provided by the embodiments of the present invention.
  • Those of ordinary skill in the art know that with the evolution of the transaction distribution execution system in the blockchain and the emergence of new business scenarios, The technical solutions provided in the embodiments of the present invention are also applicable to similar technical problems.
  • FIG. 2 a schematic flowchart of an embodiment of a blockchain-based transaction distribution and execution method provided by an embodiment of the present application, the blockchain-based transaction distribution and execution method includes:
  • the transaction information generally includes the address of the initiator of the transaction from, the contract address of the transaction to, and the transaction type vmType of the transaction.
  • the transaction information generally includes the address of the initiator of the transaction from, the contract address of the transaction to, and the transaction type vmType of the transaction.
  • blockchain technology can be applied in the field of bitcoin, and transactions in the field of bitcoin are generally transfer operations between users; of course, other operations, such as creating smart contracts, or It is the calling operation of the smart contract, etc.
  • each transaction generally contains several key fields: “from” represents the transaction initiator, “to” represents the transaction recipient, “value” represents the transaction amount, and “data” represents the accompanying information.
  • the blockchain generally includes external accounts and contract accounts.
  • the external account is the account used by the user, which includes the user's private key and wallet and other important information; the contract account is used to store a smart contract, usually created by an external account. All transactions are signed by the private key of the originator's account, which is guaranteed not to be tampered with to ensure the security of the transaction.
  • value C means transferring money from external account A to external account B, and the transfer amount is C;
  • value C, data D means that external account A creates a smart contract and transfers C to the contract account, and the code of the contract is D;
  • value F means that external account A calls The smart contract of contract account E, the parameter passed in this call is F.
  • the transaction information corresponding to the transaction generally includes the initiator address of the transaction, the transaction contract address of the transaction, and the transaction type of the transaction; The corresponding transaction information divides the transaction.
  • multiple transactions are divided into different shards, and transactions located in the same shard are associated.
  • all transactions correspond to the initial sequence of a transaction, that is, multiple transactions are arranged in a certain order before being divided.
  • the execution of a certain transaction may depend on the execution result of a previous transaction to be correctly executed.
  • multiple transactions can be divided into different shards for subsequent execution. It should be noted that multiple transactions in different shards can be executed in parallel to improve the efficiency of transaction execution. Therefore, if multiple transactions are divided into different shards and executed in parallel, the transactions in the same shard are usually related to each other; transactions are executed in parallel.
  • each transaction can be executed in a shard.
  • a read-write set (Read-Write Set) may be used to record the execution process of the transaction.
  • the read-write set of the transaction records the execution result of each transaction. No matter how complicated the execution process of the transaction is, the final execution result is to read some status data or write some status data. Write sets are compared to see if there is a conflict between transactions executed in parallel.
  • the read-write set can include the read set (Read Set) and the write set (Write Set); the read set contains the list of key values (Key) and versions read by the simulated transaction, and the write set contains the key value (Key), write The new value of , and the delete flag (that is, whether to delete the Key).
  • a Read-Write Set (Read-Write Set) will be generated when the Endorser simulates the execution of the transaction.
  • the read set contains a list of unique key values, as well as committed key values read by the transaction during the simulation execution.
  • the write set also contains a list of unique keys, as well as the keys written by the transaction during the simulation execution.
  • There is a delete key in the transaction process which records the delete flag. If there are multiple updates to the same key in a transaction, the last one will prevail. Transactions will only read committed data, even if the value of a key is updated in the transaction. That is to say, reading the updated result of this transaction is not supported.
  • the read set will contain the version of the key value, and the write set will only contain the latest value of the key value.
  • a transaction is considered valid if the key in each read set matches the version number of the corresponding key in the world state. If a transaction passes validation, the write set can be used to update the world state.
  • the value of the key value in the world state corresponding to each key in the write set is set to the value determined in the write set. Also, the version of the keys in the world state is updated to the latest version.
  • each transaction will generate a corresponding first read/write set during the execution process, and there are multiple first read/write sets; after obtaining multiple first read/write sets, it is necessary to The first read-write set is merged.
  • the first read-write set corresponding to each transaction includes at least one read-write operation; the transaction is executed according to at least one read-write operation during the execution of the transaction and generates an operation corresponding to at least one read-write operation.
  • the first read-write set corresponding to the write operation In the same first read and write set, read and write operations are sorted according to the actual execution order of transactions.
  • the same shard may include multiple transactions, and each transaction will generate a corresponding first read/write set. Therefore, after the transaction is executed, a shard may include multiple first read/write sets. Read-write sets, and the multiple first read-write sets are arranged according to the actual execution order of multiple transactions. At the same time, since the transactions in multiple shards are executed in parallel, after the transaction execution ends, the first read-write set corresponding to multiple transactions in different shards will be generated in one block.
  • Sort a plurality of first read-write sets to obtain a set of sorted first read-write sets, and perform conflict detection on the set of first read-write sets to determine any phase in the set of first read-write sets. Whether there is a conflict between two adjacent first-read-write sets.
  • multiple first read-write sets generated by multiple transactions in the same shard are also sorted according to the order in which the transactions are executed. Since multiple transactions in different shards are executed in parallel, the execution process and execution time of different transactions are not the same, so the multiple first read-write transaction sets generated by different shards are not completely different. Arranged in the order in which the transactions were processed. If the first read-write sets corresponding to all transactions need to be merged, the multiple first read-write sets corresponding to all transactions need to be sorted first, and then conflict detection is performed.
  • the transaction is divided into different shards for parallel execution, so as to ensure the efficiency of transaction execution;
  • the process of transaction execution is recorded, and at the same time, the read-write set is used to avoid illegal transactions in the execution process, and the accuracy of transaction execution is improved.
  • dividing multiple transactions into different shards according to multiple transaction information may include: analyzing multiple transaction information corresponding to multiple transactions to obtain a pre-analysis result; The analysis results divide multiple transactions into different shards.
  • transaction pre-analysis refers to analyzing transactions that are related to each other. For example, two transactions will modify the same state data under the same account address, or the state data used in the next transaction depends on the state data of the previous transaction. As a result of execution, these transactions are considered to be related, and these transactions need to be distributed to the same shard.
  • a schematic flowchart of an embodiment of transaction division provided by this embodiment of the present application may include:
  • the transaction information corresponding to each transaction may include the initiator address of the transaction, the transaction contract address of the transaction, and the transaction type of the transaction. You can first classify all transactions according to the transaction type corresponding to the transaction.
  • One transaction type corresponds to one transaction list, and different transaction types correspond to multiple transaction lists. That is, in the embodiment of the present application, when there are multiple transaction types corresponding to all transactions, there are also multiple preset transaction lists corresponding to each transaction type, and each preset transaction list corresponding to each transaction type , including at least one transaction; all transactions in the transaction list corresponding to the same preset transaction type have the same transaction type.
  • the transactions in the preset transaction list corresponding to each transaction type can be divided into two subdivisions, and the multiple transactions can be divided into different shards.
  • the transaction is divided according to the address of the initiator of the transaction and the address of the transaction contract, that is, the influence of the "from” and “to” fields needs to be considered. Since a transaction call mainly modifies the status data under the two account addresses indicated by "from” and “to”, it can be based on the initiator address and transaction contract address corresponding to the transaction in each transaction type, that is, according to "from” and the two account addresses represented by "to”, to perform secondary classification of transactions of the same transaction type.
  • FIG. 4 a schematic flowchart of an embodiment of obtaining a pre-analysis result provided by the embodiment of the present application, wherein the addresses in the transaction list corresponding to each transaction type are compared and analyzed to obtain a pre-analysis result, which may include:
  • each group of related transactions corresponds to a related transaction list.
  • each transaction corresponds to an initiator address of a transaction and an address of a transaction contract called by the transaction.
  • transactions with the same initiator address or transaction contract address of the transaction can be divided into the same transaction list. That is, if the initiator address of the transaction is the same or the transaction contract address of the transaction is the same, it means that there is a relationship between the transactions, and the transaction is a related transaction, and the related transactions need to be divided into the same transaction list.
  • multiple transactions in the transaction list corresponding to the same transaction type may be classified according to the initiator address or transaction contract address of the transaction;
  • the transaction with the same initiator address or transaction contract address is considered as a related transaction, and a related transaction list is created, and the related transaction is divided into the corresponding related transaction list.
  • the address of the initiator of the two transactions is described.
  • the transaction contract address is the same, which means that the two transactions are related to each other, and the two related transactions need to be divided into the same related transaction list.
  • address comparison analysis may be performed on each transaction in the transaction list corresponding to each transaction type to obtain at least one related transaction list corresponding to each transaction type;
  • the associated lists corresponding to transactions with the same initiator address or transaction contract address are merged to obtain the final associated transaction list.
  • multiple associated transaction lists can be obtained.
  • the transactions in different associated transaction lists are not related to each other, but Transactions in the same related transaction list are related to each other.
  • FIG. 5 it is a schematic diagram of an embodiment of transaction division provided by this embodiment of the present application.
  • six transactions may be included, which are: from: a, to: c, vmType: 1; from: b , to: c, vmType: 1; from: d, to: e, vmType: 1; and from: x, to: z, vmType: 2; from: y, to: z, vmType: 2; from: d, to: f, vmType: 3.
  • the aforementioned six transactions are arranged in a certain order.
  • the transaction initiator address of this transaction is a
  • the transaction contract address is c
  • the transaction type is vmType1.
  • the six transactions can be divided into different shards for parallel execution according to the transaction information corresponding to each transaction, and the transactions located in the same shard are associated with each other.
  • transactions of the same transaction type may be determined first according to the transaction types corresponding to the six transactions, and the transactions of the same type may be divided into preset transaction lists corresponding to each transaction type. According to the transaction type, the six transactions can be divided into:
  • the above six transactions are divided into transaction lists corresponding to three preset transaction types according to different transaction types. After the transaction is divided according to the transaction type, it is also necessary to perform address comparison analysis on the transactions in the transaction list corresponding to each transaction type to obtain a pre-analysis result; and then perform a secondary division of each transaction according to the pre-analysis result.
  • the transaction list corresponding to vmType: 1 includes three transactions, namely from: a, to: c, vmType: 1; from: b, to: c , vmType: 1 and from: d, to: e, vmType: 1.
  • the transactions are all "from: a", that is, the two transactions are issued from a, the two The same transaction initiator address exists in two transactions, and these two transactions are related transactions.
  • a new related transaction list can be created, and the group of related transactions can be divided into the newly created related transaction list. For from: d, to: e, vmType: 1, in the transaction list corresponding to vmType: 1, there is no associated transaction with the same transaction initiator address or transaction contract address, so from: d, to: e , vmType: 1 is separately divided into an associated transaction list.
  • the related transactions are divided into different related transaction lists, and the transactions in the same related transaction list However, between different related transaction lists, the transactions in the related transaction list are not related.
  • the transaction types of multiple transactions located in the same related transaction list may be the same or different; however, among the multiple transactions located in the same transaction list, at least the originator address or transaction type of the transaction exists.
  • the transaction contract address is the same.
  • the address comparison analysis can be performed on the multiple transactions in the transaction list corresponding to each transaction type at the same time, so as to obtain the pre-analysis result.
  • the related transaction list the related transaction lists corresponding to transactions with the same transaction initiator address or transaction contract address but different transaction types are merged.
  • multiple undivided transactions have an initial transaction order, and after the multiple transactions are divided into different related transaction lists, the transactions in the related transaction list are also in accordance with the initial order. order of transactions.
  • the related transactions in each related transaction list need to be divided into different shards for parallel execution.
  • the transaction from: d, to: e, vmType: 1 and the transaction from: d, to: f, vmType: 3 have different transaction types, but the transaction initiator addresses of the two transactions are the same, and the two transactions are related transactions, so the two transactions also need to be divided into the same related transaction list. Therefore, the transaction from: d, to: e, vmType: 1 and the transaction from: d, to: f, vmType: 3 are in the same associated transaction list, and both are divided into shard 2 for execution.
  • the call parameters (payload) of the transaction can be further obtained for further analysis. Specifically, if the multiple transactions include cross-contract transactions, the call parameters of the cross-contract transaction can be obtained; according to the call parameters corresponding to the cross-contract transaction and the transaction information corresponding to the cross-contract transaction, the cross-contract transaction is further divided into multiple in shard.
  • the status data of addresses modified by cross-contract transactions cannot be reflected in "from” and "to”, so at this time, it will lead to inability to analyze the dependencies between transactions, that is, it is impossible to determine Whether multiple transactions are related.
  • the cross-contract transaction is a small probability event, and in this application, the read-write set conflict detection corresponding to each transaction is used to ensure the final correctness of transaction execution; therefore, the transaction distribution and execution method provided in this application can still be used for cross-contract transactions. Perform pre-analysis.
  • the call parameters of the cross-contract transactions can be further obtained, and the call parameters can be used to divide the cross-contract transactions.
  • a java contract can obtain the cross-contract address involved in the transaction and the contract data results that will be modified by the transaction by calling parameters, and further analyze the cross-contract address and the transaction information corresponding to the "from", "to" and other transactions side by side.
  • the transaction can be executed in parallel.
  • a schematic flowchart of an embodiment of dividing a transaction into shards provided by this embodiment of the present application may include:
  • the number of shards corresponding to all shards can be obtained first, and the first total transaction amount corresponding to all transactions can be obtained; the average number of transactions that can be received by each shard can be determined according to the number of shards and the first total transaction amount. value, and then divide the related transaction list.
  • the transactions in each of the multiple related transaction lists correspond to a second total transaction volume
  • the second total transaction volumes corresponding to the transaction numbers in different related transaction lists are not the same. Therefore, in the actual division, not only the average number of transactions that each shard can receive, but also the second total amount of transactions corresponding to transactions in each associated transaction list needs to be considered. That is, the transactions in the multiple associated transaction lists need to be divided according to the second total amount of transactions corresponding to each transaction in each associated transaction list and the average size of the number of transactions that each shard can receive.
  • a schematic flowchart of another embodiment of dividing a transaction into shards may include:
  • the second total amount of transactions corresponding to the transactions in each related transaction list is different, but the transactions in each related transaction list are related; therefore, when dividing the transactions in the related transaction list, even if the related transaction list
  • the total amount of the second transaction corresponding to the first target related transaction in is greater than the average value, and these transactions also need to be divided into the same shard. That is, the transactions in the associated transaction list need to be divided and executed in the same shard.
  • the first target related transaction needs to be divided into the first target shard first, and then the remaining second target The associated transaction is divided into other shards except the first target shard.
  • the number of shards corresponding to other shards except the first target shard that is, the number of shards corresponding to the second target shard to which the associated transaction list is not allocated, can be obtained; then all the second target associated transactions can be obtained.
  • the number of shards corresponding to the second target shard of the unallocated associated transaction list, and the total amount of third transactions corresponding to all the second target associated transactions calculate the transactions that should be acquired by each shard in the second target shard the average of the numbers.
  • the average number of transactions that each shard should accept among the currently allocated shards can be calculated, and then the list of related transactions in the related transaction list whose number of transactions is greater than the average is divided into the same shard. For the related transaction list whose number of transactions is less than the average value in the related transaction list, the average value of the unallocated related transaction list and shards is re-calculated and redistributed.
  • the transactions that are not divided may be [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], and after the foregoing division, the transactions are allocated to Transactions in each shard can be [[0, 3, 5], [1, 2], [4, 9, 10], [6], [7, 8]]. Among them [0, 3, 5], [1, 2], [4, 9, 10] and [7, 8] are respectively an associated transaction, and [6] has no associated transaction, so [6] ] is separately divided into a shard for execution.
  • the transactions will be executed in the shards and a read-write set will be generated to record the execution of the transaction. Since multiple transactions are executed in parallel in different shards, it is necessary to combine multiple read-write sets corresponding to multiple transactions to obtain the final read-write set, and judge the execution of the transaction according to the final read-write set. happening.
  • the transaction distribution pre-analysis can reduce the probability of the conflict of the final read-write set, but the static transaction pre-analysis is difficult to completely distinguish irrelevant transactions before execution, so the read-write set conflict detection is required to ensure the final The correctness of transaction results; that is, transaction pre-analysis and read-write set conflict detection both need to work together.
  • any two adjacent first read/write sets in the set of first read/write sets are taken as the first target read/write set and the second target read/write set, and the first target read/write set order before the second target read-write set.
  • a schematic flowchart of an embodiment of read-write set conflict detection provided by an embodiment of the present application may include:
  • first target operation set is a write set and the second target operation set is a read set, determine whether there is a third target operation set corresponding to the second target operation set in the read-write set before the second target read-write set.
  • the set of the first read and write sets includes the first read and write sets corresponding to all transactions.
  • all the first read-write sets are sorted according to the order of transactions that are not divided into pre-sharding. Take any two adjacent first read/write sets in the set of first read/write sets as the first target read/write set and the second target read/write set, and the order of the first target read/write set is in the second target read/write set.
  • the first target read/write set corresponds to the first read/write operation set
  • the first read/write operation set includes at least one read/write operation
  • the first read/write operation set records the first target read/write operation
  • the second target read/write set corresponds to the second read/write operation set
  • the second read/write operation set includes at least one read/write operation
  • the second read/write operation set records transactions corresponding to the second target read/write set. execution process.
  • the read-write set records the data modification set of each transaction, including the data of what state was read, and the data of which state was modified.
  • the last read/write operation in the first read/write operation set corresponding to the first target read/write set is a write operation
  • the last write operation in a target read-write set changed the state data of the key value.
  • a conflict is detected in the second read-write operation set corresponding to the second target read-write set, if the first operation in the second read-write operation set corresponding to the second target read-write set is a read operation, that is, the second target
  • the second target operation set in the read-write set is a read operation, which needs to read the state data of the corresponding key value.
  • the read-write set for which conflict detection has been completed includes the first target read-write set.
  • the second target operation set is a read set
  • the read operation in the second target operation set needs to read the key value key and confirm the state data corresponding to the key value key. Then, it is necessary to confirm whether there is a corresponding key value in all the first read-write sets including the first target read-write set that have completed conflict detection. If there is a corresponding key value key, that is, a third target operation set corresponding to the second target operation set exists in the read-write set before the second target read-write set.
  • the shard of the read operation that reads the key value in the second target operation set, and the read or update key value in the third target operation set. Whether the shard of the operation execution is the same; that is, whether the third target operation set and the second target operation set are generated in the same shard. If the third target operation set and the second target operation set are not generated in the same shard, it can be considered that the first target read-write set and the second target read-write set conflict.
  • the first read-write sets corresponding to transactions T1, T2 and T3 are respectively: T1->Write(k1, v1', 1), Write(k3, v2', 1); T2 ->Read(k1, 1), Write(k2, v3', 1); T3->Read(k3, 2); the first read and write sets corresponding to transaction T2 and transaction T3 are the first target read and write sets respectively and the second target read-write set.
  • the last read-write set in the first target read-write set is the write operation Write(k2, v3', 1), which changes the state data of the key value k2 in the world state, and updates the value of k2 to v3 in shard 1 '.
  • the first read-write set in the second target read-write set is the read operation Read(k3, 2), which needs to read the state data of the key value key3, and the read operation is performed in shard 2.
  • the read operation corresponding to key value k3 is performed in shard 2.
  • the two are not in the same shard, so it can be considered that there is a conflict between the read-write sets corresponding to transaction T2 and transaction T3.
  • all read-write sets before the second target read-write set include the first target read-write set, so the third target read-write set may be the first target read-write set;
  • the first target read/write set adjacent to the second target read/write set there is a key value key corresponding to the key value key to be read by the read operation in the second target read/write set.
  • the first read-write set includes a read set and a write set, and both the read set and the write set include a key value; and each transaction in the multiple transactions corresponds to at least one read set or one write set, so Each transaction in the multiple transactions corresponds to at least one key value.
  • a schematic flowchart of an embodiment of the read-write set merging provided by the embodiment of the present application may include:
  • the multiple first read/write sets in the set of first read/write sets are arranged in the initial order before the transaction is not divided, and one read/write set includes at least one read set or at least one write set, or multiple read sets or write set.
  • the read sets and write sets in the first read-write set are arranged in the order in which the transactions are actually executed. Therefore, the arrangement order of each read set and write set can be determined.
  • the read set and write set are arranged in the initial order before the transaction is not divided, and for a certain first read-write set, the read set and write set in the first read-write set Sets are arranged in the order in which the transactions were actually executed.
  • Different transactions can process the same key value, either read or write, so at least one write set corresponding to the same key value can be determined.
  • the read set and the write set are arranged in order, after at least one write set corresponding to the same key value is determined, the write set corresponding to the key value in the last order can be confirmed.
  • each write set changes the state data of the key value, and the write sets are arranged in order, so the write set in the last order changes the state of the key value After the data is stored, the state data corresponding to the key value will not be changed.
  • the write set in the last order needs to be retained, and the final state data of the key value can be determined according to the write set in the last order.
  • the preceding steps can be used to traverse at least one write set corresponding to each key value in all key values, so as to obtain the last sequence corresponding to each key value in all key values 's writing set. Then merge the write sets in the last order corresponding to each key value in all key values to obtain the final read and write set.
  • the read set of the read-write set is not reserved, and only the write set in the last order corresponding to each key value is reserved. After the write set corresponding to each key value in the last order updates the state data of the key value, the state data of each key value will not change.
  • two adjacent first read-write sets may also be merged in the order of arrangement, so that the number of the first read-write sets after the merge is equal to the number of the first read-write sets before the merging. Then, the merged first read-write set is merged twice, so that the number of the first read-write set is reduced to half again; after multiple merges, the final read-write set is obtained. If the number of the first read-write sets to be merged is odd, the last first read-write set may be added to the subsequent round of merging process.
  • FIG. 10 a schematic diagram of an embodiment of a read-write set merging provided by an embodiment of the present application is shown.
  • transactions 1, 2, 3, and 4 generate read-write sets RWSet1, RWSet2, RWSet3, and RWSet4, respectively, where transactions 1, 3, and 4 are executed in shard1, and transaction 2 is executed in shard2; therefore, RWSet1 and RWSet2 need
  • the conflict judgment of the read-write sets is performed according to the preceding rules. If there is no conflict between the read-write sets, the read-write sets RWSet1 and RWSet2 are merged.
  • the read set will record the read records of transactions in different shards, and the write set will directly cover the previous transaction with the subsequent transaction.
  • transaction 1 is executed in shard 1 and transaction 2 is executed in shard 2; and for transaction 3 and transaction 4, transaction 3 and transaction 4 update the key value keyA in shard 1
  • the state data of the key value keyC is updated in shard 2
  • the state data of the key value keyB is also read in shard 1.
  • the read-write sets generated after all the transactions are executed respectively do not conflict with each other, the read-write sets generated after the respective executions of all the transactions can be merged to obtain the final read-write set. And the final read-write set can be written (ie stored) in the ledger of the blockchain.
  • a schematic flowchart of another embodiment of a merge transaction provided by an embodiment of the present application may include:
  • the multiple first read/write sets cannot be merged; when conflicts are detected among multiple first read/write sets , the merge is exited; and the multiple first read-write sets generated by the parallel execution of multiple transactions are discarded.
  • all transactions need to be sequentially divided into the same shard for serial execution, and the second read-write set corresponding to each transaction in the multiple transactions is regenerated to obtain the set of second read-write set.
  • an error may occur during the execution of the transaction, resulting in an illegal transaction and an illegal read/write set corresponding to the illegal transaction. If there is an illegal read/write set corresponding to an illegal transaction in the set of the first/second read/write set, the illegal read/write set should be directly eliminated from the set of the first/second read/write set, and the remaining No. The first/second read-write set continues to merge to obtain the final read-write set.
  • the illegal transaction can read a certain key value key for the read set in a certain transaction, and the key value key does not have a corresponding key value key in the read and write set corresponding to the completed transaction, that is, in the transaction The key value of key has not been changed by any other transaction, and the corresponding key value key cannot be obtained; then the transaction is an illegal transaction.
  • a read set in a read-write set can be represented by a tuple Read(k, shard), and a write set can be represented by a tuple (k, val, shard); where key is a key value , val is the specific value or world state of the key value key, and shard can be the shard number of the execution transaction.
  • the process of interrupting merging is not performed in the case of a conflict, but only to illustrate the conflict.
  • the block in this embodiment can include five transactions, namely T1, T2, T3, T4 and T5, all of which are based on the same world state basis.
  • T1, T2, T3, T4 and T5 all of which are based on the same world state basis.
  • the following shows the world state of these transactions and the read and write activity when the transactions are executed:
  • the execution order of these transactions is T1 to T5, and these transactions are executed in different shards in the same block.
  • the transaction T1 can pass the verification, because the transaction T1 does not perform any read operation, only the write operation.
  • the write operation in transaction T1 causes the keys k1 and k2 in the world state to be updated to (k1, v1'), (k2, v2'), (k3, v3').
  • the transaction T2 did not pass the verification. Since the first read and write operation in the transaction T2 is a read operation, and the last operation in the transaction T1 is a write operation, it is necessary to perform conflict detection on the transactions T1 and T2 at this time.
  • the first read and write operation in transaction T2 is a read operation, which reads key k1, but key k1 is updated in transaction T1 and updated in shard 1.
  • the operation of reading key k1 in transaction T2 is performed in shard 2, and two adjacent read and write operations are not performed in the same shard, and the corresponding read and write sets of transactions T1 and T2 conflict with each other.
  • the key k3 is read first in the read-write set of transaction T4, and the read operation is performed in shard 1.
  • the operation of modifying k3 only occurs in transaction T1, and transaction T1 is also performed in shard 1, that is, transaction T4 and transaction T1 are executed in the same shard 1, and transaction T4 is legal.
  • k3 in the world state is updated to (k3, v3").
  • transaction T5 For transaction T5, the first operation in transaction T5 is a read operation, and the last operation in transaction T4 is a write operation. Therefore, it is necessary to determine whether there is a conflict between the read-write set of transaction T4 and the read-write set of transaction T5.
  • transaction T5 reads key k5, but in transactions T1-T4 between transaction T5, it is not changed by any other transaction, so it can be determined that transaction K5 is an illegal transaction, and the read corresponding to transaction T5 should be excluded.
  • Write set only the read and write sets corresponding to other normal transactions except illegal transactions are merged to obtain the final read and write set.
  • the state change of the transaction execution process is recorded in the form of a read-write set, it can be judged whether there is a conflict between concurrently executed transactions through the read-write set. And for illegal transactions, it is also possible to directly determine whether the transaction is an illegal transaction through the read-write set corresponding to the illegal transaction.
  • the embodiments of the present application further provide a blockchain-based transaction distribution and execution method.
  • the device as shown in FIG. 12 , is the blockchain-based transaction distribution and execution device provided by the embodiment of the present application.
  • the blockchain-based transaction distribution and execution device 1200 includes:
  • the obtaining module 1201 is used to obtain multiple transaction information corresponding to multiple transactions, each transaction information in the multiple transaction information includes the initiator address of the current transaction, the transaction contract address of the current transaction and the transaction type of the current transaction.
  • the dividing module 1202 is configured to divide the plurality of transactions into different shards according to the plurality of transaction information, and the transactions located in the same shard are associated.
  • Execution module 1203. The execution module 1203 is configured to execute multiple transactions in different shards in parallel to obtain a first read-write set corresponding to each transaction.
  • the conflict detection module 1204 is used to sort a plurality of first read-write sets, obtain a set of sorted first read-write sets, and perform conflict detection on the set of first read-write sets to determine the first read-write set. Whether there is a conflict between any two adjacent first read-write sets in a set of read-write sets.
  • the merging module 1205, the merging module 1205 is configured to, if there is no conflict among the multiple first read-write sets in the set of the first read-write set, perform the operation on the multiple first read-write sets in the set of the first read-write set. Merged to get the final read and write set to confirm that multiple transactions were executed without errors.
  • the blockchain-based transaction distribution and execution device uses transaction information corresponding to different transactions in the blockchain, including the address of the initiator of the transaction, the transaction contract address of the transaction, and the transaction type, to divide the transaction into different shards.
  • Parallel execution ensures the efficiency of transaction execution; the read-write set is used to record the process of transaction execution, and the read-write set is also used to avoid illegal transactions during the execution process and improve the accuracy of transaction execution.
  • the dividing module 1202 can be mainly used to determine the transactions of the same transaction type in the multiple transaction information according to the transaction type of each transaction in the multiple transaction information; divide the transactions of the same transaction type into In the preset transaction list corresponding to each transaction type; perform address comparison analysis on the transactions in the transaction list corresponding to each transaction type to obtain pre-analysis results; divide multiple transactions according to the pre-analysis results, and divide multiple transactions into different shards.
  • the division module 1202 performs address comparison analysis on the transactions in the transaction list corresponding to each transaction type, and obtains a pre-analysis result, which may include: determining the address of the initiator of each transaction in each transaction in the transaction list corresponding to each transaction type. Or transactions with the same transaction contract address for each transaction, multiple groups of related transactions are obtained; according to the multiple groups of related transactions, multiple related transaction lists are created, each group of related transactions corresponds to a related transaction list; each group of related transactions is divided into each group of related transactions In the related transaction list corresponding to the transaction, there are multiple related transaction lists, and transactions in each transaction list are related to each other.
  • the dividing module 1202 divides the multiple transactions into segments according to the pre-analysis results, and divides the multiple transactions into different segments, which may include: acquiring the number of segments corresponding to the multiple segments; acquiring the number of segments corresponding to the multiple transactions The first transaction amount; obtain the second transaction amount corresponding to the transaction in each associated transaction list in the multiple associated transaction lists; according to the number of shards and the first transaction amount, determine that each shard in the multiple shards receives The average value of the number of transactions, the average value is the number of first target transactions received in each of the multiple shards; judging the size of the total amount of each second transaction and the average value, and dividing the multiple associated transaction lists into in multiple shards.
  • the dividing module 1202 judges the size of each second transaction total amount and the average value, and divides the multiple associated transaction lists into multiple shards, which may include: confirming that the second transaction total amount is greater than the average value A target related transaction; divide all transactions in the same first target related transaction into the same first target shard; confirm the second target related transaction whose total amount of the second transaction is less than the average value; divide the second target related transaction Divide into other shards except the first target shard.
  • any two adjacent first read/write sets in the set of first read/write sets are used as the first target read/write set and the second target read/write set, and the first target read/write set
  • the write set precedes the second target read/write set, and both the first target read/write set and the second target read/write set include at least one read/write operation.
  • the conflict detection module 1204 performs conflict detection on the set of the first read-write set, which may include: determining the last read-write set in the first target read-write set as the first target operation set; determining the first read-write set in the second target read-write set The read-write set is the second target operation set; if the first target operation set is a write set and the second target operation set is a read set, it is judged whether the read-write set before the second target read-write set exists and the second target operation set exists.
  • the corresponding third target operation set if it exists, determine whether the third target operation set and the second target operation set are generated in the same shard; if the third target operation set and the second target operation set are not in the same shard generated, it is considered that the first target read-write set and the second target read-write set conflict.
  • the first read-write set includes a read set and a write set, each transaction in the multiple transactions corresponds to at least one key value, and both the read set and the write set include one key value; There is no conflict between the first read-write sets, and the merging module 1205 merges multiple first read-write sets in the set of first read-write sets to obtain a final read-write set, so as to confirm that the execution of multiple transactions is correct, which may include :
  • At least one write set is sorted according to the order of multiple first read and write sets in the set of first read and write sets; determine at least one write set, the write set in the last order ; Retain the write set in the last order; traverse at least one write set corresponding to each key value in all key values, obtain the write set corresponding to each key value in all key values, and merge to obtain the final read and write set;
  • the read-write set of confirms that multiple transactions are executed without errors.
  • the present application also provides a server that integrates any blockchain-based transaction distribution and execution device provided by the embodiments of the present application, as shown in FIG. 13 , which shows the servers involved in the embodiments of the present application Schematic diagram of the structure, specifically:
  • the server may include a processor 1301 of one or more processing cores, a memory 1302 of one or more computer-readable storage media, a power supply 1303 and an input unit 1304 and other components.
  • a processor 1301 of one or more processing cores may include a processor 1301 of one or more processing cores, a memory 1302 of one or more computer-readable storage media, a power supply 1303 and an input unit 1304 and other components.
  • FIG. 13 does not constitute a limitation on the server, and may include more or less components than those shown, or combine some components, or arrange different components. in:
  • the processor 1301 is the control center of the server, uses various interfaces and lines to connect various parts of the entire server, runs or executes software programs and/or modules stored in the memory 1302, and calls data stored in the memory 1302, Perform various functions of the server and process data to monitor the server as a whole.
  • the processor 1301 may include one or more processing cores; preferably, the processor 1301 may integrate an application processor and a modem processor, wherein the application processor mainly handles the operating system, user interface, and application programs, etc. , The modem processor mainly deals with wireless communication. It can be understood that, the above-mentioned modulation and demodulation processor may not be integrated into the processor 1301.
  • the memory 1302 can be used to store software programs and modules, and the processor 1301 executes various functional applications and data processing by running the software programs and modules stored in the memory 1302 .
  • the memory 1302 may mainly include a storage program area and a storage data area, wherein the storage program area may store an operating system, an application program required for at least one function (such as a sound playback function, an image playback function, etc.), etc.; the storage data area may store data according to the Data created by the use of the server, etc.
  • memory 1302 may include high-speed random access memory, and may also include non-volatile memory, such as at least one magnetic disk storage device, flash memory device, or other volatile solid state storage device. Accordingly, memory 1302 may also include a memory controller to provide processor 1301 access to memory 1302 .
  • the server also includes a power supply 1303 for supplying power to various components.
  • the power supply 1303 can be logically connected to the processor 1301 through a power management system, so as to manage charging, discharging, and power consumption management functions through the power management system.
  • Power supply 1303 may also include one or more DC or AC power sources, recharging systems, power failure detection circuits, power converters or inverters, power status indicators, and any other components.
  • the server may also include an input unit 1304, which may be used to receive input numerical or character information and generate keyboard, mouse, joystick, optical or trackball signal input related to user settings and function control.
  • an input unit 1304 may be used to receive input numerical or character information and generate keyboard, mouse, joystick, optical or trackball signal input related to user settings and function control.
  • the server may also include a display unit, etc., which will not be described here.
  • the processor 1301 in the server loads the executable files corresponding to the processes of one or more application programs into the memory 1302 according to the following instructions, and is executed by the processor 1301 and stored in the memory 1302, so as to realize various functions, as follows:
  • Each transaction information in the multiple transaction information includes the initiator address of the current transaction, the transaction contract address of the current transaction and the transaction type of the current transaction; Divide into different shards and associate transactions in the same shard; execute multiple transactions in different shards in parallel to obtain the first read-write set corresponding to each transaction; sort the multiple first read-write sets , obtain the sorted set of the first read-write set, and perform conflict detection on the set of the first read-write set to determine whether there is a conflict between any two adjacent first-read sets in the set of the first read-write set ; If there is no conflict between multiple first read-write sets in the set of first read-write sets, then merge the multiple first read-write sets in the set of first read-write sets to obtain the final read-write set to confirm that multiple transactions were executed without errors.
  • the present application also provides a computer-readable storage medium, and the storage medium may include: a read-only memory (ROM, Read Only Memory), a random access memory (RAM, Random Access Memory), a magnetic disk or an optical disk, and the like.
  • the storage medium stores a computer program, and the computer program is loaded by the processor to execute the steps in any blockchain-based transaction distribution execution method provided by the embodiments of the present application.
  • the computer program being loaded by the processor may perform the following steps:
  • Each transaction information in the multiple transaction information includes the initiator address of the current transaction, the transaction contract address of the current transaction and the transaction type of the current transaction; Divide into different shards and associate transactions in the same shard; execute multiple transactions in different shards in parallel to obtain the first read-write set corresponding to each transaction; sort the multiple first read-write sets , obtain the sorted set of first read-write sets, and perform conflict detection on the set of first read-write sets to determine whether any two adjacent first-read sets in the set of first read-write sets conflict with each other ; If there is no conflict between multiple first read-write sets in the set of first read-write sets, then merge the multiple first read-write sets in the set of first read-write sets to obtain the final read-write set , to confirm that multiple transactions were executed without errors.

Landscapes

  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Engineering & Computer Science (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Technology Law (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Procédé et appareil d'exécution de distribution de transactions basée sur une chaîne de blocs, serveur, et support de stockage. Selon des informations telles que des adresses d'initiateurs de transactions, des adresses de contrats de transactions et des types de transactions correspondant à différentes transactions dans une chaîne de blocs, les transactions sont classifiées en différents fragments à exécuter en parallèle, assurant ainsi l'efficience de l'exécution des transactions; le processus d'exécution de transactions est enregistré en utilisant un ensemble lecture-écriture, et l'ensemble lecture-écriture est également utilisé pour éviter des transactions illégales générées dans le processus d'exécution, de sorte que la précision d'exécution des transactions est améliorée.
PCT/CN2021/139508 2020-12-31 2021-12-20 Procédé et appareil d'exécution de distribution de transactions basée sur une chaîne de blocs, serveur, et support de stockage WO2022143242A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202011636119.X 2020-12-31
CN202011636119.XA CN112669155B (zh) 2020-12-31 2020-12-31 基于区块链的交易分发执行方法、装置服务器及存储介质

Publications (1)

Publication Number Publication Date
WO2022143242A1 true WO2022143242A1 (fr) 2022-07-07

Family

ID=75413645

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/139508 WO2022143242A1 (fr) 2020-12-31 2021-12-20 Procédé et appareil d'exécution de distribution de transactions basée sur une chaîne de blocs, serveur, et support de stockage

Country Status (2)

Country Link
CN (1) CN112669155B (fr)
WO (1) WO2022143242A1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116012164A (zh) * 2023-03-17 2023-04-25 安徽中科晶格技术有限公司 基于虚拟账户的区块链跨分片交易方法

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112669155B (zh) * 2020-12-31 2024-05-03 杭州趣链科技有限公司 基于区块链的交易分发执行方法、装置服务器及存储介质
CN113157451B (zh) * 2021-04-19 2023-12-05 支付宝(杭州)信息技术有限公司 在区块链系统中执行区块的方法及装置
CN113205417B (zh) * 2021-04-27 2022-10-25 华东师范大学 一种面向联盟链的交易并行处理方法及系统
CN113743941B (zh) * 2021-11-04 2022-08-26 支付宝(杭州)信息技术有限公司 一种在区块链中执行交易的方法、区块链和主节点
CN113867709B (zh) * 2021-12-01 2022-04-12 深圳前海微众银行股份有限公司 区块链智能合约读写集构建方法及装置
CN113869902A (zh) * 2021-12-03 2021-12-31 深圳前海微众银行股份有限公司 一种区块链交易执行方法及装置
CN114022148B (zh) * 2021-12-24 2022-04-22 杭州趣链科技有限公司 基于区块链的交易冲突检测方法、装置、设备和存储介质
CN114328133A (zh) * 2022-03-16 2022-04-12 北京微芯感知科技有限公司 单机构分布式冲突检测方法、系统和存算分离架构
CN116993340A (zh) * 2022-07-08 2023-11-03 腾讯云计算(北京)有限责任公司 一种交易处理方法、装置、设备、存储介质及程序产品

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109508337A (zh) * 2018-11-12 2019-03-22 杭州秘猿科技有限公司 一种交易并行执行方法、装置、电子设备及系统
WO2020081076A1 (fr) * 2018-10-17 2020-04-23 Hewlett-Packard Development Company, L.P. Appareil et procédé de répartition dynamique de chaînes de blocs concurrentes
CN111127013A (zh) * 2019-12-24 2020-05-08 深圳大学 基于区块链的去中心化数据交易方法、装置、设备及介质
CN111294234A (zh) * 2020-01-17 2020-06-16 麦科思(苏州)数据科技有限公司 一种基于智能合约优化模型的并行区块链分片方法
CN111680050A (zh) * 2020-05-25 2020-09-18 杭州趣链科技有限公司 一种联盟链数据的分片处理方法、设备和存储介质
CN112669155A (zh) * 2020-12-31 2021-04-16 杭州趣链科技有限公司 基于区块链的交易分发执行方法、装置服务器及存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106682984B (zh) * 2016-10-27 2019-09-10 深圳壹账通智能科技有限公司 基于区块链的交易事务处理方法及系统
WO2020022958A1 (fr) * 2018-07-27 2020-01-30 Aioz Pte Ltd Procédé et appareil de vérification de transactions dans un réseau de chaînes de blocs
CN110428329A (zh) * 2019-07-01 2019-11-08 扬州腾邮大数据网络科技有限公司 一种多区块链的分片处理方法和装置
CN111736963B (zh) * 2020-06-08 2022-10-11 中国科学院计算技术研究所 一种用于无主链多分片区块链的事务处理系统及方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020081076A1 (fr) * 2018-10-17 2020-04-23 Hewlett-Packard Development Company, L.P. Appareil et procédé de répartition dynamique de chaînes de blocs concurrentes
CN109508337A (zh) * 2018-11-12 2019-03-22 杭州秘猿科技有限公司 一种交易并行执行方法、装置、电子设备及系统
CN111127013A (zh) * 2019-12-24 2020-05-08 深圳大学 基于区块链的去中心化数据交易方法、装置、设备及介质
CN111294234A (zh) * 2020-01-17 2020-06-16 麦科思(苏州)数据科技有限公司 一种基于智能合约优化模型的并行区块链分片方法
CN111680050A (zh) * 2020-05-25 2020-09-18 杭州趣链科技有限公司 一种联盟链数据的分片处理方法、设备和存储介质
CN112669155A (zh) * 2020-12-31 2021-04-16 杭州趣链科技有限公司 基于区块链的交易分发执行方法、装置服务器及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116012164A (zh) * 2023-03-17 2023-04-25 安徽中科晶格技术有限公司 基于虚拟账户的区块链跨分片交易方法

Also Published As

Publication number Publication date
CN112669155B (zh) 2024-05-03
CN112669155A (zh) 2021-04-16

Similar Documents

Publication Publication Date Title
WO2022143242A1 (fr) Procédé et appareil d'exécution de distribution de transactions basée sur une chaîne de blocs, serveur, et support de stockage
EP4254183A1 (fr) Procédé et appareil de traitement de transaction, dispositif informatique et support de stockage
CN111338766B (zh) 事务处理方法、装置、计算机设备及存储介质
CN111143389B (zh) 事务执行方法、装置、计算机设备及存储介质
CN111159252B (zh) 事务执行方法、装置、计算机设备及存储介质
CN111597015B (zh) 事务处理方法、装置、计算机设备及存储介质
US8078582B2 (en) Data change ordering in multi-log based replication
KR101959153B1 (ko) 데이터베이스에서의 계좌와 관련된 거래 요청의 효율적인 처리를 위한 시스템
EP4030287A1 (fr) Procédé et appareil de traitement de transaction, dispositif informatique et support d'enregistrement
US20100169289A1 (en) Two Phase Commit With Grid Elements
CN112162846B (zh) 事务处理方法、设备及计算机可读存储介质
WO2022048358A1 (fr) Procédé et dispositif de traitement de données et support d'enregistrement
CN109460406A (zh) 一种数据处理方法及装置
US11144536B2 (en) Systems and methods for real-time analytics detection for a transaction utilizing synchronously updated statistical aggregation data
US10997160B1 (en) Streaming committed transaction updates to a data store
WO2023124242A1 (fr) Procédé et appareil d'exécution de transaction, dispositif et support de stockage
US11940972B2 (en) Execution of operations on partitioned tables
US20170308562A1 (en) System and Method for Multi-Master Synchronous Replication Optimization
CN115422184A (zh) 一种数据获取方法、装置、设备及存储介质
CN112764935B (zh) 大数据处理方法、装置、电子设备及存储介质
CN113342897A (zh) 一种数据同步的方法及装置
CN110083438A (zh) 事务分发方法、装置、设备和存储介质
US11789922B1 (en) Admitting for performance ordered operations of atomic transactions across a distributed database
US20230421398A1 (en) System and method for inserting transactions into transaction pools
US20230107958A1 (en) Transaction processing method for database system, apparatus, electronic device, computer-readable storage medium, and computer program product

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21913983

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21913983

Country of ref document: EP

Kind code of ref document: A1