757  
在BSN中基于Fabric开发应用,上传链码包时选择的方法类型invoke,query,event有什么区别,该如何选择?
作者: 宋海旭 于 2020年07月21日 发布在分类 / BSN 常见问题 / BSN 官方专网 / 技术类问题 下,并于 2020年10月21日 编辑

  • invoke是指在方法内需要向链上写数据的方法,该类型的方法会向排序节点提交数据,并且最终会上链落块。例如PutState、DelState等需要存储数据或者删除数据的方法。
  • query是指只在链上查询数据的方法,该方法的调用不会向排序节点提交数据,不会落块。例如GetState等查询类方法。
  • event是指链码事件,该类型的方法需要事先在链码中通过SetEvent(key,value)方法设置事件事件中的key即为event方法名(如果在同一个方法中注册了多个事件,那只有最后一个事件会生效)。然后链下业务系统调用链码事件注册接口进行链码事件注册。当事件被触发后,城市节点向注册的通知地址发送数据。


需要注意的是,如果一个query类型的方法被设置为了invoke,那么查询数据时将会再次将数据提交到链上并落块。如果数据过大将会占用大量的账本空间。如果一个invoke类型的方法被设置成query,那么调用该方法存储的数据将不会上链。





 推荐知识

 历史版本

修改日期 修改人 备注
2020-10-21 17:44:32[当前版本] 宋海旭 1
2020-10-14 17:50:53 陈曦 其他原因...内容调整
2020-07-21 10:08:26 宋海旭 1
2020-07-21 10:08:06 宋海旭 1

区块链服务网络发展联盟