链码的生命周期
Fabric链码的生命周期是一个过程,允许多个组织在使用一个链码之前就如何操作这个链码来达成一致。
fabric的生命周期可以用来展开以下任务:
- 安装和定义链码
- 升级链码
- 部署场景
- 迁移到新的Fabric生命周期
安装以及定义链码
- 打包链码(可以被一个或者每个组织完成)
- 安装链码(每一个将使用链码进行背书或者查询账本的组织都需要安装)
- 需要组织赞成该链码(LifecycleEndorsement)策略
- 提交链码(需要足够多的链码去批准——参考步骤3)
安装链码的时候需要将链码打包为tar文件,内部会包含有代码文件以及一个metadata.json,表明了路径,语言以及标签。
我们可以使用CLI命令或者SDK来完成链码的安装。但无论选择哪种,我们都需要以Peer Administrator的身份来完成。每个组织会打包链码一次,然后在属于他们组织的每一个peer节点上安装相同的包。成功安装后会返回一个包的哈希值,可以在后续用到。
链码定义时有着如下的参数需要保持一致:
名称,版本,序列号,背书策略,集合配置,初始化
tips:如果使用shimAPI提供的方法来安装链码,则额外需要使用init函数来初始化链码。(使用--init-required标志表明是否必须使用init函数来完成初始化)
一旦赞成数量达到要求,就可以提交链码(commit chaincode)。使用checkcommitreadiness命令可以检查有哪些通道成员已经赞成了该链码的部署,而这个数量受制于Channel/Application/LifecycleEndorsement
策略的管理
tips:新加入的组织只需要安装链码后便可以直接使用。如果选择的背书策略是默认的策略,那么背书策略会自动地更新新的组织。