2017-09-04 67 views
0

我正在使用一个用例。需求是我需要创建一个订单。订单有一些客户参数。订单可以多次修改。最初,我想到在以太坊实施它。所以,我想从用户界面捕获客户的详细信息并将其存储在智能合约中。然而,问题是一旦合同被部署,我不能改变它,因为它是不可变的。这个缺点阻止我使用以太坊。考虑Corda,我可以将客户数据存储为单个记录并对其进行修改,以便修改存储在我们可以查询的分类账上。例如,我想存储客户ID,客户名称,客户采购订单号,订单类型和订单状态。Corda上的数据存储

我该怎么做Corda数据模型? 根据智能合约编码的规则,该数据是否可以修改? 可以查询数据?

回答

0

是的。

在Corda中,您使用State s存储信息。就你而言,你可以创建一个CustomerDataState类。然后,您可以在分类帐上创建此类的实例来代表您的各种客户。

然后可以使用交易更新此数据。但并非所有交易都是允许的。哪些交易有效基于关联的CustomerDataContract中的规则。 CustomerDataContract将是无状态的,只是存在于说明CustomerDataState可以随着时间的推移而演变。

然后,您可以使用SQL样式语法轻松地从节点的库或事务存储中查询此数据。

+0

感谢您的快速回复。回答了我的大部分疑问。如果我获得客户订单并且将来会按相同的订单获得修改请求。如何处理。例如,我收到客户A的请求。系统创建订单ID:12345.现在客户A想要修改订单,但他不能这样做,因为在corda中,状态是消耗或创建的。我们不能修改它。 – Saurabh

+0

您会建议一个消耗现有状态的事务,并发出一个代表新订单版本的新状态。例如,您将使用值为10的Order12345,然后创建一个ID为12345但值为15的新订单。 – joel

+0

没有找到您。价值10和15在这里有什么意义? – Saurabh