BACKGROUND

Blockchain networks, which can also be referred to as blockchain systems, consensus networks, distributed ledger system (DLS) networks, or blockchain, enable participating entities to securely, and immutably store data. A blockchain can be described as a ledger of transactions and multiple copies of the blockchain are stored across the blockchain network. Example types of blockchains can include public blockchains, consortium blockchains, and private blockchains. A public blockchain is open for all entities to use the blockchain, and participate in the consensus process. A consortium blockchain is a blockchain where the consensus process is controlled by a pre-selected set of nodes. A private blockchain is provided for a particular entity, which centrally controls read and write permissions.

A smart contract can be a computer code running on top of a blockchain. The smart contract can include a set of predetermined rules that the parties to the smart contract agreed to interact with each other. When the predetermined rules are met, the agreement can be automatically enforced. Smart contracts are encoded, and executed within a blockchain platform. An example blockchain platform includes, without limitation, Ethereum provided by the Ethereum Foundation of Zug, Switzerland. In some blockchain platforms, such as Ethereum, a state machine can be used, where transactions can result in transitions between states. A state can be expressed as a key-value pair (KVP). In some cases, Merkle Patricia Tree (MPT) is used as a method to save KVPs. The size of a MPT can increase with the number of KVPs. To perform operations such as traverse, read, or remove KVPs, the corresponding keys of the KVPs need to be known by a user. The efficiency of the operations can decrease with the increase of the MPT size.

SUMMARY

Implementations of the present disclosure are directed to traversing one or more key-value pairs (KVPs) of a Merkle Patricia Tree (MPT) used by a smart contract database based on a logic map. More particularly, implementations of the present disclosure are directed to configuring a logic map that includes a plurality of functions. The functions can be used to manipulate a plurality of KVPs for traversing the one or more KVPs in the MPT.

In some implementations, actions include determining a first number of an index corresponding to one of a first one or more key-value pairs (KVPs) of a Merkle Patricia Tree (MPT) used by a smart contract database; determining, based on the first number of the index, a first key of a first KVP of a second one or more KVPs of a map for traversing the MPT; determining a first value corresponding to the first key of the first KVP; determining a second key of a second KVP of the second one or more KVPs; and retrieving the second value corresponding to the second key of the second KVP. Other implementations include corresponding systems, apparatus, and computer programs, configured to perform the actions of the methods, encoded on computer storage devices.

These and other implementations may each optionally include one or more of the following features: determining, based on a second number of the index, a third key of a third KVP of the second one or more KVPs; determining a third value corresponding to the third key of the third KVP; determining a fourth key of a fourth KVP of the fourth one or more KVPs; retrieving the fourth value corresponding to the fourth key of the fourth KVP; The computer-implemented method of claim2, further comprising determining that the second number of the index is not deleted; a number of KVPs in the first one or more KVPs is less than or equal to a number of KVPs in the second one or more KVPs; keys of the first one or more KVPs and keys of the second one or more KVPs are stored as hash value; the second one or more KVPs include one or more values that are the same as one or more values included in the first one or more KVPs, and one or more values that are the same as one or more keys included in the first one or more KVPs; the second one or more KVPs include one or more values indicating numbers included in the index, one or more values indicating whether one of more of the first one or more KVPs are deleted, and a quantity of KVPs in the first one or more KVPs.

The present disclosure also provides one or more non-transitory computer-readable storage media coupled to one or more processors and having instructions stored thereon which, when executed by the one or more processors, cause the one or more processors to perform operations in accordance with implementations of the methods provided herein.

The present disclosure further provides a system for implementing the methods provided herein. The system includes one or more processors, and a computer-readable storage medium coupled to the one or more processors having instructions stored thereon which, when executed by the one or more processors, cause the one or more processors to perform operations in accordance with implementations of the methods provided herein.

It is appreciated that methods in accordance with the present disclosure may include any combination of the aspects and features described herein. That is, methods in accordance with the present disclosure are not limited to the combinations of aspects and features specifically described herein, but also include any combination of the aspects and features provided.

The details of one or more implementations of the present disclosure are set forth in the accompanying drawings and the description below. Other features and advantages of the present disclosure will be apparent from the description and drawings, and from the claims.

