fabric链码编写思路和常见的API整理:
type SmartContract struct {
contractapi.Contract
}
contractapi.Contract :关于资产调用的常用接口,很多官方链码都使用了,自己编写链码的时候可以不用,后面的都换成Stub()方法即可
首先需要init方法进行初始化:
func (s *SmartContract) InitLedger(ctx contractapi.TransactionContextInterface) error {
...
}
err = ctx.GetStub().PutState(plan.ID, planJSON)
上面的ctx.GetStub() 相当于 Stub()
PutState() :存入数据库的API
GetState() :读取数据
GetStateByRange: 给定起始和终点,根据这个范围来查询信息
查询之后返回迭代器,GetStateByRange里的hasnext()和next()进行循环,实现功能
链码可以定义各种函数方法与结构体绑定,实现增删改查 不