我正在通过 super 账本结构V1.0。需要知道 super 账本的内部。
1)如何在内部以及在 super 账本中保存区块和交易的位置。
2)是否在NoSQL DB(级别DB,Couch DB)中?如果是,保存的方式是什么结构??。
3)在哪里可以找到V1.0的端到端设置文档(包括CA,结构,订购者设置。目前,我正在跟踪链接,该链接正在更新。
https://hyperledger-fabric.readthedocs.io/
最佳答案
对于以下所有代码引用,请使用the fabric
git repo作为指导。 (S/O阻止我发布两个以上的链接,因此我无法直接链接到代码片段。)
首先,将交易收集到订购服务中的块/批次中。当满足BatchSize
或经过BatchTimeout
时(如果是非空块),将剪切块。
引用:configtx.yaml
目录中的
common/configtx/tool/
,以获取有关切块标准的更多信息。 Block
中的protos/common/common.proto
类型定义。 这些块与LevelDB一起在本地存储在每个订购服务节点上的磁盘上,以按编号对这些块进行索引-请参见
orderer/ledger/file
。然后将这些块(通过订购服务的
Deliver
RPC)交付给提交对等方。他们将它们存储在本地,并维护基于LevelDB的块索引(类似于订购者的索引),基于LevelDB的历史索引以跟踪区块链上每个 key 的历史记录,以及维护状态数据库的最新值的状态数据库。区块链上的所有 key 。此状态数据库可以基于LevelDB或CouchDB。有关更多信息,请参见the ledger doc。PS:问题#3无关紧要,应该将其分解为一个单独的线程。