Method and system for selectively updating a blockchain's world state database
By selectively updating the entity world state database in the blockchain network and storing only the entity-related data, it solves the inefficiency and trust damage caused by database growth, and achieves efficient and trustworthy data management.
Patent Information
- Application Number
- CN202111412474.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-12-02
- Filing Date
- 2021-11-25
- Publication Date
- 2025-09-02
- Estimated Expiration
- 2041-11-25
AI Technical Summary
When blockchain networks handle heavy transactions, database size increases significantly, resulting in increased operational complexity and reduced efficiency. Traditional methods may damage network trust and lead to data inconsistency.
By selectively updating the entity world state database in the blockchain network, only data related to entities is stored, data update rules are determined using smart contracts and entity strategies, and data integrity and trust are ensured in combination with blockchain immutability and encryption technology.
It reduces storage requirements and complex operations, improves the efficiency of the blockchain network, and maintains data integrity and trust within the network, avoiding the shortcomings of traditional databases such as insufficient search capabilities and slow transaction speed.
Smart Images

Figure CN114579585B_ABST
Abstract
Description
Background Art
[0001] The present disclosure relates generally to the field of blockchain storage, and more particularly to improving the efficiency of blockchain networks by minimizing the type of information stored.
[0002] As blockchain networks gain popularity, they also need to scale to accommodate increased usage. When blockchain network usage requires database expansion, blockchain operations can become highly complex and inefficient. As such, identifying potential methods associated with minimizing the storage space utilized while ensuring the blockchain network still functions as intended is crucial. Summary of the Invention
[0003] Embodiments of the present disclosure include methods, systems, and computer program products for selectively updating a world state database for one or more specific entities of a blockchain network. A processor may receive a smart contract. The processor may generate an entity policy. The entity policy may provide one or more world state rules associated with a specific entity. In response to receiving the smart contract, the processor may update the world state database for the specific entity. The one or more world state rules may affect the world state database of the specific entity differently than they affect the world state database of a second entity.
[0004] The above summary is not intended to describe each illustrated embodiment or every implementation of the present disclosure. BRIEF DESCRIPTION OF THE DRAWINGS
[0005] The accompanying drawings included in this disclosure are incorporated into and form a part of the specification. They illustrate embodiments of the present disclosure and, together with the specification, serve to explain the principles of the present disclosure. These drawings illustrate only certain embodiments and do not limit the present disclosure.
[0006] Figure 1A An example blockchain architecture according to an embodiment of the present disclosure is shown.
[0007] Figure 1B The blockchain transaction process according to an embodiment of the present disclosure is described.
[0008] Figure 2 Depicted are an example blockchain network configured to selectively update one or more world state databases according to embodiments of the present disclosure.
[0009] Figure 3 A flowchart illustrating an example method for configuring a blockchain network to selectively update a world state database according to an embodiment of the present disclosure is shown.
[0010] Figure 4A A cloud computing environment according to an embodiment of the present disclosure is shown.
[0011] Figure 4B An abstract model layer according to an embodiment of the present disclosure is shown.
[0012] Figure 5 A high-level block diagram illustrates an example computer system that can be used to implement one or more of the methods, tools, and modules described herein, and any related functionality, according to an embodiment of the present disclosure.
[0013] Although the embodiments described herein are susceptible to various modifications and alternative forms, details thereof have been shown by way of example in the drawings and will be described in detail. However, it should be understood that the specific embodiments described should not be construed as limiting. On the contrary, the present invention is intended to cover all modifications, equivalents, and alternatives that fall within the spirit and scope of the present disclosure. DETAILED DESCRIPTION
[0014] Various aspects of the present disclosure generally relate to blockchain storage, and more particularly, to optimizing storage within a blockchain network. Optimizing storage within a blockchain network can minimize the number and need for large databases. As blockchains process heavy transactions (e.g., those associated with the financial sector) and update various world state databases to accommodate those heavy transactions, database sizes can grow significantly over time. As a result, various operations associated with a blockchain network can become complex and lead to reduced blockchain efficiency. As such, data storage management and how it impacts efficiency has become a key area of interest in blockchain networks.
[0015] The various systems and methods disclosed herein provide embodiments for reducing the number of and need for large databases by selectively updating the world state of one or more entities (e.g., organizations). For example, in a traditional blockchain network, all nodes within an entity (e.g., endorser nodes and committer nodes) store the same data (e.g., world state database data), regardless of whether the information stored in each node is relevant to the entity. Furthermore, some world state databases associated with an entity traditionally store unnecessary data or data that is rarely used or accessed by the entity.
[0016] While attempts have been made to address these issues, such attempts have required entities to hide certain data / information in the form of private state databases. In some configurations, the use of private state databases can not only reduce blockchain usability but also erode trust within the blockchain network because participating entities must hide certain information. Hiding information within a blockchain network can lead to multiple issues, including, but not limited to, reduced trust between entities participating in the blockchain network and inconsistencies in data and state information stored within the blockchain. As such, the embodiments discussed herein can reduce the amount of data / information stored within one or more entities (e.g., world state database data / information not relevant to the entity) while ensuring that no data / information is lost and trust is maintained within the blockchain network.
[0017] It will be readily understood that the present components, as generally described and illustrated in the figures herein, may be arranged and designed in a wide variety of different configurations. Thus, the following detailed description of embodiments of at least one of the methods, apparatus, non-transitory computer-readable media, and systems, as represented in the accompanying figures, is not intended to limit the scope of the claimed applications but is merely representative of selected embodiments.
[0018] The features, structures or characteristics described throughout this specification may be combined or removed in any suitable manner in one or more embodiments. For example, the use of the phrases "exemplary embodiments," "some embodiments," or other similar language throughout this specification refers to the fact that a specific feature, structure, or characteristic described in conjunction with an embodiment may be included in at least one embodiment. Therefore, the appearance of the phrases "exemplary embodiments," "in some embodiments," "in other embodiments," or other similar language throughout this specification does not necessarily all refer to the same set of embodiments, and the described features, structures, or characteristics may be combined or removed in any suitable manner in one or more embodiments. Further, in the accompanying drawings, any connection between elements may allow unidirectional and / or bidirectional communication, even if the depicted connection is a unidirectional or bidirectional arrow. Moreover, any device depicted in the accompanying drawings may be a different device. For example, if a mobile device is shown as sending information, a wired device may also be used to send information.
[0019] In addition, although the term "message" may have been used in the description of the embodiments, the application can be applied to many types of networks and data. In addition, although specific types of connections, messages and signaling may be depicted in the exemplary embodiments, the application is not limited to specific types of connections, messages and signaling.
[0020] This document details methods, systems, and computer program products that utilize selective updating of the world state database of one or more entities within a blockchain network while maintaining data integrity and trust between entities within the blockchain network itself. Continued trust in the blockchain network is possible because, despite potentially different configurations of world state database data / information, the world state database data / information can be regenerated using information maintained in blocks of the blockchain. As such, the blockchain network disclosed herein can implement various auditing protocols to identify potential inconsistencies and / or malicious peers, while also minimizing the amount and type of data / information maintained by an entity's world state database.
[0021] In some embodiments, the method, system, and / or computer program product utilizes a decentralized database (such as a blockchain), which is a distributed storage system that includes multiple nodes that communicate with each other. The decentralized database includes an append-only immutable data structure similar to a distributed ledger that can maintain records between mutually untrusted parties. The untrusted parties are referred to herein as peers or peer nodes. Each peer maintains a copy of the database records, and no single peer can modify the database records without achieving consensus among the distributed peers. For example, peers can execute a consensus protocol to verify blockchain storage transactions, group storage transactions into blocks, and build hash chains on the blocks. This process forms a ledger by sorting storage transactions (if necessary) for consistency.
[0022] In various embodiments, permissioned and / or permissionless blockchains may be used. In a public or permissionless blockchain, anyone can participate without a specific identity (e.g., preserving anonymity). Public blockchains may involve native digital currencies and use consensus based on various protocols (such as proof of work). Permissioned blockchain databases, on the other hand, provide secure interactions between groups of entities that share a common goal but do not fully trust each other (such as merchants exchanging funds, goods, (private) information, etc.).
[0023] Furthermore, in some embodiments, the method, system, and / or computer program product can utilize a blockchain operating arbitrary, programmable logic that is customized for a decentralized storage solution and is referred to as a "smart contract" or "chaincode." In some cases, there may be specialized chaincodes, referred to as system chaincodes, for managing functionality and parameters. The method, system, and / or computer program product can further utilize smart contracts as trusted distributed applications that leverage the tamper-proof properties of a blockchain database and underlying agreements between nodes, referred to as endorsements or endorsement policies. Blockchain transactions associated with this application can be "endorsed" before being submitted to the blockchain, while unendorsed transactions are ignored.
[0024] An endorsement policy allows chaincode to specify the endorsers of a transaction in the form of a set of peer nodes that must endorse it. When a client sends a transaction to a peer specified in the endorsement policy, that peer executes the transaction, generating a speculative transaction result. If enough peers that satisfy the endorsement policy produce the same execution result, the transaction is considered endorsed. After endorsement, transactions enter the ordering phase, where a consensus protocol is used to produce an ordered sequence of endorsed transactions grouped into blocks. Traditionally used consensus protocols include first-in-first-out (FIFO) and leader-and-follower protocols (e.g., collision-tolerant protocols).
[0025] In some embodiments, the methods, systems, and / or computer program products may utilize nodes as communication entities of a blockchain system. A "node" may perform a logical function in the sense that multiple nodes of different types may run on the same physical server. Nodes are grouped in trust domains and associated with logical entities that control them in various ways. Nodes may include different types (such as clients or submitting client nodes that submit transaction calls to endorsers (e.g., peers) and broadcast transaction proposals to an ordering service (e.g., an orderer node)).
[0026] Another type of node is a peer node that can receive transactions submitted by ordered clients (e.g., from an ordering service), submit transactions, and maintain the state and copy of the blockchain transaction ledger. Peers can also have the role of endorser, although this is not required. An ordering service node, or orderer, is a node running an ordering service that receives a stream of endorsed transactions from clients and sends out a stream of ordered transactions. Ordering service nodes run communication services for all peer nodes and implement delivery guarantees (such as broadcasting to every peer node in the system when committing / confirming transactions and modifying the world state of the blockchain, which is another name for the initial blockchain transaction, which typically includes control and setup information).
[0027] In some embodiments, the method, system, and / or computer program product may utilize a ledger, which is an ordered, tamper-proof record of all state transitions of a blockchain. State transitions may be caused by chaincode invocations (e.g., transactions) submitted by participants (e.g., client nodes, ordering nodes, endorser nodes, peer nodes, etc.). Each participant (such as a peer node) may maintain a copy of the ledger. Transactions may result in a collection of asset key-value pairs submitted to the ledger as one or more operands (such as create, update, delete, etc.). The ledger includes a blockchain (also referred to as a chain), which is used to store immutable, ordered records in blocks. The ledger also includes a state database that maintains the current state of the blockchain.
[0028] In some embodiments, the methods, systems, and / or computer program products described herein may utilize a chain, which is a transaction log structured as hash-linked blocks, with each block containing a sequence of N transactions, where N is equal to or greater than 1. The block header includes a hash of the block's transactions, as well as a hash of the previous block's header. In this way, all transactions on the ledger can be ordered and cryptographically linked together. Thus, tampering with the ledger data is impossible without breaking the hash links. The hash of the most recently added blockchain block represents every transaction that occurred before it on the chain, ensuring that all peer nodes are in a consistent and trusted state. The chain can be stored on a peer node file system (e.g., locally, on attached storage, in the cloud, etc.), effectively supporting the append-only nature of blockchain workloads.
[0029] The current state of an immutable ledger represents the latest values for all keys included in the chain's transaction log. Because the current state represents the latest key values known to the channel, it is sometimes referred to as the world state. Chaincode invocations execute transactions against the current state data of the ledger. To make these chaincode interactions efficient, the latest values for the keys can be stored in a state database. The state database can simply be an indexed view into the chain's transaction log, allowing it to be regenerated from the chain at any time. The state database can be automatically restored (or generated if necessary) at peer startup and before transactions are accepted.
[0030] Blockchain differs from traditional databases in that it is not a central storage device, but rather a decentralized, immutable, and secure storage device in which nodes can share changes to the records in the storage device. Some of the characteristics inherent in blockchain and that help make blockchain possible include, but are not limited to, immutable ledgers, smart contracts, security, privacy, decentralization, consistency, endorsements, and accessibility, as further described herein. According to various aspects, the system described herein is enabled by the immutable accountability, security, privacy, permissionless decentralization, availability of smart contracts, endorsements, and accessibility inherent and unique to blockchain.
[0031] Specifically, blockchain ledger data is immutable and provides an efficient method for selectively updating one or more world state databases within a blockchain network. Furthermore, cryptography is used within blockchains to provide security and establish trust. Smart contracts manage the state of assets throughout their lifecycles. Example blockchains are permissioned and decentralized. Thus, each end user can access their own copy of the ledger. Multiple organizations (and peers) can be onboarded within a blockchain network. Key organizations can act as endorsing peers to verify smart contract execution results, read sets, and write sets.
[0032] One benefit of example embodiments is improving the functionality of computing systems by implementing methods for selectively updating one or more world state databases within a blockchain network. Through the blockchain system described herein, a computing system (or a processor within a computing system) can perform functions for selectively updating the world state database of one or more entities within the blockchain network, received from one or more client applications utilizing the blockchain network, by providing access to capabilities such as distributed ledgers, peers, encryption, MSPs, and event processing. Furthermore, blockchains can create business networks and enable onboard participation by any user or organization. Thus, blockchains are more than just databases. Blockchains have the ability to create networks of users and onboard / offboard organizations to collaborate and execute service processes in the form of smart contracts (which can be associated with one or more assets).
[0033] The exemplary embodiments provide many benefits over traditional databases. For example, through blockchain, the embodiments provide immutable measurability, security, privacy, permissioned decentralization, availability of smart contracts, endorsement, and accessibility that are inherent and unique to blockchain.
[0034] Traditional databases cannot be used to implement example embodiments because they do not bring all parties onto the network, do not create trusted collaboration, and do not provide efficient storage of digital assets. Traditional databases do not provide tamper-proof storage and do not provide for selectively updating one or more world state databases. Therefore, the proposed embodiments described herein that utilize blockchain networks cannot be implemented in traditional databases.
[0035] If a traditional database were to be used to implement the example embodiments, the example embodiments would suffer from unnecessary disadvantages (such as lack of search capabilities, security, and slow transaction speeds). Thus, the example embodiments provide a specific solution to problems in the art / area of selectively updating one or more world state databases associated with a blockchain network.
[0036] Now turn Figure 1A, illustrates a blockchain architecture 100 according to an embodiment of the present disclosure. In some embodiments, the blockchain architecture 100 may include certain blockchain elements (e.g., a set of blockchain nodes 102). The blockchain nodes 102 may include one or more blockchain nodes, such as peers 104-110 (four nodes are depicted by way of example only). These nodes participate in various activities, such as blockchain transaction addition and verification processes (consensus). One or more of the peers 104-110 may endorse and / or recommend transactions based on endorsement policies and may provide ordering services for all blockchain nodes 102 in the blockchain architecture 100. Blockchain nodes may initiate blockchain authentication and seek to write to the blockchain's immutable ledger stored in the blockchain layer 116, a copy of which may also be stored on the underlying physical infrastructure 114. The blockchain configuration may include one or more applications 124 that link to an application programming interface (API) 122 to access and execute stored program / application code 120 (e.g., chaincode, smart contracts, etc.). The stored program / application code 120 may be created based on the custom configuration sought by participants and may maintain its own state, control its own assets, and receive external information. This can be deployed as a transaction and installed on all blockchain nodes 104-110 via appending to the distributed ledger.
[0037] The blockchain foundation or platform 112 may include various layers of blockchain data, services (e.g., cryptographic trust services, virtual execution environments, etc.), and underlying physical computer infrastructure that can be used to receive and store new transactions and provide access to auditors seeking to access data entries. The blockchain layer 116 may expose an interface that provides access to the virtual execution environment necessary to process program code and mesh with the physical infrastructure 114. Cryptographic trust services 118 may be used to verify transactions such as asset exchange transactions and keep the information private.
[0038] Figure 1AThe blockchain architecture 100 can process and execute program / application code 120 via one or more interfaces exposed and services provided by the blockchain platform 112. Code 120 can control blockchain assets. For example, code 120 can store and transfer data and can be executed by peers 104-110 in the form of smart contracts and associated chaincodes, with other code elements or conditions subject to their execution. As a non-limiting example, smart contracts can be created to execute resource transfers, resource generation, and the like. Smart contracts themselves can be used to identify rules associated with authorization and access requirements and usage of the ledger. For example, group transaction information 126 can be processed by one or more processing entities (e.g., virtual machines) included in the blockchain layer 116. Results 128 can include multiple linked shared documents (e.g., each linked shared document records the issuance of a smart contract regarding group transaction information 126, etc.). Physical infrastructure 114 can be used to retrieve any data or information described herein.
[0039] Smart contracts can be created using high-level applications and programming languages and then written to blocks in a blockchain. Smart contracts can include executable code that is registered, stored, and / or replicated using a blockchain (e.g., a distributed network of blockchain peers). A transaction is the execution of smart contract code, which can be executed in response to the satisfaction of conditions associated with the smart contract. The execution of a smart contract can trigger trusted modifications to the state of a digital blockchain ledger. Modifications to the blockchain ledger resulting from the execution of a smart contract can be automatically replicated across the distributed network of blockchain peers via one or more consensus protocols.
[0040] Smart contracts can write data to the blockchain in the form of key-value pairs. Furthermore, smart contract code can read values stored on the blockchain and use them in application operations. Smart contract code can write the output of various logical operations to the blockchain. This code can be used to create temporary data structures within a virtual machine or other computing platform. Data written to the blockchain can be public and / or encrypted and maintained as private. Temporary data used / generated by the smart contract is stored in memory by the provided execution environment and then deleted once the required data on the blockchain is identified.
[0041] Chaincode can include a code interpretation of a smart contract with additional features. As described herein, chaincode can be program code deployed on a computing network, where the chaincode is executed and verified by a chain validator during a consensus process. The chaincode receives a hash and retrieves a hash associated with a data template created using a previously stored feature extractor from the blockchain. If the hash of the hashed identifier matches the hash created from the stored identifier template data, the chaincode sends an authorization key to the requested service. The chaincode can write blockchain data associated with cryptographic details (e.g., to confirm the set of transactions, identify conflicts between one or more transactions in the set of transactions, etc.).
[0042] Figure 1B An example of a conventional blockchain transaction flow 150 between nodes of a blockchain according to an example embodiment is illustrated. Figure 1B The transaction process may include a transaction proposal 191 (e.g., in some embodiments, a transaction proposal 191 may be a transaction verification request and / or a conflict verification request) sent by the application client node 160 to one or more endorsing peer nodes 181. The endorsing peer 181 may verify the client signature and execute the chaincode function to initiate the transaction. The output may include the chaincode result, a set of key / value versions read from the chaincode (read set), and the set of key / value versions written to the chaincode (write set). If approved, a proposal response 192 is sent back to the client 160 along with the endorsement signature. The client 160 incorporates the endorsement into the transaction payload 193 and broadcasts it to the ordering service node 184. The ordering service node 184 then delivers the ordered transaction as a block on the channel to all peers 181-183. Each peer 181-183 may validate the transaction before committing it to the blockchain. For example, a peer may check the endorsement policy to ensure that the correct assignment of designated peers has signed the result and authenticate the signature against the transaction payload 193 .
[0043] See again Figure 1B , client node 160 initiates a transaction 191 by constructing and sending a request to peer node 181 (which is the endorser). Client 160 may include an application utilizing a supported software development kit (SDK) that utilizes available APIs to generate a transaction proposal 191. A proposal is a request to invoke a chaincode function so that data can be read and / or written to the ledger (e.g., writing a new key-value pair for an asset). The SDK can reduce the package of the transaction proposal 191 to a suitably structured format (e.g., protocol buffers over remote procedure calls (RPCs)) and obtain the client's cryptographic credentials to generate a unique signature for the transaction proposal 191.
[0044] In response, the endorsing peer node 181 may verify that (a) the transaction proposal 191 is well-formed, (b) the transaction has not been submitted in the past (replay attack protection), (c) the signature is valid, and (d) the submitter (in this example, client 160) is properly authorized to perform the proposed operation on the channel. The endorsing peer node 181 may input the transaction proposal 191 as an argument to the invoked chaincode function. The chaincode is then executed against the current state database to produce a transaction result including a response value, a read set, and a write set. However, no updates are made to the ledger at this time. In some embodiments, this set of values, along with the signature of the endorsing peer node 181, is passed back to the SDK of the client 160 as a proposal response 192, which parses the payload for consumption by the application.
[0045] In response, the client 160 application checks / verifies the signatures of these endorsing peers and compares the proposal responses to determine if they are identical. If the chaincode is only querying the ledger, the application will check the query response and will typically not submit the transaction to the ordering node service 184. If the client application intends to submit a transaction to the ordering node service 184 to update the ledger, the application determines whether the endorsement policy specified before submission has been fulfilled (e.g., whether the transaction verification request has been accepted). Here, the client may only include one of the multiple parties to the transaction. In this case, each client may have its own endorsing peer, and each endorsing peer will need to endorse the transaction. This architecture ensures that even if the application chooses not to check the response or otherwise forward unendorsed transactions, the endorsement policy will still be enforced by the peer and supported during the submission verification phase.
[0046] After a successful check, in step 193, client 160 incorporates the endorsement into the transaction and broadcasts the transaction proposal 191 and response to orderer 184 within a transaction message. The transaction may contain read / write sets, signatures of endorsing peers, and a channel ID. Orderer 184 does not need to examine the entire contents of a transaction in order to perform its operations. Instead, orderer 184 can simply receive transactions from all channels in the network, sort them by channel, and create a transaction block for each channel.
[0047] The block of transactions is delivered from the ordering node 184 to all peer nodes 181-183 on the channel. Transactions 194 within the block are validated to ensure that any endorsement policies have been fulfilled and that no read set variables have changed the ledger state since the read set was generated by the transaction execution. Transactions in the block are marked as valid or invalid. Furthermore, in step 195, each peer node 181-183 appends the block to the channel's chain, and for each valid transaction, the write set is committed to the current state database. Events are emitted to notify client applications that the transaction (call) has been immutably appended to the chain, and whether the transaction was validated or invalidated. Validated transactions and their associated values update the blockchain ledger, while invalidated transactions are committed but the invalidated transaction values do not update the blockchain ledger.
[0048] Go to Figure 2 , illustrates an example blockchain network 200 for selectively updating the world state database of a specific entity. As discussed herein, reducing the amount of data / information stored on one or more world state databases in the blockchain network 200 can increase blockchain efficiency by minimizing / reducing the number of and need for large databases. While the embodiments disclosed herein often refer to the blockchain network 200 as a permissioned blockchain consortium (e.g., a Hyperledger Architecture blockchain network), the blockchain network 200 can be configured to operate within any type of blockchain consortium (e.g., a permissionless blockchain) with peer nodes or nodes that provide similar role functionality. In embodiments, the blockchain network 200 may include one or more entities (e.g., a specific entity and / or any other entity) configured to execute blockchain functions and entity policies 202. Each of the one or more entities maintained in the blockchain network 200 may include one or more nodes (such as endorsers 204, ordering service 206, committers 208, or any combination thereof). For example, in some embodiments, an entity may include both endorsers 204 and committers 208, while in other embodiments, an entity may be configured to include only committers 208.
[0049] In embodiments, one or more entities within blockchain network 200 may be configured by entity policy 202. In embodiments, entity policy 202 may include one or more world state rules. World state rules may define what constitutes relevant information and whether relevant information should be included in the world state database associated with each entity within blockchain network 200. While in some embodiments, one or more world state rules define whether data / information should be added (e.g., updated) to a particular world state database (e.g., if the data / information is considered relevant), in other embodiments, world state rules may also define when relevant information is updated to a particular world state database. For example, in embodiments where data / information is rarely accessed, entity policy 202 may include one or more world state rules that define that the world state database should only be accessed after a specific duration has occurred (e.g., the value is updated once per day, or after every 100th transaction). Such embodiments may reduce the amount of resources (e.g., processing resources and database storage resources) allocated to updating the world state database while also maintaining some form of updated value.
[0050] In embodiments, relevant information may have different definitions depending on the setup. In other words, the relevant information considered depends on the role or function a particular entity and / or node performs within blockchain network 200. In general, what is relevant to a particular entity may or may not be relevant to a different / other / separate / second / etc. entity. Accordingly, entity policy 202 may also include a set of one or more world state rules associated with a particular entity and a different set of different world state rules associated with different / other entities that define what is considered relevant information for that different / other entity. In embodiments where an entity and / or node performs a function necessary to maintain blockchain network 200, entity policy 202 may include world state rules that identify world state database information that is essential to performing that particular blockchain function as relevant information that must be maintained (e.g., endorsers performing endorsement functions). While in some embodiments, entity policy 202 may mark entities or nodes that require a contention for the world state database with an indicator that each entity and / or node should receive all data / information necessary to keep the world state database current, in other embodiments, entity policy 202 applies only to entities and / or nodes that configure their respective world state databases to include only relevant data. By selecting only the data that is required or relevant to an entity and / or node (e.g., selectively updating the world state database to include only relevant information), the amount of data that the entity and / or node must store can be significantly reduced. In this way, the blockchain network 200 can become more efficient not only by reducing the number of update operations, but also by reducing the amount of space required by certain entities (e.g., including nodes).
[0051] In embodiments, a particular entity within blockchain network 200 may maintain one or more world state databases (e.g., an entity with more than one committer node) with relevant information that differs from the relevant information in one or more world state databases associated with different / other entities (e.g., an entity with an endorser node). In these embodiments, entity policy 202 may allow the entity and / or individual nodes within the entity to define one or more world state rules. Such embodiments may allow the entity and / or nodes within the entity to define what information it deems relevant and should include in the world state database, without also maintaining and storing information unrelated to the particular entity. In this manner, databases associated with selectively updating a particular entity's world state database (e.g., via entity policy 202) may utilize relevant databases to store relevant information and reduce storage space traditionally occupied by unrelated data / information. By minimizing the storage space associated with these relevant databases, blockchain network 200 may improve efficiency by minimizing and / or reducing complex operations, particularly those associated with heavy or frequently updated transactions.
[0052] While in some embodiments, entity policy 202 may apply generally to a particular entity and similarly to all nodes within the particular entity (e.g., committers), in other embodiments, entity policy 202 may include world state rules that apply to some nodes (e.g., committers) but not others (e.g., endorsers) within the same particular entity. In these embodiments, entity policy 202 may be configured with one or more world state rules that define different relevant information for different nodes within the particular entity. In these embodiments, entity policy 202 may apply world state rules differently depending on the role of the node (e.g., whether the node is an endorser or a committer). For example, if the role of a node is to perform a critical blockchain function, entity policy 202 may include one or more world state rules that further identify information critical to performing that particular blockchain function as relevant information that must be maintained within the node's local world state database (e.g., endorsers performing the endorsement function). In embodiments, entity policy 202 may further include world state rules that define how data / information comprising relevant information may be modified throughout the life of blockchain network 200. For example, the entity policy 202 may define relevant information associated with a particular entity as car rental information, but if the particular entity evolves to sell cars, the entity policy 202 may be updated to reflect this new definition of relevant information.
[0053] In embodiments, once entity policy 202 has defined relevant information associated with a particular entity that should be included in the entity's world state database, blockchain network 200 may begin selectively updating one or more world state databases within blockchain network 200 as needed. In embodiments, blockchain network 200 may receive one or more smart contracts. In some embodiments, a smart contract may involve one or more entities within blockchain network 200 and may include information that can be used to update a world state database. In these embodiments, blockchain network 200 may process the smart contract, as dictated by the particular blockchain configuration and the smart contract itself, to selectively update one or more world state databases within the blockchain network based at least in part on entity policy 202. For example, while entity policy 202 may define relevant information for different / other entities as information A, B, and C, entity policy 202 may instead define relevant information for a particular entity as having information B and C but not information A (e.g., a missing world state component). In some embodiments, information that is blocked from updating (e.g., information not considered relevant information) may be referred to as a missing world state component.
[0054] In some embodiments, selectively updating the world state database may further include the blockchain network 200 using the endorsement policy 202 to determine whether the smart contract is associated with a particular entity. If the blockchain network 200 is determined to be associated with the particular entity, the blockchain network 200 may be configured to identify one or more world state rules associated with the particular entity from the entity policy 202. In these embodiments, the one or more world state rules may be applied to the data / information contained in the smart contract to determine the relevant information. In these embodiments, the one or more world state rules ensure that only relevant information, rather than all information, is added (e.g., updated) to the world state database of the particular entity or node by updating (e.g., writing) new values (e.g., defined by the smart contract) to the world state database of the particular entity or node to complete the selective update to include the relevant information.
[0055] These embodiments may also allow for maintaining a clear record of what information the blockchain network 200 has processed without requiring entities to store the information in their respective local world-state databases. In embodiments, the blockchain network 200 may be configured to retain a copy of the blockchain key and value sets associated with a particular entity to ensure that the complete world-state database can be regenerated when needed (e.g., if the blockchain network 200 needs to perform audit functions). These embodiments may also allow for maintaining a clear record of what information the blockchain network 200 has processed without requiring entities to store the information in their respective local world-state databases. In embodiments, some blockchain network 200 functions (e.g., audit functions) may require missing world-state components or data that has not been updated / included in the local world-state databases of particular entities and / or nodes. In these embodiments, the blockchain network 200 may determine that the world-state database of a particular entity is missing at least one world-state component. While in some embodiments, the blockchain network 200 may be configured to identify which world-state component is missing and subsequently fill in the missing world-state component using information from blocks previously submitted to the blockchain, in other embodiments, the blockchain network 200 may perform this function by reviewing a retained copy of the blockchain key and value sets. In embodiments where all world state databases within blockchain network 200 need to be updated, a specific function (e.g., UpdateAllWorldState) may be called by blockchain network 200 (e.g., by an administrator or auditor of blockchain network 200 or other blockchain nodes depending on the blockchain configuration).
[0056] Although the following example embodiments refer to blockchain network 200 as having one or more components traditionally associated with a Hyperledger architecture configuration, as described herein, blockchain network 200 may include any blockchain consortium. In an example embodiment, blockchain network 200 may be configured to include one or more specific entities, including one or more committers 208 (e.g., committer nodes) and one or more different / other entities having one or more endorsers 204 (e.g., endorser nodes), as well as an ordering service 206. As discussed herein, due to endorsement activity during the endorsement phase, endorsers require a complete local world state database in order to generate accurate read and write sets. In embodiments, ordering service 206 is generally unaffected by entity policies 202.
[0057] In embodiments, an entity with at least one submitter 208 may be configured by entity policy 202 to have one or more world state rules. Generally speaking, most submitters 208 are responsible for submitting transaction blocks to the blockchain and do not require data / information in their local world state database that is not relevant to the entity to which the submitter belongs. Accordingly, one or more world state rules may apply to all submitters within a particular entity, or each submitter may have a different world state rule applied. These embodiments may reduce the number of redundant copies of relevant information within a particular entity. For example, in some embodiments, relevant information stored within one node may be different from that stored at another node within the particular entity. In these embodiments, the blockchain network 200 and / or a particular entity may determine that having additional copies of data is redundant.
[0058] In embodiments where one or more committer nodes 206 are associated with (e.g., hosted within) a particular entity managed by entity policy 202, the world state rules applied to one or more committers 208 associated with the particular entity may verify the keys and versions of relevant information (e.g., from a read set). While in some embodiments, this verification is performed before committers 208 update transactions and commit blocks to the blockchain, in other embodiments, committers 208 may perform this verification after transactions and blocks are committed to the blockchain. In embodiments, once committers 208 verify the key and version sets and / or apply world state rules to data to include relevant information, committers 208 (e.g., configured by entity policy 202) selectively write the relevant information to a local world state database associated with committers 208.
[0059] Now see Figure 3 , which illustrates a flow chart of an example method 300 for selectively updating one or more world state databases in a blockchain network according to an embodiment of the present disclosure. In some embodiments, method 300 may be performed by one or more peer nodes within a blockchain network (e.g., blockchain network 200). In some embodiments, method 300 begins at operation 301, where a processor receives a request for a smart contract. In some embodiments, method 300 proceeds to operation 302, where the processor generates an entity policy. The entity policy provides one or more world state rules associated with a particular entity. In some embodiments, method 300 proceeds to operation 304, where the processor updates the world state database of a particular entity in response to receiving the smart contract, where the one or more world state rules affect the world state database of the particular entity differently than the world state database of a second entity.
[0060] In some embodiments, as depicted, after operation 304 , method 300 may end.
[0061] In some embodiments discussed below, one or more operations of method 300 are not depicted in order to simplify further operations / steps performed by a processor.
[0062] In an embodiment, in response to receiving a smart contract, a processor may use an entity policy to determine whether the smart contract is associated with a particular entity. In an embodiment, the processor may identify one or more world state rules associated with the particular entity. The processor may then apply the one or more world state rules and the smart contract to the world state database of the particular entity.
[0063] In embodiments, the processor may determine relevant information from the smart contract based on one or more world state rules. In these embodiments, the process may also update the specific entity's world state database to include the relevant information. In embodiments, the processor may maintain a copy of the blockchain key and value set, wherein each specific entity's world state database and a second entity's world state database maintain a copy of the blockchain key and value set.
[0064] In embodiments, the processor may select the relevant information. In these embodiments, the relevant information may be specified by entity policy and one or more world state rules. In these embodiments, the processor may identify a value specific to the relevant information and write the value to the world state database for the particular entity.
[0065] In embodiments, the processor may determine that a particular entity's world state database is missing at least one world state component. In these embodiments, the processor may identify the missing at least one world state component. In these embodiments, the processor may use one or more blocks submitted to the blockchain network to populate the missing at least one world state component.
[0066] In an embodiment, the processor may determine (eg, via entity policy 202) that a particular entity has at least one submitter node and another entity has at least one endorser node.
[0067] In an embodiment, the processor may configure the entity policy to exempt at least one endorser node from one or more world state rules.
[0068] It should be understood that although the present disclosure includes detailed descriptions about cloud computing, the implementation of the teachings cited herein is not limited to cloud computing environments. Instead, the embodiments of the present disclosure can be implemented in conjunction with any other type of computing environment now known or later developed.
[0069] Cloud computing is a service delivery model that enables convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) that can be quickly provisioned and released with minimal management effort or interaction with the service provider. The cloud model can include at least five characteristics, at least three service models, and at least four deployment models.
[0070] Features are as follows:
[0071] On-demand self-service: A cloud consumer can unilaterally provision computing capacity (such as server time and network storage) automatically on demand without requiring human interaction with the provider of the service.
[0072] Broad Network Access: Capabilities are available over the network and accessed through standard mechanisms that facilitate use by heterogeneous thin or thick client platforms (e.g., mobile phones, laptops, and PDAs).
[0073] Resource pooling: A provider's computing resources are pooled to serve multiple consumers using a multi-tenant model, where different physical and virtual resources are dynamically assigned and reassigned as needed. There is a sense of part independence, as consumers generally have no control or knowledge of the exact parts of the resources provided, but may be able to specify parts at a higher level of abstraction (e.g., country, state, or data center).
[0074] Rapid elasticity: Capacity can be quickly and elastically provisioned (in some cases, automatically) to quickly scale down and quickly released to quickly scale up. To the consumer, the capacity available for provisioning generally appears unlimited and can be purchased at any time and in any quantity.
[0075] Measured services: Cloud systems automatically control and optimize resource usage by leveraging metering capabilities at some level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported, providing transparency to both the provider and consumer of the utilized service.
[0076] The service model is as follows:
[0077] Software as a Service (SaaS): The ability provided to consumers is to use the provider's applications running on a cloud infrastructure. Applications are accessed from individual client devices through a thin client interface such as a web browser (e.g., web-based email). Consumers do not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings.
[0078] Platform as a Service (PaaS): The capability provided to consumers is to deploy applications created or acquired by the consumer on cloud infrastructure. These applications are built using programming languages and tools supported by the provider. Consumers do not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, or storage, but do have control over the deployed applications and possibly the configuration of the application hosting environment.
[0079] Infrastructure as a Service (IaaS): The capability provided to consumers is the provision of processing, storage, networking, and other basic computing resources on which consumers can deploy and run arbitrary software, including operating systems and applications. Consumers do not manage or control the underlying cloud infrastructure, but rather have control over the operating system, storage, deployed applications, and possibly limited control over selected networking components (e.g., host firewalls).
[0080] The deployment model is as follows:
[0081] Private cloud: Cloud infrastructure is operated solely for an entity. It can be managed by the entity or a third party and can exist on-premises or off-premises.
[0082] Community Cloud: Cloud infrastructure is shared by several entities and supports a specific community with shared concerns (e.g., mission, security requirements, policies, and compliance considerations). It can be managed by the entity or a third party and can exist on-premises or off-premises.
[0083] Public cloud: Cloud infrastructure is made available to the public or a large industry group and is owned by the entity that sells cloud services.
[0084] Hybrid cloud: A cloud infrastructure is a composition of two or more clouds (private, community, or public) that remain unique entities but are bound together by standardized or proprietary technologies that enable data and application portability (e.g., cloud bursting for load balancing between clouds).
[0085] The cloud computing environment is service-oriented and focuses on statelessness, low coupling, modularity, and semantic interoperability. The core of cloud computing is the infrastructure consisting of a network of interconnected nodes.
[0086] Figure 4A A cloud computing environment 410 is depicted. As shown, cloud computing environment 410 includes one or more cloud computing nodes 400, with which local computing devices used by cloud consumers (such as, for example, personal digital assistants (PDAs) or cell phones 400A, desktop computers 400B, laptop computers 400C, and / or automotive computer systems 400N) can communicate. Nodes 400 can communicate with each other. They can be physically or virtually grouped (not shown) in one or more networks (such as the private clouds, community clouds, public clouds, or hybrid clouds described above, or combinations thereof).
[0087] This allows the cloud computing environment 410 to provide infrastructure, platform and / or software as a service without the cloud consumer having to maintain resources on a local computing device. Figure 4A The types of computing devices 400A-N shown are intended to be illustrative only, and computing node 400 and cloud computing environment 410 may communicate with any type of computerized device over any type of network and / or network-addressable connection (eg, using a web browser).
[0088] Figure 4B The cloud computing environment 410 ( Figure 4A ) provides a collection of functional abstraction layers. It should be understood in advance that Figure 4B The components, layers, and functions shown in are intended to be illustrative only, and embodiments of the present disclosure are not limited thereto. As described below, the following layers and corresponding functions are provided.
[0089] The hardware and software layer 415 includes hardware and software components. Examples of hardware components include: host 402; server 404 based on RISC (Reduced Instruction Set Computer) architecture; server 406; blade server 408; storage device 411; and network and networking components 412. In some embodiments, software components include network application server software 414 and database software 416.
[0090] Virtualization layer 420 provides an abstraction layer from which the following examples of virtual entities can be provided: virtual servers 422 ; virtual storage 424 ; virtual networks 426 , including virtual private networks; virtual applications and operating systems 428 ; and virtual clients 430 .
[0091] In one example, the management layer 440 may provide the functionality described below. Resource provisioning 442 provides dynamic acquisition of computing resources and other resources for performing tasks within the cloud computing environment. Metering and pricing 444 provides cost tracking when resources are utilized within the cloud computing environment and bills or invoices for the consumption of these resources. In one example, these resources may include application software licenses. Security provides identity verification for cloud consumers and tasks, as well as protection of data and other resources. User portal 446 provides access to the cloud computing environment for consumers and system administrators. Service level management 448 provides cloud computing resource allocation and management so that required service levels are met. Service level agreement (SLA) planning and fulfillment 450 provides pre-arrangement and procurement of cloud computing resources in anticipation of future requirements for the cloud computing resources according to the SLA.
[0092] The workload layer 460 provides examples of functionality that can utilize a cloud computing environment. Examples of workloads and functionality that can be provided from this layer include: mapping and navigation 462; software development and lifecycle management 464; virtual classroom education delivery 466; data analytics processing 468; transaction processing 470; and selectively updating one or more world state databases 472.
[0093] Figure 5 A high-level block diagram of an example computer system 501 is illustrated, according to an embodiment of the present disclosure, which can be used to implement one or more of the methods, tools, and modules described herein and any related functionality (e.g., using one or more processor circuits of a computer or computer processors). In some embodiments, the main components of the computer system 501 may include one or more CPUs 502, a memory subsystem 504, a terminal interface 512, a storage interface 516, an I / O (input / output) device interface 514, and a network interface 518, all of which may be directly or indirectly communicatively coupled for inter-component communication via a memory bus 503, an I / O bus 508, and an I / O bus interface unit 510.
[0094] Computer system 501 may include one or more general-purpose programmable central processing units (CPUs) 502A, 502B, 502C, and 502D, collectively referred to herein as CPUs 502. In some embodiments, computer system 501 may include multiple processors typical of relatively large systems; however, in other embodiments, computer system 501 may alternatively be a single-CPU system. Each CPU 502 may execute instructions stored in memory subsystem 504 and may include one or more levels of onboard cache.
[0095] The system memory 504 may include computer system readable media in the form of volatile memory (such as random access memory (RAM) 522 or cache memory 524). The computer system 501 may also include other removable / non-removable, volatile / non-volatile computer system storage media. By way of example only, a storage system 526 may be provided for reading from and writing to non-removable, non-volatile magnetic media (such as a "hard drive"). Although not shown, a disk drive for reading and writing to a removable non-volatile disk (e.g., a "floppy disk"), or an optical drive for reading and writing to a removable non-volatile optical disk such as a CD-ROM, DVD-ROM, or other optical media may be provided. In addition, the memory 504 may include flash memory (e.g., a flash stick drive or a flash drive). The memory device may be connected to the memory bus 503 via one or more data media interfaces. The memory 504 may include at least one program product having a collection of (e.g., at least one) program modules configured to perform the functions of various embodiments.
[0096] One or more programs / utilities 528, each having at least one set of program modules 530, may be stored in memory 504. Programs / utilities 528 may include a hypervisor (also known as a virtual machine monitor), one or more operating systems, one or more application programs, other program modules, and program data. Each or some combination of the operating system, one or more application programs, other program modules, and program data may include an implementation of a network environment. Programs 528 and / or program modules 530 generally perform the functions or methods of various embodiments.
[0097] Although the memory bus 503 is Figure 5 504 and I / O bus 508. In the embodiment of the present invention, the computer system 501 is shown as a single bus structure that provides a direct communication path between the CPU 502, the memory subsystem 504, and the I / O bus interface 510. However, in some embodiments, the memory bus 503 may include multiple different buses or communication paths, which may be arranged in any of a variety of forms (such as point-to-point links in a hierarchical, star, or web configuration, multiple hierarchical buses, parallel and redundant paths, or any other suitable type of configuration). In addition, although the I / O bus interface 510 and the I / O bus 508 are shown as single respective units, in some embodiments, the computer system 501 may include multiple I / O bus interface units 510, multiple I / O buses 508, or both. Further, although multiple I / O interface units are shown that separate the I / O bus 508 from the different communication paths running to the various I / O devices, in other embodiments, some or all of the I / O devices may be directly connected to one or more system I / O buses.
[0098] In some embodiments, computer system 501 may be a multi-user mainframe computer system, a single-user system, or a server computer or similar device that has little or no direct user interface but receives requests from other computer systems (clients). Further, in some embodiments, computer system 501 may be implemented as a desktop computer, a portable computer, a laptop or notebook computer, a tablet computer, a pocket computer, a phone, a smartphone, a network switch or router, or any other suitable type of electronic device.
[0099] It should be noted that Figure 5 The diagram is intended to depict representative major components of an exemplary computer system 501. However, in some embodiments, individual components may have more Figure 5 Greater or lesser complexity, as represented in Figure 5 Components other than those shown in , and the number, type, and configuration of such components may vary.
[0100] As discussed in greater detail herein, it is contemplated that some or all of the operations of some embodiments of the methods described herein may be performed in an alternate order or not at all; furthermore, multiple operations may occur concurrently or as internal parts of a larger process.
[0101] The present disclosure may be in the form of a system, method, and / or computer program product at any possible level of integrated technical detail. The computer program product may include a computer-readable storage medium (or medium) having computer-readable program instructions thereon, the computer-readable program instructions being used to cause a processor to perform various aspects of the present invention.
[0102] Computer readable storage medium can be a tangible device that can retain and store instructions for use by instruction execution devices.Computer readable storage medium can be, for example, but not limited to, electronic storage devices, magnetic storage devices, optical storage devices, electromagnetic storage devices, semiconductor storage devices, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer readable storage medium includes the following: portable computer disk, hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disc read-only memory (CD-ROM), digital versatile disk (DVD), memory stick, floppy disk, mechanical encoding device (such as a punch card or a raised structure in a groove with instructions recorded thereon) and any suitable combination of the foregoing. As used herein, computer readable storage medium should not be interpreted as transient signal itself (such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagated by waveguides or other transmission media (for example, light pulses by fiber optic cables), or electrical signals transmitted by wires).
[0103] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to a corresponding computing / processing device, or downloaded to an external computer or external storage device via a network (e.g., the Internet, a local area network, a wide area network, and / or a wireless network). The network can include copper transmission cables, optical transmission fibers, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. The network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in a computer-readable storage medium within the corresponding computing / processing device.
[0104] The computer-readable program instructions for performing the operation of the present disclosure can be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-related instructions, microcode, firmware instructions, state setting data, configuration data of integrated circuits, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages (such as Smalltalk, C++, etc.) and procedural programming languages (such as "C" programming language or similar programming languages). The computer-readable program instructions can be executed completely on the user's computer, partially on the user's computer, executed as an independent software package, partially on the user's computer, partially on a remote computer, or completely on a remote computer or server. In the latter case, the remote computer can be connected to the user's computer through any type of network (including a local area network (LAN) or a wide area network (WAN)), or can be connected to an external computer (for example, by using the Internet of an Internet service provider). In certain embodiments, an electronic circuit (including, for example, a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA)) can execute the computer-readable program instructions to personalize the electronic circuit by utilizing the state information of the computer-readable program instructions, so as to perform various aspects of the present disclosure.
[0105] Various aspects of the present invention are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the present invention. It should be understood that each block of the flowchart and / or block diagram, and combinations of blocks in the flowchart and / or block diagram, can be implemented by computer-readable program instructions.
[0106] These computer-readable program instructions can be provided to a processor of a computer or other programmable data processing device to produce a machine, such that the instructions executed by the processor of the computer or other programmable data processing device create a device for implementing the functions / actions specified in one or more blocks of the flowchart and / or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium, which can direct the computer, programmable data processing device and / or other equipment to operate in a specific manner, such that the computer-readable storage medium having the instructions stored therein comprises an article of manufacture, which includes instructions for implementing various aspects of the functions / actions specified in one or more blocks in the flowchart and / or block diagram.
[0107] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device, so that a series of operational steps are performed on the computer, other programmable apparatus, or other device to produce a computer-implemented process, so that the instructions executed on the computer, other programmable apparatus, or other device implement the functions / actions specified in one or more boxes of the flowchart and / or block diagram.
[0108] The flowcharts and block diagrams in the accompanying drawings illustrate the possible implementation architectures, functions and operations of the systems, methods and computer program products according to the various embodiments of the present disclosure. To this end, each box in the flowchart or block diagram can represent a part of a module, segment or instruction, which includes one or more executable instructions for implementing a specified logical function. In some alternative embodiments, the functions marked in the box may not occur in the order marked in the figure. For example, depending on the functions involved, the two boxes shown in succession can actually be completed as a step, simultaneously, substantially simultaneously, in a manner that overlaps in part or all of time, or these boxes can sometimes be executed in the opposite order. It will also be noted that each box in the block diagram and / or flowchart, and the combination of boxes in the block diagram and / or flowchart can be implemented by a system based on dedicated hardware, which performs a specified function or action or performs a combination of dedicated hardware and computer instructions.
[0109] The description of the various embodiments of the present disclosure has been presented for illustrative purposes, but is not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terms used herein are selected to best explain the principles of the embodiments, practical applications, or technical improvements in technology found on the market, or to enable those of ordinary skill in the art to understand the embodiments disclosed herein. Although the present disclosure has been described in terms of specific embodiments, it is expected that changes and modifications thereof will become apparent to those skilled in the art. Therefore, the following claims are intended to be interpreted as covering all such changes and modifications that fall within the true spirit and scope of the present disclosure.
Claims
1. A method for selectively updating one or more world state databases in a blockchain network, comprising: A request for a smart contract is received by a processor; identifying an entity policy, wherein the entity policy provides one or more world state rules associated with one or more submitters; determining relevant information from the smart contract based on the one or more world state rules; applying the one or more world state rules to the one or more submitters; and In response to receiving the smart contract, updating a world state database of the one or more committers with the relevant information, wherein the one or more world state rules affect a world state database of the one or more committers differently than a world state database of one or more endorsers.
2. The method of claim 1 , wherein updating the world state database of the one or more submitters with the relevant information in response to receiving the smart contract further comprises: determining, using the entity policy, whether the smart contract is associated with the one or more submitters; identifying the one or more world state rules associated with the one or more submitters; as well as Applying the one or more world state rules and the smart contract to the world state database of the one or more submitters.
3. The method according to claim 1, further comprising: selecting the relevant information, wherein the relevant information is specified by the entity policy and the one or more world state rules; identifying a value specific to the relevant information; as well as The value is written to a world state database of the one or more committers.
4. The method according to claim 1, further comprising: Retaining a copy of a blockchain key and value set, wherein the world state database of the one or more submitters and the world state database of the one or more endorsers retain the copy of the blockchain key and value set.
5. The method according to claim 1, further comprising: determining that the world state database of the one or more submitters is missing at least one world state component; identifying the at least one world state component that is missing; as well as The missing at least one world state component is filled in using one or more blocks submitted to the blockchain network.
6. The method of claim 1, wherein the entity policy exempts at least one endorser node of the one or more endorsers from the one or more world state rules.
7. A system for selectively updating one or more world state databases in a blockchain network, the system comprising: Memory; as well as a processor in communication with the memory, the processor configured to perform operations comprising: Receive requests to smart contracts; identifying an entity policy, wherein the entity policy provides one or more world state rules associated with one or more submitters; determining relevant information from the smart contract based on the one or more world state rules; applying the one or more world state rules to the one or more submitters; and In response to receiving the smart contract, updating a world state database of the one or more committers with the relevant information, wherein the one or more world state rules affect a world state database of the one or more committers differently than a world state database of one or more endorsers.
8. The system of claim 7, wherein updating the world state database of the one or more submitters with the relevant information in response to receiving the smart contract further comprises: determining, using the entity policy, whether the smart contract is associated with the one or more submitters; identifying the one or more world state rules associated with the one or more submitters; as well as Applying the one or more world state rules and the smart contract to the world state database of the one or more submitters.
9. The system of claim 7, wherein the processor is further configured to perform operations comprising: selecting the relevant information, wherein the relevant information is specified by the entity policy and the one or more world state rules; identifying a value specific to the relevant information; as well as The value is written to a world state database of the one or more committers.
10. The system of claim 7, wherein the processor is further configured to perform operations comprising: Retaining a copy of a blockchain key and value set, wherein the world state database of the one or more submitters and the world state database of the one or more endorsers retain the copy of the blockchain key and value set.
11. The system of claim 7, wherein the processor is further configured to perform operations comprising: determining that the world state database of the one or more submitters is missing at least one world state component; identifying the at least one world state component that is missing; as well as The missing at least one world state component is filled in using one or more blocks submitted to the blockchain network.
12. The system of claim 7, wherein the entity policy exempts at least one endorser node of the one or more endorsers from the one or more world state rules.
13. A computer program product for selectively updating one or more world state databases in a blockchain network, the computer program product comprising program instructions executable by a processor to cause the processor to perform functions comprising: A request for a smart contract is received by a processor; identifying an entity policy, wherein the entity policy provides one or more world state rules associated with one or more submitters; determining relevant information from the smart contract based on the one or more world state rules; applying the one or more world state rules to the one or more submitters; and In response to receiving the smart contract, updating a world state database of the one or more committers with the relevant information, wherein the one or more world state rules affect a world state database of the one or more committers differently than a world state database of one or more endorsers.
14. The computer program product of claim 13 , wherein updating the world state database of the one or more submitters with the relevant information in response to receiving the smart contract further comprises: determining, using the entity policy, whether the smart contract is associated with the one or more submitters; identifying the one or more world state rules associated with the one or more submitters; as well as Applying the one or more world state rules and the smart contract to the world state database of the one or more submitters.
Citation Information
Patent Citations
Blockchain network interaction controller
CN110741400A
Prioritization in a permissioned blockchain
US20190354397A1
Autonomous data exchange marketplace system and methods
US20200090188A1