Hyperledger结构中链和状态数据库之间的主要区别是什么。我对它们是否相同感到困惑。
答案 0 :(得分:18)
有两个地方" store" Hyperledger Fabric中的数据:
分类帐是实际的"区块链"。它是一个基于文件的分类帐,用于存储序列化块。每个块都有一个或多个事务。每个事务都包含一个读写集,用于修改一个或多个键/值对。分类帐是权威的最终来源,并且是不可变的。
状态数据库保存任何给定键的最后一个已知提交值。当每个对等体验证并提交事务时,它将被填充。始终可以通过重新处理分类帐来重建状态数据库。目前有两种状态数据库选项:嵌入式LevelDB或外部CouchDB。
顺便说一句,如果您熟悉Hyperledger Fabric频道,每个频道都有一个单独的分类帐。
答案 1 :(得分:1)
链是一个事务日志,结构为散列链接块,其中每个块包含一系列N个事务。块头包括块的事务的散列,以及先前块的头的散列。通过这种方式,分类账上的所有交易都按顺序排列并以加密方式链接在一起。
状态数据库只是链的事务日志的索引视图,因此可以随时从链中重新生成。
来源:http://hyperledger-fabric.readthedocs.io/en/release/ledger.html