一.是什么
• 一个接口的实现代码
• 部署在Fabric区块链网络结点上
• 与Fabric区块链交互的唯一渠道
• 生成Transaction的唯一来源
• 智能合约在Fabric上的实现方式
二. fabric 1.0
- 必须要实现的接口
// 初始化工作,一般情况下仅被调用一次
Init(stub ChaincodeStubInterface) pb.Response
// 查询或更新world state,可多次被调用
Invoke(stub ChaincodeStubInterface) pb.Response
- 在Fabric 1.0中,peer节点可以扮演不同的角色:endorser、orderer和committer
Endorser — (模拟)执行Chaincode。分离计算任务,减轻consensus节点负担,增加吞吐量。支持endorsement policy(背书策略),更加灵活。防止不稳定或非确定的交易通过网络传播出去
Orderer — 对chaincode执行结果consensus(进行共识)。支持solo(先进先出策略)/kafka(消息订阅机制)/sBFT不同的ordering策略。
Committer — 将chaincode执行行结果写进ledger