更新时间:2023-03-07 GMT+08:00

链代码结构

本章以Java语言为例来介绍。链代码即一个Java项目,创建好文件后进行函数开发等操作。

约束与限制

Java链代码仅支持Fabric 2.2及以上版本。

链代码接口

链代码启动必须通过调用shim包中的start方法。实际开发中, 您需要自行定义一个类,来继承ChaincodeBase。以下为继承时必须重写的方法:

public class SimpleChaincodeSimple extends ChaincodeBase { 
    @Override 
    public Response init(ChaincodeStub stub) { 
    }
 
    @Override 
    public Response invoke(ChaincodeStub stub) { 
    } 
}
  • init方法:在链代码实例化或升级时被调用,完成初始化数据的工作。
  • Invoke方法:更新或查询帐本数据状态时被调用, 需要在此方法中实现响应调用或查询的业务逻辑。

链代码结构

Java语言的链代码结构如下:

package main 
 
// 引入必要的包,系统自动操作,只要在maven或gradle中配置即可 
import org.hyperledger.fabric.shim.ChaincodeBase; 
import org.hyperledger.fabric.shim.ChaincodeStub; 
 
public class SimpleChaincodeSimple extends ChaincodeBase { 
    @Override 
    public Response init(ChaincodeStub stub) { 
        // 在该方法中实现链代码初始化或升级时的处理逻辑 
        // 编写时可灵活使用stub中的API 
    }
 
    @Override 
    public Response invoke(ChaincodeStub stub) { 
        // 在该方法中实现链代码运行中被调用或查询时的处理逻辑 
        // 编写时可灵活使用stub中的API 
    } 

    //主函数,需要调用shim.Start()方法 
    public static void main(String[] args) { 
        new SimpleChaincode().start(args); 
    } 
}