WO2023231339A1 - Procédé et nœud d'exécution de transaction dans système de chaîne de blocs, et système de chaîne de blocs - Google Patents

Procédé et nœud d'exécution de transaction dans système de chaîne de blocs, et système de chaîne de blocs Download PDF

Info

Publication number
WO2023231339A1
WO2023231339A1 PCT/CN2022/135280 CN2022135280W WO2023231339A1 WO 2023231339 A1 WO2023231339 A1 WO 2023231339A1 CN 2022135280 W CN2022135280 W CN 2022135280W WO 2023231339 A1 WO2023231339 A1 WO 2023231339A1
Authority
WO
WIPO (PCT)
Prior art keywords
transaction
node
execution
resource consumption
consumption information
Prior art date
Application number
PCT/CN2022/135280
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 WO2023231339A1 publication Critical patent/WO2023231339A1/fr

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/10Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
    • G06Q20/102Bill distribution or payments
    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/22Payment schemes or models
    • G06Q20/223Payment schemes or models based on the use of peer-to-peer networks
    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3825Use of electronic signatures
    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification

Definitions

  • the embodiments of this specification belong to the field of blockchain technology, and particularly relate to a transaction execution method, node and blockchain system in a blockchain system.
  • Blockchain is a new application model of computer technology such as distributed data storage, point-to-point transmission, consensus mechanism, and encryption algorithm.
  • data blocks are combined into a chained data structure in a chronological manner and are cryptographically guaranteed to be an untamperable and unforgeable distributed ledger. Due to the characteristics of blockchain, such as decentralization, non-tamperable information, and autonomy, blockchain has also received more and more attention and applications.
  • the purpose of the present invention is to provide a transaction execution method, node and blockchain system in a blockchain system.
  • a transaction execution method in a blockchain system includes a first node and a second node, and the method is executed by the first node.
  • the method includes: pre-executing the first transaction in a trusted execution environment (TEE), obtaining resource consumption information and a pre-execution read-write set generated based on the resource consumption information; Consumption information generates trusted data; sends the trusted data and the pre-execution read and write set to the second node.
  • TEE trusted execution environment
  • a transaction execution method in a blockchain system includes a first node and a second node, and the method is executed by the first node.
  • the method includes: receiving trusted data and a pre-execution read-write set of the first transaction from the first node, the trusted data being generated by the first node based on the resource consumption information of the first transaction in its TEE, so The resource consumption information and the pre-execution read and write are obtained by pre-executing the first transaction in its TEE by the first node; executing the first transaction based on the resource consumption information, obtaining the The execution read-write set of the first transaction; determine whether the first node does evil in the process of pre-executing the first transaction based on the execution read-write set and the pre-execution read-write set, and if not, the execution The execution write set of the read and write set serves as the status data of the first transaction.
  • a first node in a blockchain system is provided, and the blockchain system further includes a second node.
  • the first node includes: a pre-execution process, deployed in the TEE of the first node, configured to pre-execute the first transaction, obtain resource consumption information and a pre-execution read-write set generated based on the resource consumption information; and Configured to generate trusted data based on the resource consumption information in the TEE; a network process configured to send the trusted data and the pre-execution read-write set to the second node.
  • a second node in a blockchain system is provided, and the blockchain system further includes a first node.
  • the second node includes: a network process configured to receive trusted data from the first node and a pre-execution read-write set of the first transaction, the trusted data being generated by the first node in its TEE based on the first transaction.
  • the resource consumption information of a transaction is generated, and the resource consumption information and the pre-execution read and write are obtained by the first node pre-executing the first transaction in its TEE; the calculation process is configured to be based on the Execute the first transaction using the resource consumption information to obtain the execution read-write set of the first transaction; and be configured to determine the pre-execution read-write set of the first node based on the execution read-write set and the pre-execution read-write set. Whether evil is committed during the execution of the first transaction, if not, use the execution write set of the execution read and write set as the status data of the first transaction.
  • the fifth aspect provides a blockchain system including a first node and a second node.
  • the first node is used to pre-execute the first transaction in the trusted execution environment TEE, obtain resource consumption information and a pre-execution read-write set generated based on the resource consumption information; in the TEE based on the resource Consumption information generates trusted data; sends the trusted data and the pre-execution read and write set to the second node; the second node is used to execute the first transaction based on the resource consumption information, and obtain The execution read-write set of the first transaction; determine whether the first node does evil during the process of pre-executing the first transaction according to the execution read-write set and the pre-execution read-write set. If not, all The execution write set of the execution read and write set is used as the status data of the first transaction.
  • the second node does not need to calculate the resource consumption information of the transaction again, but uses the resource consumption information of the transaction from the first node to execute the transaction, that is, using the resource consumption information of the transaction from the first node.
  • the resource consumption information of the transaction generates the execution write set of the transaction.
  • the execution write set of the transaction can be used as the status data of the transaction. and complete the execution of the transaction. In this way, the second node can complete the execution of the transaction more quickly because it does not need to calculate the resource consumption information of the transaction again.
  • Figure 1 is a schematic diagram of a blockchain system provided as an example in the embodiment of this specification.
  • Figure 2 is a schematic structural diagram of blockchain data storage provided as an example in the embodiment of this specification.
  • Figure 3 is a schematic structural diagram of any two nodes in the blockchain system provided as an example in the embodiment of this specification;
  • Figure 4 is a flow chart of a transaction execution method provided in the embodiment of this specification.
  • Figure 5 is one of the structural schematic diagrams of a blockchain node provided in the embodiment of this specification.
  • Figure 6 is the second structural schematic diagram of a blockchain node provided in the embodiment of this specification.
  • FIG. 1 is a schematic diagram of an exemplary blockchain system provided in the embodiment of this specification.
  • the blockchain system is a distributed network established through multiple nodes (Node), which includes communication between any two nodes at the application layer through a peer-to-peer (P2P) network. Connection, for example, any two nodes among the nodes n1 to n5 contained therein can realize communication connection at the application layer through the P2P network.
  • the blockchain system uses a decentralized (or multi-centered) distributed ledger constructed by a chain block structure, which is stored on each node (or most nodes, such as consensus) in the distributed blockchain network.
  • each node of the blockchain system runs a blockchain program.
  • the consensus mechanism is used to ensure that all loyal nodes have the same transactions, thereby ensuring that all loyal nodes have the same If the execution results of the transaction are consistent, the transaction is packaged into blocks and the world state is updated based on the execution results of the same transaction.
  • the current mainstream consensus mechanisms include but are not limited to: Proof of Work (POW), Proof of Stake (POS), Practical Byzantine Fault Tolerance (PBFT) algorithm, Honey Badger Byzantine Fault Tolerance ( HoneyBadgerBFT) algorithm and so on.
  • POW Proof of Work
  • POS Proof of Stake
  • PBFT Practical Byzantine Fault Tolerance
  • HoneyBadgerBFT Honey Badger Byzantine Fault Tolerance
  • Accounts in the blockchain system are usually divided into two types: user account/externally owned account (Externally owned account) and contract account (contract account); the contract account is used to store smart contract code and the values of related states in the smart contract code. , which can usually only be activated by calling an external account.
  • the design of external accounts and contract accounts is actually the mapping of account addresses to account status.
  • the status of an account can usually include, but is not limited to, nonce, balance, storage_Root, codeHash and other fields. Nonce and balance exist in both external accounts and contract accounts, while the codeHash and storage_Root attributes are usually only valid on contract accounts. Among the aforementioned fields, nonce represents the counter.
  • For external accounts it represents the number of transactions sent from the account address; for contract accounts, it represents the number of contracts created by the account.
  • Balance represents the number of digital resources owned by the corresponding external account.
  • storage_Root represents the hash of the root node of an MPT (Merkle Patricia Tree) tree. The MPT is used to organize the storage of state variables of contract accounts.
  • codeHash represents the hash value of the smart contract code.
  • contract accounts it is the hashed and stored code of the smart contract.
  • For external accounts it does not include smart contracts, so it can be an empty string/all 0 characters. string.
  • MPT is a tree structure that combines Merkle Tree (Merkle Tree) and Patricia Tree (Compressed Prefix Tree, a more space-saving Trie tree, dictionary tree).
  • Merkle Tree the Merkle tree algorithm calculates a Hash value for each transaction, and then connects the two to calculate the Hash again, all the way to the top-level Merkle root.
  • Ethereum uses an improved MPT tree, such as a 16-fork tree structure, which is often referred to as an MPT tree.
  • the data structure of the Ethereum MPT tree includes a state trie.
  • the state tree contains the key and value pair corresponding to the storage content of each account in Ethereum.
  • the "key" in the state tree can be a 160bits identifier (the address of an Ethereum account).
  • This account address is distributed in the storage starting from the root node of the state tree to the leaf nodes.
  • the "values" in the state tree are generated by encoding the Ethereum account information (using the Recursive-Length Prefix encoding (RLP) method).
  • RLP Recursive-Length Prefix encoding
  • the values include nonce and balance; for contract accounts, the values include nonce, balance, codehash, storage_Root, etc.
  • Contract accounts are used to store status related to smart contracts. After the smart contract is deployed in the blockchain system, a corresponding contract account will be generated. This contract account generally has some states, which are defined by the state variables in the smart contract and generate new values when the smart contract is created and executed.
  • the smart contract usually refers to a contract defined in digital form in a blockchain environment that can automatically execute terms. Once an event triggers a clause in the contract (execution conditions are met), the code can be executed automatically.
  • the relevant status of the contract is stored in the storage trie, and the hash value of the root node of the storage tree is stored in the above-mentioned storage_Root, thereby locking all the status of the contract to the contract account through hash.
  • the storage tree is also an MPT tree structure, which stores the key-value mapping from state addresses to state values.
  • the address of a state is stored from the root node of the storage tree to the leaf nodes, and the value of a state is stored in a leaf node.
  • the block header of a single block can include several fields, such as the previous block hash previous_Hash (PrevHash in the figure, or called the parent hash), the random number Nonce (in some blockchain systems This Nonce is not a random number, or the Nonce in the block header is not enabled in some blockchain systems), timestamp Timestamp, block number BlockNum, state root hash State_Root, transaction root hash Transaction_Root, receipt root hash Receipt_Root, etc. .
  • the PrevHash in the block header of the next block (such as block N+1) points to the previous block (such as block N), which is the hash value of the previous block.
  • state_root is the hash value of the root of the MPT tree composed of the status of all accounts in the current block, that is, the point pointing to state_root is a state tree in the form of MPT.
  • the root node of this MPT tree can be an extension node (Extension Node) or a branch node (Branch Node).
  • Extension Node Extension Node
  • Branch Node branch node
  • What is stored in state_root is generally the hash value of this root node.
  • a part of the value of each node from the root node of this MPT to the leaf node can be concatenated in order to form an account address and serve as a key.
  • the account information stored in the leaf node is the value corresponding to the account address, thus forming a key-value Key-value pairs.
  • the key can be sha3 (Address), which is the hash value of the account address (the hash algorithm uses the sha3 algorithm, for example), and its stored value value can be rlp (Account), which is the rlp encoding of the account information.
  • the account information can be a four-tuple consisting of [nonce, balance, storage_root, codeHash]. As mentioned before, for external accounts, there are generally only two items, nonce and balance, and the storage_root and codeHash fields store empty strings/all 0 strings by default. For contract accounts, contract accounts can include nonce, balance, storage_root, codeHash, etc.
  • Leaf Node From the extension node/branch node of the root node to the leaf node of each account, there may be several branch nodes and extension nodes in the middle.
  • this storage_Root points to another tree in the form of MPT, which stores the data of state variables involved in contract execution.
  • the tree in MPT form pointed to by this storage_Root is a storage tree, that is, the hash value of the root node of the storage tree.
  • this storage tree also stores key-value pairs.
  • a part of the data stored on the path from the root node to the leaf node is connected to form the key, and the value is stored in the leaf node.
  • this storage tree can also be a tree in the form of MPT, which can generally be a 16-fork tree, that is, for a branch node, it can have up to 16 child nodes, which may include extension nodes and/or leaf nodes.
  • For an extension node it generally can have one child node, which can be a branch node.
  • This storage tree can be up to 64 levels deep.
  • the status data generated after nodes in the blockchain system complete the execution of multiple transactions belonging to a certain block may include Contract status data related to the storage trie and world state data related to the state trie. Therefore, when a node submits state data, it usually needs to submit the contract state data first to obtain the storage_root of the contract account, then update the storage_root of the relevant contract account in the state trie, and submit the obtained world state data to obtain the state_root of the state tree.
  • Figure 3 is a schematic structural diagram of any two nodes (for example, node n1 as the master node/second node and node n2 as the slave node/first node) in the blockchain system provided as an example in the embodiment of this specification. Both node n1 and node n2 can run multiple processes to provide multiple services. For example, as shown in Figure 3, node n1 and node n2 can each run access processes for providing access services and caching services.
  • the process refers to a running activity of a program with certain independent functions in the application on a data collection. That is, a process is a process in the computer that is carried out by the CPU sequentially executing instructions in the application program, and each process is created when it is created. Allocate its own memory address space.
  • the multiple processes in node n1 may be multiple processes in multiple computing devices or virtual computing nodes, and the multiple processes in node n2 may be multiple processes in multiple computing devices or virtual computing nodes.
  • the solutions provided by the embodiments of this specification are not limited to the master-slave architecture blockchain system.
  • the access process can be used to receive transactions from the user device, and then the access process calls the cache process to add the received transactions to the pending transaction queue for caching.
  • the pre-execution process of node n2 can call the cache process to read its cached transactions in order from the pending transaction queue and verify the transaction, such as verifying the signature of the user device on the transaction and sending the verified transaction Returned to the cache process.
  • node n2 can broadcast the verified transactions stored in its cache process to the network processes of other nodes through its network process; furthermore, the transactions from node n2 received by node n1 through its network process can be added to the waiting list by its cache process cache. in the transaction queue for processing. Therefore, the pending transaction queue cached by the cache process of node n1 through its memory includes not only transactions received through its access process, but also transactions received from other nodes through its network process.
  • the pre-execution process of node n1 can also call the cache process to sequentially read its cached transactions from the pending transaction queue, and at least verify transactions from user devices connected to node n1.
  • the pre-execution process of node n2 can also pre-execute the transactions it receives in sequence from the cache process to obtain the pre-execution information of the transaction.
  • the pre-execution information includes, for example, the pre-execution read set, the pre-execution write set and the execution of the transaction.
  • the amount of digital resources/computing resources that need to be consumed i.e. resource consumption information).
  • the pre-execution process of node n1 can also return the pre-execution information of this batch of transactions to the cache process after each completion of the pre-execution of a batch of transactions, so that it can be cached in the transaction queue to be agreed upon. It should be noted that part of the status data can also be cached in the memory of the cache process of node n1; for any transaction pre-executed by the pre-execution process of node n1, during the process of pre-execution of any transaction , the pre-execution process can first call the cache process to query whether its cached status data includes the status value of any variable to be read. If so, obtain the status value of the arbitrary variable returned by the cache process.
  • the pre-execution process can Call the stored procedure to query the state value of this arbitrary variable from the state data submitted to the state database.
  • its cache process can also update the cache based on the pre-execution read and write set it receives. Process cached state data.
  • the pre-execution process can sequentially read transactions from the pending transaction queue cached by the cache process and pre-execute them, the cache process can also pre-execute them based on its cached pending transactions.
  • the queue caches in its memory the pre-execution order of multiple transactions pre-executed by the pre-execution process.
  • the pre-execution read set contains several unique keys (keys), and also includes the key values (values) corresponding to each of the aforementioned keys read from the submitted world state.
  • the pre-execution write set also contains a number of unique keys (keys), as well as the key values (values) corresponding to each of the aforementioned keys that are expected to be submitted; in addition, if a transaction deletes a certain key in the world state, the pre-execution write set will Executing the write set will also record the corresponding mark for the deleted key.
  • the pre-executed transaction is a contract call transaction used to call a smart contract
  • its pre-execution read and write set may not only contain state parameters related to external accounts, but may also involve contracts related to the smart contract. Several contract parameters related to the status.
  • node n1 sequentially pre-executes transactions Tx1 ⁇ transaction Tx5.
  • transactions Tx1 and transaction Tx2 are contract call transactions for calling smart contract C1 initiated by external account A1 and external account A2 respectively.
  • smart contract C1 corresponds to contract account B1;
  • transaction Tx3 is a transfer transaction initiated by external account A1 and directed to external account A3
  • transaction Tx4 is a transfer transaction initiated by external account A4 and directed to external account A5
  • transaction Tx5 is an external account A transfer transaction initiated by A6 to external account A7.
  • Node n1 pre-executes transactions Tx1 to Tx5 through its pre-execution process, and may obtain the respective pre-execution information of transactions Tx1 to Tx5 as shown in Table 1 below.
  • k1 represents the key of the balance of the external account A1
  • k2 represents the key of a certain state parameter under the contract account B1
  • k3 represents the key of the balance of the external account A2
  • k4 represents the contract.
  • the key of a certain state parameter under account B1, k5 ⁇ k9 in turn represent the keys of the balance under external account A3 ⁇ external account A7.
  • v11, v12, v13 and v21 ⁇ v92 respectively represent the values of their corresponding keys. It should be noted that since transaction Tx3 is executed after transaction Tx1, the value of k1 in the pre-execution read set of transaction Tx3 is the value of k1 in the pre-execution write set of transaction Tx1.
  • the consensus process of node n1 can call its cache process to sequentially read multiple transactions and their related data from the transaction queue to be agreed upon to generate a consensus proposal, where the consensus proposal can include, for example, the corresponding predetermined data of the multiple transactions.
  • Execution information, the consensus order of the multiple transactions (the consensus order of the multiple transactions is the same as the pre-execution order of the multiple transactions), and the multiple transactions or the respective instruction information of the multiple transactions (for example, the multiple transactions their respective summary values).
  • the conditions for the consensus process of node n1 to call its cache process may include but are not limited to calling the cache process according to a fixed time step, calling the cache process when the amount of transaction data cached by the cache process reaches a predetermined size, or The cache process is called when a predetermined number of pre-executed transactions cached by the cache process reaches a predetermined number, and so on.
  • the consensus process of node n1 can also send consensus proposals to the respective network processes of other nodes (such as node n2) participating in consensus on the consensus proposal through its network process, so as to communicate with the respective consensus processes of other nodes through its consensus process.
  • the consensus proposals it generates are subject to consensus.
  • node n1 can also calculate the grouping information corresponding to the multiple transactions based on the pre-execution information of each of the multiple transactions indicated by the consensus proposal, and carry the grouping information in the consensus proposal in order to participate in the consensus proposal.
  • Other nodes that propose consensus can group the aforementioned multiple transactions based on this grouping information.
  • the control process submits part or all of the pre-execution information of each of the aforementioned multiple transactions to the storage service as the state data of the corresponding block, and then obtains the state root used to generate the corresponding block and generates a state root containing the state root and the aforementioned multiple Transaction block.
  • node n2 may, during the process of consensus on the consensus proposal generated by node n1, or after reaching consensus on the consensus proposal generated by node n1, read the aforementioned plurality of consensus proposals from the consensus proposal through its consensus process and/or control process. Pre-execution information of each transaction, and then group the multiple transactions based on the pre-execution information of each transaction to obtain M transaction groups (M is greater than 1); or read the grouping of the aforementioned multiple transactions from the consensus proposal information and group the aforementioned multiple transactions based on the grouping information to obtain M transaction groups.
  • the consensus process of node n2 can calculate the grouping information based on the pre-execution information of each of the aforementioned multiple transactions, and send the grouping information, the aforementioned multiple transactions and their respective corresponding pre-execution read and write sets to the node n2. control process; then the control process of node n2 divides the aforementioned multiple transactions into M transaction groups based on the grouping information, and the control process of node n2 performs task scheduling on the N computing processes in node n2.
  • any two transactions in any two transaction groups do not conflict with each other. Any two transactions do not conflict with each other. Specifically, any two transactions do not have one of the following situations: the pre-execution read set of one transaction and the pre-execution write set of another transaction include the same key, the pre-execution write set of one transaction and Another transaction's pre-execution write set includes the same key. For any two transactions that conflict, they need to be divided into the same transaction group. In other words, if the pre-execution write sets of any two transactions contain the same key, it is considered that any two transactions Conflict transactions access the same parameters and conflict exists.
  • any two transactions need to be divided into the same transaction group; if the pre-execution read set of one of the two transactions is included in the pre-execution write set of the other transaction,
  • the same key means that any two transactions are considered to have accessed the same parameters and there is a conflict.
  • the any two transactions need to be divided into the same transaction group.
  • the aforementioned multiple transactions can be divided into M transaction groups. Usually, the grouping information can be determined according to the location of any two different transactions.
  • the aforementioned multiple transactions are grouped by the requirement that any two transactions in the group do not access the same parameters (that is, do not contain the same key).
  • the grouping situation may include, for example: transaction Tx1 and transaction Tx3 are divided into transaction group 1, transaction Tx2 is divided into transaction group 2, and transaction Tx4 and transaction Tx5 are divided respectively. Go to transaction group 3 and transaction group 4.
  • node n2 can be grouped into M transactions and execute multiple transactions in the M transaction groups in parallel through the N computing processes it runs.
  • the execution of the transaction requires consuming the computing resources of the node.
  • the node may need to execute a large number of instructions during the execution of the transaction. Therefore, it is usually necessary to execute the transaction based on the transaction.
  • the consumption instructions or the data volume of the transaction are used to count the resource consumption information of the transaction, and then the execution of the transaction is completed based on the resource consumption information. For example, the balance field of the external account that initiated the transaction is modified to modify the digital resources held by it. quantity. Calculating the resource consumption information of the transaction during the execution of the transaction will undoubtedly increase the execution time of the transaction, causing the calculation process to be unable to quickly complete the execution of the transaction.
  • FIG 4 is a flow chart of a transaction execution method in a blockchain system provided in the embodiment of this specification.
  • This method specifically involves any first node (such as node n1 as the master node) and second node (such as the node n2 as the slave node) in the blockchain system.
  • the first node and the second node can each be implemented as any A device, platform, device or cluster of devices with computing/processing capabilities.
  • the transaction execution process in the blockchain system will be described in detail, mainly taking node n1 and node n2 to cooperate to complete the execution of the transaction as an example.
  • the method may include but is not limited to the following steps 41 to 49.
  • Step 41 Node n1 pre-executes the first transaction in its TEE, and obtains resource consumption information and a pre-execution read-write set generated based on the resource consumption information.
  • the aforementioned first transaction is, for example, any transaction received by node n1 through its access process or network process.
  • the resource consumption information of the first transaction is calculated based on the data volume of the first transaction during the process of node n1 pre-executing the first transaction, or based on the first transaction during the process of node n1 pre-executing the first transaction. Calculated from the instructions consumed.
  • the pre-execution process of node n1 can run in its TEE, and other processes such as its access process and network process can run outside its TEE.
  • the pre-execution process running in the TEE can call the cache process outside the TEE to read its cached transactions in order from the pending transaction queue, and pre-execute the read transactions to obtain the required consumption of the transaction.
  • the number of digital resources that is, resource consumption information
  • the pre-execution write set of the pre-execution read-write set can usually include the status value of a certain status parameter calculated based on the resource consumption.
  • the status parameter is, for example, the balance of the external account that initiated the transaction.
  • a contract call transaction initiated by an external account to call a smart contract such as the aforementioned transaction Tx1 initiated by an external account A1 to call a smart contract C
  • its pre-execution read set includes the balace of the external account A1
  • the status value v11 also includes the status value v21 of a certain contract parameter in smart contract C1.
  • the virtual machine will also calculate the number of digital resources that it needs to consume for each instruction consumed by executing the aforementioned smart contract C1, and then after completing the execution of smart contract C1, it will obtain the The amount of digital resources consumed is the resource consumption information gas1 of transaction Tx1.
  • the pre-execution process located in the TTE can also calculate the status value v12 of k1 expected to be written in the pre-execution write set based on gas1 and the status value v11 of k1 in the pre-execution read set, that is, calculate the balance status of external account A1 Value v12.
  • the resource consumption information gas2 of transaction Tx3 can be calculated based on the data volume of transaction Tx3. Furthermore, the pre-execution process located in the TEE can calculate the status value v13 of the balance of the external account A1 based on the number of digital resources actually transferred by gas2 and Tx3.
  • Step 43 Node n1 generates trusted data based on resource consumption information in its TEE.
  • the trusted data is the ciphertext obtained by encrypting the resource consumption information, or the trusted data includes the resource consumption information and the signature of the resource consumption information.
  • the pre-execution process located in the TEE After the pre-execution process located in the TEE completes the pre-execution of the first transaction and generates the trusted data of the first transaction, it can also return the first transaction, the pre-execution read-write set of the first transaction and the trusted data to Cache process to cache into the transaction queue waiting for consensus.
  • the pre-execution process located in the TEE can sequentially read transactions from the pending transaction queue cached by the cache process and pre-execute them. Therefore, as mentioned above, the cache process can also perform pre-execution based on its cached pending transaction queue.
  • the transaction queue corresponds to the cache of the pre-execution sequence of multiple transactions pre-executed by the pre-execution process located in the TEE.
  • Step 45 Node n1 sends trusted data and pre-execution read and write sets to node n2.
  • Node n1 may send the trusted data of the first transaction and the pre-execution read-write set to node n2 during its consensus with node n2 on the consensus proposal generated by node n1 and sent to node n2.
  • the consensus process of node n1 can generate a consensus proposal for multiple transactions cached in the transaction queue to be agreed upon.
  • the consensus proposal can include the credible data of each of the multiple transactions and the pre-execution reads of each of the multiple transactions.
  • the consensus proposal may also include the multiple transactions or the respective indication information of the multiple transactions (such as the respective hash values of the multiple transactions).
  • the first transaction can be any one of the multiple transactions included or indicated in the consensus proposal. Therefore, node n2 can obtain the corresponding value of the first transaction from the consensus proposal from node n1. Trusted data and its pre-execution read and write sets.
  • node n2 can decrypt the trusted data to obtain the resource consumption information of the first transaction, and then perform subsequent step 47 based on the resource consumption information.
  • the trusted data includes resource consumption information and the signature of node n1 on the resource consumption information in its TEE
  • node n2 can also verify the signature in the trusted data, and only continue to perform subsequent steps 47 when the signature passes the verification.
  • node n2 can also have a TEE.
  • node n2 can process trusted data in its TEE, such as decrypting trusted data in the TEE or decrypting the trusted data in the TEE. Signature is verified.
  • Step 47 Node n2 executes the first transaction based on the resource consumption information and obtains the execution read-write set.
  • node n2 can, for example, through its control process, divide the multiple transactions into M transactions based on their respective pre-execution read and write sets. Grouping, where the value of M is not less than the number N of computing processes running on node n2, and the pre-execution read and write sets of some of the multiple transactions may also involve several contract parameters related to one or more smart contracts. .
  • node n2 can determine the computing processes corresponding to each of the M transaction groups, and then, for example, distribute the M transaction groups to the N computing processes it runs through its control process; for any of the M transaction groups Two transaction groups, if any two transactions in any two groups involve the same smart contract, for example, any two transaction requests in any two transaction groups call the same smart contract, then any two transaction groups need The controlled process is sent to the same computing process, so that the N computing processes of node n2 can submit in parallel the status data they each obtained after completing the execution of the transactions in each transaction group they received, thereby accelerating the processing of the multiple transactions.
  • Block generation For example, please continue to refer to the grouping of transactions Tx1 ⁇ transaction Tx5 in the previous example.
  • the control process of node n2 can, for example, send two transaction packets such as transaction group 1 and transaction group 2 to the calculation process 1 of node n2, send transaction group 3 to calculation process 2, and send transaction group 4 to calculation process 3.
  • the calculation process 1 to the calculation process 3 are caused to execute the transactions in the transaction groups they respectively received in parallel, and to submit in parallel the status data obtained by each of them after completing the execution of the transactions in each transaction group they received.
  • the computing process can serially execute the transactions in each transaction group it receives.
  • the computing process 1 can sequentially execute the transactions Tx1, transaction Tx2, and transaction Tx3 in the transaction group 1 and transaction group 2 it receives through a single worker thread.
  • the computing process can concurrently execute the transactions in each transaction group it receives through multiple threads in order to complete the execution of the transactions in each transaction group it receives more quickly; for example, computing process 1 can concurrently run worker thread 1 and work Thread 2 sequentially executes the transaction Tx1 and transaction Tx2 in the transaction group 1 it receives through the working thread 1, and executes the transaction Tx3 in the transaction group 2 it receives through the working thread 2.
  • the computing process can collect the status data obtained by executing the transactions in each transaction group it receives through the same storage object; for example, the computing process 1 can collect the transaction Tx1 it executes through the same storage object.
  • any computing process of node n2 does not need to calculate the resource consumption information of the transaction again, but can directly use the transaction from node n1
  • the resource consumption information of the transaction is used to execute the transaction, and the execution read-write set of the transaction is obtained. More specifically, the resource consumption information of the transaction from node n1 is used to generate the execution write set of the transaction during the execution of the transaction.
  • the computing process 1 of node n2 only needs to read k2 during the process of executing the smart contract C1 requested by the transaction Tx1 through its virtual machine.
  • the state value v21 of k2 corresponds to the state value v22 of k2.
  • Resource consumption information gas1 of Tx1 can directly use the resource consumption information gas1 from node n1, and calculate the status value v12 of k1 expected to be written in the execution write set of transaction Tx1 with the status value v11 of k1 read, that is Calculate the status value v12 of the balance of the external account A1, and then generate an execution write set containing the key-value pair k1-v12 and the key-value pair k2-v22.
  • the key-value pair k2-v22 in the write set may be used as computing process 1 to execute transaction Tx1 to obtain the contract status data of smart contract C1/contract account B1, while the key-value pair k1-v12 may be used as computing process 1 to execute transaction Tx1 to obtain the contract status data of smart contract C1/contract account B1. Obtained world state data. It should be noted that the status data of transaction Tx1 may be used by other transactions executed later in the calculation process 1. For example, the status value of k1 read by transaction Tx3 executed later should be v12 instead of v11.
  • the virtual machine used to execute the smart contract in the computing process can have the function of choosing whether to turn on computing resource consumption information according to the user's needs. If you choose to turn on this function, the During the specific execution of a transaction, the virtual machine can calculate the resource consumption information of the transaction based on the instructions consumed for executing the transaction. Since node n2 obtains the resource consumption information of the first transaction based on the trusted data from node n1, the computing process used to execute the first transaction can choose to turn off this function to complete the execution of the first transaction more quickly.
  • calculation process 1 of node n2 does not need to calculate the transaction based on the data volume of transaction Tx3 Resource consumption information gas2 of Tx3; calculation process 1 can calculate the balance of external account A1 based on the read status value v12 of k1, the resource consumption information gas2 of transaction Tx3 from node n1 and the number of digital resources actually transferred by Tx3 Status value v13, for example, after reading the status value v12 of the balance field of external account A1, subtract gas2 and the number of digital resources actually transferred by external account A1 to external account A2 through transaction Tx3 from the status value v12 to obtain The status value v13 of the balance of external account A1 is obtained, and the execution write set containing the key-value pair k1-v13 is obtained, and the execution write set containing the key-value pair k1-v13 may be used as the status
  • Step 49 Node n2 verifies whether node n1 did evil during the pre-execution of the first transaction based on the execution read-write set and the pre-execution read-write set. If not, the execution read-write set of the execution read-write set will be used as the status data of the first transaction.
  • node n2 After the computing process of node n2 completes the execution of any transaction (i.e., the first transaction) in each transaction group it receives, it can correspondingly obtain the execution read-write set of the first transaction, and further can determine the execution of the first transaction. Whether the read-write set is consistent with the pre-execution read-write set of the first transaction. When the execution read-write set is consistent with its pre-execution read-write set, the computing process can use the execution write set of the first transaction as the status data of the first transaction, so that the status data can be subsequently submitted to complete the transaction. Execution of the first transaction.
  • the execution read-write set of the first transaction is inconsistent with its pre-execution read-write set, it means that node n1 may do evil during the execution of the first transaction.
  • Wrong status data is provided to the TEE; at this time, the corresponding mechanism can be used to trigger the replacement of the master node of the blockchain system, and then the execution of the aforementioned multiple transactions including the first transaction can be reinitiated through a process similar to the above.
  • the status data obtained by each of the N computing processes will not involve the contract status data of the same smart contract/contract account, so the N computing processes of node n2 can Submit their respective status data in parallel without affecting each other. More specifically, if the state data obtained by the calculation process only includes world state data related to the state tree, it can directly submit the world state data it obtained; if the state data obtained by the calculation process contains both world state data and involves at least one contract status data of a smart contract, the computing process needs to first submit the contract status data of at least one smart contract it has obtained, for example, send the contract status data it obtains to the storage process, and the storage process updates the at least one smart contract accordingly.
  • the contract state tree (i.e., the aforementioned storage tree) obtains the respective storage roots of the at least one smart contract; and then merges and submits the respective storage roots of the at least one smart contract and the world state data obtained by the calculation process to the storage process, so that the storage process updates accordingly State parameters in the state tree.
  • control process can also call the storage process to submit the updated status tree and each storage tree to obtain the The state root of the corresponding block is then used by the control process to generate the corresponding block based on the state root and the aforementioned multiple transactions.
  • node n2 during the process of executing a transaction, node n2 does not need to calculate the resource consumption information of the transaction again, but uses the resource consumption information of the transaction from node n1 to execute the transaction, that is, using the resource consumption information of the transaction from node n1.
  • the resource consumption information of the transaction generates the execution write set of the transaction.
  • the execution write set of the transaction can be used as the status data of the transaction. Complete execution of the transaction. In this way, node n2 can complete the execution of the transaction more quickly because it does not need to calculate the resource consumption information of the transaction again.
  • the embodiments of this specification also provide a first node in a blockchain system, and the blockchain system further includes a second node.
  • the first node includes: a pre-execution process 52, deployed in the TEE of the first node, configured to pre-execute the first transaction, obtain resource consumption information and generate the resource consumption information based on the resource consumption information. Pre-execution read and write set; and configured to generate trusted data based on the resource consumption information in the TEE; network process 54, configured to send the trusted data and the pre-executed read and write to the second node set.
  • the embodiments of this specification also provide a second node in a blockchain system, and the blockchain system further includes a first node.
  • the second node includes: a network process 62 configured to receive trusted data and a pre-execution read-write set of the first transaction from the first node, the trusted data being provided by the first node.
  • the node generates resource consumption information based on the first transaction in its TEE, and the resource consumption information and the pre-execution read and write are obtained by the first node pre-executing the first transaction in its TEE;
  • the computing process 64 is configured to execute the first transaction based on the resource consumption information and obtain the execution read-write set of the first transaction; and, is configured to execute the read-write set based on the execution read-write set and the pre-execution read-write set. Determine whether the first node does evil in the process of pre-executing the first transaction, and if not, use the execution write set of the execution read and write set as the status data of the first transaction.
  • the embodiments of this specification also provide a blockchain system.
  • the blockchain system includes a first node and a second node.
  • the first node and the second node Nodes are any two blockchain nodes in the blockchain system.
  • the first node is used to pre-execute the first transaction in the trusted execution environment TEE, obtain resource consumption information and a pre-execution read-write set generated based on the resource consumption information; in the TEE based on the resource Consumption information generates trusted data; sends the trusted data and the pre-execution read and write set to the second node; the second node is used to execute the first transaction based on the resource consumption information, and obtain The execution read-write set of the first transaction; determine whether the first node does evil during the process of pre-executing the first transaction according to the execution read-write set and the pre-execution read-write set. If not, all The execution write set of the execution read and write set is used as the status data of the first transaction.
  • the first transaction is used to call a smart contract; the first node is used to execute the smart contract based on the first transaction in the TEE to obtain the resource consumption information .
  • the resource consumption information is calculated based on the data amount of the first transaction.
  • the trusted data is obtained by encrypting the resource consumption information; the second node is also used to decrypt the trusted data to obtain the resource consumption information.
  • the trusted data includes the resource consumption information and a signature corresponding to the resource consumption information; the second node is also used to verify the signature.
  • the first transaction is any one of multiple transactions included or indicated in the consensus proposal sent by the first node to the second node; the second node It is also used to divide the multiple transactions into M transaction groups according to their respective pre-execution read and write sets, and determine the calculation processes corresponding to each of the M transaction groups.
  • the second node is specifically configured to execute each transaction in each corresponding transaction group based on the respective resource consumption information of each transaction in each corresponding transaction group through the calculation process, and obtain each corresponding transaction.
  • Each transaction in the group has its own set of execution reads and writes.
  • the trusted data and the pre-execution read-write set are located in a consensus proposal sent by the first node to the second node, and the consensus proposal also includes the third A transaction or instruction information indicating the first transaction.
  • These computer program instructions may also be stored in a computer-readable memory that causes a computer or other programmable data processing apparatus to operate in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including the instruction means, the instructions
  • the device implements the functions specified in a process or processes of the flowchart and/or a block or blocks of the block diagram.
  • These computer program instructions may also be loaded onto a computer or other programmable data processing device, causing a series of operating steps to be performed on the computer or other programmable device to produce computer-implemented processing, thereby executing on the computer or other programmable device.
  • Instructions provide steps for implementing the functions specified in a process or processes of a flowchart diagram and/or a block or blocks of a block diagram.
  • a computing device includes one or more processors (CPUs), input/output interfaces, network interfaces, and memory.
  • processors CPUs
  • input/output interfaces network interfaces
  • memory volatile and non-volatile memory
  • Memory may include non-permanent storage in computer-readable media, random access memory (RAM) and/or non-volatile memory in the form of read-only memory (ROM) or flash memory (flash RAM). Memory is an example of computer-readable media.
  • RAM random access memory
  • ROM read-only memory
  • flash RAM flash random access memory
  • Computer-readable media includes both persistent and non-volatile, removable and non-removable media that can be implemented by any method or technology for storage of information.
  • Information may be computer-readable instructions, data structures, modules of programs, or other data.
  • Examples of computer storage media 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), and read-only memory.
  • PRAM phase change memory
  • SRAM static random access memory
  • DRAM dynamic random access memory
  • RAM random access memory
  • read-only memory read-only memory
  • ROM read-only memory
  • EEPROM electrically erasable programmable read-only memory
  • flash memory or other memory technology
  • compact disc read-only memory CD-ROM
  • DVD digital versatile disc
  • Magnetic tape magnetic tape storage, graphene storage or other magnetic storage devices or any other non-transmission medium can be used to store information that can be accessed by a computing device.
  • computer-readable media does not include transitory media, such as modulated data signals and carrier waves.
  • 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 that combines software and hardware aspects. Furthermore, one or more embodiments of the present description may employ a computer program implemented 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. Product form.
  • computer-usable storage media including, but not limited to, disk storage, CD-ROM, optical storage, etc.
  • program modules include routines, programs, objects, components, data structures, etc. that perform specific tasks or implement specific abstract data types.
  • program modules may also be practiced in distributed computing environments where tasks are performed by remote processing devices connected through a communications network.
  • program modules may be located in both local and remote computer storage media including storage devices.

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Finance (AREA)
  • Software Systems (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

L'invention concerne un procédé d'exécution de transaction et un nœud dans un système de chaîne de blocs, ainsi qu'un système de chaîne de blocs. Un premier nœud dans un système de chaîne de blocs pré-exécute une première transaction dans un environnement d'exécution de confiance (TEE) pour obtenir des informations de consommation de ressources et un ensemble de lecture-écriture de pré-exécution généré sur la base des informations de consommation de ressources, et après la génération de données de confiance sur la base des informations de consommation de ressources dans le TEE, envoie les données de confiance et l'ensemble de lecture-écriture de pré-exécution à un deuxième nœud dans le système de chaîne de blocs. Le deuxième nœud exécute la première transaction sur la base des informations de consommation de ressources pour obtenir un ensemble de lecture-écriture d'exécution de la première transaction, et détermine, en fonction de l'ensemble de lecture-écriture d'exécution et de l'ensemble de lecture-écriture de pré-exécution, si le premier nœud fait une erreur pendant le processus de pré-exécution de la première transaction, et si tel n'est pas le cas, utilise un ensemble d'écriture d'exécution de l'ensemble de lecture-écriture d'exécution en tant que données d'état de la première transaction.
PCT/CN2022/135280 2022-05-30 2022-11-30 Procédé et nœud d'exécution de transaction dans système de chaîne de blocs, et système de chaîne de blocs WO2023231339A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202210602801.X 2022-05-30
CN202210602801.XA CN114936093A (zh) 2022-05-30 2022-05-30 区块链***中的交易执行方法、节点和区块链***

Publications (1)

Publication Number Publication Date
WO2023231339A1 true WO2023231339A1 (fr) 2023-12-07

Family

ID=82865735

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/135280 WO2023231339A1 (fr) 2022-05-30 2022-11-30 Procédé et nœud d'exécution de transaction dans système de chaîne de blocs, et système de chaîne de blocs

Country Status (2)

Country Link
CN (1) CN114936093A (fr)
WO (1) WO2023231339A1 (fr)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114936093A (zh) * 2022-05-30 2022-08-23 蚂蚁区块链科技(上海)有限公司 区块链***中的交易执行方法、节点和区块链***
CN117033146B (zh) * 2023-10-10 2023-12-08 北京安天网络安全技术有限公司 指定共识合约执行进程的识别方法、装置、设备及介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109951546A (zh) * 2019-03-15 2019-06-28 百度在线网络技术(北京)有限公司 基于智能合约的事务请求处理方法、装置、设备和介质
CN111565204A (zh) * 2020-07-16 2020-08-21 百度在线网络技术(北京)有限公司 区块链运行方法、装置、设备及存储介质
CN111770206A (zh) * 2020-08-31 2020-10-13 支付宝(杭州)信息技术有限公司 一种部署智能合约的方法、区块链节点和存储介质
US20210232571A1 (en) * 2020-01-06 2021-07-29 Tata Consultancy Services Limited Method and system for processing transactions in a blockchain network
CN113743940A (zh) * 2021-11-04 2021-12-03 支付宝(杭州)信息技术有限公司 在区块链中执行交易的方法、区块链、主节点和从节点
CN113743950A (zh) * 2021-11-04 2021-12-03 支付宝(杭州)信息技术有限公司 在区块链中执行交易的方法、区块链节点和区块链
CN114936093A (zh) * 2022-05-30 2022-08-23 蚂蚁区块链科技(上海)有限公司 区块链***中的交易执行方法、节点和区块链***

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109951546A (zh) * 2019-03-15 2019-06-28 百度在线网络技术(北京)有限公司 基于智能合约的事务请求处理方法、装置、设备和介质
US20210232571A1 (en) * 2020-01-06 2021-07-29 Tata Consultancy Services Limited Method and system for processing transactions in a blockchain network
CN111565204A (zh) * 2020-07-16 2020-08-21 百度在线网络技术(北京)有限公司 区块链运行方法、装置、设备及存储介质
CN111770206A (zh) * 2020-08-31 2020-10-13 支付宝(杭州)信息技术有限公司 一种部署智能合约的方法、区块链节点和存储介质
CN113743940A (zh) * 2021-11-04 2021-12-03 支付宝(杭州)信息技术有限公司 在区块链中执行交易的方法、区块链、主节点和从节点
CN113743950A (zh) * 2021-11-04 2021-12-03 支付宝(杭州)信息技术有限公司 在区块链中执行交易的方法、区块链节点和区块链
CN114936093A (zh) * 2022-05-30 2022-08-23 蚂蚁区块链科技(上海)有限公司 区块链***中的交易执行方法、节点和区块链***

Also Published As

Publication number Publication date
CN114936093A (zh) 2022-08-23

Similar Documents

Publication Publication Date Title
WO2023231339A1 (fr) Procédé et nœud d'exécution de transaction dans système de chaîne de blocs, et système de chaîne de blocs
WO2023231338A1 (fr) Procédé de soumission de données d'état, nœud et système de chaîne de blocs
US9460185B2 (en) Storage device selection for database partition replicas
US9489443B1 (en) Scheduling of splits and moves of database partitions
US10706025B2 (en) Database system providing single-tenant and multi-tenant environments
US20190392047A1 (en) Multi-table partitions in a key-value database
US10152500B2 (en) Read mostly instances
WO2017087267A1 (fr) Stockage réparti basé sur le rdma à faible latence
US9372879B1 (en) Balanced append tree data structure
US9875270B1 (en) Locking item ranges for creating a secondary index from an online table
US10102230B1 (en) Rate-limiting secondary index creation for an online table
Esteves et al. Quality-of-service for consistency of data geo-replication in cloud computing
US11210277B2 (en) Distributing and processing streams over one or more networks for on-the-fly schema evolution
US10635650B1 (en) Auto-partitioning secondary index for database tables
US10013449B1 (en) Validating and non-validating secondary indexes for a table in a non-relational data store
CN106570113B (zh) 一种海量矢量切片数据云存储方法及***
WO2023231336A1 (fr) Procédé d'exécution de transaction et nœud de chaîne de blocs
US10747739B1 (en) Implicit checkpoint for generating a secondary index of a table
Le et al. Dynastar: Optimized dynamic partitioning for scalable state machine replication
US11132367B1 (en) Automatic creation of indexes for database tables
Fang et al. Integrating workload balancing and fault tolerance in distributed stream processing system
US9898614B1 (en) Implicit prioritization to rate-limit secondary index creation for an online table
Matri et al. Týr: blob storage meets built-in transactions
Chihoub et al. 10 ConsistencyManagement in Cloud Storage Systems
US11327937B1 (en) Determining indexing progress for a table in a distributed data store

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: 22944640

Country of ref document: EP

Kind code of ref document: A1