Set muti Org in Fabric 2.3 - phoebeum/phoebeum.github.io GitHub Wiki
Generate CA
1.Enter file-bin, save cryptogen(in bin) and edit it.
cd bin
./cryptogen showtemlate > ../crypto-config.yaml
2.Edit crypto-config.yaml
EnableNodeOUs, change false to true.
Add orderer
In Specs add Hostname

OrdererOrgs:
# ---------------------------------------------------------------------------
# Orderer
# ---------------------------------------------------------------------------
- Name: Orderer
Domain: org0.example.com #example.com
EnableNodeOUs: true
# ---------------------------------------------------------------------------
# "Specs" - See PeerOrgs below for complete description
# ---------------------------------------------------------------------------
Specs:
- Hostname: orderer0 #add ordererX
- Hostname: orderer1
Add OrgX
Every org need config, if org has mutiple peer, change number in Template Count.

# ---------------------------------------------------------------------------
# Org2: See "Org1" for full specification
# ---------------------------------------------------------------------------
- Name: Org2
Domain: org2.example.com
EnableNodeOUs: true
Template:
Count: 1
Users:
Count: 1
3.Gnerate identity file
./cryptogen generate --config=crypto-config.yaml --output=crypto-config
Verify identity file
tree crypto-config
4.Edit config file
edit configtx.yaml
重启网卡
sudo /etc/init.d/network-manager restart
mkdir multiple-deployment
cd multiple-deployment
version: '2'
services:
orderer0.example.com:
container_name: orderer0.example.com
image: hyperledger/fabric-orderer ##:2.3.3
environment:
- FABRIC_LOGGING_SPEC=DEBUG
- ORDERER_GENERAL_LISTENADDRESS=0.0.0.0
- ORDERER_GENERAL_BOOTSTRAPMETHOD=file
- ORDERER_GENERAL_BOOTSTRAPFILE=/home/fabric-samples/multiple-deployment/channel-artifacts/orderer.genesis.block
- ORDERER_GENERAL_LOCALMSPID=OrdererMSP
- ORDERER_GENERAL_LOCALMSPDIR=/home/fabric-samples/multiple-deployment/crypto-config/ordererOrganizations/example.com/msp
# enabled TLS
- ORDERER_GENERAL_TLS_ENABLED=true
- ORDERER_GENERAL_TLS_PRIVATEKEY=/home/fabric-samples/multiple-deployment/crypto-config/ordererOrganizations/example.com/orderers/orderer0.example.com/tls/server.key
- ORDERER_GENERAL_TLS_CERTIFICATE=/home/fabric-samples/multiple-deployment/crypto-config/ordererOrganizations/example.com/orderers/orderer0.example.com/tls/server.crt
- ORDERER_GENERAL_TLS_ROOTCAS=[/home/fabric-samples/multiple-deployment/crypto-config/ordererOrganizations/example.com/orderers/orderer0.example.com/tls/ca.crt]
- ORDERER_GENERAL_CLUSTER_CLIENTCERTIFICATE=/home/fabric-samples/multiple-deployment/crypto-config/ordererOrganizations/example.com/orderers/orderer0.example.com/tls/server.crt
- ORDERER_GENERAL_CLUSTER_CLIENTPRIVATEKEY=/home/fabric-samples/multiple-deployment/crypto-config/ordererOrganizations/example.com/orderers/orderer0.example.com/tls/server.key
- ORDERER_GENERAL_CLUSTER_ROOTCAS=[/home/fabric-samples/multiple-deployment/crypto-config/ordererOrganizations/example.com/orderers/orderer0.example.com/tls/ca.crt]
working_dir: /home/fabric-samples/multiple-deployment
command: orderer
volumes:
- ./channel-artifacts/orderer.genesis.block:/home/fabric-samples/multiple-deployment/channel-artifacts/orderer.genesis.block
- ./crypto-config/ordererOrganizations/example.com/orderers/orderer0.example.com/msp:/home/fabric-samples/multiple-deployment/crypto-config/ordererOrganizations/example.com/orderers/orderer0.example.com/msp
- ./crypto-config/ordererOrganizations/example.com/orderers/orderer0.example.com/tls/:/home/fabric-samples/multiple-deployment/crypto-config/ordererOrganizations/example.com/orderers/orderer0.example.com/tls
ports:
- 7050:7050
extra_hosts:
- "orderer0.example.com:192.168.1.7"
- "orderer1.example.com:192.168.1.7"
- "orderer2.example.com:192.168.1.7"
orderer1.example.com:
container_name: orderer1.example.com
image: hyperledger/fabric-orderer ##:2.3.3
environment:
- FABRIC_LOGGING_SPEC=INFO
- ORDERER_GENERAL_LISTENADDRESS=0.0.0.0
- ORDERER_GENERAL_BOOTSTRAPMETHOD=file
- ORDERER_GENERAL_BOOTSTRAPFILE=/home/fabric-samples/multiple-deployment/channel-artifacts/orderer.genesis.block
- ORDERER_GENERAL_LOCALMSPID=OrdererMSP
- ORDERER_GENERAL_LOCALMSPDIR=/home/fabric-samples/multiple-deployment/crypto-config/ordererOrganizations/example.com/msp
# enabled TLS
- ORDERER_GENERAL_TLS_ENABLED=true
- ORDERER_GENERAL_TLS_PRIVATEKEY=/home/fabric-samples/multiple-deployment/crypto-config/ordererOrganizations/example.com/orderers/orderer1.example.com/tls/server.key
- ORDERER_GENERAL_TLS_CERTIFICATE=/home/fabric-samples/multiple-deployment/crypto-config/ordererOrganizations/example.com/orderers/orderer1.example.com/tls/server.crt
- ORDERER_GENERAL_TLS_ROOTCAS=[/home/fabric-samples/multiple-deployment/crypto-config/ordererOrganizations/example.com/orderers/orderer1.example.com/tls/ca.crt]
- ORDERER_GENERAL_CLUSTER_CLIENTCERTIFICATE=/home/fabric-samples/multiple-deployment/crypto-config/ordererOrganizations/example.com/orderers/orderer1.example.com/tls/server.crt
- ORDERER_GENERAL_CLUSTER_CLIENTPRIVATEKEY=/home/fabric-samples/multiple-deployment/crypto-config/ordererOrganizations/example.com/orderers/orderer1.example.com/tls/server.key
- ORDERER_GENERAL_CLUSTER_ROOTCAS=[/home/fabric-samples/multiple-deployment/crypto-config/ordererOrganizations/example.com/orderers/orderer1.example.com/tls/ca.crt]
working_dir: /home/fabric-samples/multiple-deployment
command: orderer
volumes:
- ./channel-artifacts/genesis.block:/home/fabric-samples/multiple-deployment/channel-artifacts/orderer.genesis.block
- ./crypto-config/ordererOrganizations/example.com/orderers/orderer1.example.com/msp:/home/fabric-samples/multiple-deployment/crypto-config/ordererOrganizations/example.com/orderers/orderer1.example.com/msp
- ./crypto-config/ordererOrganizations/example.com/orderers/orderer1.example.com/tls/:/home/fabric-samples/multiple-deployment/crypto-config/ordererOrganizations/example.com/orderers/orderer1.example.com/tls
ports:
- 8050:8050
extra_hosts:
- "orderer0.example.com:192.168.1.7"
- "orderer1.example.com:192.168.1.7"
- "orderer2.example.com:192.168.1.7"
orderer2.example.com:
container_name: orderer2.example.com
image: hyperledger/fabric-orderer ##:2.3.3
environment:
- FABRIC_LOGGING_SPEC=INFO
- ORDERER_GENERAL_LISTENADDRESS=0.0.0.0
- ORDERER_GENERAL_BOOTSTRAPMETHOD=file
- ORDERER_GENERAL_BOOTSTRAPFILE=/home/fabric-samples/multiple-deployment/channel-artifacts/orderer.genesis.block
- ORDERER_GENERAL_LOCALMSPID=OrdererMSP
- ORDERER_GENERAL_LOCALMSPDIR=/home/fabric-samples/multiple-deployment/crypto-config/ordererOrganizations/example.com/msp
# enabled TLS
- ORDERER_GENERAL_TLS_ENABLED=true
- ORDERER_GENERAL_TLS_PRIVATEKEY=/home/fabric-samples/multiple-deployment/crypto-config/ordererOrganizations/example.com/orderers/orderer2.example.com/tls/server.key
- ORDERER_GENERAL_TLS_CERTIFICATE=/home/fabric-samples/multiple-deployment/crypto-config/ordererOrganizations/example.com/orderers/orderer2.example.com/tls/server.crt
- ORDERER_GENERAL_TLS_ROOTCAS=[/home/fabric-samples/multiple-deployment/crypto-config/ordererOrganizations/example.com/orderers/orderer2.example.com/tls/ca.crt]
- ORDERER_GENERAL_CLUSTER_CLIENTCERTIFICATE=/home/fabric-samples/multiple-deployment/crypto-config/ordererOrganizations/example.com/orderers/orderer2.example.com/tls/server.crt
- ORDERER_GENERAL_CLUSTER_CLIENTPRIVATEKEY=/home/fabric-samples/multiple-deployment/crypto-config/ordererOrganizations/example.com/orderers/orderer2.example.com/tls/server.key
- ORDERER_GENERAL_CLUSTER_ROOTCAS=[/home/fabric-samples/multiple-deployment/crypto-config/ordererOrganizations/example.com/orderers/orderer2.example.com/tls/ca.crt]
working_dir: /home/fabric-samples/multiple-deployment
command: orderer
volumes:
- ./channel-artifacts/genesis.block:/home/fabric-samples/multiple-deployment/channel-artifacts/orderer.genesis.block
- ./crypto-config/ordererOrganizations/example.com/orderers/orderer1.example.com/msp:/home/fabric-samples/multiple-deployment/crypto-config/ordererOrganizations/example.com/orderers/orderer2.example.com/msp
- ./crypto-config/ordererOrganizations/example.com/orderers/orderer1.example.com/tls/:/home/fabric-samples/multiple-deployment/crypto-config/ordererOrganizations/example.com/orderers/orderer2.example.com/tls
ports:
- 8050:8050
extra_hosts:
- "orderer0.example.com:192.168.1.7"
- "orderer1.example.com:192.168.1.7"
- "orderer2.example.com:192.168.1.7"
peer0.org1.example.com:
container_name: peer0.org1.example.com
image: hyperledger/fabric-peer
environment:
- CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
- CORE_PEER_ID=peer0.org1.example.com
- CORE_PEER_ADDRESS=peer0.org1.example.com:7051
- CORE_PEER_LISTENADDRESS=0.0.0.0:7051
- CORE_PEER_CHAINCODEADDRESS=peer0.org1.example.com:7052
- CORE_PEER_CHAINCODELISTENADDRESS=0.0.0.0:7052
- CORE_PEER_GOSSIP_BOOTSTRAP=peer0.org1.example.com:7051
- CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org1.example.com:7051
- CORE_PEER_LOCALMSPID=Org1MSP
- FABRIC_LOGGING_SPEC=INFO
- CORE_PEER_TLS_ENABLED=true
- CORE_PEER_GOSSIP_USELEADERELECTION=true
- CORE_PEER_GOSSIP_ORGLEADER=false
- CORE_PEER_PROFILE_ENABLED=true
- CORE_PEER_TLS_CERT_FILE=/home/fabric-samples/multiple-deployment/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.crt
- CORE_PEER_TLS_KEY_FILE=/home/fabric-samples/multiple-deployment/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.key
- CORE_PEER_TLS_ROOTCERT_FILE=/home/fabric-samples/multiple-deployment/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
# Allow more time for chaincode container to build on install.
- CORE_CHAINCODE_EXECUTETIMEOUT=300s
working_dir: /home/fabric-samples/multiple-deployment
command: peer node start
volumes:
- /var/run/:/host/var/run/
- ./crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp:/home/fabric-samples/multiple-deployment/msp
- ./crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls:/home/fabric-samples/multiple-deployment/tls
ports:
- 7051:7051
- 7052:7052
- 7053:7053
extra_hosts:
- "orderer0.example.com:192.168.1.7"
- "orderer1.example.com:192.168.1.7"
- "orderer2.example.com:192.168.1.7"
peer0.org2.example.com:
container_name: peer0.org2.example.com
image: hyperledger/fabric-peer
environment:
- CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
- CORE_PEER_ID=peer0.org2.example.com
- CORE_PEER_ADDRESS=peer0.org2.example.com:8051
- CORE_PEER_LISTENADDRESS=0.0.0.0:8051
- CORE_PEER_CHAINCODEADDRESS=peer0.org2.example.com:8052
- CORE_PEER_CHAINCODELISTENADDRESS=0.0.0.0:8052
- CORE_PEER_GOSSIP_BOOTSTRAP=peer0.org2.example.com:8051
- CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org2.example.com:8051
- CORE_PEER_LOCALMSPID=Org2MSP
- FABRIC_LOGGING_SPEC=INFO
- CORE_PEER_TLS_ENABLED=true
- CORE_PEER_GOSSIP_USELEADERELECTION=true
- CORE_PEER_GOSSIP_ORGLEADER=false
- CORE_PEER_PROFILE_ENABLED=true
- CORE_PEER_TLS_CERT_FILE=/home/fabric-samples/multiple-deployment/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/server.crt
- CORE_PEER_TLS_KEY_FILE=/home/fabric-samples/multiple-deployment/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/server.key
- CORE_PEER_TLS_ROOTCERT_FILE=/home/fabric-samples/multiple-deployment/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt
# Allow more time for chaincode container to build on install.
- CORE_CHAINCODE_EXECUTETIMEOUT=300s
working_dir: /home/fabric-samples/multiple-deployment
command: peer node start
volumes:
- /var/run/:/host/var/run/
- ./crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp:/etc/hyperledger/fabric/msp
- ./crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls:/etc/hyperledger/fabric/tls
ports:
- 8051:8051
- 8052:8052
- 8053:8053
extra_hosts:
- "orderer0.example.com:192.168.1.7"
- "orderer1.example.com:192.168.1.7"
- "orderer2.example.com:192.168.1.7"
cli1:
container_name: cli1
image: hyperledger/fabric-tools
tty: true
stdin_open: true
environment:
- GOPATH=/home/fabric-samples
- CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
#- FABRIC_LOGGING_SPEC=DEBUG
- FABRIC_LOGGING_SPEC=INFO
- CORE_PEER_ID=cli1
- CORE_PEER_ADDRESS=peer0.org1.example.com:7051
- CORE_PEER_LOCALMSPID=Org1MSP
- CORE_PEER_TLS_ENABLED=true
- CORE_PEER_TLS_CERT_FILE=/home/fabric-samples/multiple-deployment/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.crt
- CORE_PEER_TLS_KEY_FILE=/home/fabric-samples/multiple-deployment/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.key
- CORE_PEER_TLS_ROOTCERT_FILE=/home/fabric-samples/multiple-deployment/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
- CORE_PEER_MSPCONFIGPATH=/home/fabric-samples/multiple-deployment/crypto-config/peerOrganizations/org1.example.com/users/[email protected]/msp
working_dir: /home/fabric-samples/multiple-deployment
command: /bin/bash
volumes:
- /var/run/:/host/var/run/
- ./chaincode/go/:/home/fabric-samples/multiple-deployment/chaincode/go
- ./crypto-config:/home/fabric-samples/multiple-deployment/crypto-config/
- ./channel-artifacts:/home/fabric-samples/multiple-deployment/channel-artifacts
extra_hosts:
- "orderer0.example.com:192.168.1.7"
- "orderer1.example.com:192.168.1.7"
- "orderer2.example.com:192.168.1.7"
- "peer0.org1.example.com:192.168.1.8"
- "peer0.org2.example.com:192.168.1.8"
- "peer0.org3.example.com:192.168.1.8"
- "peer0.org4.example.com:192.168.1.8"
- "peer0.org5.example.com:192.168.1.8"
- "peer0.org6.example.com:192.168.1.57"
- "peer0.org7.example.com:192.168.1.58"
- "peer0.org8.example.com:192.168.1.8"
cli2:
container_name: cli2
image: hyperledger/fabric-tools
tty: true
stdin_open: true
environment:
- GOPATH=/opt/gopath
- CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
#- FABRIC_LOGGING_SPEC=DEBUG
- FABRIC_LOGGING_SPEC=INFO
- CORE_PEER_ID=cli2
- CORE_PEER_ADDRESS=peer0.org6.example.com:8051 ##
- CORE_PEER_LOCALMSPID=Org6MSP
- CORE_PEER_TLS_ENABLED=true
- CORE_PEER_TLS_CERT_FILE=/home/fabric-samples/multiple-deployment/crypto-config/peerOrganizations/org6.example.com/peers/peer0.org6.example.com/tls/server.crt
- CORE_PEER_TLS_KEY_FILE=/home/fabric-samples/multiple-deployment/crypto-config/peerOrganizations/org6.example.com/peers/peer0.org6.example.com/tls/server.key
- CORE_PEER_TLS_ROOTCERT_FILE=/home/fabric-samples/multiple-deployment/crypto-config/peerOrganizations/org6.example.com/peers/peer0.org6.example.com/tls/ca.crt
- CORE_PEER_MSPCONFIGPATH=/home/fabric-samples/multiple-deployment/crypto-config/peerOrganizations/org6.example.com/users/[email protected]/msp
working_dir: /home/fabric-samples/multiple-deployment
command: /bin/bash
volumes:
- /var/run/:/host/var/run/
- ./chaincode/go/:/home/fabric-samples/multiple-deployment/chaincode/go
- ./crypto-config:/home/fabric-samples/multiple-deployment/crypto-config
- ./channel-artifacts:/home/fabric-samples/multiple-deployment/channel-artifacts
extra_hosts:
- "orderer0.example.com:192.168.1.7"
- "orderer1.example.com:192.168.1.7"
- "orderer2.example.com:192.168.1.7"
- "peer0.org1.example.com:192.168.1.8"
- "peer0.org2.example.com:192.168.1.8"
- "peer0.org3.example.com:192.168.1.8"
- "peer0.org4.example.com:192.168.1.8"
- "peer0.org5.example.com:192.168.1.8"
- "peer0.org6.example.com:192.168.1.57"
- "peer0.org7.example.com:192.168.1.58"
- "peer0.org8.example.com:192.168.1.8"
cli3:
container_name: cli3
image: hyperledger/fabric-tools
tty: true
stdin_open: true
environment:
- GOPATH=/home/fabric-samples
- CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
#- FABRIC_LOGGING_SPEC=DEBUG
- FABRIC_LOGGING_SPEC=INFO
- CORE_PEER_ID=cli3
- CORE_PEER_ADDRESS=peer0.org7.example.com:7051
- CORE_PEER_LOCALMSPID=Org7MSP
- CORE_PEER_TLS_ENABLED=true
- CORE_PEER_TLS_CERT_FILE=/home/fabric-samples/multiple-deployment/crypto-config/peerOrganizations/org7.example.com/peers/peer0.org7.example.com/tls/server.crt
- CORE_PEER_TLS_KEY_FILE=/home/fabric-samples/multiple-deployment/crypto-config/peerOrganizations/org7.example.com/peers/peer0.org7.example.com/tls/server.key
- CORE_PEER_TLS_ROOTCERT_FILE=/home/fabric-samples/multiple-deployment/crypto-config/peerOrganizations/org7.example.com/peers/peer0.org7.example.com/tls/ca.crt
- CORE_PEER_MSPCONFIGPATH=/home/fabric-samples/multiple-deployment/crypto-config/peerOrganizations/org7.example.com/users/[email protected]/msp
working_dir: /home/fabric-samples/multiple-deployment
command: /bin/bash
volumes:
- /var/run/:/host/var/run/
- ./chaincode/go/:/home/fabric-samples/multiple-deployment/chaincode/go
- ./crypto-config:/home/fabric-samples/multiple-deployment/crypto-config/
- ./channel-artifacts:/home/fabric-samples/multiple-deployment/channel-artifacts
extra_hosts:
- "orderer0.example.com:192.168.1.7"
- "orderer1.example.com:192.168.1.7"
- "orderer2.example.com:192.168.1.7"
- "peer0.org1.example.com:192.168.1.8"
- "peer0.org2.example.com:192.168.1.8"
- "peer0.org3.example.com:192.168.1.8"
- "peer0.org4.example.com:192.168.1.8"
- "peer0.org5.example.com:192.168.1.8"
- "peer0.org6.example.com:192.168.1.57"
- "peer0.org7.example.com:192.168.1.58"
- "peer0.org8.example.com:192.168.1.8"