Hyperledger结构:了解Docker容器



背景

我一直在学习教程"使用部署在本地主机上的docker容器构建您的第一个网络"。然而,我不确定集装箱内的一些文件,我需要澄清。

对等容器

  1. 在目录/var/hyperledger/production/chaincodes中,有一个文件mycc.1.0,我想它是编译的。在cli容器中运行peer chaincode install时,是否确实安装了此链代码?mycc.1.0是系统链码吗?

  2. 在目录/var/hyperledger/production/ledgersData中,还有许多其他目录和文件,如下所示。我有一个粗略的想法,它存储了世界状态和区块链。但是每个目录中的详细信息是什么?

    • bookkeeper
    • chains
    • configHistory
    • historyLeveldb
    • ledgerProvider
    • pvtdataStore
    • stateLeveldb
  3. 在目录/var/hyperledger/production/transientStore中,有几个文件。

    • 000001.log
    • CURRENT
    • LOCK
    • LOG
    • MANIFEST-000000

我还注意到,这些文件(名称相同,但不确定上下文是否相同(位于上面第2点列出的目录中。那么transientStoreledgersData之间有什么区别或关系呢?

订单容器

  1. 在目录/var/hyperledger/orderer中,有msptls加密材料。但是orderer.genesis.block的目的是什么?它只是用于引导区块链网络吗?在浏览了这个文件之后,我发现它由证书和ACL组成。这些材料是否也用于监控渠道策略以及验证交易?

  2. 在目录/var/hyperledger/production/orderer中。有两个目录chainsindex。它们看起来与对等容器中的chains目录非常相似。但我仍然不知道这些文件是什么。

上述容器的名称分别为peer#.org#.example.comorderer.example.com。但是当我运行docker container ls时,我发现有dev-peer#.org#.example.com-mycc-1.0docker容器。但我不知道他们为什么在这里。

谢谢!


更新

  1. 添加了关于transientStore的第3点,如对等容器部分所示(见上文(

  2. 我注意到在base/docker-compose-base.yaml中,有一个类似于/var/run/:/host/var/run/的卷装载。这些文件似乎是我本地的东西,可能与超级账本结构无关。为什么要装载此卷?

对等容器

/var/hyperledger/production/chaincodes-这是存储已安装的链代码包的位置。

订单容器

orderer.genesis.block是订购者的引导程序块。。。它包含基本的订购者设置和订购者组织的加密材料。订购方组织能够创建联盟并向其添加成员。然后,联盟政策将规定谁能够创建渠道等。

chains-每个通道的原始分类账文件

dev-peer#.org#.example.com-mycc-1.0

这些是链代码容器。Fabric在Docker容器中启动链代码。

最新更新