blockchain - Hyperledger Fabric Chaincode 中的内部表实现

标签 blockchain hyperledger

我正在使用结构链码,并实现了提供用于存储数据的表概念,因为区 block 链不允许修改或删除,我渴望知道表格式的内部实现。是否有任何文件,如果有,请提出建议,或者如果有人知道并可以解释。

提前致谢

最佳答案

表是使用 Protocol Buffer 实现的。 你可以看一下文件table.pb.go 。该文件是使用 table.proto 中的原始消息定义自动生成的文件。 .

除此之外,chaincode API 还提供了诸如 CreateTableGetTableDeleteTableGetRowGetRowsInsertRow 您可能会在链代码中使用它们。

CreateTableInsertRowDeleteTable这样的函数应该在内部进行数据修改,使用PutState API来将字节值写入分类帐。 PutState 将文件 table.pb.go 中定义的结构编码为字节并存储到分类帐中。

类似GetRowGetRowsGetTable等查询数据的函数,内部使用GetState API从分类帐中读取字节值。 GetState API 从账本中查找字节值,然后将字节值解码到结构中。

实际上,您可以与 Go 结构进行交互,而无需关心表的内部存储方式。

关于blockchain - Hyperledger Fabric Chaincode 中的内部表实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40648522/

相关文章:

fork - 我如何 fork 币安智能链并创建自己的区 block 链

hyperledger-fabric - 如何访问 hyperledger composer 中的底层 Fabric 代码?

rest - 无法更改composer-rest-server的端口

hyperledger-fabric - 在模型文件中,日期时间数据类型存储 UTC 格式。是否可以以 IST 格式存储?

javascript - SteemJS 无法在 Firefox/IE 中运行

node.js - 以太坊错误 : Transaction was not mined within 50 blocks

hyperledger-fabric - 从 super 账本结构中的节点 sdk 初始化网络 channel 时出错

blockchain - 在 Hyperledger Fabric V1.0 中实现同一 channel 内节点之间的 channel 间安全

hash - 如何从 Hyperledger Fabric 重新计算私有(private)数据哈希

hyperledger-fabric - 在 HYPERLEDGER Fabric 中的链代码中调用合约形成另一个合约