Hyperledger结构中链和状态数据库之间的区别?

时间:2017-11-27 06:27:31

标签: hyperledger-fabric hyperledger

Hyperledger结构中链和状态数据库之间的主要区别是什么。我对它们是否相同感到困惑。

2 个答案:

答案 0 :(得分:18)

有两个地方" store" Hyperledger Fabric中的数据:

  • 分类帐
  • 州数据库

分类帐是实际的"区块链"。它是一个基于文件的分类帐,用于存储序列化块。每个块都有一个或多个事务。每个事务都包含一个读写集,用于修改一个或多个键/值对。分类帐是权威的最终来源,并且是不可变的。

状态数据库保存任何给定键的最后一个已知提交值。当每个对等体验证并提交事务时,它将被填充。始终可以通过重新处理分类帐来重建状态数据库。目前有两种状态数据库选项:嵌入式LevelDB或外部CouchDB。

顺便说一句,如果您熟悉Hyperledger Fabric频道,每个频道都有一个单独的分类帐。

答案 1 :(得分:1)

链是一个事务日志,结构为散列链接块,其中每个块包含一系列N个事务。块头包括块的事务的散列,以及先前块的头的散列。通过这种方式,分类账上的所有交易都按顺序排列并以加密方式链接在一起。

状态数据库只是链的事务日志的索引视图,因此可以随时从链中重新生成。

来源:http://hyperledger-fabric.readthedocs.io/en/release/ledger.html