本文主要是介绍Hyperledger Fabric 链码(2) 接口,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.Chaincode interface:每个链码程序必须实现链码接口,用以响应接收的事务。
1.1 go语言的“shim ”包中,接口规范如下:
- Init:在链码实例化或者升级的时候被调用,完成数据初始化
- Invoke:客户端调用Invoke方法来提交交易提案,在更新或查询提案事务中分类帐本数据状态的时候被调用
type Chaincode interface {// Init is called during Instantiate transaction after the chaincode container// has been established for the first time, allowing the chaincode to// initialize its internal dataInit(stub ChaincodeStubInterface) pb.Response// Invoke is called to update or query the ledger in a proposal transaction.// Updated state variables are not committed to the ledger until the// transaction is committed.Invoke(stub ChaincodeStubInterface) pb.Response
}
2. ChaincodeStubinterface:shim中的另一个重要接口,用于访问和修改帐本,以及实现链间调用
共定义了36个成员方法
eg.
- GetFunctionAndParameters()(function string,params []string)返回被调用函数的名称以及参数列表
- GetStringArgs()[]string 直接返回参数列表
- GetState(key string)([]byte,error) 根据指定的key值查询数据状态
- PutState(key string,value []byte)error 根据指定的key,将对应的value保存到帐本中
- DelState(key) 删除账本中的一对键值。
这篇关于Hyperledger Fabric 链码(2) 接口的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!