WO2024066005A1 - 重放区块链交易的方法及装置 - Google Patents
重放区块链交易的方法及装置 Download PDFInfo
- Publication number
- WO2024066005A1 WO2024066005A1 PCT/CN2022/135240 CN2022135240W WO2024066005A1 WO 2024066005 A1 WO2024066005 A1 WO 2024066005A1 CN 2022135240 W CN2022135240 W CN 2022135240W WO 2024066005 A1 WO2024066005 A1 WO 2024066005A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- transaction
- blockchain
- target
- block
- plug
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
Definitions
- the embodiments of this specification belong to the field of blockchain technology, and more particularly, to a method and device for replaying blockchain transactions.
- Blockchain is a new application model of computer technologies such as distributed data storage, peer-to-peer transmission, consensus mechanism, and encryption algorithm.
- data blocks are combined into a chain data structure in a sequential manner according to time order, and a distributed ledger that cannot be tampered with or forged is guaranteed by cryptography.
- Users can communicate through blockchain nodes to participate in blockchain-related transactions. For example, multiple blockchain nodes corresponding to different users in the blockchain network can perform secure multi-party computation (SMPC) on the private data of a certain node based on privacy technologies such as homomorphic encryption and zero-knowledge proof.
- SMPC secure multi-party computation
- each blockchain node In a normally operating blockchain network, each blockchain node maintains the same blockchain ledger, that is, there is only one blockchain in the entire blockchain network. However, in abnormal situations such as errors in the code of blockchain transactions or smart contracts, or large differences in the computing performance of blockchain nodes, the execution of a blockchain transaction may cause the above blockchain to split into multiple blockchains starting from a certain block, that is, a blockchain fork occurs. At this time, the blocks maintained by each blockchain node are different, which affects the normal operation of the blockchain network and even brings security risks such as privacy leakage.
- the operation and maintenance personnel of the blockchain network need to locate the transaction that caused the fork, and analyze the cause of the fork by viewing the transaction-related data of the transaction.
- the operation and maintenance personnel of the blockchain network need to find the transaction-related data corresponding to the transaction that caused the fork in the log file generated during the transaction execution process, and then determine the cause of the fork by analyzing the above log. Since the number and types of log files generated by blockchain nodes during the transaction execution process are complex and the amount of data is often large, it often takes a lot of time and effort for the operation and maintenance personnel to find the above transaction-related data by themselves. The process of troubleshooting the cause of the fork is cumbersome, and the overall troubleshooting efficiency needs to be improved urgently.
- the purpose of the present disclosure is to provide a method and device for replaying blockchain transactions.
- a method for replaying blockchain transactions is proposed, which is applied to any blockchain node in a blockchain network, and the method includes: when it is determined that the blockchain ledger corresponding to the blockchain network is forked into multiple parallel blockchains, determining the target blockchain transaction that causes the fork, and the target blockchain transaction is respectively recorded in the first forked blocks of the multiple parallel blockchains; obtaining the target blockchain transaction from the first forked block and replaying the target blockchain transaction, and outputting transaction-related data involved in the replay process, and the transaction-related data is used to analyze the cause of the fork.
- a device for replaying blockchain transactions which is applied to any blockchain node in a blockchain network, and the device includes: a transaction determination unit, which is used to determine the target blockchain transaction that causes the fork when it is determined that the blockchain ledger corresponding to the blockchain network is forked into multiple parallel blockchains, and the target blockchain transaction is recorded in the first forked blocks of the multiple parallel blockchains respectively; a transaction replay unit, which is used to obtain the target blockchain transaction from the first forked block and replay the target blockchain transaction, and output transaction-related data involved in the replay process, and the transaction-related data is used to analyze the cause of the fork.
- an electronic device including: a processor;
- a memory for storing processor-executable instructions; wherein the processor implements the method as described in any one of the first aspect and the second aspect by executing the executable instructions.
- a computer-readable storage medium on which computer instructions are stored, and when the instructions are executed by a processor, the steps of the method described in any one of the first aspect and the second aspect are implemented.
- any blockchain node in the blockchain network determines the target blockchain transaction that causes the fork when a fork occurs, then obtains the transaction and replays it, and then outputs the transaction-related data involved in the replay process to the user (such as the operation and maintenance personnel of the blockchain network). It can be seen that the embodiment of the first aspect realizes targeted replay for the target transaction that causes the fork, so that the transaction-related data of the transaction can be provided to the user.
- the blockchain node automatically determines the target blockchain transaction that caused the fork and replays it, and directly outputs the transaction-related data corresponding to the target blockchain transaction to the user, without the user having to obtain the data by analyzing complicated log files.
- This improves the automation level of the transaction-related data acquisition process, greatly reduces the user's workload, and simplifies the logic and steps of the fork cause troubleshooting process, which helps to improve the troubleshooting efficiency.
- FIG. 1 is a flow chart of a method for replaying blockchain transactions provided by an exemplary embodiment.
- FIG2 is a schematic diagram of a blockchain network and its forking process provided by an exemplary embodiment.
- FIG3 is an interactive process of a method for replaying blockchain transactions provided by an exemplary embodiment.
- FIG. 4 is a schematic diagram of the structure of a device provided by an exemplary embodiment.
- FIG5 is a block diagram of an apparatus for replaying blockchain transactions provided by an exemplary embodiment.
- Figure 1 is a flow chart of a method for replaying blockchain transactions provided by an exemplary embodiment. As shown in Figure 1, the method is applied to any blockchain node in the blockchain network and may include the following steps 102-104.
- Step 102 when it is determined that the blockchain ledger corresponding to the blockchain network is forked into multiple parallel blockchains, determine the target blockchain transaction that causes the fork, and the target blockchain transaction is respectively recorded in the first forked blocks of the multiple parallel blockchains.
- the blockchain network described in the embodiment of the present disclosure may have forks.
- the fork situation of the blockchain network is exemplarily introduced in conjunction with Figure 2.
- the blockchain network 201 includes multiple blockchain nodes, such as node A, node B, node C and node D.
- the embodiment of the present disclosure does not limit the number of nodes in the blockchain network and the internal structure of the network.
- each of the above-mentioned nodes maintains a blockchain account book of the blockchain network.
- the node locally maintains each block that has been agreed upon during its participation in the operation of the blockchain network, and the chain structure formed by these blocks is the blockchain account book maintained by the node.
- the blockchain ledger of the network is forked into multiple parallel blockchains.
- the forked blockchain ledger 202 includes two parallel blockchains, namely Ledger1 and Ledger2.
- the arrows between adjacent blocks are used to represent the generation order between the two blocks.
- the arrow between block 1 and block 2 represents that block 1 is generated before block 2, and block 1 is the parent block of block 2.
- the header of block 2 records the block hash (Hash) of block 1.
- Other blocks are similar and will not be repeated.
- each block in the blockchain ledger shown in Figure 2 The solid arrows between any two adjacent blocks are used to indicate that these two blocks are on-chain blocks that have been on-chain through the consensus process at the current moment, such as the normal block ⁇ 3, block 4.1 and block 4.2 in the figure are all on-chain blocks at the current moment; and the blocks connected by the starting point of the dotted arrow are the current blocks to be agreed upon at the current moment (not yet on-chain), such as block 5.1 and block 5.2 are both current blocks at the current moment.
- Ledger1 contains normal blocks (i.e. normal blocks ⁇ 3) and forked blocks (i.e.
- Ledger2 contains normal blocks (i.e. normal blocks ⁇ 3) and forked blocks (i.e. block 5.1).
- the first forked block generated in the block sequence is the first forked block of the parallel blockchain, such as the first forked block of Ledger1 is block 4.1, and the first forked block of Ledger2 is block 4.2.
- the transaction content contained in the first forked blocks of different parallel blockchains is usually the same, but the transaction data such as transaction receipts are not the same.
- the last block on the chain is the latest block on the chain, which is hereby explained.
- each parallel blockchain after forking will be maintained by different blockchain nodes in the blockchain network.
- nodes A and B shown in Figure 2 respectively maintain Ledger1
- nodes C and D respectively maintain Ledger2, etc.
- the blockchain ledger in the blockchain network can also be forked into 3 or even more parallel blockchains, and any parallel blockchain can be maintained by at least one blockchain node in the blockchain network, which is not limited in the embodiments of the present disclosure.
- the following embodiments are illustrative examples using the scenario shown in Figure 2 as an example.
- any blockchain node may also receive a judgment result on whether the blockchain ledger has forked from a client or other blockchain node to which it is connected, thereby determining whether the blockchain ledger has forked into multiple parallel blockchains based on the judgment result.
- the blockchain node may also find that the blockchain ledger is bifurcated when participating in the block consensus. For example, any blockchain node may obtain the parent hash of the current block provided by any other blockchain node during the consensus process for the current block (block 5.1 and block 5.2 as shown in FIG. 2); then compare the parent hash with the block hash of the latest block on the chain maintained by itself, and in the case of inconsistency between the two, it can be determined that the blockchain ledger corresponding to the blockchain network is bifurcated into multiple parallel blockchains. In fact, in the case of inconsistency between the two, it can be determined at the same time that any blockchain node and any other blockchain node respectively maintain blocks belonging to different parallel blockchains.
- any other blockchain node can be any node in the blockchain network that is different from any blockchain node.
- the block header of the current block generated by any other blockchain node records the hash of the latest block on the chain maintained by the node, that is, the hash of the latest block on the chain maintained by itself is used as the parent hash of the current block.
- the parent hash of the current block provided by any other blockchain node is the hash of the latest block on the chain maintained by the node. Based on this, any blockchain node can extract the parent hash of the block from the received block header of the current block.
- the parent hash is inconsistent with the block hash of the latest block on the chain maintained by any blockchain node itself, it means that the current latest block maintained by any blockchain node is different from the current latest block maintained by any other blockchain node, such as the execution results of at least some transactions in the block, so it can be determined that the blockchain ledger has a fork.
- the parent hash is consistent with the block hash of the latest block on the chain maintained by any blockchain node, it can be determined that the blockchain ledger has not been forked.
- the unknown failure may cause different execution results of at least one transaction (different transaction receipts), resulting in inconsistent block hashes of the block (called the latest block on the chain after completion of the chain) maintained by the two nodes, which leads to a fork in the blockchain ledger.
- the latest block on the chain after completion of the chain maintained by the two nodes, which leads to a fork in the blockchain ledger.
- the block hashes of the latest blocks on their respective chains are inconsistent, thus discovering a fork in the blockchain ledger.
- any blockchain node may directly determine the latest block on the chain as the first forked block corresponding to the blockchain ledger.
- a node that maintains a parallel blockchain different from the parallel blockchain maintained by itself may be requested to obtain the block hash of at least part of the blocks it maintains, such as the block hash of the latest block on the chain and a preset number of blocks before it, and then compare the above block hashes with the block hashes of the corresponding blocks maintained locally one by one in the order of blocks, and in the case where the two block hashes corresponding to any block are different, the block is determined as the first forked block.
- any blockchain node may further determine the target blockchain transaction that causes the fork. For example, it is possible to first determine each first-class transaction receipt generated by each transaction in the first forked block of the first parallel blockchain executed by any blockchain node, and obtain each second-class transaction receipt generated by each transaction in the first forked block of the second parallel blockchain executed by any other blockchain node; then compare the first-class transaction receipt and the second-class transaction receipt corresponding to each transaction, and in the case that the first-class transaction receipt and the second-class transaction receipt of any transaction are inconsistent, determine the transaction as the target blockchain transaction that causes the fork.
- the first-class transaction receipt of any transaction is generated by the execution of the transaction by any blockchain node
- the second-class transaction receipt is generated by the execution of the transaction by any blockchain node. Therefore, if the first-class transaction receipt and the second-class transaction receipt of any transaction are different, it means that the results of the execution of the transaction by the two nodes are different, resulting in different first forked blocks containing the transaction, so it can be determined that the transaction caused the blockchain ledger to fork.
- any transaction-related data such as transaction codes and transaction accounts can also be compared, and the embodiments of the present disclosure are not limited to this.
- any blockchain node can correspondingly determine the block where the blockchain node causing the bifurcation is located, that is, the first bifurcation block maintained by itself.
- any blockchain node can pre-replay the first bifurcation block maintained by itself to obtain the first type of transaction receipt for each transaction therein; in addition, other blockchain nodes can pre-replay the first bifurcation block maintained by themselves to obtain the second type of transaction receipt for each transaction therein, and then any blockchain node can obtain the above-mentioned second type of transaction receipt from other blockchain nodes.
- the first type of transaction receipt and the second type of transaction receipt of each transaction can be compared: if the first type of transaction receipt and the second type of transaction receipt of any transaction are inconsistent, it means that the transaction is the target blockchain transaction that caused the bifurcation.
- any blockchain node can record the transaction hash of the target blockchain transaction so that the target blockchain transaction can be replayed in a targeted manner through the transaction hash later.
- any blockchain node will execute all transactions in the first forked transaction to obtain the transaction receipts of each transaction.
- any blockchain node only needs to execute the target blockchain transaction to obtain the transaction-related data involved in the replay process (of course, if necessary, the predecessor transaction of the target blockchain transaction can also be executed and the corresponding transaction-related data can be obtained).
- the above pre-replay process is a replay of multiple first forked blocks (all transactions in them), the purpose of which is to obtain the transaction receipts of each transaction, so as to determine the target blockchain transaction that caused the fork by comparing the transaction receipts.
- the pre-replay process may be called block replay; and the subsequent targeted replay is only for the target blockchain transaction (and its predecessor transaction) determined in the previous process, the purpose of which is to obtain the transaction-related data of the transaction, and the replay may be called transaction replay.
- any blockchain node After determining the target blockchain transaction in the above manner, any blockchain node can obtain the transaction hash of the target blockchain transaction.
- the above manner may determine at least one target blockchain transaction, and the transaction hash of each target blockchain node can be used to uniquely identify the transaction.
- Step 104 obtaining the target blockchain transaction from the first forked block and replaying the target blockchain transaction, and outputting transaction-related data involved in the replay process, wherein the transaction-related data is used to analyze the cause of the fork.
- any blockchain node After determining the target blockchain transaction that causes the fork, any blockchain node can obtain the transaction from the first forked block and replay it. Since the target blockchain transaction is a transaction that has been completed on the chain, the transaction has been executed at least once before the current moment, so the replay of the target blockchain transaction (or replaying the target blockchain transaction) described in the present disclosure can be understood as re-executing the target blockchain transaction.
- any blockchain node in the blockchain network determines the target blockchain transaction that causes the fork when a fork occurs, then obtains the transaction and replays it, and then outputs the transaction-related data involved in the replay process to the user (such as the operation and maintenance personnel of the blockchain network). It can be seen that the embodiment of the first aspect realizes targeted replay for the target transaction that causes the fork, so that the transaction-related data of the transaction can be provided to the user.
- this solution provides a simple and easy-to-operate solution for collecting blockchain node fork information, without the need for users to obtain the data by analyzing complicated log files. It improves the automation level of the transaction-related data acquisition process, greatly reduces the user's workload, and simplifies the logic and steps of the fork cause troubleshooting process, which helps to improve the troubleshooting efficiency.
- any of the blockchain nodes can replay the target blockchain transaction locally.
- any of the blockchain nodes can obtain the target blockchain transaction from the first forked block of the first parallel blockchain maintained locally, and execute the obtained target blockchain transaction.
- the node can query and obtain the target blockchain transaction according to the transaction hash in the first forked block maintained locally, and specifically, can obtain data such as the transaction content of the transaction.
- node A can obtain the target blockchain transaction from the locally maintained block 4.1, and then execute the transaction locally. In this way, any of the blockchain nodes can re-execute the target blockchain transaction locally, that is, realize the local replay of the target blockchain transaction.
- any blockchain node may also remotely replay (or replay in a different place) the target blockchain transaction.
- any blockchain node may provide the target blockchain transaction to other blockchain nodes so that the target blockchain transaction is executed by the other blockchain nodes; accordingly, the transaction-related data returned by the other blockchain nodes may be received.
- the other blockchain nodes are nodes other than any blockchain node in the blockchain network, and any blockchain node may provide the target blockchain transaction to at least one other blockchain node for replay, such as providing the target blockchain transaction to any other blockchain node mentioned in the aforementioned embodiment, or providing the target blockchain transaction to the management node in the blockchain network (when any J is not a management node), etc., which will not be described in detail.
- node A may provide the target blockchain transaction to node C and/or D so that node C and/or D may execute the transaction locally.
- any blockchain node may re-execute the target blockchain transaction at other blockchain nodes, i.e., remote replay of the target blockchain transaction is achieved.
- the parallel blockchain maintained by the other blockchain nodes may be the same as or different from the parallel blockchain maintained by any of the blockchain nodes.
- the second parallel blockchain to which the on-chain blocks maintained by the other blockchain nodes belong may be different from the first parallel blockchain to which the on-chain blocks maintained by any of the blockchain nodes belong.
- the other blockchain nodes maintain parallel blockchains different from those of the any of the blockchain nodes.
- the second parallel blockchain to which the on-chain blocks maintained by the other blockchain nodes belong may also be the same as the first parallel blockchain to which the on-chain blocks maintained by any of the blockchain nodes belong.
- the other blockchain nodes maintain the same parallel blockchain as those of the any of the blockchain nodes.
- node A when any one of the blockchain nodes is node A (the Ledger1 maintained by it is the first parallel blockchain), node A can use node B (which maintains Ledger1) as the other blockchain node. At this time, any one of the blockchain nodes and the other blockchain nodes both maintain the first parallel blockchain; and/or, node A can also use node C and/or D (respectively maintaining Ledger2 as the second parallel blockchain) as the other blockchain nodes. At this time, any one of the blockchain nodes and the other blockchain nodes both maintain the second parallel blockchain.
- the multiple other blockchain nodes may include nodes that maintain the first parallel blockchain (the same as any one of the blockchain nodes), and may also include nodes that maintain the second parallel blockchain (different from any one of the blockchain nodes).
- any other blockchain node that obtains the target blockchain transaction provided by any one of the blockchain nodes
- any one of the blockchain nodes can achieve remote replay of the target blockchain transaction through a variety of different types of blockchain nodes, thereby satisfying more diverse replay scenarios.
- any blockchain node can provide the target blockchain transaction to the other blockchain nodes in a variety of ways.
- the target blockchain transaction obtained locally can be sent to other blockchain nodes, and the target blockchain transaction locally saved by any blockchain node can be directly executed by other blockchain nodes, which helps to ensure that the executed transaction is indeed the target blockchain transaction, thereby ensuring the accuracy of replay.
- any blockchain node can also send the transaction hash of the target blockchain transaction to other blockchain nodes, so that the other blockchain nodes can query the target blockchain transaction in the first forked block of the parallel blockchain maintained locally according to the transaction hash.
- the other nodes can query and obtain the target blockchain transaction according to the transaction hash in the first forked block maintained locally, and specifically, the transaction content and other data of the transaction can be obtained.
- any blockchain node can be replayed locally or remotely, and obtain transaction-related data corresponding to the corresponding replay process.
- the transaction-related data may include at least one of the following.
- the account address associated with the target blockchain transaction For example, if the target blockchain transaction is a transfer transaction, the transaction can be associated with the account address of the payer account and the account address of the recipient account; if the target blockchain transaction is a transaction to create an account, the transaction can be associated with the account address of the newly created account; if the target blockchain transaction is a transaction to call a smart contract (or contract transaction), the transaction can be associated with the account address of the contract account of the called contract.
- the method name and method parameters of the method called by the target blockchain transaction can be associated with the method name of the method and the method parameters involved in the calling process (i.e., the input parameters of the method).
- the original code, execution results, etc. of the method can also be associated.
- the above-mentioned target blockchain transaction can call at least one method, and in the case of calling multiple methods, any blockchain node can obtain the method name, method parameters, original code and/or execution results of each of the above methods, which will not be repeated.
- the above-mentioned method called can be included in a smart contract, that is, the blockchain node needs to call a smart contract to execute the target blockchain transaction.
- the target blockchain transaction calls the contract address, contract method, input parameter and/or contract code file information of the smart contract.
- the transaction can be associated with the contract address, contract method, input parameter and/or contract code file information of the smart contract.
- the above-mentioned target blockchain transaction can call at least one smart contract, and in the case of calling multiple smart contracts, any blockchain node can obtain the contract address, contract method, input parameter and/or contract code file information of each smart contract called, and will not be repeated. It can be understood that for platform contracts that do not call smart contracts, the transaction-related data involved in the replay process does not include any of the contract address, contract method, input parameter and contract code file information of the smart contract.
- the read/write set generated by any blockchain node executing the read/write operation related to the target blockchain transaction may involve read/write operations, such as reading the world state before the transaction is executed, writing the transaction execution result, etc.
- the set consisting of the data corresponding to the above read/write operations i.e., the data read and/or written
- any blockchain node or the other blockchain nodes can determine and obtain the above read/write set by querying the world state before and after executing the target blockchain transaction.
- each transaction in the first forked block is executed in sequence by the corresponding blockchain nodes in a certain order (i.e., the execution order), and the target blockchain transaction may not be the first to be executed.
- the first forked block i.e., the block to which the target blockchain transaction belongs
- the first forked block may contain at least one preceding transaction whose execution order is before the target blockchain transaction, and at this time, any blockchain node may execute the at least one preceding transaction and the target blockchain transaction in sequence according to the execution order.
- the preceding transaction may be at least part of the transaction that is before the target blockchain transaction according to the execution order (i.e., at least part of the transaction that is contained in the first forked block and executed before the target blockchain transaction).
- the target blockchain transaction depends on (such as the execution of the target blockchain transaction requires calling a smart contract created by a contract creation transaction), and there may also be transactions that the target blockchain transaction does not depend on (irrelevant to the target blockchain transaction).
- the above-mentioned transactions that the target blockchain transaction depends on can be used as its predecessor transactions to reduce the number of predecessor transactions that need to be executed, reduce the workload of replay, and improve the replay efficiency for the target blockchain transaction.
- any blockchain node may also replay the block, that is, re-execute all transactions in the block in sequence.
- the block replay scheme can be found in the embodiment corresponding to FIG. 4 below, which will not be described here.
- any blockchain node can first determine the previous block of the first forked block and the world state corresponding to the block in the blockchain ledger, and then execute the target blockchain transaction based on the world state.
- Any blockchain node in the blockchain node disclosed in the present disclosure may include multiple plug-ins, and any plug-in is a functional module for implementing a specific function.
- any plug-in is a functional module for implementing a specific function.
- any blockchain node may include a service plug-in (service_plugin), a pre-verification plug-in (pre_verity_plugin), a chain plug-in (chain_plugin) and an execution plug-in (exec_plugin), wherein the chain plug-in can be used to manage the historical transactions executed by the execution plug-in.
- the pre-verification plug-in can first obtain the target blockchain transaction managed by the chain plug-in, and send the target blockchain transaction to the execution plug-in for execution.
- any blockchain node also includes a storage plug-in (storage_plugin)
- the plug-in can be used to store each chain block in the current parallel blockchain, and the chain plug-in can call the storage plug-in to obtain the target blockchain transaction.
- the pre-verification plug-in can determine the transaction-related data involved in the replay process, and output the transaction-related data through the service plug-in. At this time, the replay of the target blockchain transaction is completed through the cooperation of the above-mentioned plug-ins.
- the execution plug-in can directly complete the execution of the transaction based on the data contained in the transaction.
- the target blockchain transaction is a contract transaction that requires calling a smart contract
- the execution plug-in can call the virtual machine plug-in to execute the above-mentioned contract transaction.
- the execution plug-in can call and execute the smart contract through the virtual machine plug-in; and, receive the contract execution data generated by the execution of the smart contract returned by the virtual machine plug-in, and forward the data to the pre-verification plug-in as the transaction-related data.
- any blockchain node can replay the contract transaction with more complex execution logic through the internally set virtual machine plug-in, avoiding execution errors while improving transaction execution efficiency to a certain extent.
- the specific process of the above-mentioned plug-ins cooperating with each other to realize the replay of the target blockchain transaction can be referred to the detailed record of the embodiment corresponding to Figure 3 below, which will not be repeated here.
- the above-mentioned plug-ins can also be deployed in other blockchain nodes for replaying the target blockchain transaction, and the above-mentioned plug-ins obtain the target blockchain transaction provided by any of the blockchain nodes and execute the transaction.
- the specific process is no different from the process of the various plug-ins in any of the blockchain nodes cooperating with each other to execute the target blockchain transaction, and will not be repeated here.
- any blockchain node can output the data to the user.
- the transaction-related data may also include data corresponding to the at least one preceding transaction, which will not be repeated.
- the transaction-related data may be sent to a client or management device corresponding to any blockchain node, so that the client or the management device can display the transaction-related data to the user.
- the client or the management device may be connected to any blockchain node.
- the user is the user of the client or the management device, such as the operation and maintenance personnel of the blockchain network or the ordinary user corresponding to any blockchain node.
- FIG3 is an interactive flow of a method for replaying blockchain transactions provided by an exemplary embodiment.
- any blockchain node may include a service plug-in, a pre-verification plug-in, a chain plug-in, an execution plug-in, and a virtual machine plug-in, etc.
- the replay process of the target blockchain transaction is implemented by the above plug-ins cooperating with each other. Specifically, the process includes the following steps 301-314.
- Step 301 The client initiates a replay request to the service plug-in.
- Step 302 The service plug-in determines a target blockchain transaction (referred to as target transaction in FIG. 3 ) in response to the replay request.
- target transaction a target blockchain transaction
- the operation and maintenance personnel may include the transaction hash of the transaction in the replay request and send it to the service plug-in, that is, initiate a replay request for the target blockchain transaction to the service plug-in.
- the service plug-in may directly extract the transaction hash from the replay to determine the target blockchain transaction, and then proceed to step 303.
- any blockchain node may also determine the transaction hash of the target blockchain transaction while determining the occurrence of a fork. For example, any blockchain node may execute each transaction in the latest block on the chain maintained by itself to obtain the first type of transaction receipt corresponding to each transaction, and obtain the second type of transaction receipt corresponding to each transaction obtained by the node executing each transaction in the latest block on the chain maintained by itself from other nodes, and then by comparing the first type of transaction receipt and the second type of transaction of each transaction, the transaction with the inconsistent first transaction receipt and the second transaction receipt is determined as the target blockchain transaction causing the fork, and the transaction hash of the transaction is recorded at the same time.
- the transaction hash may be included in the fork notification message and sent to the client; accordingly, the operation and maintenance personnel may trigger (such as implementing a replay confirmation operation) the client to send a replay request containing the transaction hash to the service plug-in after viewing the message.
- Step 303 The service plug-in initiates a replay instruction for the target blockchain transaction to the pre-verification plug-in.
- the service plug-in can include the acquired transaction hash of the target blockchain transaction in the replay instruction and send it to the pre-verification plug-in, triggering the pre-verification plug-in to start acquiring and executing the target blockchain transaction.
- Step 304 The pre-verification plug-in requests the chain plug-in to obtain the target blockchain transaction.
- Step 305 The chain plug-in searches for the target blockchain transaction.
- Step 306 The chain plug-in returns the target blockchain transaction to the pre-verification plug-in.
- the chain plug-in can be used to manage historical transactions executed by the execution plug-in.
- the chain plug-in can find the target blockchain transaction and return it to the pre-verification plug-in.
- the chain plug-in can also find the corresponding previous transaction and return it to the pre-verification plug-in.
- any of the blockchain nodes also includes a storage plug-in (storage_plugin)
- the plug-in can be used to store each on-chain block in the current parallel blockchain.
- the chain plug-in can call the storage plug-in to obtain the target blockchain transaction, such as sending the aforementioned transaction hash to the storage plug-in, so that the storage plug-in can search for the corresponding target blockchain transaction in each transaction stored in itself according to the hash.
- Step 307 The pre-verification plug-in obtains the world state corresponding to the previous block.
- the pre-verification plug-in can also obtain the world state corresponding to the previous block of the first forked block where the target blockchain transaction is located (after the execution of each transaction in the block).
- the above-mentioned world state can be maintained by the aforementioned chain plug-in or storage plug-in, so the chain plug-in can return the above-mentioned world state and the target blockchain transaction to the pre-verification plug-in.
- the world state can also be maintained by the service plug-in.
- the pre-verification plug-in can request and obtain the above-mentioned world state from the service plug-in, which will not be repeated. It should be noted that there is no necessary order between the aforementioned step 307 and steps 304-306.
- Step 308 The pre-verification plug-in sends the target blockchain transaction to the execution plug-in.
- the pre-verification plug-in can send the acquired target blockchain transaction to the execution plug-in to trigger the execution of the transaction.
- Step 309a when the target blockchain transaction is a platform transaction, execute the plug-in to execute the platform transaction.
- Step 310a the execution plug-in returns the account address to the pre-verification plug-in.
- the execution plug-in can directly complete the execution of the transaction based on the data contained in the transaction. After the execution is completed, the execution plug-in can return the account address involved to the pre-verification plug-in.
- the above-mentioned account address can be the account address of the payment account, the account address of the collection account, the account address of the newly created operation and maintenance personnel account or the contract account, etc., and the embodiments of the present disclosure do not limit this.
- Step 309b when the target blockchain transaction is a contract transaction, the execution plug-in sends the contract transaction to the virtual machine plug-in.
- Step 310b The virtual machine plug-in executes the contract transaction.
- Step 311b the virtual machine plug-in returns the account address, the called method name and method parameters to the pre-verification plug-in through the execution plug-in.
- the execution plug-in can call the virtual machine plug-in to execute the above contract transaction.
- the virtual machine plug-in can call and execute the smart contract. Specifically, it can call at least one method in the smart contract through the corresponding method name, method parameters, etc.
- the virtual machine plug-in can return the account address (such as the account address of the contract account of the called smart contract), method name, method parameters, etc. to the pre-verification plug-in.
- the execution module and the virtual machine module may involve updates to the world state, and the above updates can be implemented by the pre-verification plug-in for the world state obtained in step 307.
- Step 312 The pre-verification plug-in obtains the corresponding read-write set according to the account address.
- the execution plug-in may generate a read-write set when executing read/write operations related to the target blockchain transaction.
- the process of a node executing a target blockchain transaction may involve read/write operations, such as reading the world state before the transaction is executed, writing the transaction execution result, etc.
- the set of data corresponding to the above read/write operations i.e., the data read and/or written
- any blockchain node or the other blockchain nodes can determine and obtain the above read-write set by querying the world state before and after executing the target blockchain transaction.
- Step 313 The pre-verification plug-in returns transaction-related data to the client via the service plug-in.
- Step 314 The client displays the transaction-related data.
- the pre-verification plug-in can return the above transaction-related data to the client for display to the operation and maintenance personnel.
- the transaction-related data corresponding to different types of target blockchain exchanges may be different.
- the transaction-related data may include the account address returned by the execution plug-in and the read-write set data obtained according to the account address.
- the transaction-related data may include the account address, method name and method parameters returned by the virtual machine plug-in, and the read-write set data obtained according to the account address.
- the user can analyze the transaction-related data to find the cause of the fork. It can be seen that this solution helps users to quickly locate and troubleshoot the cause of the fork.
- FIG4 is a schematic structural diagram of a device provided by an exemplary embodiment. Please refer to FIG4.
- the device includes a processor 402, an internal bus 404, a network interface 406, a memory 408, and a non-volatile memory 410, and may also include hardware required for other services.
- One or more embodiments of this specification may be implemented based on software, such as the processor 402 reading the corresponding computer program from the non-volatile memory 410 into the memory 408 and then running it.
- one or more embodiments of this specification do not exclude other implementations, such as logic devices or a combination of software and hardware, etc., that is, the execution subject of the following processing flow is not limited to each logic unit, but may also be hardware or logic devices.
- FIG5 is a block diagram of a device for replaying blockchain transactions provided by this specification according to an exemplary embodiment, and the device can be applied to the device shown in FIG4 to implement the technical solution of this specification.
- the device can be applied to any blockchain node in a blockchain network, and the device includes: a transaction determination unit 501, which is used to determine the target blockchain transaction causing the fork when it is determined that the blockchain ledger corresponding to the blockchain network is forked into multiple parallel blockchains, and the target blockchain transaction is recorded in the first forked blocks of the multiple parallel blockchains respectively; a transaction replay unit 502, which is used to obtain the target blockchain transaction from the first forked block and replay the target blockchain transaction, and output the transaction-related data involved in the replay process, and the transaction-related data is used to analyze the cause of the fork.
- a transaction determination unit 501 which is used to determine the target blockchain transaction causing the fork when it is determined that the blockchain ledger corresponding to the blockchain network is forked into multiple parallel blockchains, and the target blockchain transaction is recorded in the
- the transaction determination unit 501 is also used to: during the consensus process for the current block, obtain the parent hash of the current block provided by any other blockchain node; when the parent hash is inconsistent with the block hash of the latest block on the chain maintained by any blockchain node, determine that the blockchain ledger corresponding to the blockchain network is forked into multiple parallel blockchains.
- any one of the blockchain nodes maintains a block of the first parallel blockchain
- the transaction determination unit 501 is further used to: determine each first-type transaction receipt generated by each transaction in the first forked block of the first parallel blockchain executed by any one of the blockchain nodes, and obtain each second-type transaction receipt generated by each transaction in the first forked block of the second parallel blockchain executed by any other blockchain node; when the first-type transaction receipt and the second-type transaction receipt of any transaction are inconsistent, determine any one of the transactions as the target blockchain transaction that caused the fork.
- the transaction replay unit 502 is further used to: obtain the target blockchain transaction from the first forked block of the first parallel blockchain maintained locally, and execute the obtained target blockchain transaction.
- the transaction replay unit 502 is also used to: provide the target blockchain transaction to other blockchain nodes so that the other blockchain nodes execute the target blockchain transaction; the device also includes a remote data receiving unit 503, which is used to receive the transaction-related data returned by the other blockchain nodes.
- the transaction replay unit 502 is also used to: send the target blockchain transaction obtained locally to other blockchain nodes; or, send the transaction hash of the target blockchain transaction to other blockchain nodes, so that the other blockchain nodes can query the target blockchain transaction in the first forked block of the parallel blockchain maintained locally according to the transaction hash.
- the second parallel blockchain to which the on-chain blocks maintained by the other blockchain nodes belong is different from the first parallel blockchain to which the on-chain blocks maintained by any of the blockchain nodes belong.
- the first forked block includes at least one preceding transaction whose execution order is before the target blockchain transaction
- the transaction replay unit 502 is further used to: execute the at least one preceding transaction and the target blockchain transaction in sequence according to the execution order.
- the transaction replay unit 502 is further used to: determine the previous block of the first forked block and the world state corresponding to the block in the blockchain ledger, and execute the target blockchain transaction based on the world state.
- any blockchain node includes a service plug-in, a pre-verification plug-in, a chain plug-in and an execution plug-in
- the chain plug-in is used to manage historical transactions executed by the execution plug-in
- the transaction replay unit 502 is also used to: obtain the target blockchain transaction managed by the chain plug-in by the pre-verification plug-in, and send the target blockchain transaction to the execution plug-in for execution; determine the transaction-related data involved in the replay process by the pre-verification plug-in, and output the transaction-related data through the service plug-in.
- any blockchain node also includes a virtual machine plug-in
- the transaction replay unit 502 is also used to: when the target blockchain transaction calls a smart contract, call and execute the smart contract through the virtual machine plug-in; and receive the contract execution data generated by executing the smart contract returned by the virtual machine plug-in, and forward the contract execution data as the transaction-related data to the pre-verification plug-in.
- the transaction replay unit 502 is also used to: send the transaction-related data to a client or a management device corresponding to any blockchain node, so that the client or the management device displays the transaction-related data to the user.
- the transaction-related data includes at least one of the following: the account address associated with the target blockchain transaction; the method name and method parameters of the method called by the target blockchain exchange; the contract address, contract method, input parameters and/or contract code file information of the smart contract called by the target blockchain exchange; the read-write set generated by any blockchain node executing a read/write operation related to the target blockchain transaction.
- a programmable logic device such as a field programmable gate array (FPGA)
- FPGA field programmable gate array
- HDL Hardware Description Language
- HDL Very-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
- VHDL Very-High-Speed Integrated Circuit Hardware Description Language
- Verilog Verilog
- the controller may be implemented in any suitable manner, for example, the controller may take the form of a microprocessor or processor and a computer readable medium storing a computer readable program code (e.g., software or firmware) executable by the (micro)processor, a logic gate, a switch, an application specific integrated circuit (ASIC), a programmable logic controller, and an embedded microcontroller, examples of which include but are not limited to the following microcontrollers: ARC 625D, Atmel AT91SAM, Microchip PIC18F26K20, and Silicone Labs C8051F320, and the memory controller may also be implemented as part of the control logic of the memory.
- a computer readable program code e.g., software or firmware
- the controller may be implemented in the form of a logic gate, a switch, an application specific integrated circuit, a programmable logic controller, and an embedded microcontroller by logically programming the method steps. Therefore, such a controller may be considered as a hardware component, and the means for implementing various functions included therein may also be considered as a structure within the hardware component. Or even, the means for implementing various functions may be considered as both a software module for implementing the method and a structure within the hardware component.
- 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, a personal digital assistant, a media player, a navigation device, an email device, a game console, a tablet computer, a wearable device, or a combination of any of these devices.
- one or more embodiments of the present specification provide method operation steps as described in the embodiments or flow charts, more or less operation steps may be included based on conventional or non-creative means.
- the order of steps listed in the embodiments is only one way of executing the order of many steps, and does not represent the only execution order.
- the device or terminal product in practice is executed, it can be executed in sequence or in parallel according to the method shown in the embodiments or the drawings (for example, a parallel processor or a multi-threaded processing environment, or even a distributed data processing environment).
- each module can be implemented in the same or more software and/or hardware, or the module implementing the same function can be implemented by a combination of multiple sub-modules or sub-units, etc.
- the device embodiments described above are only schematic.
- the division of the units is only a logical function division. There may be other division methods in actual implementation.
- multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed.
- Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.
- These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing device to work in a specific manner, so that the instructions stored in the computer-readable memory produce a product including an instruction device that implements the functions specified in one or more processes in the flowchart and/or one or more boxes in the block diagram.
- These computer program instructions may also be loaded onto a computer or other programmable data processing device so that a series of operational steps are executed on the computer or other programmable device to produce a computer-implemented process, whereby the instructions executed on the computer or other programmable device provide steps for implementing the functions specified in one or more processes in the flowchart and/or one or more boxes in the block diagram.
- a computing device includes one or more processors (CPU), input/output interfaces, network interfaces, and memory.
- processors CPU
- input/output interfaces network interfaces
- memory volatile and non-volatile memory
- Memory may include non-permanent storage in a computer-readable medium, in the form of random access memory (RAM) and/or non-volatile memory, such as read-only memory (ROM) or flash memory (flash RAM). Memory is an example of a computer-readable medium.
- RAM random access memory
- ROM read-only memory
- flash RAM flash memory
- Computer readable media include permanent and non-permanent, removable and non-removable media that can be implemented by any method or technology to store information.
- Information can be computer readable instructions, data structures, program modules 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), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, compact disk read-only memory (CD-ROM), digital versatile disk (DVD) or other optical storage, magnetic cassettes, magnetic tape magnetic disk storage, graphene storage or other magnetic storage devices or any other non-transmission media that can be used to store information that can be accessed by a computing device.
- computer readable media does not include temporary computer readable media (transitory media), such as modulated data signals and carrier waves.
- one or more embodiments of the present specification may be provided as a method, system or computer program product. Therefore, one or more embodiments of the present specification may take the form of a complete hardware embodiment, a complete software embodiment or an embodiment combining software and hardware. Moreover, one or more embodiments of the present specification may take the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.
- computer-usable storage media including but not limited to disk storage, CD-ROM, optical storage, etc.
- One or more embodiments of this specification may be described in the general context of computer-executable instructions executed by a computer, such as program modules.
- program modules include routines, programs, objects, components, data structures, etc. that perform specific tasks or implement specific abstract data types.
- One or more embodiments of this specification may also be practiced in distributed computing environments where tasks are performed by remote processing devices connected through a communication network.
- program modules may be located in local and remote computer storage media, including storage devices.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
Claims (16)
- 一种重放区块链交易的方法,应用于区块链网络中的任一区块链节点,所述方法包括:在确定所述区块链网络对应的区块链账本分叉为多条平行区块链的情况下,确定引起所述分叉的目标区块链交易,所述目标区块链交易被分别记录在所述多条平行区块链的首个分叉区块中;从所述首个分叉区块中获取所述目标区块链交易并对所述目标区块链交易进行重放,且输出重放过程涉及的交易相关数据,所述交易相关数据被用于分析产生所述分叉的原因。
- 根据权利要求1所述的方法,所述确定所述区块链网络对应的区块链账本分叉为多条平行区块链,包括:在针对当前区块的共识过程中,获取任一其他区块链节点提供的所述当前区块的父哈希;在所述父哈希与所述任一区块链节点维护的链上最新区块的区块哈希不一致的情况下,确定所述区块链网络对应的区块链账本分叉为多条平行区块链。
- 根据权利要求1所述的方法,所述任一区块链节点维护有第一平行区块链的区块,所述确定引起所述分叉的目标区块链交易,包括:确定所述任一区块链节点执行第一平行区块链的首个分叉区块中的各个交易所产生的各个第一类交易回执,并获取任一其他区块链节点执行第二平行区块链的首个分叉区块中的各个交易产生的各个第二类交易回执;在任一交易的第一类交易回执和第二类交易回执不一致的情况下,将所述任一交易确定为引起所述分叉的目标区块链交易。
- 根据权利要求1所述的方法,所述从所述首个分叉区块中获取所述目标区块链交易并对所述目标区块链交易进行重放,包括:从本地维护的第一平行区块链的首个分叉区块中获取所述目标区块链交易,并执行获取到的所述目标区块链交易。
- 根据权利要求1所述的方法,所述从所述首个分叉区块中获取所述目标区块链交易并对所述目标区块链交易进行重放,包括:向其他区块链节点提供所述目标区块链交易,以由所述其他区块链节点执行所述目标区块链交易;所述方法还包括:接收所述其他区块链节点返回的所述交易相关数据。
- 根据权利要求5所述的方法,所述向其他区块链节点提供所述目标区块链交易,包括:将从本地获取的所述目标区块链交易发送至其他区块链节点;或者,将所述目标区块链交易的交易哈希发送至其他区块链节点,以由所述其他区块链节点根据所述交易哈希在本地维护的平行区块链的首个分叉区块中查询所述目标区块链 交易。
- 根据权利要求5所述的方法,所述其他区块链节点维护的链上区块所属的第二平行区块链,与所述任一区块链节点维护的链上区块所属的第一平行区块链不同。
- 根据权利要求1所述的方法,所述首个分叉区块中包含执行顺序位于所述目标区块链交易之前的至少一个前序交易,所述对所述目标区块链交易进行重放,包括:按照所述执行顺序依次执行所述至少一个前序交易和所述目标区块链交易。
- 根据权利要求1所述的方法,所述对所述目标区块链交易进行重放,包括:在所述区块链账本中确定所述首个分叉区块的前一区块以及该区块对应的世界状态,并基于所述世界状态执行所述目标区块链交易。
- 根据权利要求1所述的方法,所述任一区块链节点包含服务插件、预验证插件、链插件和执行插件,所述链插件用于管理所述执行插件执行的历史交易,所述从所述首个分叉区块中获取所述目标区块链交易并对所述目标区块链交易进行重放,且输出重放过程涉及的交易相关数据,包括:所述预验证插件获取所述链插件管理的所述目标区块链交易,并将所述目标区块链交易发送至所述执行插件执行;所述预验证插件确定重放过程涉及的交易相关数据,并通过所述服务插件输出所述交易相关数据。
- 根据权利要求10所述的方法,任一区块链节点还包含虚拟机插件,所述执行插件执行所述目标区块链交易,包括:在所述目标区块链交易调用智能合约的情况下,通过所述虚拟机插件调用并执行所述智能合约;以及,接收所述虚拟机插件返回的执行所述智能合约产生的合约执行数据,并将所述合约执行数据作为所述交易相关数据转发至所述预验证插件。
- 根据权利要求1所述的方法,所述输出执行过程产生的交易相关数据,包括:将所述交易相关数据发送至任一区块链节点对应的客户端或者管理设备,以由所述客户端或者所述管理设备向用户展示所述交易相关数据。
- 根据权利要求1所述的方法,所述交易相关数据,包括下述至少之一:所述目标区块链交易关联的账户地址;所述目标区块链交易所调用方法的方法名和方法参数;所述目标区块链交易所调用智能合约的合约地址、合约方法、输入参数和/或合约代码文件信息;所述任一区块链节点执行与所述目标区块链交易相关的读/写操作产生的读写集。
- 一种重放区块链交易的装置,应用于区块链网络中的任一区块链节点,所述装置包括:交易确定单元,用于在确定所述区块链网络对应的区块链账本分叉为多条平行区块链的情况下,确定引起所述分叉的目标区块链交易,所述目标区块链交易被分别记录在 所述多条平行区块链的首个分叉区块中;交易重放单元,用于从所述首个分叉区块中获取所述目标区块链交易并对所述目标区块链交易进行重放,且输出重放过程涉及的交易相关数据,所述交易相关数据被用于分析产生所述分叉的原因。
- 一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器通过运行所述可执行指令以实现如权利要求1-13中任一项所述的方法。
- 一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如权利要求1-13中任一项所述方法的步骤。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202211212088.4 | 2022-09-30 | ||
| CN202211212088.4A CN115658357A (zh) | 2022-09-30 | 2022-09-30 | 重放区块链交易的方法及装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2024066005A1 true WO2024066005A1 (zh) | 2024-04-04 |
Family
ID=84985838
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2022/135240 Ceased WO2024066005A1 (zh) | 2022-09-30 | 2022-11-30 | 重放区块链交易的方法及装置 |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN115658357A (zh) |
| WO (1) | WO2024066005A1 (zh) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN117743305A (zh) * | 2023-12-29 | 2024-03-22 | 蚂蚁区块链科技(上海)有限公司 | 区块链指标系统、指标修正方法及装置 |
| CN117670330B (zh) * | 2024-02-01 | 2024-05-24 | 中国信息通信研究院 | 基于区块链的交易处理方法和装置、电子设备和存储介质 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20180114218A1 (en) * | 2016-10-26 | 2018-04-26 | International Business Machines Corporation | Blockchain: automatic fork protection |
| US20200167779A1 (en) * | 2018-11-27 | 2020-05-28 | Akamai Technologies, Inc. | High performance distributed system of record with confidence-based consensus |
| CN112347184A (zh) * | 2019-08-07 | 2021-02-09 | 华为技术有限公司 | 分叉处理方法以及区块链节点 |
| CN113347033A (zh) * | 2021-05-31 | 2021-09-03 | 中国工商银行股份有限公司 | 基于区块链的根因定位方法、系统及验证节点 |
| CN114661231A (zh) * | 2022-02-18 | 2022-06-24 | 南京南瑞继保电气有限公司 | 电网监控主站系统参数变更记录的存储同步方法及装置 |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP3285248B1 (en) * | 2016-08-16 | 2019-07-03 | Alcatel Lucent | Blockchain-based security threat detection method and system |
| CN108647963B (zh) * | 2018-05-02 | 2020-05-12 | 百度在线网络技术(北京)有限公司 | 区块链主链的确定方法、装置、服务器和存储介质 |
| CN111190831B (zh) * | 2020-01-02 | 2022-09-20 | 南京邮电大学 | 区块链共识算法的鲁棒性分析方法及区块链系统 |
-
2022
- 2022-09-30 CN CN202211212088.4A patent/CN115658357A/zh active Pending
- 2022-11-30 WO PCT/CN2022/135240 patent/WO2024066005A1/zh not_active Ceased
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20180114218A1 (en) * | 2016-10-26 | 2018-04-26 | International Business Machines Corporation | Blockchain: automatic fork protection |
| US20200167779A1 (en) * | 2018-11-27 | 2020-05-28 | Akamai Technologies, Inc. | High performance distributed system of record with confidence-based consensus |
| CN112347184A (zh) * | 2019-08-07 | 2021-02-09 | 华为技术有限公司 | 分叉处理方法以及区块链节点 |
| CN113347033A (zh) * | 2021-05-31 | 2021-09-03 | 中国工商银行股份有限公司 | 基于区块链的根因定位方法、系统及验证节点 |
| CN114661231A (zh) * | 2022-02-18 | 2022-06-24 | 南京南瑞继保电气有限公司 | 电网监控主站系统参数变更记录的存储同步方法及装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN115658357A (zh) | 2023-01-31 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN113076253A (zh) | 一种测试方法和测试装置 | |
| US20160048703A1 (en) | Securing integrity and consistency of a cloud storage service with efficient client operations | |
| CN112087530B (zh) | 一种将数据上传至区块链系统的方法、装置、设备及介质 | |
| CN110046523A (zh) | 智能合约校验方法及装置和电子设备 | |
| WO2024092932A1 (zh) | 交易执行方法和区块链节点 | |
| US20250342143A1 (en) | Transaction execution methods and blockchain nodes in blockchain systems | |
| CN112291321A (zh) | 业务处理方法、装置及系统 | |
| WO2024001025A1 (zh) | 一种预执行缓存数据清理方法和区块链节点 | |
| CN115658357A (zh) | 重放区块链交易的方法及装置 | |
| CN115017167A (zh) | 区块链系统和信息更新方法及装置 | |
| CN114996057A (zh) | 数据备份方法及装置、电子设备和计算机可读存储介质 | |
| WO2025000878A1 (zh) | 交易的执行方法、节点和区块链系统 | |
| CN112527519A (zh) | 一种高性能本地缓存方法、系统、设备及介质 | |
| CN109389271B (zh) | 应用性能管理方法及系统 | |
| CN116308372A (zh) | 针对区块链交易的检测方法及装置 | |
| CN114692185A (zh) | 数据处理方法及装置 | |
| CN114741736A (zh) | 一种数据处理方法、装置、电子设备和存储介质 | |
| US20250077543A1 (en) | Systems and methods for automatic ingestion of data using a rate-limited application programming interface | |
| WO2025043923A1 (zh) | 交易的执行方法及装置 | |
| WO2024244342A1 (zh) | 区块链中的交易处理方法和区块链节点 | |
| CN118740596A (zh) | 一种业务流量依赖关系确定方法、装置及设备 | |
| CN114726537B (zh) | 数据处理方法及装置 | |
| CN117764728B (zh) | 一种区块链跨合约调用方法、装置、设备及存储介质 | |
| CN110992039A (zh) | 交易处理方法、装置及设备 | |
| CN117273924A (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: 22960601 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: 22960601 Country of ref document: EP Kind code of ref document: A1 |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 22960601 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.09.2025) |