Hyperledger composer 升级业务网络

Hyperledger composer upgrade business network

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

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

部署网络后我创建了一个会员。

稍后我想在 Member 模型中添加一个字段。例如

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?

来更新它的信息

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

当您更改模型时,您的 api 也会更改以反映更改。你的数据不会消失,它不会因为它在账本上而消失,但它不会有你添加的新字段。

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

当然,我建议您仔细考虑如何更改现有资产。我在这里想到一个政策,它说你不应该重命名任何东西,你不应该删除任何东西。您应该做的就是添加新属性。如果你开始胡思乱想重命名和删除,这肯定会导致问题,特别是在生产环境中。