2017-02-28 55 views
1

有一种方法来的链代码(即世界状态,钥匙,其他人属性?)不同方面从一个链码复制到另一个?我正在尝试这一点,但我可以预见一个场景,我需要更改一些代码&部署。hyperledger织物块复制

部署基本上会创建具有自身状态的新chaincode。假设我想访问前一个链式代码中的键。我需要跟踪织物中以前的所有链代码ID吗?有没有办法将所有密钥合并到新部署的链接代码中?

回答

1

Fabric 1.0有两个功能可以帮助您。

1)Chaincode upgrade。假设第一个链式代码是版本1.如果您的新链式代码具有相同的名称,但您只需增加版本号,则在实例化时,新链式代码将继承第一个链式代码的完整状态。第一个链代码将不再是可调用的。

2)Chaincode到chaincode调用。第二个链码可以使用InvokeChaincode() API来调用第一个链码。 这可以在实例化时在新链代码的Init()函数中完成,以从第一链代码读取所有相关状态并在第二链代码中创建关联状态。或者,第二链代码可以在传统调用期间根据需要调用第一链代码,以引用或复制特定事务所需的任何状态。

当然,利用的解决方案#2,那么你需要在第一chaincode提供正确的查询功能。如果你没有这些,那么你可以使用综合解决方案。首先,使用解决方案#1升级第一个链式代码以添加所需的正确查询函数,然后使用解决方案#2从全新的链式代码调用这些新的查询函数。