多层 chaincode 架构设计
联盟链的多层 chaincode 架构设计提高合约的逻辑和扩展 , 并注重私有数据的隐私性
第一层 : 公共合约 (public chaincode), 即每个组织共同合约
- 安装在所有现有节点和未来新增节点
- 仅存储最小交易审计数据,如资产流向记录
- 节点组织背书 : 保证合约版本一致
- 合约代码以及逻辑本身开源或联盟内开源,更新维护频率最低,本质上类似于ETH的智能合约
第二层 : 交易合约 (deal chaincode) , 即交易内容存在竞争关系的合约
- 只安装在交易的双方所拥有的节点
- 合约代码由交易双方协同维护,更新维护频率中等
- 合约内,跨合约调用公共合约,公开资产流向记录
- 需要交易双方同时背书,允许加入其他审计方
- 在审计方节点安装,并新增 审计机构作为背书者,需要使用私有数据库来存储隐私数据,否则一般账本数据会暴露给没有安装合约的其他节点层
第三层 : 私有合约 (private chaincode), 原则上并不是合约,用于特殊用途
- 用于组织内部部门之间
- 测试用合约,将来有提升成交易合约的可能
- 合并应用层对账本的读写操作,共用上下文,更新频率最高,仅由一个组织维护,因此组织可以完全掌控其开发生命周期
转载于:https://my.oschina.net/jonluo/blog/3002574