如何从 Fabric 链码调用函数获取之前由 Hyperledger Composer bna 写入的数据



我已经使用Hyperledger Composer对一个基本网络进行了原型设计,现在正在努力将解决方案迁移到完全基于Fabric。

由于有一个带有预先发布的测试数据的网络,我只是在 Golang 中编写了一个新的 CC,并将源代码复制到我的频道的对等方进行部署。 Peer 连接到composer_default网络的通道,该通道由 composer-tools/fabric-dev-serversstartFabric.sh脚本创建。

然后我用 Golang 链码构建替换了 Fabric 网络中的 bna 链码,使用相同的 CC 名称和递增的 CC 版本 (peer chaincode upgrade (。

所以问题是:新的结构CC是否有可能通过Composer bna之前提交的现有状态?就像我们使用ChaincodeStubInterface的GetState方法访问它一样:

marbleAsBytes, err := stub.GetState(marbleName)

或者,也许可以通过查询将数据提取到 CouchDB(通道的当前存储(?不知道 Composer 用于存储其写入集的真正密钥标识符。

附言:实际上我不想从Fabric CC调用作曲家bna事务/查询,反之亦然。它只是现有网络环境的业务逻辑升级。

我认为应该可以,因为资产存储为键值对,您可以先尝试通过原生 golang 链码查询任何键。和以前一样,我尝试使用完全不同的链码升级一个作曲家链码,如果我尝试在我的旧作曲家链码中输入以前使用的密钥的数据,那就是抛出错误。因此,即使链码不同,您也应该能够通过其密钥访问已创建的资产。

最新更新