知识卡片

是否需要走全网排序取决于是否涉及共享状态

专业/工作 · 533.b

内容

join(加入通道)与instantiate(实例化链码)都是通过系统链码(CSCC、LSCC)实现的管理操作,但处理路径完全不同:join只需要本地Endorser节点在自己机器上创建链结构、初始化Gossip模块,签名提案消息处理完就直接返回成功,不需要发给Orderer排序——因为”某个节点加入了通道”只是这个节点自己的本地状态;而instantiate必须把链码数据写进状态数据库这个所有节点共享的账本,因此必须走完整的排序广播流程,让所有节点都同步执行同一次写入。判断一个系统链码操作要不要走排序,标准很简单:这个操作的结果是否需要被其他节点感知并保持一致。

参考来源

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