有没有办法复制链码的不同方面(例如,世界状态、键、其他属性?)从一个链码到另一个链码?在这一点上我正在进行实验,但我可以预见一个场景,我需要更改一些go代码并进行部署。
部署基本上会创建一个具有自己状态的新链码。假设我想从前面的链代码中访问键。我是否需要跟踪fabric中所有以前的链码in?有没有办法将所有键整合到新部署的链代码中?
发布于 2017-08-04 08:21:20
Fabric 1.0中有两个功能可能会对您有所帮助。
1)链码upgrade。假设第一个链码是版本1,如果您的新链码具有相同的名称,但您只需增加版本号,那么在实例化时,新链码将继承第一个链码的完整状态。第一个链码将不再可调用。
2)链码以链码调用。第二链码可以使用InvokeChaincode() API调用第一链码。这可以在实例化时在新链码的Init()函数中完成,以便从第一个链码读取所有相关状态,并在第二个链码中创建相关状态。或者,第二链码可以在传统调用期间根据需要调用第一链码,以引用或复制特定事务所需的任何状态。
当然,要使用解决方案#2,您需要在第一个链码上提供正确的查询函数。如果你没有准备好这些,那么你可以使用一个组合的解决方案。首先,使用解决方案#1升级第一个链码以添加所需的正确查询函数,然后使用解决方案#2从全新的链码调用这些新的查询函数。
https://stackoverflow.com/questions/42501333
复制相似问题