Hyperledger Fabric 链码 接口

Posted thefist11

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hyperledger Fabric 链码 接口相关的知识,希望对你有一定的参考价值。

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 data
    Init(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 链码 接口的主要内容,如果未能解决你的问题,请参考以下文章

Hyperledger Fabric 智能合约实战 访问链码接口

Hyperledger Fabric链码之二

Hyperledger Fabric 链码生命周期

hyperledger fabric链码开发(Chaincode for Developers)

Hyperledger Fabric链码之一

Hyperledger Fabric 链码 生命周期和API