我正在使用结构链代码并实现了提供的表概念来存储数据,因为区块链不允许修改或删除,我很想知道表格格式的内部实现。是否有任何文件,如果是,请建议或如果有人知道并可以解释。
提前致谢
答案 0 :(得分:2)
使用Protocol Buffers实现表。 您可以查看文件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结构进行交互,而无需关心表内部的存储方式。