WO2024001025A1 - 一种预执行缓存数据清理方法和区块链节点 - Google Patents
一种预执行缓存数据清理方法和区块链节点 Download PDFInfo
- Publication number
- WO2024001025A1 WO2024001025A1 PCT/CN2022/135327 CN2022135327W WO2024001025A1 WO 2024001025 A1 WO2024001025 A1 WO 2024001025A1 CN 2022135327 W CN2022135327 W CN 2022135327W WO 2024001025 A1 WO2024001025 A1 WO 2024001025A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- execution
- transaction
- variable
- state
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION 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/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3226—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
Definitions
- the embodiments of this specification belong to the field of blockchain technology, and particularly relate to a pre-execution cache data cleaning method and blockchain nodes.
- 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 pre-execution data cleaning solution that can effectively clean cached pre-execution data.
- a first aspect of this specification provides a method for executing transactions in a blockchain.
- the blockchain includes a master node and a plurality of slave nodes.
- the method is executed by the master node and includes:
- the pre-execution of the first transaction is terminated and the first information is recorded. Used to indicate that the first transaction includes a call to a preset type of contract, where the execution of the preset type of contract relies on data generated by consensus;
- the consensus proposal is sent to at least some slave nodes, and the consensus proposal is reached with the at least some slave nodes.
- the second aspect of this specification provides a blockchain node, including:
- the acquisition unit is used to obtain the identifiers of multiple transactions included in the generated first block
- a reading unit configured to, for the first transaction among the plurality of transactions, read the first state of the first variable written by the first transaction during pre-execution in the memory according to the identifier of the first transaction. Information; read the second state information of the first variable from the pre-execution state set stored in the memory;
- a deletion unit configured to delete the state data of the first variable in the pre-execution state set when the first state information is consistent with the second state information.
- a third aspect of this specification provides a computer-readable storage medium on which a computer program is stored.
- the computer program is executed in a computer, the computer is caused to execute the method described in the first aspect.
- a fourth aspect of this specification provides a computing device, including a memory and a processor.
- the memory stores executable code.
- the processor executes the executable code, the method described in the first aspect is implemented.
- the persistent deletion can be performed in the pre-execution status set.
- the stored variable status ensures the correctness of status cleaning.
- Figure 1 is a block chain architecture diagram in the embodiment of this specification.
- Figure 2 shows the blockchain structure diagram in the embodiment of this specification
- Figure 3 is a flow chart of a method for executing transactions in the embodiment of this specification
- Figure 4 is a flow chart of the pre-execution data cleaning method in the embodiment of this specification.
- Figure 5 is an architectural diagram of a blockchain node in an embodiment of this specification.
- Figure 1 shows the blockchain architecture diagram in the embodiment of this specification.
- the blockchain includes, for example, a total of 6 nodes including master node 1, slave node 2 to slave node 5.
- the connections between nodes schematically represent P2P (Peer to Peer, point-to-point) connections.
- P2P Peer to Peer, point-to-point
- These nodes store the entire ledger, which stores the status of all blocks and all accounts.
- each node in the blockchain generates the same state in the blockchain by executing the same transaction, and each node in the blockchain stores the same state database.
- the master node 1 can be responsible for receiving transactions from the client and initiating a consensus proposal to each slave node.
- the consensus proposal includes, for example, multiple transactions in the block to be formed (such as block B1) and each Transaction submission order and other information. After the nodes in the blockchain successfully reach consensus on the consensus proposal, each node can execute the multiple transactions according to the submission order in the consensus proposal, thereby generating block B1.
- the blockchain shown in FIG. 1 is only exemplary, and the embodiments of this specification are not limited to application to the blockchain shown in FIG. 1 , and may also be applied to a blockchain system including sharding, for example.
- FIG. 1 shows that the blockchain includes 6 nodes
- the embodiments of this specification are not limited to this, and may include other numbers of nodes.
- the nodes included in the blockchain can meet Byzantine Fault Tolerance (BFT) requirements.
- BFT Byzantine Fault Tolerance
- the mentioned Byzantine fault tolerance requirements can be understood as meaning that Byzantine nodes can exist within the blockchain, but the blockchain does not reflect Byzantine behavior externally.
- some Byzantine fault-tolerant algorithms require the number of nodes to be greater than 3f+1, where f is the number of Byzantine nodes, such as the Practical Byzantine Fault Tolerance algorithm PBFT (Practical Byzantine Fault Tolerance).
- Transactions in the blockchain field can refer to task units that are executed and recorded in the blockchain. Transactions usually include sending fields (From), receiving fields (To) and data fields (Data). Among them, when the transaction is a transfer transaction, the From field represents the account address that initiated the transaction (that is, initiated a transfer task to another account), the To field represents the account address that received the transaction (that is, received the transfer), and the Data field Include transfer amount.
- the From field indicates the account address that initiated the transaction
- the To field indicates the account address of the contract called by the exchange
- the Data field includes the function name in the calling contract and the corresponding Data such as the incoming parameters of the function are used to obtain the code of the function from the blockchain and execute the code of the function when the transaction is executed.
- Smart contracts on the blockchain are contracts that can be triggered and executed by transactions on the blockchain system. Smart contracts can be defined in the form of code. Calling a smart contract in the blockchain is to initiate a transaction pointing to the smart contract address, allowing each node in the blockchain to run the smart contract code in a distributed manner. It should be noted that in addition to smart contracts created by users, smart contracts can also be set by the system in the genesis block. This type of contract is generally called a creation contract. Generally, some blockchain data structures, parameters, properties and methods can be set in the genesis contract. In addition, accounts with system administrator rights can create system-level contracts or modify system-level contracts (referred to as system contracts). Among them, the system contract can be used to add data structures for different business data in the blockchain.
- Bob sends a transaction containing information about creating a smart contract (i.e., deploying the contract) to the blockchain as shown in Figure 1.
- the data field of the transaction includes the code of the contract to be created (such as bytecode or machine code), the to field of the transaction is empty to indicate that the transaction is used to deploy the contract.
- the contract address "0x6f8ae93" of the contract is determined.
- Each node adds the contract account corresponding to the contract address of the smart contract in the state database, allocates the state storage corresponding to the contract account, and stores The contract code is saved in the state storage of the contract, so the contract is created successfully.
- each node in the blockchain can execute the transaction respectively, thereby executing the contract respectively, and update the status database based on the execution of the contract.
- the blockchain node can execute transactions in parallel through multiple processes in a single machine.
- the blockchain node can be deployed in a server cluster and execute transactions in parallel through multiple servers.
- the blockchain node first divides multiple transactions into multiple transaction groups according to the accounts accessed by the transactions. Each transaction group does not access the same account, so that each transaction group can be executed in parallel.
- a smart contract is called in a transaction, the variables accessed in the transaction cannot be predicted before the transaction is executed, so multiple transactions cannot be effectively grouped, and transactions cannot be executed in parallel.
- multiple transactions can be pre-executed by the master node to obtain respective pre-execution read and write sets of the multiple transactions, and based on the pre-execution read and write sets Write sets divide multiple transactions into multiple groups so that each slave node can execute multiple transactions in parallel according to multiple groups.
- this article mainly uses a blockchain including a master node and a slave node as an example to describe the solutions of the embodiments of this specification.
- the embodiments of this specification are not limited to blockchains including a master-slave structure, but can also be applied to any blockchain.
- the main structure of the blockchain in a blockchain with no master structure, each blockchain node can perform the same steps as the master node.
- FIG. 2 shows a structural diagram of the master node 1 and slave nodes (for example, slave node 2) of the blockchain provided by the embodiment of this specification.
- the master node 1 includes a pre-execution module 11, a conflict detection module 12 and a consensus module 13, and the slave node 2 includes a consensus module 22 and a calculation module 23.
- Masternode 1 can for example be connected to a client so that multiple transactions can be received from the client.
- the pre-execution module 11 pre-executes the transaction and obtains the pre-execution read and write set of the transaction.
- the pre-execution read and write set includes a pre-execution read set and a pre-execution write set.
- the pre-execution read set can specifically be the key-value pairs of read variables generated during the pre-execution transaction.
- the pre-execution write set can specifically be The key-value pair of the written variable generated during the pre-execution transaction, where the variable can be an external account in the blockchain, or it can be a contract variable defined in the contract.
- the master node 1 can maintain a pre-execution status set, and the pre-execution module 11 can read the status values of variables from the pre-execution status set or the status database when pre-executing a transaction. After pre-executing the transaction, the pre-execution module 11 can update the pre-execution status set according to the pre-execution read and write set of the transaction.
- the pre-execution module 11 may include multiple pre-execution sub-modules, such as the pre-execution sub-module 111 and the pre-execution sub-module 112. These two pre-execution sub-modules can pre-execute transactions in parallel.
- the conflict detection module 12 includes a pre-execution status set and a pre-execution transaction set, wherein the master node 1 stores the pre-execution status set and the pre-execution transaction set in the memory for use by the conflict detection module 12 .
- the conflict detection module 12 performs pre-execution conflict detection on each transaction serially.
- the conflict detection module 12 detects whether there is a conflict between the pre-execution read set of the transaction and the write set of the transaction that has been pre-executed. If the value of a certain variable in the pre-execution read set of the transaction is inconsistent with the variable in the pre-execution status set If the values are different, it can be determined that there is a conflict. If it is determined that there is no conflict, the conflict detection module 12 updates the status in the pre-execution write set of the transaction to the pre-execution status set, and arranges the transaction sequence into the pre-execution transaction set.
- the master node 1 initiates a consensus proposal to the consensus module (such as the consensus module 22) of each slave node, where the consensus proposal may include the consensus module 13 obtaining multiple previously recorded sequential transactions from the pre-execution transaction set. , the arrangement order of the multiple transactions in the pre-execution transaction set, and the pre-execution read and write set of the multiple transactions. It can be understood that the master node can also broadcast the multiple transactions to the slave nodes, so that the multiple transactions may not be included in the consensus proposal.
- the consensus module such as the consensus module 22
- slave node 2 can group the multiple transactions according to their respective pre-execution read and write sets to obtain multiple transaction groups. There are no differences between each transaction group. There is a conflicting transaction. Among them, the situation where there are conflicting transactions between two transaction groups usually includes the following situations: the transaction in the first transaction group reads the first variable (that is, the first transaction group reads the first variable), and the second transaction group writes The first variable; the first trading group writes the first variable, the second trading group writes the first variable; the first trading group reads the first variable and writes the first variable, and the second trading group writes the first variable; The first transaction group reads the first variable and writes the first variable, and the second transaction group reads the first variable and writes the first variable. Among them, if two transaction groups read the same variables, it can be considered that there is no conflicting transaction. Generally, in order to simplify the solution, slave node 2 can group multiple transactions according to the requirement that the same variables are not accessed between each transaction group.
- the computing module 23 in the slave node 2 can execute the plurality of transactions in parallel in groups.
- the computing module 23 of the slave node 2 includes multiple execution sub-modules (the figure schematically shows the execution sub-module 232, the execution sub-module 233 and the execution sub-module 234).
- each execution sub-module can verify the correctness of the grouping based on the obtained execution read-write set of the transaction and the pre-execution read-write set of each transaction, thereby verifying whether the master node is doing evil.
- the master node can pre-execute the transaction based on the state of the pre-execution state set cached in the memory, and update the pre-execution state set according to the pre-execution write set of the transaction, so that the state based on the transaction during pre-execution is consistent with the state of the pre-execution write set.
- the state based on the transaction when executed is consistent, so that the pre-execution result of the transaction is consistent with the execution result when the master node does not do evil.
- the read-write set, status data and other data generated during the pre-execution process cannot be directly saved to the data storage of the blockchain as real results.
- the read-write set and status data are usually Stored in memory, or in the memory of the cache service (the process that provides the cache service). But the memory capacity is limited. Therefore, a cache data cleaning solution is needed that can not only reduce the amount of cached data, but also ensure that the state based on the transaction during pre-execution is consistent with the state based on the transaction during execution.
- the embodiment of this specification provides a pre-execution cache data cleaning solution.
- the state centralizes deletion of persistently stored variable states, ensuring the correctness of state cleaning.
- step S301 the master node 1 pre-executes the transaction and obtains the pre-execution read and write set of each transaction.
- Master node 1 can pre-execute the transaction immediately after receiving a transaction. Master node 1 can pre-execute multiple transactions received at the same time in parallel. Specifically, when master node 1 is pre-executing a transaction, when the value of any variable is read from the pre-execution state set or the state database in Figure 2, the read value is recorded in the read cache of the transaction set in the memory. The key-value pair of the variable. When the value of any variable is written, the key-value pair of the written variable is recorded in the write cache of the transaction, and after the pre-execution is completed, it can be based on the read cache and write cache of the transaction. Get the pre-execution read-write set for this transaction.
- the master node 1 may include a storage device (not shown in Figure 2) for storing a state database.
- the state database stores the world state of the variables defined by accounts and contracts in the blockchain.
- the state database is updated based on the execution results of each transaction in the block.
- the master node 1 when the master node 1 reads a variable (such as variable A) during the pre-execution of the transaction, the master node 1 first determines whether the value of variable A is stored in the write cache of the transaction. If the value of variable A is stored, The value of variable A can be read directly from the write cache. In the case where it is determined that the value of variable A is not stored in the write cache, it is determined whether the value of variable A is stored in the read cache of the transaction. If the value of variable A is stored, the value of variable A can be read from the read cache. . When it is determined that the value of variable A is not stored in the read cache, it is determined whether the value of variable A is stored in the pre-execution state set.
- a variable such as variable A
- the value of variable A can be read from the pre-execution state set. .
- the value of variable A may be read from the state database. That is to say, during the process of pre-execution of the transaction, the priority of the master node 1 to read the variables is: transaction write cache > transaction read cache > pre-execution status set > status database. This can ensure that the reads during the pre-execution process are The value of the variable taken is the latest value of the variable.
- the master node 1 After pre-executing each transaction as described above, the master node 1 obtains the pre-execution read and write set of each transaction.
- the pre-execution read-write set includes a read set and a write set, wherein the read set includes key-value pairs (key-values) of variables read when pre-executing the transaction, and the write set includes pre-execute the The key-value pair of the variable written during the transaction.
- the blockchain node may write to different variables based on the values of the variables read during the execution of the contract called by the transaction. For example, when the value of the read variable is 1, write 10 to variable a, when the value of the read variable is 2, write 20 to variable b, and so on. Therefore, for a transaction that calls a contract, the blockchain node must execute the transaction to determine the variables read and written by the transaction, thereby obtaining the read and write set of the transaction. To this end, the master node 1 obtains the pre-execution read and write set of each transaction by pre-executing each of the multiple transactions. The pre-execution process is basically the same as the process of executing the transaction.
- the difference is that the pre-execution of the pair of transactions is Execution is the execution process that takes place before consensus, and the execution of transactions is the execution process that takes place after consensus. And the pre-execution result of the pre-execution transaction is only used to update the pre-execution state set, not to update the world state, while the execution result of the execution transaction is used to update the world state.
- step S303 the master node 1 determines whether the pre-execution read set of the transaction conflicts with the pre-execution status set.
- the pre-execution status set is the latest status value of each variable cached by master node 1 during the pre-execution of each transaction. After pre-executing each transaction, the master node 1 performs pre-execution conflict detection on each transaction serially.
- master node 1 when master node 1 performs pre-execution conflict detection on transaction Tx1 among the multiple transactions, it first determines whether the pre-execution status set includes variables (such as variable A) in the pre-execution read set of transaction Tx1. If not, it is similarly determined whether other variables in the pre-execution read set of transaction Tx1 are included in the pre-execution state set.
- variables such as variable A
- the pre-execution status set does not include all the variables in the pre-execution read set of transaction Tx1, that is, the previous transaction that has passed pre-execution conflict detection has not read or written the variables accessed by this transaction, then the pre-execution of transaction Tx1 can be determined There is no conflict between the read set and the pre-execution status set, that is, it is determined that the pre-execution of the transaction Tx1 does not conflict with the previous transactions that have undergone pre-execution conflict detection.
- master node 1 determines whether the value of variable A in the pre-execution read set is consistent with the value of variable A in the pre-execution status set. If they are consistent, it indicates that the variable A read by the transaction The value of is the latest status of variable A during pre-execution.
- master node 1 determines that the value read for each variable in the pre-execution read set of transaction Tx1 is the latest state in the pre-execution process, it can be determined that there is no conflict between the pre-execution read set and the pre-execution status set of transaction Tx1.
- master node 1 determines that the value of variable A in the pre-execution read set of transaction Tx1 is inconsistent with the value of variable A in the pre-execution state set, it means that the value of variable A read by transaction Tx1 is not the latest state in the pre-execution process, so , it can be determined that there is a conflict between the pre-execution read set and the pre-execution status set of transaction Tx1. In the case where it is determined that a conflict exists, the master node 1 can re-pre-execute the transaction Tx1 by executing step S301.
- step S305 when the master node 1 determines that there is no conflict between the pre-execution read set and the pre-execution status set of the transaction, it updates the pre-execution status set and the pre-execution transaction set in the memory based on the pre-execution read and write set of the transaction.
- the master node 1 determines that there is no conflict between the pre-execution read set and the pre-execution status set of the transaction Tx2 in the multiple transactions, and the master node 1 reads or writes the pre-execution read and write set of the transaction Tx2 in a centralized manner.
- the values of the variables are updated to the pre-execution status set, so that the pre-execution status set records the latest status of each variable during the pre-execution process.
- the master node 1 records the transaction sequence into the pre-execution transaction set, for example, records the transaction at the end position (ie, the last position) of the pre-execution transaction set.
- the order of the transactions recorded in the pre-execution transaction set reflects the order of conflict detection of each transaction, and there is no conflict between each recorded transaction and the previously recorded transaction.
- the pre-execution transaction set is, for example, in the form of a sequence table or a queue.
- the version number of the variable's value can also be stored.
- the pre-execution write set of transaction Tx2 includes the key-value pair "a:123" of variable a
- master node 1 reads the status data of variable a in the pre-execution status set based on the pre-execution write set.
- master node 1 can pre-execute according to the write set of transaction Tx2.
- Add the status data of variable a to the status set such as "a:123,1", where "1" is the version number of variable a, which is used to indicate that "123” written by transaction Tx2 is the first version of variable a status.
- step S307 the master node 1 stores the status information of the variables written during pre-execution of the transaction in association with the transaction identifier in the memory.
- the master node 1 can record ⁇ Tx2: ⁇ "a:3" ⁇ in the memory for subsequent deletion of transaction Tx2 based on this record and write the state in the pre-execution state set. data.
- the write set of transaction Tx2 also includes writes to other variables (such as variable b)
- the status information of variable b can also be recorded in the set of transaction Tx2 , for example, ⁇ Tx2: ⁇ "a:3" ⁇ , ⁇ "b:4" ⁇ .
- the status information written by the transaction is not limited to including the key and version number of the variable.
- the master node 1 can be associated with the transaction identification in the memory. Store the keys and status values of variables written to the transaction during pre-execution.
- step S309 the master node 1 generates a consensus proposal, sends the consensus proposal to at least some of the slave nodes, and reaches consensus on the consensus proposal with at least some of the slave nodes.
- the consensus proposal may include multiple transactions in a previously recorded order in the pre-execution transaction set, the order in which the multiple transactions are arranged in the pre-execution transaction set, and the pre-execution reading and writing of the multiple transactions.
- Set that is, the multiple transactions are regarded as multiple transactions in the block to be generated, and the arrangement order of the multiple transactions is the order in which they are arranged in the pre-execution transaction set.
- Blockchain nodes can reach consensus on consensus proposals through the consensus mechanism.
- the consensus mechanism is a mechanism for blockchain nodes to reach a network-wide consensus on block information (or block data), which can ensure that the latest blocks are accurately added to the blockchain.
- the current mainstream consensus mechanisms include: Proof of Work (POW), Proof of Stake (POS), Delegated Proof of Stake (DPOS), Practical Byzantine Fault Tolerance (PBFT) ) algorithm, etc.
- POW Proof of Work
- POS Proof of Stake
- DPOS Delegated Proof of Stake
- PBFT Practical Byzantine Fault Tolerance
- the consensus success of the consensus proposal is usually determined after a preset number of nodes reach an agreement on the consensus data (ie, consensus proposal).
- consensus proposal Specifically, in the PBFT algorithm, for N ⁇ 3f + 1 consensus nodes, f malicious nodes can be tolerated. That is to say, when 2f + 1 nodes among the N consensus nodes reach an agreement, the consensus can be determined to be successful.
- the master node 1 eliminates conflicts between transactions when performing pre-execution, and each node executes each transaction in the order in the pre-execution transaction set when executing the transaction, so that the transaction can be executed without the master node doing evil.
- the resulting read-write set is consistent with the transaction's pre-execution read-write set.
- step S311 master node 1 generates a block after consensus is reached.
- the master node 1 After the master node 1 completes the pre-execution of multiple transactions, as mentioned above, the above-mentioned pre-execution process makes the pre-execution read-write set of the transaction consistent with the execution read-write set. Therefore, the master node 1 can directly transfer the pre-execution read-write set of the transaction.
- the execution result is used as the execution result for the transaction.
- the state database is updated according to the pre-execution read and write sets of the multiple transactions, and block B1 is generated.
- the block B1 includes a block header and a block body.
- the block body includes, for example, transaction bodies, receipts and other data of each of the multiple transactions.
- the block header can include data such as status root, receipt root, and transaction root.
- step S313 the master node 1 stores the transaction identifier included in the block in the memory.
- master node 1 After generating block B1, master node 1 stores the identifiers of multiple transactions included in block B1 in the memory, such as the hash value of each transaction, for subsequent cleaning of the state data in the memory.
- step S315 slave node 2 groups multiple transactions based on the pre-execution read and write set.
- Slave node 2 may group multiple transactions based on the read variable key and the written variable key included in the pre-execution read and write set of each transaction. As mentioned above, this grouping can prevent transactions in different transaction groups from accessing the same variables. This access includes read operations and write operations. When the grouping conditions are met, there will be no conflicting transactions between various transaction groups. Therefore, individual trading groups can be executed in parallel.
- step S317 slave node 2 executes multiple transactions in parallel according to the grouping results and arrangement order of the multiple transactions.
- the slave node 2 can execute transactions in multiple transaction groups in parallel through multiple execution sub-modules.
- the grouping sub-module 231 divides multiple transactions into six groups g1 to g6.
- the grouping sub-module 231 can send group g1 and group g2 to the execution sub-module 232, and send group g3 and group g4 to the execution sub-module 233.
- Group g5 and group g6 are sent to the execution sub-module 234, so that each execution sub-module can execute the transactions in the groups to which it is assigned in parallel.
- the execution sub-module 232 can process the group g1 and group g2 to which it is assigned in series or in parallel. Since there may be conflicts between transactions in a group, the execution sub-module 232 executes transactions in a single group serially. After executing a certain transaction of group g1 (for example, transaction Tx1), the execution sub-module 232 obtains the execution read-write set of the transaction Tx1. The execution sub-module 232 may compare whether the execution read-write set of the transaction Tx1 is consistent with the pre-execution read-write set.
- group g1 for example, transaction Tx1
- the execution sub-module 232 may compare whether the execution read-write set of the transaction Tx1 is consistent with the pre-execution read-write set.
- the execution sub-module 232 can update the state of each variable in the cache (i.e., world state) according to the execution write set of transaction Tx1.
- master node 1 If they are inconsistent, it means that master node 1 provided the wrong pre-execution read and write set to slave node 2. That is, master node 1 does evil. In this case, the slave node can initiate the operation of replacing the master node.
- step S319 blocks are generated from node 2.
- Slave node 2 can update the state database based on the execution read and write sets of multiple transactions and generate blocks.
- the block includes a block header and a block body.
- Figure 4 is a flow chart of the pre-execution data cleaning method in the embodiment of this specification. It can be executed by the master node 1 in Figure 1. It can be understood that in the blockchain under the masterless architecture, it can also be executed by the blockchain. Each node in the execution.
- step S401 the master node 1 obtains the identifiers of multiple transactions of the generated block.
- the master node 1 after generating, for example, block B1, the master node 1 will store multiple transaction identifiers included in block B1 in the memory. Before master node 1 stores multiple transaction identifiers included in block B1 in the memory, it first determines whether the amount of data stored in the memory reaches the preset threshold. When it is determined that the threshold is reached, master node 1 begins to execute the steps in Figure 4 S401, to perform data cleaning on the memory, and then store multiple transaction identifiers included in block B1 after cleaning. In the event that it is determined that the threshold has not been reached, the master node 1 may directly store multiple transaction identifiers included in the block B1.
- master node 1 After master node 1 generates block B1, it has updated the world state in the state database according to the pre-execution read and write set of the transaction in block B1, that is, it has permanently stored the variable state in the pre-execution write set. In this case, even if the variable state written by the transaction in block B1 is deleted from the pre-execution state set, masternode 1 can read the variable state from the state database when it needs to read the variable state when pre-executing subsequent transactions. , therefore, it will not affect the correctness of the transaction pre-execution results.
- the identifier of the transaction may be a transaction hash value. It can be understood that the identifier of the transaction is not limited to a transaction hash value, for example, it may also be a unique identifier of the transaction such as a transaction number.
- step S403 the master node 1 reads the first status information of the variables written during pre-execution of the transaction in the memory.
- master node 1 After master node 1 obtains the identifiers of multiple transactions in block No. 901, for example, it can execute steps S403 to S409 in Figure 4 for each transaction based on the identifiers of each transaction, so as to compare with the identifiers in block No. 901. Pre-execution data is cleaned for each transaction.
- the master node 1 reads the status data of the transaction Tx2 in the memory according to the identifier of the transaction Tx2.
- the status data includes, for example, ⁇ Tx2: ⁇ "a:3" ⁇ , ⁇ "b:4" ⁇ , this status data indicates that transaction Tx2 writes the status of the third version of variable a and the status of the fourth version of variable b during pre-execution. Therefore, the master node 1 can read the first status information of variable a as "3" and the first status information of variable b as 4 from the status data of transaction Tx2.
- the key-value pairs of each written variable can also be stored in the transaction Tx2.
- the master node 1 can read the value of the variable a from the status data of the transaction Tx2 stored in the memory. as the first status information of variable a, and read the value of variable b as the first status information of variable b.
- step S405 the master node 1 reads the second state information of the variable from the pre-execution state set stored in the memory.
- master node 1 first reads the version number of variable a (assumed to be "3”) from the pre-execution status set as the second status information of variable a. Afterwards, master node 1 can read the version number of variable b (for example, “5”) from the pre-execution status set as the second status information of variable b.
- the master node 1 when the pre-execution state set only stores key-value pairs of variables, the master node 1 can read the values of variable a and variable b from the pre-execution state set as respective second state information.
- step S407 it is determined whether the first status information of the variable is consistent with the second status information.
- variable a the first state information of variable a is 3, and the second state information is 3. Therefore, it can be determined that the first state information of variable a is consistent with the second state information, that is, stored in the pre-execution state set
- the state of variable a is the state of variable a written by transaction Tx2.
- the master node 1 can execute step S409 to delete the status data of variable a in the pre-execution status set.
- the deleted status data is, for example, "a:123,3".
- the first status information of variable b is 4 and the second status information is 5. Therefore, it can be determined that the first status information of variable b is inconsistent with the second status information, and the pre-execution status is stored centrally.
- the state of variable b is the updated version of the state, not the state of variable b written by transaction Tx2. Therefore, master node 1 retains the state data of variable b in the pre-execution state set.
- the master node 1 can execute steps S403 to S407 for each variable in the status data in the transaction Tx2 stored in the memory to determine whether to execute step S409. After traversing all variables in the status data of transaction Tx2, master node 1 can delete the status data of transaction Tx2 stored in the memory.
- Master node 1 continues to execute steps S403 to S407 on other transactions in block No. 901 to further clean up the data in the pre-execution state set. After traversing all transactions in block No. 901, master node 1 can delete the identifier of the transaction included in block No. 901 stored in the memory.
- Figure 5 is an architectural diagram of a blockchain node in an embodiment of this specification, including:
- the acquisition unit 51 is used to acquire the identifiers of multiple transactions included in the generated first block;
- the reading unit 52 is configured to, for the first transaction among the plurality of transactions, read the first variable of the first variable written during pre-execution of the first transaction in the memory according to the identifier of the first transaction. Status information; read the second status information of the first variable from the pre-execution status set stored in the memory;
- the deletion unit 53 is configured to delete the status data of the first variable in the pre-execution status set when the first status information is consistent with the second status information.
- the reading unit 52 is specifically configured to read the first version number of the first variable written in the first transaction during pre-execution in the memory, and the first version number is the same as the first version number.
- the first state of the first variable corresponds to the second state information, and the second state information is a second version number corresponding to the second state of the first variable.
- the node further includes: a retaining unit configured to retain the state of the first variable in the pre-execution state set when the first state information is inconsistent with the second state information. data.
- the deletion unit 53 is also configured to: after deleting the status data of the first variable in the pre-execution status set, delete the identification association with the first transaction in the memory. The stored first status information of the first variable written during pre-execution of the first transaction.
- the acquisition unit 51 is specifically configured to, after generating the second block, determine whether the amount of data stored in the memory reaches a threshold, and when determining that the threshold is reached, acquire the pre-stored data from the memory.
- the first block includes the identification of multiple transactions.
- the node further includes a storage unit configured to store in the memory the identifiers of multiple transactions included in the second block when it is determined that the threshold is not reached.
- the first block is a block generated before the second block and differs from the second block by a preset number of blocks.
- the node further includes:
- a pre-execution unit configured to pre-execute the received first transaction and generate a pre-execution write set of the first transaction, where the pre-execution write set includes the key of the first variable and the first state;
- the reading unit is further configured to read the third version number of the first variable from the pre-execution state set, and obtain the first version number based on the third version number;
- An update unit configured to update the pre-execution status set according to the pre-execution write set and the first version number
- the storage unit is further configured to store the key and the first version number of the first variable in the memory in association with the identification of the first transaction.
- the pre-execution unit is specifically configured to: pre-execute the first transaction based on the pre-execution status set,
- the update unit is also configured to: after pre-executing the first transaction, perform the following processing on the first transaction: determine whether the pre-execution read set of the first transaction conflicts with the pre-execution status set, wherein , when it is determined that there is no conflict, update the pre-execution status set based on the pre-execution write set of the first transaction and the first version number, and record the first transaction sequence into the pre-execution transaction set , as the pre-execution sequence of the first transaction.
- the update unit is specifically configured to determine whether the pre-execution status set includes the second variable in the pre-execution read set of the first transaction, and when determining that the pre-execution status set includes the In the case of a second variable, determine whether the state of the second variable in the pre-execution status set is consistent with the state of the second variable in the pre-execution read set. If they are inconsistent, determine whether the first transaction The pre-execution read set conflicts with the pre-execution status set.
- PLD Programmable Logic Device
- FPGA Field Programmable Gate Array
- HDL Hardware Description Language
- HDL High-Speed Integrated Circuit Hardware Description Language
- ABEL Advanced Boolean Expression Language
- AHDL Altera Hardware Description Language
- HDCal Joint CHDL
- JHDL Java Hardware Description Language
- Lava Lava
- Lola MyHDL
- PALASM RHDL
- Verilog Verilog
- the controller may be implemented in any suitable manner, for example, the controller may take the form of, for example, a microprocessor or processor and a computer readable medium storing computer readable program code (eg, software or firmware) executable by the (micro)processor. , logic gates, switches, Application Specific Integrated Circuit (ASIC), programmable logic controllers and embedded microcontrollers.
- controllers include but are not limited to the following microcontrollers: ARC 625D, Atmel AT91SAM, For Microchip PIC18F26K20 and Silicone Labs C8051F320, the memory controller can also be implemented as part of the memory's control logic.
- the controller in addition to implementing the controller in the form of pure computer-readable program code, the controller can be completely programmed with logic gates, switches, application-specific integrated circuits, programmable logic controllers and embedded logic by logically programming the method steps. Microcontroller, etc. to achieve the same function. Therefore, this controller can be considered as a hardware component, and the devices included therein for implementing various functions can also be considered as structures within the hardware component. Or even, the means for implementing various functions can be considered as structures within hardware components as well as software modules implementing the methods.
- the systems, devices, modules or units described in the above embodiments may be implemented by computer chips or entities, or by products with certain functions.
- a typical implementation device is a server system.
- the computer that implements the functions of the above embodiments may be, for example, a personal computer, a laptop computer, a vehicle-mounted human-computer interaction device, a cellular phone, a camera phone, a smart phone, or a personal digital assistant. , media player, navigation device, email device, game console, tablet, wearable device, or a combination of any of these devices.
- the functions are divided into various modules and described separately.
- the functions of each module can be implemented in the same or multiple software and/or hardware, or the modules that implement the same function can be implemented by a combination of multiple sub-modules or sub-units, etc. .
- the device embodiments described above are only illustrative.
- the division of the units is only a logical function division. In actual implementation, there may be other division methods.
- multiple units or components may be combined or integrated. to another system, or some features can be ignored, or not implemented.
- the coupling or direct coupling or communication connection between each other shown or discussed may be through some interfaces, and the indirect coupling or communication connection of the devices or units may be in electrical, mechanical or other forms.
- 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)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Finance (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Accounting & Taxation (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
Claims (15)
- 一种预执行数据清理方法,由区块链节点执行,所述方法包括:获取已生成的第一区块包括的多个交易的标识;对于所述多个交易中的第一交易,根据所述第一交易的标识在内存中读取所述第一交易在预执行时写入的第一变量的第一状态信息;从内存中存储的预执行状态集中读取所述第一变量的第二状态信息;在所述第一状态信息与所述第二状态信息一致时,在所述预执行状态集中删除所述第一变量的状态数据。
- 根据权利要求1所述的方法,在内存中读取所述第一交易在预执行时写入的第一变量的第一状态信息包括,在内存中读取所述第一交易在预执行时写入的第一变量的第一版本号,所述第一版本号与所述第一变量的第一状态对应,所述第二状态信息为与所述第一变量的第二状态对应的第二版本号。
- 根据权利要求1或2所述的方法,还包括:在所述第一状态信息与所述第二状态信息不一致时,保留所述预执行状态集中的所述第一变量的状态数据。
- 根据权利要求1或2所述的方法,还包括:当在所述预执行状态集中删除所述第一变量的状态数据之后,在所述内存中删除所述第一交易在预执行时写入的第一变量的第一状态信息。
- 根据权利要求1或2所述的方法,所述获取已生成的第一区块包括的多个交易的标识包括,在生成第二区块之后,确定所述内存中存储的数据量是否达到阈值,在确定达到阈值时,从所述内存获取预先存储的第一区块包括的多个交易的标识。
- 根据权利要求5所述的方法,还包括,在确定未达到阈值时,在所述内存存储所述第二区块包括的多个交易的标识。
- 根据权利要求5所述的方法,所述第一区块为在所述第二区块之前生成的、与所述第二区块相差预设区块数的区块。
- 根据权利要求1或2所述的方法,还包括:预执行接收的第一交易,生成第一交易的预执行写集,所述预执行写集包括所述第一变量的键和第一状态;从所述预执行状态集读取所述第一变量的第三版本号,基于所述第三版本号得到所述第一版本号;根据所述预执行写集和所述第一版本号更新所述预执行状态集;在所述内存中与所述第一交易的标识关联存储的所述第一变量的键和第一版本号。
- 根据权利要求8所述的方法,所述预执行接收的第一交易包括:基于所述预执行状态集预执行所述第一交易,所述根据所述预执行写集和所述第一版本号更新所述预执行状态集包括:在预执行完第一交易之后,对所述第一交易进行如下处理:确定所述第一交易的预执行读集是否与所述预执行状态集存在冲突,其中,在确定不存在冲突的情况中,基于所述第一交易的预执行写集和所述第一版本号更新所述预执行状态集,将所述第一交易顺序记录到预执行交易集合中,作为所述第一交易的预执行顺序。
- 根据权利要求9所述的方法,其中,所述确定所述第一交易的预执行读集是否与所述预执行状态集存在冲突包括,确定所述预执行状态集中是否包括所述第一交易的预执行读集中的第二变量,在确定所述预执行状态集中包括所述第二变量的情况中,确定所述预执行状态集中的所述第二变量的状态与所述预执行读集中的所述第二变量的状态是否一致,如果不一致,则确定所述第一交易的预执行读集与所述预执行状态集存在冲突。
- 根据权利要求1所述的方法,其中,所述内存为所述区块链节点中用于提供缓存服务的进程的内存。
- 一种区块链节点,包括:获取单元,用于获取已生成的第一区块包括的多个交易的标识;读取单元,用于对于所述多个交易中的第一交易,根据所述第一交易的标识在内存中读取所述第一交易在预执行时写入的第一变量的第一状态信息;从内存中存储的预执行状态集中读取所述第一变量的第二状态信息;删除单元,用于在所述第一状态信息与所述第二状态信息一致时,在所述预执行状态集中删除所述第一变量的状态数据。
- 根据权利要求12所述的区块链节点,所述读取单元具体用于,在内存中读取所述第一交易在预执行时写入的第一变量的第一版本号,所述第一版本号与所述第一变量的第一状态对应,所述第二状态信息为与所述第一变量的第二状态对应的第二版本号。
- 一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-11中任一项所述的方法。
- 一种区块链节点,包括存储器和处理器,所述存储器中存储有可执行代码, 所述处理器执行所述可执行代码时,实现权利要求1-11中任一项的所述的方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202210750986.9A CN115098483A (zh) | 2022-06-29 | 2022-06-29 | 一种预执行缓存数据清理方法和区块链节点 |
| CN202210750986.9 | 2022-06-29 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2024001025A1 true WO2024001025A1 (zh) | 2024-01-04 |
Family
ID=83295577
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2022/135327 Ceased WO2024001025A1 (zh) | 2022-06-29 | 2022-11-30 | 一种预执行缓存数据清理方法和区块链节点 |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN115098483A (zh) |
| WO (1) | WO2024001025A1 (zh) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN115098483A (zh) * | 2022-06-29 | 2022-09-23 | 蚂蚁区块链科技(上海)有限公司 | 一种预执行缓存数据清理方法和区块链节点 |
| CN116049310B (zh) * | 2022-12-30 | 2026-04-17 | 蚂蚁区块链科技(上海)有限公司 | 区块链系统中的交易执行方法、存储服务和区块链节点 |
| CN117076507A (zh) * | 2023-08-31 | 2023-11-17 | 蚂蚁区块链科技(上海)有限公司 | 交易的执行方法及装置 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20180101560A1 (en) * | 2016-10-07 | 2018-04-12 | International Business Machines Corporation | Establishing overlay trust consensus for blockchain trust validation system |
| CN113553378A (zh) * | 2020-10-20 | 2021-10-26 | 支付宝(杭州)信息技术有限公司 | 一种区块链数据的删除方法和装置 |
| CN113743942A (zh) * | 2021-11-04 | 2021-12-03 | 支付宝(杭州)信息技术有限公司 | 交易执行方法、区块链、主节点和主存储设备 |
| CN114529417A (zh) * | 2022-02-25 | 2022-05-24 | 蚂蚁区块链科技(上海)有限公司 | 执行交易的方法、区块链、主节点和从节点 |
| CN115098483A (zh) * | 2022-06-29 | 2022-09-23 | 蚂蚁区块链科技(上海)有限公司 | 一种预执行缓存数据清理方法和区块链节点 |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN111312352B (zh) * | 2020-02-19 | 2023-07-21 | 百度在线网络技术(北京)有限公司 | 一种基于区块链的数据处理方法、装置、设备和介质 |
| CN113743940B (zh) * | 2021-11-04 | 2022-08-12 | 支付宝(杭州)信息技术有限公司 | 在区块链中执行交易的方法、区块链、主节点和从节点 |
| CN114358934A (zh) * | 2021-12-29 | 2022-04-15 | 中国农业银行股份有限公司 | 智能合约的校验方法和相关设备 |
-
2022
- 2022-06-29 CN CN202210750986.9A patent/CN115098483A/zh active Pending
- 2022-11-30 WO PCT/CN2022/135327 patent/WO2024001025A1/zh not_active Ceased
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20180101560A1 (en) * | 2016-10-07 | 2018-04-12 | International Business Machines Corporation | Establishing overlay trust consensus for blockchain trust validation system |
| CN113553378A (zh) * | 2020-10-20 | 2021-10-26 | 支付宝(杭州)信息技术有限公司 | 一种区块链数据的删除方法和装置 |
| CN113743942A (zh) * | 2021-11-04 | 2021-12-03 | 支付宝(杭州)信息技术有限公司 | 交易执行方法、区块链、主节点和主存储设备 |
| CN114529417A (zh) * | 2022-02-25 | 2022-05-24 | 蚂蚁区块链科技(上海)有限公司 | 执行交易的方法、区块链、主节点和从节点 |
| CN115098483A (zh) * | 2022-06-29 | 2022-09-23 | 蚂蚁区块链科技(上海)有限公司 | 一种预执行缓存数据清理方法和区块链节点 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN115098483A (zh) | 2022-09-23 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN114827165B (zh) | 对多个交易进行分组的方法和区块链节点 | |
| WO2023231336A1 (zh) | 执行交易的方法和区块链节点 | |
| CN113743941B (zh) | 一种在区块链中执行交易的方法、区块链和主节点 | |
| CN114936256B (zh) | 在区块链中执行交易的方法和区块链节点 | |
| WO2024001024A1 (zh) | 在区块链系统中执行交易的方法、区块链系统和节点 | |
| CN114547203B (zh) | 执行交易的方法、区块链、主节点和从节点 | |
| WO2024001032A1 (zh) | 在区块链系统中执行交易的方法、区块链系统和节点 | |
| CN115098483A (zh) | 一种预执行缓存数据清理方法和区块链节点 | |
| CN110704438B (zh) | 一种区块链中布隆过滤器的生成方法及装置 | |
| WO2023160083A1 (zh) | 执行交易的方法、区块链、主节点和从节点 | |
| TW201918878A (zh) | 任務執行的方法及裝置 | |
| WO2024092932A1 (zh) | 交易执行方法和区块链节点 | |
| CN116032756A (zh) | 基于区块链更新应用程序的配置信息的方法和区块链节点 | |
| WO2025000878A1 (zh) | 交易的执行方法、节点和区块链系统 | |
| CN116707891A (zh) | 重放攻击检查方法和区块链节点 | |
| CN116431312A (zh) | 区块链系统中的交易执行方法和区块链节点 | |
| WO2023231335A1 (zh) | 在区块链中执行交易的方法及区块链的主节点 | |
| CN115982781A (zh) | 一种在区块链中创建账户的方法和区块链节点 | |
| CN107102898B (zh) | 一种基于numa架构的内存管理、构建数据结构的方法及装置 | |
| WO2025043923A1 (zh) | 交易的执行方法及装置 | |
| CN116668001A (zh) | 区块链中的交易处理方法和区块链节点 | |
| CN115964442A (zh) | 一种区块链中的账户状态访问方法和区块链节点 | |
| WO2023231342A1 (zh) | 基于变量状态自动执行合约的方法和装置 | |
| CN116166342A (zh) | 业务处理方法、装置、设备及存储介质 | |
| CN108733678B (zh) | 一种数据搜索的方法、装置和相关设备 |
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: 22949105 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: 22949105 Country of ref document: EP Kind code of ref document: A1 |
|
| 32PN | Ep: public notification in the ep bulletin as address of the adressee cannot be established |
Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 24.06.2025) |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 22949105 Country of ref document: EP Kind code of ref document: A1 |