Abstract: A set of both smart contract and off-chain tools is described that enable the management and organization of data so as to enable storage of that data in a distributed ledger according to relational database principles. A cross-distributed-ledger-platform specification plus reusable core components together create a system that may be implemented on distributed ledger platforms to enable storage and retrieval of data to/from the distributed ledger governed by relational principles. A realization of this system enables addition of system chaincode to Hyperledger® Fabric and uses schemas and data represented as JSON. In use, the user may create, update, and query data from code, a console, or a smart contract where every update is a distributed ledger transaction.
Abstract: A parent/child model for smart contracts enables the smart contracts to be updateable without compromising the immutability of the underlying data. As a first step, a parent smart contract (Client Contract) is deployed that stores any other contract that may be called using the contract address. Then, whenever a new child smart contract (Service Contract) is deployed, the parent smart contract is updated with the address of the new child smart contract so that the parent smart contract will be able to call the child smart contract. The structure of the child smart contract is known to the parent smart contract. For example, the number of inputs going into the child smart contract and the number of outputs coming out of the child smart contract are known to the parent smart contract before deployment of the parent smart contract, and the transaction data remains accessible without affecting the parent contract.
Abstract: A set of both smart contract and off-chain tools is described that enable the management and organization of data so as to enable storage of that data in a distributed ledger according to relational database principles. A cross-distributed-ledger-platform specification plus reusable core components together create a system that may be implemented on distributed ledger platforms to enable storage and retrieval of data to/from the distributed ledger governed by relational principles. A realization of this system enables addition of system chaincode to Hyperledger® Fabric and uses schemas and data represented as JSON. In use, the user may create, update, and query data from code, a console, or a smart contract where every update is a distributed ledger transaction.