知识卡片

链码安装与实例化的职责分离

专业/工作 · 533

内容

Fabric把”把代码放到机器上”和”让这份代码在某条链上生效”拆成两个独立动作:install只是把链码包文件存到单个Endorser节点本地磁盘目录,不需要指定通道、不写入任何账本、也不启动容器;instantiate才通过LSCC系统链码把链码数据对象和背书策略写入指定通道账本的状态数据库,并真正启动Docker容器执行Init()。这意味着同一份已安装的链码代码可以被多个通道各自实例化一次,各通道互不影响;而同一个Peer节点上不会为同一链码名称+版本重复启动容器,实现了”部署一次、多通道复用容器资源”的效果。

参考来源

《Hyperledger Fabric技术内幕:架构设计与实现原理》第3章《Peer节点》