我一直在遵循教程Build Your First Network,并在本地主机上部署了Docker容器。但是,我不确定容器中的某些文件,需要澄清。
在目录/var/hyperledger/production/chaincodes
中,有一个文件mycc.1.0
,我猜是已编译。在cli容器中运行peer chaincode install
时是否已安装此链码? mycc.1.0
是系统链码吗?
在目录/var/hyperledger/production/ledgersData
内,还有许多其他目录和文件,如下所示。我有一个大概的想法,那就是它存储了世界状态和区块链。但是每个目录的详细信息是什么?
bookkeeper
chains
configHistory
historyLeveldb
ledgerProvider
pvtdataStore
stateLeveldb
在目录/var/hyperledger/production/transientStore
中,有几个文件。
000001.log
CURRENT
LOCK
LOG
MANIFEST-000000
我还注意到,这些文件(具有相同的名称,但不确定上下文是否相同)位于上面第2点列出的那些目录中。那么transientStore
和ledgersData
之间的区别或关系是什么?
在目录/var/hyperledger/orderer
中,有msp
和tls
个加密材料。但是orderer.genesis.block
的目的是什么?它只是用于引导区块链网络吗?浏览此文件后,我发现它由证书和ACL组成。这些材料还用于监控渠道政策以及验证交易吗?
在目录/var/hyperledger/production/orderer
中。有两个目录chains
和index
。它们看起来与对等容器中的chains
目录非常相似。但是我仍然不知道这些文件是什么。
以上容器的名称为peer#.org#.example.com
和orderer.example.com
。但是当我运行docker container ls
时,我发现有dev-peer#.org#.example.com-mycc-1.0
个Docker容器。但是我不知道他们为什么在这里。
谢谢!
更新
添加了与transientStore
有关的点3,如对等容器部分中所示(见上文)
我注意到在base/docker-compose-base.yaml
中有一个类似/var/run/:/host/var/run/
的卷装入。这些文件似乎是我的本地资料,可能与超账结构无关。为什么要挂载此卷?
答案 0 :(得分:2)
/var/hyperledger/production/chaincodes
-这是已安装的链码包的存储位置。
orderer.genesis.block
是订购者的引导块...它包含订购者组织的基本订购者设置和加密材料。
订购者组织可以创建财团并向其添加成员。然后,联盟政策将决定谁可以创建频道等。
chains
-每个通道的原始分类帐文件
这些是chaincode容器。 Fabric在Docker容器中启动链码。