peer 容器
虽然是WORKING_DIR,什么都没有。这个目录是/bin/bash永远的进入路径,不管在哪个目录退出,重新进入还是会进入这个路径。
/etc/hyperledger/fabric
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 
 | core.yaml
 
 
 configtx.yaml
 orderer.yaml
 
 
 msp
 tls
 
 | 
/var/hyperledger/production
这个文件夹存放unix系统里面的动态程序数据。
| 12
 3
 4
 5
 6
 
 | chaincodes
 
 ledgersData
 
 peer.pid
 
 | 
启动命令
整个容器内只有一个进程peer node start。完全没有其他命令行参数,所以就是靠环境变量来支持。
这个启动命令被安装只/usr/local/bin/下,里面只有这个命令(精简的ubuntu系统)。
全部环境变量
用env命令可以打出来:
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 
 | HOSTNAME=fba1d49eb609TERM=xterm
 CORE_PEER_TLS_ROOTCERT_FILE=/etc/hyperledger/fabric/tls/ca.crt
 CORE_PEER_TLS_KEY_FILE=/etc/hyperledger/fabric/tls/server.key
 
 CORE_PEER_PROFILE_ENABLED=true
 CORE_PEER_GOSSIP_ORGLEADER=false
 CORE_PEER_LOCALMSPID=Org3-MSP
 CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
 CORE_PEER_TLS_CERT_FILE=/etc/hyperledger/fabric/tls/server.crt
 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
 PWD=/var/hyperledger/production
 CORE_PEER_TLS_ENABLED=true
 CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=net_byfn
 CORE_PEER_ID=peer0.ORG3_DOMAIN
 SHLVL=1
 HOME=/root
 CORE_LOGGING_LEVEL=DEBUG
 CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.ORG3_DOMAIN:7051
 FABRIC_CFG_PATH=/etc/hyperledger/fabric
 CORE_PEER_ADDRESS=peer0.ORG3_DOMAIN:7051
 CORE_PEER_GOSSIP_USELEADERELECTION=true
 CORE_PEER_GOSSIP_BOOTSTRAP=peer0.ORG3_DOMAIN:7051
 _=/usr/bin/env
 OLDPWD=/etc/hyperledger/fabric
 
 | 
orderer 容器
虽然是WORKING_DIR,什么都没有。这个目录是/bin/bash永远的进入路径,不管在哪个目录退出,重新进入还是会进入这个路径。
注意,这个目录没有peer子目录。
/etc/hyperledger/fabric
| 12
 3
 4
 5
 6
 7
 
 | core.yaml
 configtx.yaml
 orderer.yaml
 
 
 msp
 
 | 
/var/hyperledger/
这个文件夹下有专门的两个子文件夹。
orderer 文件夹下有三个文件:
| 12
 3
 4
 5
 
 | orderer.genesis.block
 
 msp
 tls
 
 | 
production 文件夹下还有一个orderer文件夹:
| 12
 3
 4
 5
 
 | # 类似peer存放链数据了,但peer又没有一个单独的production/peer文件夹chains
 index
 
 # 没有 orderer 的pid
 
 | 
启动命令
orderer 连启动参数都没有。直接启动就会遇到地址被占用的错误。
这个启动命令被安装只/usr/local/bin/下,里面只有这个命令(精简的ubuntu系统)。
全部环境变量
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 
 | ORDERER_GENERAL_LOCALMSPDIR=/var/hyperledger/orderer/msp
 HOSTNAME=bf4847ae1253
 ORDERER_GENERAL_GENESISFILE=/var/hyperledger/orderer/orderer.genesis.block
 TERM=xterm
 
 ORDERER_GENERAL_LOCALMSPID=OrdererMSP
 ORDERER_GENERAL_TLS_ROOTCAS=[/var/hyperledger/orderer/tls/ca.crt]
 ORDERER_GENERAL_LISTENADDRESS=0.0.0.0
 ORDERER_GENERAL_TLS_PRIVATEKEY=/var/hyperledger/orderer/tls/server.key
 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
 PWD=/opt/gopath/src/github.com/hyperledger/fabric
 ORDERER_GENERAL_LOGLEVEL=debug
 ORDERER_GENERAL_GENESISMETHOD=file
 ORDERER_GENERAL_TLS_CERTIFICATE=/var/hyperledger/orderer/tls/server.crt
 SHLVL=1
 HOME=/root
 FABRIC_CFG_PATH=/etc/hyperledger/fabric
 ORDERER_GENERAL_TLS_ENABLED=true
 _=/usr/bin/env
 
 | 
cli 容器
cli容器的这个工作目录倒是有很多文件了:
| 12
 3
 4
 5
 6
 7
 8
 9
 
 | log.txt
 
 mychannel.block
 
 
 channel-artifacts
 crypto
 scripts
 
 | 
cli 容器独有的放置链码的文件夹,也是外部的docker映射进来的。
/etc/hyperledger/fabric
这个文件夹可以说也是从标准环境中诞生出来的(标准镜像里就有这些文件夹了么?)
| 12
 3
 4
 5
 
 | configtx.yaml  core.yaml
 # 也没人映射进来
 msp
 orderer.yaml
 
 | 
/var/hyperledger/
没有任何内容,没有production数据需要单独存放。
环境变量
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 
 | HOSTNAME=cf5db270ec10TERM=xterm
 CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/ORG1_DOMAIN/peers/peer0.ORG1_DOMAIN/tls/ca.crt
 CORE_PEER_TLS_KEY_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/ORG1_DOMAIN/peers/peer0.ORG1_DOMAIN/tls/server.key
 
 CORE_PEER_LOCALMSPID=Org1MSP
 CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
 CORE_PEER_TLS_CERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/ORG1_DOMAIN/peers/peer0.ORG1_DOMAIN/tls/server.crt
 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/go/bin:/opt/gopath/bin
 PWD=/opt/gopath/src/github.com/hyperledger/fabric/peer
 CORE_PEER_TLS_ENABLED=true
 CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/ORG1_DOMAIN/users/Admin@ORG1_DOMAIN/msp
 CORE_PEER_ID=cli
 SHLVL=1
 HOME=/root
 GOROOT=/opt/go
 CORE_LOGGING_LEVEL=DEBUG
 FABRIC_CFG_PATH=/etc/hyperledger/fabric
 CORE_PEER_ADDRESS=peer0.ORG1_DOMAIN:7051
 LESSOPEN=| /usr/bin/lesspipe %s
 GOPATH=/opt/gopath
 LESSCLOSE=/usr/bin/lesspipe %s %s
 _=/usr/bin/env
 
 | 
链码容器
/etc/hyperledger/fabric/
只有一个peer.crt文件,应该是在生成这个镜像的时候,从特定的peer上拷贝过来的。
没有/opt下的gopath,也没有/var下的production目录。
启动命令
只有一个启动命令
| 12
 3
 4
 
 | "Path": "chaincode","Args": [
 "-peer.address=peer1.ORG3_DOMAIN:7051"
 ],
 
 | 
/usr/local/bin/下只安装了一个命令chaincode。
环境变量
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 
 | HOSTNAME=a2886170947fTERM=xterm
 CORE_PEER_TLS_ROOTCERT_FILE=/etc/hyperledger/fabric/peer.crt
 
 CORE_CHAINCODE_ID_NAME=mycc:1.0
 CORE_CHAINCODE_LOGGING_LEVEL=info
 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
 PWD=/
 CORE_PEER_TLS_ENABLED=true
 CORE_CHAINCODE_BUILDLEVEL=1.0.6
 CORE_CHAINCODE_LOGGING_FORMAT=%{color}%{time:2006-01-02 15:04:05.000 MST} [%{module}] %{shortfunc} -> %{level:.4s} %{id:03x}%{color:reset} %{message}
 SHLVL=1
 HOME=/root
 CORE_CHAINCODE_LOGGING_SHIM=warning
 _=/usr/bin/env
 
 |