Transaction execution method, device, equipment and storage medium

By introducing SQL smart contracts into the blockchain system, parsing and executing SQL statements sent by the client, the problem of single structured data storage and smart contract execution logic in the blockchain system is solved, and flexible execution and data security are achieved.

CN114328590BActive Publication Date: 2025-06-06HANGZHOU QULIAN TECHNOLOGY CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202111677860.5
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-12-31
Publication Date
2025-06-06
Estimated Expiration
2041-12-31

AI Technical Summary

Technical Problem

There is a problem in the blockchain system that structured data cannot be stored directly through KV, and the existing smart contract execution logic is single, which limits the expansion of business scenarios.

Method used

Provides a transaction execution method, by introducing SQL smart contracts into the blockchain system, allowing the client to send contract call transactions carrying SQL statements and smart contract space identification, parse and execute SQL statements, perform data operations in the target space in memory, and submit and update to the blockchain ledger after success.

Benefits of technology

It realizes the flexible execution of SQL statements by the blockchain system, breaks through the limitations of traditional smart contract execution logic, expands business scenarios, and improves the security of blockchain ledger data.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114328590B_ABST
    Figure CN114328590B_ABST
Patent Text Reader

Abstract

The present application discloses a transaction execution method, device, equipment and storage medium, which belongs to the field of blockchain technology. Applied to the blockchain system, it includes: receiving a contract call transaction sent by a client carrying an SQL statement and a smart contract space identifier; calling an SQL smart contract according to the SQL statement and the smart contract space identifier to perform the following operations: parsing the SQL statement, performing data operations in the target space in the memory according to the operation type and key-value pair in the parsing result, and if the data operation is successfully performed, submitting the updated data in the target space to the smart contract space to complete the execution of the SQL statement. In this application, the client is allowed to pass in different SQL statements and execute different operation logics when initiating a contract call transaction that calls an SQL smart contract, thereby realizing the flexible execution of SQL statements by the blockchain system, and by introducing the target space, the security of the blockchain ledger data can be improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of blockchain technology, and in particular to a transaction execution method, apparatus, device and storage medium. Background Art

[0002] Most of the data in the blockchain system is stored in the form of KV (key-value), but in actual business scenarios, there is a lot of structured data that cannot be directly stored in the form of KV. Although structured data can be stored through the built-in data structure HyperTable of JAVA smart contracts, it is inconvenient to use and the structured data that can be stored is greatly limited. Summary of the invention

[0003] The present application provides a transaction execution method, apparatus, device and storage medium, which can realize the flexible execution of SQL statements by the blockchain system and ensure the security of blockchain ledger data. The technical solution is as follows:

[0004] In a first aspect, a transaction execution method is provided, which is applied to a blockchain system, and the method comprises:

[0005] Receive a contract call transaction sent by a client and carrying an SQL statement and a smart contract space identifier, wherein the contract call transaction is used to call an SQL smart contract, and the smart contract space identifier is used to identify the smart contract space belonging to the SQL smart contract in the blockchain account book;

[0006] Call the SQL smart contract according to the SQL statement and the smart contract space identifier to perform the following operations:

[0007] Parsing the SQL statement to obtain a parsing result, wherein the parsing result includes an operation type and a key-value pair;

[0008] When it is determined that a target space exists in the memory according to the smart contract space identifier, a data operation is performed in the target space according to the operation type and the key-value pair, wherein the target space includes the table structure of all data tables in the smart contract space;

[0009] If the data operation is successfully executed in the target space, then if there is data update in the target space, the updated data in the target space is submitted to the smart contract space to complete the execution of the SQL statement.

[0010] In this application, the execution logic of the SQL smart contract depends on the SQL statement passed in. Based on the rich semantics of the SQL statement, the SQL smart contract breaks through the limitation of the single execution logic of the traditional smart contract. It allows the client to pass in different SQL statements and execute different operation logics when initiating a contract call transaction to call the SQL smart contract, thus realizing the flexible execution of SQL statements by the blockchain system through the SQL smart contract. In addition, when calling the SQL smart contract to execute the SQL statement, the data operation is first performed in the target space in the memory. When the data operation is successfully executed, the updated data in the target space is submitted to the smart contract space in the blockchain ledger, which can improve the security of the blockchain ledger data.

[0011] Optionally, before receiving the contract call transaction sent by the client and carrying the structured query language SQL statement and the smart contract space identifier, the method further includes:

[0012] Receive the contract deployment transaction sent by the client;

[0013] Creating the smart contract space for the SQL smart contract in the blockchain ledger;

[0014] Send the smart contract space identifier of the smart contract space to the client.

[0015] Optionally, the method further comprises:

[0016] When it is determined according to the smart contract space identifier that the target space does not exist in the memory, obtaining metadata information in the smart contract space;

[0017] Creating the target space in the memory according to the metadata information;

[0018] According to the operation type and the key-value pair, data operation is performed in the target space.

[0019] Optionally, after performing the data operation in the target space according to the operation type and the key-value pair, the method further includes:

[0020] If the data operation performed in the target space fails, the target space is destroyed, or the data updated in the target space due to the execution of the SQL statement is rolled back.

[0021] Optionally, the operation type is a table creation type, a table deletion type, a table modification type, a table data insertion type, a table data deletion type, a table data update type, or a table data query type.

[0022] Optionally, performing the data operation in the target space according to the operation type and the key-value pair includes:

[0023] If the operation type is a table creation type, searching the target space for a first data table to be created according to the key-value pair;

[0024] If the first data table does not exist in the target space, the first data table is created in the target space according to the key-value pair, and a data update mark is added to the first data table.

[0025] Optionally, performing the data operation in the target space according to the operation type and the key-value pair includes:

[0026] If the operation type is a table data insert type, searching the target space for a second data table where the target data to be inserted is located according to the key-value pair;

[0027] If the second data table exists in the target space, the target data is inserted into the second data table in the target space according to the key-value pair, and a data update mark is added to the target data.

[0028] Optionally, after searching the target space for the second data table where the target data to be inserted is located according to the key-value pair, the method further includes:

[0029] If the second data table does not exist in the target space, searching for the second data table in the smart contract space;

[0030] If the second data table does not exist in the smart contract space, determining that the data operation in the target space fails;

[0031] If the second data table exists in the smart contract space, storing the second data table in the smart contract space into the target space;

[0032] The target data is inserted into the second data table in the target space according to the key-value pair, and a data update mark is added to the target data.

[0033] In a second aspect, a transaction execution device is provided, which is applied to a blockchain system, and the device includes:

[0034] A receiving module, used to receive a contract call transaction sent by a client and carrying an SQL statement and a smart contract space identifier, wherein the contract call transaction is used to call an SQL smart contract, and the smart contract space identifier is used to identify the smart contract space belonging to the SQL smart contract in the blockchain account book;

[0035] An execution module is used to call the SQL smart contract according to the SQL statement and the smart contract space identifier to perform the following operations:

[0036] Parsing the SQL statement to obtain a parsing result, wherein the parsing result includes an operation type and a key-value pair;

[0037] When it is determined that a target space exists in the memory according to the smart contract space identifier, a data operation is performed in the target space according to the operation type and the key-value pair, wherein the target space includes the table structure of all data tables in the smart contract space;

[0038] If the data operation is successfully executed in the target space, then if there is data update in the target space, the updated data in the target space is submitted to the smart contract space to complete the execution of the SQL statement.

[0039] Optionally, the device further comprises:

[0040] The receiving module is further used to receive the contract deployment transaction sent by the client;

[0041] A creation module, used to create the smart contract space for the SQL smart contract in the blockchain ledger;

[0042] A sending module is used to send the smart contract space identifier of the smart contract space to the client.

[0043] Optionally, the execution module is further used for:

[0044] When it is determined according to the smart contract space identifier that the target space does not exist in the memory, obtaining metadata information in the smart contract space;

[0045] Creating the target space in the memory according to the metadata information;

[0046] According to the operation type and the key-value pair, data operation is performed in the target space.

[0047] Optionally, the execution module is further used for:

[0048] If the data operation performed in the target space fails, the target space is destroyed, or the data updated in the target space due to the execution of the SQL statement is rolled back.

[0049] Optionally, the operation type is a table creation type, a table deletion type, a table modification type, a table data insertion type, a table data deletion type, a table data update type, or a table data query type.

[0050] Optionally, the execution module is used to:

[0051] If the operation type is a table creation type, searching the target space for a first data table to be created according to the key-value pair;

[0052] If the first data table does not exist in the target space, the first data table is created in the target space according to the key-value pair, and a data update mark is added to the first data table.

[0053] Optionally, the execution module is used to:

[0054] If the operation type is a table data insert type, searching the target space for a second data table where the target data to be inserted is located according to the key-value pair;

[0055] If the second data table exists in the target space, the target data is inserted into the second data table in the target space according to the key-value pair, and a data update mark is added to the target data.

[0056] Optionally, the execution module is used to:

[0057] If the second data table does not exist in the target space, searching for the second data table in the smart contract space;

[0058] If the second data table does not exist in the smart contract space, determining that the data operation in the target space fails;

[0059] If the second data table exists in the smart contract space, storing the second data table in the smart contract space into the target space;

[0060] The target data is inserted into the second data table in the target space according to the key-value pair, and a data update mark is added to the target data.

[0061] In a third aspect, a computer device is provided, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the computer program implements the above-mentioned transaction execution method when executed by the processor.

[0062] In a fourth aspect, a computer-readable storage medium is provided, wherein the computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the above-mentioned transaction execution method is implemented.

[0063] In a fifth aspect, a computer program product comprising instructions is provided, which, when executed on a computer, enables the computer to execute the steps of the above-mentioned transaction execution method.

[0064] It can be understood that the beneficial effects of the second, third, fourth and fifth aspects mentioned above can be found in the relevant description of the first aspect mentioned above, and will not be repeated here. BRIEF DESCRIPTION OF THE DRAWINGS

[0065] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the drawings required for use in the description of the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without creative work.

[0066] Figure 1 It is a structural diagram of a blockchain system provided by an embodiment of the present application;

[0067] Figure 2 It is a schematic diagram of a blockchain provided by an embodiment of the present application;

[0068] Figure 3 is a schematic diagram of a transaction execution system provided in an embodiment of the present application;

[0069] Figure 4 is a flow chart of a transaction execution method provided by an embodiment of the present application;

[0070] Figure 5 It is a structural diagram of a transaction execution device provided in an embodiment of the present application;

[0071] Figure 6 It is a structural diagram of a computer device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0072] In order to make the objectives, technical solutions and advantages of the present application clearer, the implementation methods of the present application will be further described in detail below with reference to the accompanying drawings.

[0073] It should be understood that the "multiple" mentioned in this application refers to two or more. In the description of this application, unless otherwise specified, " / " means or, for example, A / B can mean A or B; "and / or" in this article is only a description of the association relationship of associated objects, indicating that there can be three relationships, for example, A and / or B can mean: A exists alone, A and B exist at the same time, and B exists alone. In addition, in order to facilitate the clear description of the technical solution of this application, the words "first" and "second" are used to distinguish between the same items or similar items with basically the same functions and effects. Those skilled in the art can understand that the words "first" and "second" do not limit the quantity and execution order, and the words "first" and "second" do not limit them to be different.

[0074] Before explaining the embodiments of the present application, the relevant contents of the blockchain are explained first.

[0075] Figure 1 It is a structural diagram of a blockchain system provided in an embodiment of the present application.

[0076] See also Figure 1 , the blockchain system 100 refers to a system for sharing data between nodes, and the blockchain system 100 may include multiple nodes 101. Each node 101 can receive input information when performing normal work, and maintain the shared data in the blockchain system 100 based on the received input information. In order to ensure the information intercommunication within the blockchain system 100, there can be an information connection between each node 101 in the blockchain system 100, and information can be transmitted between the nodes 101 through the information connection. For example, when any node 101 in the blockchain system 100 receives input information, other nodes 101 in the blockchain system 100 obtain the input information according to the consensus algorithm, and store the input information as data in the shared data, so that the data stored on all nodes 101 in the blockchain system 100 are consistent.

[0077] Each node 101 in the blockchain system 100 stores an identical blockchain. Figure 2 Take this as an example to illustrate a possible structure of a blockchain. Of course, in actual applications, the structure of a blockchain may be different depending on different scenarios, and this embodiment of the present application does not limit this.

[0078] See also Figure 2 , the blockchain consists of multiple blocks, and the genesis block includes a block header and a block body. As an example, the block header stores input information feature values, version numbers, timestamps, and difficulty values, and the block body stores input information; the next block of the genesis block uses the genesis block as its parent block, and the next block also includes a block header and a block body. The block header stores the input information feature values ​​of the current block, the block header feature values, version numbers, timestamps, and difficulty values ​​of the parent block, and so on, so that the block data stored in each block in the blockchain is associated with the block data stored in the parent block, ensuring the security of the input information in the block.

[0079] The blockchain system 100 has computer technologies such as distributed data storage, peer-to-peer transmission, consensus mechanism, encryption algorithm, etc. The blockchain system 100 is a distributed shared account book and database, which has the characteristics of decentralization, non-tamperability, full traceability, traceability, collective maintenance, openness and transparency. These characteristics ensure the sharing, openness, authenticity, integrity, security and reliability of the blockchain.

[0080] The application scenarios involved in the embodiments of the present application are described below.

[0081] Smart contracts in blockchain systems can provide distributed trusted computing, but the execution logic pre-written in traditional smart contracts is fixed, so only very limited operations can be performed, which greatly limits the user's use of blockchain systems. At the same time, data in blockchain systems are mostly stored in the form of KV, but in actual business scenarios, there is a lot of structured data that cannot be directly stored in the form of KV, which greatly limits the application scenarios of blockchain systems.

[0082] To this end, the embodiment of the present application provides a transaction execution method, which can interpret and execute the SQL statement carried by the contract call transaction through the SQL (Structured Query Language) smart contract in the blockchain system, so as to convert the SQL statement's description of structured data into a description of KV type data, that is, convert it into a data format that can be stored in the blockchain account book. SQL smart contracts break through the limitation of the single execution logic of traditional smart contracts, and allow the client to pass in different SQL statements and execute different operation logics when initiating a contract call transaction. In this way, the business scenarios of the blockchain system can be greatly expanded.

[0083] The system architecture involved in the embodiments of the present application is described below.

[0084] Figure 3 is a schematic diagram of a transaction execution system provided in an embodiment of the present application. Figure 3 , the transaction execution system includes: a client 301 and a blockchain system 302.

[0085] The client 301 can be installed on a terminal or a server. The server corresponding to the client 301 is installed on the blockchain system 302. The blockchain system 302 can be the Figure 1-Figure 2 The blockchain system 100 shown in the embodiment. The client 301 and the blockchain system 302 can communicate through a wired connection and a wireless connection.

[0086] The client 301 is used to generate an SQL statement and carry the SQL statement in the contract call transaction to the blockchain system 302. The SQL statement is used to implement operations on the blockchain account book, that is, it can create a data table, delete a data table, modify a data table, insert table data, update table data, delete table data, read table data, etc. in the blockchain account book. After the blockchain system 302 receives the contract call transaction sent by the client 301, it can call the SQL smart contract to execute the SQL statement carried by the contract call transaction, so as to implement operations on the blockchain account book. That is, in the embodiment of the present application, the client 301 can directly operate the blockchain account book in the blockchain system 302 through SQL statements.

[0087] Specifically, the blockchain system 302 can be implemented as follows: Figure 4 The transaction execution method provided in the embodiment is used to realize the flexible execution of SQL statements carried in the contract call transaction by the blockchain system 302 through the SQL smart contract, thereby expanding the business scenarios of the blockchain system 302.

[0088] The transaction execution method provided in the embodiment of the present application is explained in detail below.

[0089] Figure 4 This is a flow chart of a transaction execution method provided in an embodiment of the present application. This method can be applied to a blockchain system. Optionally, it can be executed by a SQL virtual machine (also called a SQL smart contract execution engine) in the blockchain system. Of course, it can also be executed by other modules. This embodiment of the present application does not limit this. Figure 4 , the method comprises the following steps.

[0090] Step 401: The blockchain system receives the contract deployment transaction sent by the client.

[0091] The contract deployment transaction is used to instruct the blockchain system to deploy the SQL smart contract, which is a smart contract used to execute SQL statements.

[0092] Step 402: The blockchain system creates a smart contract space for the SQL smart contract in the blockchain ledger.

[0093] After the blockchain system receives the contract deployment transaction, it needs to deploy the SQL smart contract. In the embodiment of the present application, when the blockchain system deploys the SQL smart contract, it is not necessary to deploy fixed execution logic, but to create a smart contract space in the blockchain system account book to implement the deployment of the SQL smart contract. The smart contract space stores KV type data, which is specifically used to store the data table generated after calling the SQL smart contract. For example, the smart contract space may include metadata information and table data information. The metadata information may include table name, table structure information, and code for constructing the table structure of all data tables in the smart contract space. The table data information may include data in all data tables in the smart contract space.

[0094] Step 403: The blockchain system sends the smart contract space identifier of the smart contract space to the client.

[0095] The smart contract space identifier is used to uniquely identify the smart contract space. For example, the smart contract space identifier can be the number of the smart contract space.

[0096] After the blockchain system sends the smart contract space identifier to the client, the client can subsequently call the SQL smart contract based on the smart contract space identifier, as described below.

[0097] Step 404: The blockchain system receives the contract call transaction sent by the client.

[0098] The contract call transaction is used to call the SQL smart contract. The contract call transaction carries the SQL statement and the smart contract space identifier. For example, the SQL statement and the smart contract space identifier can be carried in the transaction body of the contract call transaction. The smart contract space identifier is used to identify the smart contract space where the SQL statement is to perform data operations, that is, it is used to identify the smart contract space belonging to the SQL smart contract in the blockchain ledger.

[0099] For example, the SQL statement may be a DDL (Data Definition Language) statement, a DML (Data Manipulation Language) statement, or a DQL (Data Query Language) statement. The DDL statement is used to operate the data table in the blockchain account book, that is, it can be used to create (create), delete (drop), and modify (alter) the data table in the blockchain account book. The DML statement is used to operate the data in the data table in the blockchain account book, that is, it can be used to insert (insert), update (update), and delete (delete) the data in the data table in the blockchain account book. The DQL statement is used to read (select) the data in the data table in the blockchain account book.

[0100] It is worth noting that the client that sends the contract call transaction and the client that sends the contract deployment transaction can be the same client or different clients. That is, after a client instructs the blockchain system to deploy a SQL smart contract through a contract deployment transaction, the client can call the previously deployed SQL smart contract through a contract call transaction to execute SQL statements; or, after a client instructs the blockchain system to deploy a SQL smart contract through a contract deployment transaction, another client can call the deployed SQL smart contract through a contract call transaction to execute SQL statements.

[0101] After the blockchain system receives the contract call transaction, it can call the SQL smart contract to execute the SQL statement carried in the contract call transaction, as described below.

[0102] Step 405: The blockchain system calls the SQL smart contract according to the SQL statement and the smart contract space identifier to execute the following steps 4051-4055.

[0103] In this case, the blockchain system can create an execution context for the contract call transaction. As the execution environment of the contract call transaction, the execution context can provide an access interface to the blockchain ledger on the one hand, and a secure sandbox environment to execute the contract call transaction on the other hand, thereby ensuring the security of data operations. In this case, the interaction with the blockchain ledger in steps 4051 to 4055 can be implemented through the access interface to the blockchain ledger provided by the execution context.

[0104] Step 4051: Parse the SQL statement and obtain the parsing result.

[0105] The parsing result includes a key-value pair and an operation type. The key-value pair includes a key value and a value value. The key value is the keyword of the data to be operated (such as a primary key), and the data to be operated can be found from the blockchain account book according to the key value. The value value is the specific value of the data to be operated. The operation type is used to indicate the operation to be performed on the data, and may include a table creation type, a table deletion type, a table modification type, a table data insertion type, a table data update type, a table data deletion type, and a table data read type.

[0106] Specifically, when parsing the SQL statement, the SQL statement can be compiled to generate an abstract syntax tree, and then an execution plan is constructed according to the abstract syntax tree, and then an executor is constructed according to the execution plan. The executor contains the operation type and key-value pair corresponding to the SQL statement. The executor can implement the execution of the SQL statement according to the operation type and key-value pair corresponding to the SQL statement, that is, the subsequent steps 4052-4055 can all be executed by the executor.

[0107] Step 4052: Determine whether the target space exists in the memory based on the smart contract space identifier.

[0108] The target space is a space that includes the table structure of all data tables in the smart contract space identified by the smart contract space identifier. That is, the target space is a space created in the memory according to the smart contract space, and the target space can play the role of data read and write cache for the smart contract space. In this case, judging whether the target space exists in the memory according to the smart contract space identifier is to judge whether there is a target space created according to the smart contract space identified by the smart contract space identifier in the memory.

[0109] It is worth noting that if data operations have been performed on the smart contract space before, then the target space is likely to exist in the memory at this time. If data operations have not been performed on the smart contract space before, then the target space will not exist in the memory at this time. Therefore, after obtaining the parsing result of the SQL statement in step 4051, it can be determined in step 4052 whether the target space exists in the memory.

[0110] Step 4053: When it is determined that the target space exists in the memory according to the smart contract space identifier, data operations are performed in the target space according to the operation type and the key-value pair. Alternatively, when it is determined that the target space does not exist in the memory according to the smart contract space identifier, metadata information in the smart contract space is obtained, a target space is created in the memory according to the metadata information, and data operations are performed in the target space according to the operation type and the key-value pair.

[0111] The metadata information in the smart contract space may include table names, table structure information, and codes for constructing the table structures of all data tables in the smart contract space. Therefore, a target space including the table structures of all data tables in the smart contract space can be created in memory according to the metadata information. Afterwards, data operations can be performed in the target space according to the operation type and the key-value pair.

[0112] According to the operation type and the key-value pair, data operations in the target space may include the following seven possible situations:

[0113] In the first possible case, a table creation operation is performed in the target space according to the operation type and the key-value pair.

[0114] Specifically, if the operation type is a table creation type, the first data table to be created is searched in the target space according to the key-value pair; if the first data table exists in the target space, the operation is terminated; if the first data table does not exist in the target space, the first data table is created in the target space according to the key-value pair, and a data update mark is added to the first data table.

[0115] The data update mark is used to indicate the data updated in the target space when the SQL statement is executed. In this way, when the data operation is successfully performed in the target space according to the operation type and the key-value pair, the data in the target space generated when the SQL statement is executed can be determined according to the data update mark, so that the updated data in the target space can be submitted to the smart contract space in the blockchain ledger.

[0116] In the second possible case, a table deletion operation is performed in the target space according to the operation type and the key-value pair.

[0117] Specifically, if the operation type is a table deletion type, the first data table to be deleted is searched in the target space according to the key-value pair. If the first data table exists in the target space, the first data table in the target space is set to a deletion state, and a data update mark is added to the first data table in the target space. If the first data table does not exist in the target space, the first data table is searched in the smart contract space in the blockchain ledger according to the key-value pair; if the first data table does not exist in the smart contract space, the operation is terminated; if the first data table exists in the smart contract space, the first data table is stored in the target space, the first data table in the target space is set to a deletion state, and a data update mark is added to the first data table in the target space.

[0118] In the third possible case, a table modification operation is performed in the target space according to the operation type and the key-value pair.

[0119] Specifically, if the operation type is a table modification type, the first data table to be modified is searched in the target space according to the key-value pair. If the first data table exists in the target space, the first data table in the target space is modified, and a data update mark is added to the modified first data table. If the first data table does not exist in the target space, the first data table is searched in the smart contract space in the blockchain ledger according to the key-value pair; if the first data table does not exist in the smart contract space, the operation is terminated; if the first data table exists in the smart contract space, the first data table is stored in the target space, the table structure of the first data table in the target space is modified, and a data update mark is added to the modified first data table.

[0120] In a fourth possible case, a table data insertion operation is performed in the target space according to the operation type and the key-value pair.

[0121] Specifically, if the operation type is a table data insert type, the second data table where the target data to be inserted is located is searched in the target space according to the key-value pair.

[0122] If the second data table exists in the target space, the target data is inserted into the second data table in the target space according to the key-value pair, and a data update mark is added to the target data.

[0123] If the second data table does not exist in the target space, the second data table is searched in the smart contract space in the blockchain ledger; if the second data table does not exist in the smart contract space, it is determined that the data operation in the target space has failed, that is, it is determined that the SQL statement has failed to execute, and an error message is returned to the client; if the second data table exists in the smart contract space, the second data table is stored in the target space, and the target data is inserted into the second data table in the target space according to the key-value pair, and a data update mark is added to the target data.

[0124] In the fifth possible case, a table data deletion operation is performed in the target space according to the operation type and the key-value pair.

[0125] Specifically, if the operation type is a table data deletion type, the second data table where the target data to be deleted is located is searched in the target space according to the key-value pair.

[0126] If the second data table exists in the target space, the target data is searched in the second data table in the target space according to the key-value pair; if the target data exists in the second data table in the target space, the target data is set to a deleted state, and a data update mark is added to the target data; if the target data does not exist in the second data table in the target space, the target data is searched in the smart contract space in the blockchain ledger, and if the target data does not exist in the smart contract space, the operation is terminated; otherwise, if the target data exists in the smart contract space, the target data is stored in the target space, the target data in the target space is set to a deleted state, and a data update mark is added to the target data in the target space.

[0127] If the second data table does not exist in the target space, the second data table is searched in the smart contract space in the blockchain account book; if the second data table does not exist in the smart contract space, it is determined that the data operation in the target space fails, that is, it is determined that the SQL statement execution fails, and an error message is returned to the client; if the second data table exists in the smart contract space, the second data table is stored in the target space, and the target data is searched in the second data table in the target space according to the key-value pair; if the target data does not exist in the second data table in the target space, the operation is terminated, otherwise, if the target data exists in the second data table in the target space, the target data is set to a deleted state, and a data update mark is added to the target data.

[0128] In a sixth possible situation, a table data update operation is performed in the target space according to the operation type and the key-value pair.

[0129] Specifically, if the operation type is a table data update type, the second data table where the target data to be updated is located is searched in the target space according to the key-value pair.

[0130] If there is a second data table in the target space, the target data is searched in the second data table in the target space according to the key-value pair; if the target data exists in the second data table in the target space, the target data is updated, and a data update mark is added to the updated target data; if the target data does not exist in the second data table in the target space, the target data is searched in the smart contract space in the blockchain ledger, and if the target data does not exist in the smart contract space, the operation is terminated; otherwise, if the target data exists in the smart contract space, the target data is stored in the second data table in the target space, the target data in the second data table in the target space is updated, and a data update mark is added to the updated target data.

[0131] If the second data table does not exist in the target space, the second data table is searched in the smart contract space in the blockchain account book; if the second data table does not exist in the smart contract space, it is determined that the data operation in the target space fails, that is, it is determined that the SQL statement execution fails, and an error message is returned to the client; if the second data table exists in the smart contract space, the second data table is stored in the target space, and the target data is searched in the second data table in the target space according to the key-value pair. If the target data does not exist in the second data table in the target space, the operation is terminated; otherwise, if the target data exists in the second data table in the target space, the target data is updated, and a data update mark is added to the updated target data.

[0132] In a seventh possible situation, a table data query operation is performed in the target space according to the operation type and the key-value pair.

[0133] Specifically, if the operation type is a table data query type, the second data table where the data to be queried is located is searched in the target space according to the key-value pair.

[0134] If the second data table exists in the target space, the target data is searched in the second data table in the target space according to the key-value pair; if the target data exists in the second data table in the target space, the target data is read and returned to the client; if the target data does not exist in the second data table in the target space, the target data is searched in the second data table in the smart contract space in the blockchain ledger, and if the target data does not exist in the second data table in the smart contract space, the operation is terminated; otherwise, if the target data exists in the second data table in the smart contract space, the target data is stored in the second data table in the target space, the target data in the second data table in the target space is read and returned to the client.

[0135] If the second data table does not exist in the target space, the second data table is searched in the smart contract space in the blockchain account book; if the second data table does not exist in the smart contract space, it is determined that the data operation in the target space fails, that is, it is determined that the SQL statement execution fails, and an error message is returned to the client; if the second data table exists in the smart contract space, the second data table is stored in the target space, and the target data is searched in the second data table in the target space according to the key-value pair. If the target data does not exist in the second data table in the target space, the operation is terminated, otherwise, if the target data exists in the second data table in the target space, the target data is read and returned to the client.

[0136] It is worth noting that if the data in the data table included in the smart contract space in the blockchain ledger still contains index data, then when inserting the target data into the second data table in the target space, it is also necessary to add the index data of the target data, or, when deleting the target data in the second data table in the target space, it is also necessary to delete the index data of the target data.

[0137] It is worth noting that the above step 4053 implements the data operation in the target space according to the operation type and key-value pair in the parsing result of the SQL statement. In this case, if the data operation fails to be performed in the target space, the following step 4054 is continued to be performed; if the data operation is successfully performed in the target space, the following step 4055 is continued to be performed.

[0138] Step 4054: If the data operation in the target space fails, the target space is destroyed, or the data updated in the target space due to the execution of the SQL statement is rolled back.

[0139] If the data operation in the target space fails, it means that the data updated in the target space due to the execution of the SQL statement is no longer available, so the target space can be destroyed, or the data updated in the target space due to the execution of the SQL statement can be rolled back.

[0140] After the target space is destroyed, it no longer exists in the memory. Rolling back the data in the target space that was updated due to the execution of the SQL statement is to retain the target space and restore the data in the target space to the state before the SQL statement was executed. In this way, the blockchain ledger will not be changed, ensuring that there is no dirty data in the blockchain ledger and ensuring the security of the blockchain ledger data.

[0141] Step 4055: If the data operation is successfully executed in the target space, then if there is data update in the target space, the updated data in the target space is submitted to the smart contract space in the blockchain ledger to complete the execution of the SQL statement.

[0142] If the data operation is successfully executed in the target space, it means that the data updated in the target space due to the execution of the SQL statement is available, and the updated data in the target space can be submitted to the smart contract space in the blockchain ledger. Specifically, the data with the data update mark in the target space in the above step 4053 is submitted to the smart contract space in the blockchain ledger to realize the data update of the smart contract space.

[0143] If there is no updated data in the target space after the data operation is successfully performed in the target space, the operation can be ended directly, and the execution of the SQL statement has been completed.

[0144] It is worth noting that there may be multiple data tables in the target space, and each data table mainly contains three objects, namely table metadata, table data, and index data. According to different objects, corresponding key values ​​and value values ​​can be constructed in the target space, and then written into the blockchain account book. The following describes these three objects respectively.

[0145] Table metadata: records table name and table structure information. The key value of the table metadata in the target space is the table name, and the value value is the byte array generated after the table metadata is serialized. When the table metadata in the target space is submitted to the blockchain ledger, its key value is composed of: smart contract space identifier + table name, and its value value is the byte array generated after the table metadata is serialized.

[0146] Table data: Each row of data stored in the table has a unique row ID (Identity document) in the entire table. The key value of the table data in the target space is composed of: table name + row ID, and the value is the encoded data of each column in the row. When the table data in the target space is submitted to the blockchain ledger, its key value is composed of: smart contract space identifier + table name + row ID, and its value is the encoded data of each column in the row.

[0147] Index data: record the row ID corresponding to the index column. The key value of the unique index data in the target space (i.e. one index data corresponds to one row of data) is composed of: table name + encoded index column value, and the value is the row ID; the key value of the non-unique index data in the target space (i.e. one index data corresponds to multiple rows of data) is composed of: table name + encoded index column value + row ID, and the value is empty. When submitting the table data in the target space to the blockchain ledger, for the unique index data, its key value is composed of: smart contract space identifier + table name + encoded index column value, and its value is the row ID; for the non-unique index data, its key value is composed of: smart contract space identifier + table name + encoded index column value + row ID, and its value is empty.

[0148] It is worth noting that the SQL smart contract in the embodiment of the present application has a natural advantage in processing structured data, is flexible to use, powerful, and can greatly expand the business scenarios of the blockchain system. That is, through the SQL smart contract, the interpretation and execution of the SQL statements in the transaction body are realized on the blockchain system, so that the client can convert the structured data into KV type data and store it in the blockchain account book, thereby improving the applicability of the blockchain system. In addition, the execution logic of the SQL smart contract in the embodiment of the present application is the execution logic of the above steps 4051-step 4055, that is, the execution logic of the SQL smart contract depends on the SQL statement passed in, so that based on the rich semantics of the SQL statement, the SQL smart contract can break through the limitation of the single execution logic of the traditional smart contract, allowing the client to pass in different SQL statements when initiating a contract call transaction that calls the SQL smart contract to execute different operation logics, and realize the flexible execution of SQL statements by the blockchain system through the SQL smart contract.

[0149] In an embodiment of the present application, the blockchain system receives a contract call transaction sent by a client, and the contract call transaction carries an SQL statement and a smart contract space identifier. Afterwards, the SQL smart contract is called according to the SQL statement and the smart contract space identifier to perform the following operations: parse the SQL statement to obtain the parsing result, and when it is determined that there is a target space in the memory according to the smart contract space identifier, perform data operations in the target space according to the operation type and key-value pair in the parsing result, and the target space includes the table structure of all data tables in the corresponding smart contract space; if the data operation is successfully performed in the target space, then if there is data update in the target space, the updated data in the target space is submitted to the smart contract space in the blockchain account book to complete the execution of the SQL statement. In an embodiment of the present application, the execution logic of the SQL smart contract depends on the SQL statement passed in, so that based on the rich semantics of the SQL statement, the SQL smart contract breaks through the limitation of the single execution logic of the traditional smart contract, which allows the client to pass in different SQL statements and execute different operation logics when initiating a contract call transaction to call the SQL smart contract, and realizes the flexible execution of SQL statements by the blockchain system through the SQL smart contract. In addition, when calling the SQL smart contract to execute an SQL statement, data operations are first performed in the target space in the memory. When the data operation is successfully executed, the updated data in the target space is submitted to the smart contract space in the blockchain ledger, which can improve the security of the blockchain ledger data.

[0150] Figure 5 is a schematic diagram of a transaction execution device provided in an embodiment of the present application. The device can be implemented as part or all of a computer device by software, hardware, or a combination of both. The computer device can be the following Figure 6 The computer device shown may be a blockchain system. Figure 5 The device includes: a receiving module 501 and an execution module 502.

[0151] The receiving module 501 is used to receive a contract call transaction carrying an SQL statement and a smart contract space identifier sent by a client, where the contract call transaction is used to call an SQL smart contract, and the smart contract space identifier is used to identify the smart contract space belonging to the SQL smart contract in the blockchain account book;

[0152] The execution module 502 is used to call the SQL smart contract according to the SQL statement and the smart contract space identifier to perform the following operations:

[0153] Parse the SQL statement and obtain the parsing result, which includes the operation type and key-value pair;

[0154] When it is determined that the target space exists in the memory according to the smart contract space identifier, data operations are performed in the target space according to the operation type and key-value pair. The target space includes the table structure of all data tables in the smart contract space.

[0155] If the data operation is successfully executed in the target space, then if there is data update in the target space, the updated data in the target space will be submitted to the smart contract space to complete the execution of the SQL statement.

[0156] Optionally, the device further comprises:

[0157] The receiving module 501 is also used to receive the contract deployment transaction sent by the client;

[0158] Create a module for creating a smart contract space for SQL smart contracts in the blockchain ledger;

[0159] The sending module is used to send the smart contract space identifier of the smart contract space to the client.

[0160] Optionally, the execution module 502 is further configured to:

[0161] When it is determined that the target space does not exist in the memory according to the smart contract space identifier, the metadata information in the smart contract space is obtained;

[0162] Create a target space in memory based on metadata information;

[0163] Perform data operations in the target space based on the operation type and key-value pairs.

[0164] Optionally, the execution module 502 is further configured to:

[0165] If the data operation in the target space fails, the target space is destroyed, or the data updated in the target space due to the execution of the SQL statement is rolled back.

[0166] Optionally, the operation type is a table creation type, a table deletion type, a table modification type, a table data insertion type, a table data deletion type, a table data update type, or a table data query type.

[0167] Optionally, the execution module 502 is used to:

[0168] If the operation type is table creation type, the first data table to be created is searched in the target space according to the key-value pair;

[0169] If the first data table does not exist in the target space, the first data table is created in the target space according to the key-value pair, and a data update mark is added to the first data table.

[0170] Optionally, the execution module 502 is used to:

[0171] If the operation type is a table data insert type, then the second data table where the target data to be inserted is located is searched in the target space according to the key-value pair;

[0172] If the second data table exists in the target space, the target data is inserted into the second data table in the target space according to the key-value pair, and a data update mark is added to the target data.

[0173] Optionally, the execution module 502 is used to:

[0174] If the second data table does not exist in the target space, search for the second data table in the smart contract space;

[0175] If the second data table does not exist in the smart contract space, it is determined that the data operation in the target space fails;

[0176] If the second data table exists in the smart contract space, the second data table in the smart contract space is stored in the target space;

[0177] The target data is inserted into the second data table in the target space according to the key-value pair, and a data update mark is added to the target data.

[0178] In an embodiment of the present application, the blockchain system receives a contract call transaction sent by a client, and the contract call transaction carries an SQL statement and a smart contract space identifier. Afterwards, the SQL smart contract is called according to the SQL statement and the smart contract space identifier to perform the following operations: parse the SQL statement to obtain the parsing result, and when it is determined that there is a target space in the memory according to the smart contract space identifier, perform data operations in the target space according to the operation type and key-value pair in the parsing result, and the target space includes the table structure of all data tables in the corresponding smart contract space; if the data operation is successfully performed in the target space, then if there is data update in the target space, the updated data in the target space is submitted to the smart contract space in the blockchain account book to complete the execution of the SQL statement. In an embodiment of the present application, the execution logic of the SQL smart contract depends on the SQL statement passed in, so that based on the rich semantics of the SQL statement, the SQL smart contract breaks through the limitation of the single execution logic of the traditional smart contract, which allows the client to pass in different SQL statements and execute different operation logics when initiating a contract call transaction to call the SQL smart contract, and realizes the flexible execution of SQL statements by the blockchain system through the SQL smart contract. In addition, when calling the SQL smart contract to execute an SQL statement, data operations are first performed in the target space in the memory. When the data operation is successfully executed, the updated data in the target space is submitted to the smart contract space in the blockchain ledger, which can improve the security of the blockchain ledger data.

[0179] It should be noted that: the transaction execution device provided in the above embodiment only uses the division of the above-mentioned functional modules as an example when executing transactions. In actual applications, the above-mentioned functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above.

[0180] The functional units and modules in the above embodiments may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit, and the above integrated units may be implemented in the form of hardware or in the form of software functional units. In addition, the specific names of the functional units and modules are only for the convenience of distinguishing each other, and are not used to limit the protection scope of the embodiments of the present application.

[0181] The transaction execution device and transaction execution method embodiments provided in the above embodiments belong to the same concept. The specific working process of the units and modules in the above embodiments and the technical effects brought about can be found in the method embodiment part and will not be repeated here.

[0182] Figure 6 This is a schematic diagram of the structure of a computer device provided in an embodiment of the present application. Figure 6 As shown, the computer device 6 includes: a processor 60, a memory 61, and a computer program 62 stored in the memory 61 and executable on the processor 60. When the processor 60 executes the computer program 62, the steps in the transaction execution method in the above embodiment are implemented.

[0183] The computer device 6 may be a server cluster including multiple servers, and may specifically be a blockchain system. Those skilled in the art will appreciate that Figure 6 It is only an example of the computer device 6 and does not constitute a limitation on the computer device 6. It may include more or fewer components than shown in the figure, or a combination of certain components, or different components, such as input and output devices, network access devices, etc.

[0184] The processor 60 may be a central processing unit (CPU), or other general-purpose processors, digital signal processors (DSP), application-specific integrated circuits (ASIC), field-programmable gate arrays (FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. A general-purpose processor may be a microprocessor or any conventional processor.

[0185] In some embodiments, the memory 61 may be an internal storage unit of the computer device 6, such as a hard disk or memory of the computer device 6. In other embodiments, the memory 61 may also be an external storage device of the computer device 6, such as a plug-in hard disk, a smart media card (SMC), a secure digital (SD) card, a flash card, etc. equipped on the computer device 6. Further, the memory 61 may also include both an internal storage unit and an external storage device of the computer device 6. The memory 61 is used to store an operating system, an application program, a boot loader, data, and other programs. The memory 61 may also be used to temporarily store data that has been output or is to be output.

[0186] An embodiment of the present application also provides a computer device, which includes: at least one processor, a memory, and a computer program stored in the memory and executable on the at least one processor, and when the processor executes the computer program, the steps in any of the above-mentioned method embodiments are implemented.

[0187] An embodiment of the present application further provides a computer-readable storage medium, which stores a computer program. When the computer program is executed by a processor, the steps in the above-mentioned method embodiments can be implemented.

[0188] An embodiment of the present application provides a computer program product, which, when executed on a computer, enables the computer to execute the steps in the above-mentioned method embodiments.

[0189] If the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the present application implements all or part of the processes in the above method embodiments, which can be completed by instructing the relevant hardware through a computer program. The computer program can be stored in a computer-readable storage medium. When the computer program is executed by the processor, the steps of the above method embodiments can be implemented. Among them, the computer program includes computer program code, which can be in source code form, object code form, executable file or some intermediate form. The computer-readable medium may at least include: any entity or device that can carry the computer program code to the camera / terminal device, recording medium, computer memory, ROM (Read-Only Memory), RAM (Random Access Memory), CD-ROM (Compact Disc Read-Only Memory), magnetic tape, floppy disk and optical data storage device. The computer-readable storage medium mentioned in the present application can be a non-volatile storage medium, in other words, it can be a non-transient storage medium.

[0190] It should be understood that all or part of the steps to implement the above embodiments can be implemented by software, hardware, firmware or any combination thereof. When implemented using software, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. The computer instructions can be stored in the above-mentioned computer readable storage medium.

[0191] In the above embodiments, the description of each embodiment has its own emphasis. For parts that are not described or recorded in detail in a certain embodiment, reference can be made to the relevant descriptions of other embodiments.

[0192] Those of ordinary skill in the art will appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this application.

[0193] In the embodiments provided in the present application, it should be understood that the disclosed devices / computer equipment and methods can be implemented in other ways. For example, the device / computer equipment embodiments described above are only schematic, for example, the division of modules or units is only a logical function division, and there may be other division methods in actual implementation, such as 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.

[0194] The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.

[0195] The embodiments described above are only used to illustrate the technical solutions of the present application, rather than to limit them. Although the present application has been described in detail with reference to the aforementioned embodiments, a person skilled in the art should understand that the technical solutions described in the aforementioned embodiments may still be modified, or some of the technical features may be replaced by equivalents. Such modifications or replacements do not deviate the essence of the corresponding technical solutions from the spirit and scope of the technical solutions of the embodiments of the present application, and should all be included in the protection scope of the present application.

Claims

1. A transaction execution method, It is characterized in that Applied to a blockchain system, the method includes: Receive the contract deployment transaction sent by the client; Creating a smart contract space for a structured query language SQL smart contract in a blockchain ledger, the smart contract space including metadata information, the metadata information including a table name, table structure information, and a code for constructing a table structure of all data tables in the smart contract space; Sending the smart contract space identifier of the smart contract space to the client; Receiving a contract call transaction sent by the client and carrying an SQL statement and the smart contract space identifier, wherein the contract call transaction is used to call the SQL smart contract; Call the SQL smart contract according to the SQL statement and the smart contract space identifier to perform the following operations: Parsing the SQL statement to obtain a parsing result, wherein the parsing result includes an operation type and a key-value pair; When it is determined according to the smart contract space identifier that the target space does not exist in the memory, obtaining metadata information in the smart contract space, creating the target space in the memory according to the metadata information, and performing data operations in the target space according to the operation type and the key-value pair; In a case where it is determined according to the smart contract space identifier that the target space exists in the memory, performing a data operation in the target space according to the operation type and the key-value pair, the target space including the table structure of all data tables in the smart contract space; If the data operation is successfully executed in the target space, then if there is data update in the target space, the updated data in the target space is submitted to the smart contract space to complete the execution of the SQL statement.

2. The method according to claim 1, It is characterized in that After performing the data operation in the target space according to the operation type and the key-value pair, the method further includes: If the data operation performed in the target space fails, the target space is destroyed, or the data updated in the target space due to the execution of the SQL statement is rolled back.

3. The method according to claim 1, It is characterized in that The operation type is a table creation type, a table deletion type, a table modification type, a table data insertion type, a table data deletion type, a table data update type, or a table data query type.

4. The method according to any one of claims 1 to 3, It is characterized in that The performing the data operation in the target space according to the operation type and the key-value pair includes: If the operation type is a table creation type, searching the target space for a first data table to be created according to the key-value pair; If the first data table does not exist in the target space, the first data table is created in the target space according to the key-value pair, and a data update mark is added to the first data table.

5. The method according to any one of claims 1 to 3, It is characterized in that The performing the data operation in the target space according to the operation type and the key-value pair includes: If the operation type is a table data insert type, searching the target space for a second data table where the target data to be inserted is located according to the key-value pair; If the second data table exists in the target space, the target data is inserted into the second data table in the target space according to the key-value pair, and a data update mark is added to the target data.

6. The method according to claim 5, It is characterized in that After searching the target space for the second data table where the target data to be inserted is located according to the key-value pair, the method further includes: If the second data table does not exist in the target space, searching for the second data table in the smart contract space; If the second data table does not exist in the smart contract space, determining that the data operation in the target space fails; If the second data table exists in the smart contract space, storing the second data table in the smart contract space into the target space; The target data is inserted into the second data table in the target space according to the key-value pair, and a data update mark is added to the target data.

7. A transaction execution device, It is characterized in that Applied to a blockchain system, the device comprises: Receiving module, used to receive contract deployment transactions sent by the client; A creation module, used to create a smart contract space for a structured query language SQL smart contract in a blockchain ledger, wherein the smart contract space includes metadata information, and the metadata information includes a table name, table structure information, and a code for constructing a table structure of all data tables in the smart contract space; A sending module, used to send the smart contract space identifier of the smart contract space to the client; The receiving module is further used to receive a contract call transaction sent by the client and carrying an SQL statement and the smart contract space identifier, wherein the contract call transaction is used to call the SQL smart contract; An execution module is used to call the SQL smart contract according to the SQL statement and the smart contract space identifier to perform the following operations: Parsing the SQL statement to obtain a parsing result, wherein the parsing result includes an operation type and a key-value pair; When it is determined according to the smart contract space identifier that the target space does not exist in the memory, obtaining metadata information in the smart contract space, creating the target space in the memory according to the metadata information, and performing data operations in the target space according to the operation type and the key-value pair; In a case where it is determined according to the smart contract space identifier that the target space exists in the memory, performing a data operation in the target space according to the operation type and the key-value pair, the target space including the table structure of all data tables in the smart contract space; If the data operation is successfully executed in the target space, then if there is data update in the target space, the updated data in the target space is submitted to the smart contract space to complete the execution of the SQL statement.

8. A computer device, It is characterized in that The computer device comprises a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the computer program implements the method according to any one of claims 1 to 6 when executed by the processor.

9. A computer-readable storage medium, It is characterized in that The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the method according to any one of claims 1 to 6 is implemented.

Citation Information

Patent Citations

  • Block chain transaction processing method, node and contract container

    CN111340470A

  • Data processing method, device and system based on block chain

    CN111680067A