go - 无法在每个事务的链码中设置多个事件,仅获取最后一个事件
问题描述
我在链码(Hyperledger Fabric v1.1)的函数中应用了多个事件。
func (t *SimpleChaincode) initUsers(stub shim.ChaincodeStubInterface, args []string) pb.Response {
...
//Event supplier_bare
err = stub.SetEvent("supplier_bare", userAsbytes)
if err != nil {
return shim.Error(err.Error())
}
//Event supplier_bare_1
err = stub.SetEvent("supplier_bare_1", userAsbytes)
if err != nil {
return shim.Error(err.Error())
}
...
return shim.Success(nil)
}
当我调用该函数时,我只得到每个事务的最后一个事件(' supplier_bare_1 ')。
交易(事件):
...
"events": {
"chaincode_id": "mycc10",
"tx_id":"5421ae37d6e1947b7121f411d64dc215ccacbe45b2d0a9c796cc4a3715c922d6",
"event_name": "supplier_bare_1",
"payload": {
"type": "Buffer",
"data": [
...
]
}
},
...
链代码是否以这种方式工作,或者有不同的方法可以在单个函数中实现多个事件。
解决方案
从 shim 代码来看,shim 中只有一个用于链码事件的槽,因此只有最后一次调用 setEvent 才会生效。
推荐阅读
- wordpress - 如何让 mediawiki 安装和 wordpress 安装在同一个域中共享相同的用户登录和会话信息?
- javascript - 如何在 jQuery 中转义哈希 (#) 字符
- php - 动态 URLs PHP-HTML
- git - 无法创建分支内容并将其推送到 GitHub 存储库
- java - 覆盖/禁用@Startup 类
- android - 如何更新 Flatlist 中的项目值
- html - 图像未损坏但未显示
- elasticsearch - 文档创建时的 ElasticSearch 格式字段
- php - 请问如何编辑此代码以显示最多 200,000 条记录的表的页面行选择器
- javascript - 一个 div 变大而另一个变小