简体   繁体   中英

Hyperledger Fabric: Understanding Docker Containers

Backgroud

I have been following the tutorial Build Your First Network with docker containers deployed on my localhost. However, I am uncertain some of the files inside the containers and I need clarification.

Peer container

  1. Inside the directory /var/hyperledger/production/chaincodes , there is a file mycc.1.0 , which is compiled I guess. Is it true that this chaincode is installed when running peer chaincode install in the cli container? And is mycc.1.0 the system chaincodes?

  2. Inside the directory /var/hyperledger/production/ledgersData , there are many other directories and files as shown below. I have a rough idea that it stores the world state and the blockchain. But what are the details in each directories?

    • bookkeeper
    • chains
    • configHistory
    • historyLeveldb
    • ledgerProvider
    • pvtdataStore
    • stateLeveldb
  3. Inside the directory /var/hyperledger/production/transientStore , there are several files.

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

I also noticed that these files (with the same name but not sure if the context is the same or not) are found on those directories listed in point 2 above. So what is the difference or relation between transientStore and ledgersData ?

Orderer container

  1. Inside the directory /var/hyperledger/orderer , there are msp and tls crypto-materials. But what is the purpose of orderer.genesis.block ? Is it just used for bootstrap the blockchain network? After exploring this file, I found that it consists of certificates and ACL. Are these materials also used for monitoring the channel policy as well as verifying the transactions?

  2. Inside the directory /var/hyperledger/production/orderer . There are two directories chains and index . They look very similar to the chains directory in peer container. But I still don't know what are these files.

The above containers have the name peer#.org#.example.com and orderer.example.com . But when I run docker container ls , I find that there are dev-peer#.org#.example.com-mycc-1.0 docker containers. But I have no idea why they are here.

Thanks!


Update

  1. Added point 3 concerning transientStore as shown in Peer container section (see above)

  2. I noticed that in base/docker-compose-base.yaml , there is a volume mount like this /var/run/:/host/var/run/ . Those files seem to be my local stuff and may not be related to hyperledger fabric. Why mount this volume?

Peer container

/var/hyperledger/production/chaincodes - this is where installed chaincode packages are stored.

Orderer container

orderer.genesis.block is the bootstrap block for the orderer ... it contains the basic orderer settings and the crypto material for the orderer organization. The orderer organization has the ability to create consortiums and add members to them. The consortium policies will then dictate who is able to create channels, etc.

chains - the raw ledger files for each channel

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

These are the chaincode containers. Fabric launches chaincode in Docker containers.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM