我正在使用结构链码,并实现了提供用于存储数据的表概念,因为区 block 链不允许修改或删除,我渴望知道表格式的内部实现。是否有任何文件,如果有,请提出建议,或者如果有人知道并可以解释。
提前致谢
最佳答案
表是使用 Protocol Buffer 实现的。 你可以看一下文件table.pb.go 。该文件是使用 table.proto 中的原始消息定义自动生成的文件。 .
除此之外,chaincode API 还提供了诸如 CreateTable
、GetTable
、DeleteTable
、GetRow
、GetRows
、InsertRow
您可能会在链代码中使用它们。
像CreateTable
、InsertRow
、DeleteTable
这样的函数应该在内部进行数据修改,使用PutState
API来将字节值写入分类帐。 PutState
将文件 table.pb.go
中定义的结构编码为字节并存储到分类帐中。
类似GetRow
、GetRows
、GetTable
等查询数据的函数,内部使用GetState
API从分类帐中读取字节值。 GetState
API 从账本中查找字节值,然后将字节值解码到结构中。
实际上,您可以与 Go 结构进行交互,而无需关心表的内部存储方式。
关于blockchain - Hyperledger Fabric Chaincode 中的内部表实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40648522/