一、Fabric-shim.ChaincodeInterface
1、ChaincodeInterface
在链码当中我们必须实现ChaincodeInterface接口中定义的方法,例如init()、invoke() 只有实现这些方法才不会报错,两个方法都会传入一个stub对象,init() 方法作为链码初始化或者升级时使用,可以在此方法中实现生成一些实例化的结构体,而invoke() 则是负责链码交互,执行一些业务逻辑,执行一些方法实现对账本中内容的增删改查。
2、init
Init 负责链码的初始化,以及链码的升级。具体调用方法如下,因方法过长,不过多赘述,将一些需要初始化的内容序列化保存至账本。
3、Invoke
Invoke方法负责链码交互,判断当前该执行哪个方法,执行业务逻辑。
二、fabric-shim.ChaincodeStub
1、createCompositeKey
createCompositeKey方法的作用是创建一个string组合键,通过前缀和需要拼接的字段,创建组合键,返回一个string组合键,以及一个错误信息。
2、putState
putState通过一个键值和一个byte数组将其按照key value 存入账本当中,若账本中已经存在则会覆盖原有的值,返回值为错误信息,所以一般用来更新账本,即保存、修改账本中的内容。
3、getState
getState根据key从账本中取出数据(value)返回值为数据的byte数组和一个错误信息。通常用于查询。
4、delState
delState根据key值删除账本中对应key的键值对,返回一个错误信息。
5、getHistoryForKey
getHistoryForKey 根据key值在帐本中查找key对应的历史记录,每次历史更新都将会保存至账本当中,都记录有当时的值和关联的交易id、时间戳。时间戳取自交易提议头。此方法需要对peer节点的配置来使用。具体配置方法如下:
此方法返回一个Promise对象,其解析值为HistoryQueryIterator对象。
6、getStateByRange
getStateByRange此方法返回一个账本状态键的迭代器,遍历起始键至结束键之间的所有状态键,返回结果按照词典顺序排列。
一般来说操作账本的常用的就以上几种,还有很多其他方法,具体方法在fabric官方文档中有详细的解释。
三、fabric-shim.Shim
1、Shim
shim提供了链码底层的开发接口,用于链码逻辑的判断来返回内容。
2、Error
error返回500状态码以及错误信息。
3、Success
success返回200状态码以及字节数组。
领取专属 10元无门槛券
私享最新 技术干货