Reputation: 1279
I am working on a use case. The requirement being I need to create an order. The order has some customer parameters. The order can be modified multiple times. Initially, I thought of implementing it in Ethereum. So, I thought of capturing the customer details from a UI and store it on the smart contract. However, the issue is once the contract is deployed I cannot change it since it is immutable. This drawback prevents me to use Ethereum. Deliberating on Corda, can I store the customer data as a single records and make modifications to it such that modifications are stored on the ledger which we can query. For instance, I want to store customer ID, Customer name, customer purchase order number, order type, and order status.
How would I do that in Corda data model? Will that data be modifiable based on the rules coded on smart contract? The data can be queried?
Upvotes: 1
Views: 935
Reputation: 23210
Yes.
In Corda, you store information using State
s. In your case, you might create a CustomerDataState
class. You'd then create instances of this class on the ledger to represent your various customers.
This data can then be updated using transactions. But not all transactions are allowed. Which transactions are valid is based on the rules in the associated CustomerDataContract
. The CustomerDataContract
will be stateless, and simply exists to say how CustomerDataState
s can evolve over time.
You can then easily query this data from your node's vault or transaction storage using an SQL-style syntax.
Upvotes: 2