Hyperledger作曲家升级业务网络

时间:2018-10-04 02:15:46

标签: hyperledger-fabric hyperledger hyperledger-composer

假设我有一个商业网络v1.0.0,其中的参与者具有以下模型:

participant Member identified by memberId {
   o String memberId
   o String firstName
}

部署网络后,我创建一个成员。

稍后,我想向成员模型添加一个字段。例如

participant Member identified by memberId {
   o String memberId
   o String firstName
   o String lastName
}

因此,我创建了新网络并升级了先前的网络:

composer network upgrade -c peeradmin@hlfv1 -n example-netowrk -V 2.0.0

我之前创建的成员会怎样?它被删除了吗?如何仅通过添加 lastName 将其保留在系统中并继续使用并更新其信息?

2 个答案:

答案 0 :(得分:1)

模型定义的演变在此处的文档中进行了描述 https://hyperledger.github.io/composer/latest/reference/model-compatibility,并应回答您的问题。

答案 1 :(得分:0)

当您更改模型时,您的api也将更改以反映更改。您的数据不会消失,不会像在分类帐上那样消失,但是不会包含您添加的新字段。

一旦部署了新模型,您就可以向该资产发出GET请求,这将为您提供所有现有数据,您可以根据需要填充新字段,然后对该资产发出PUT请求。现在,这将为您提供带有新数据的旧资产。

当然,我建议您仔细考虑如何更改现有资产。我在这里考虑的一项政策规定您不应重命名,也不应删除任何内容。您要做的就是添加新属性。如果您开始忙于重命名和删除操作,这势必会引起问题,尤其是在生产环境中。