2017-11-02 10:19:05 +08:00
|
|
|
# All elements in this file should depend on the base.yaml
|
|
|
|
# Provided a Kafka enabled fabric network with:
|
|
|
|
|
|
|
|
# ca.org1.example.com
|
|
|
|
# ca.org2.example.com
|
|
|
|
# orderer.example.com
|
|
|
|
# peer0.org1.example.com
|
|
|
|
# peer1.org1.example.com
|
|
|
|
# peer0.org2.example.com
|
|
|
|
# peer1.org2.example.com
|
|
|
|
# 3 zookeeper nodes
|
|
|
|
# 4 kafka nodes
|
|
|
|
# cli
|
|
|
|
|
|
|
|
version: '2' # v3 does not support 'extends' yet
|
|
|
|
|
|
|
|
services:
|
|
|
|
ca.org1.example.com:
|
|
|
|
extends:
|
|
|
|
file: base.yaml
|
|
|
|
service: ca-base
|
|
|
|
container_name: ca.org1.example.com
|
|
|
|
hostname: ca.org1.example.com
|
|
|
|
environment:
|
|
|
|
- FABRIC_CA_SERVER_CA_NAME=ca-org1
|
|
|
|
- FABRIC_CA_SERVER_TLS_CERTFILE=/etc/hyperledger/fabric-ca-server-config/ca.org1.example.com-cert.pem
|
|
|
|
- FABRIC_CA_SERVER_TLS_KEYFILE=/etc/hyperledger/fabric-ca-server-config/c843d3f021118963ce5d340e95286e8869bb7bd051454cd4166aa2887a2ad451_sk
|
|
|
|
ports:
|
|
|
|
- "7054:7054"
|
|
|
|
volumes:
|
|
|
|
- ./kafka/crypto-config/peerOrganizations/org1.example.com/ca/:/etc/hyperledger/fabric-ca-server-config
|
|
|
|
command: sh -c 'fabric-ca-server start --ca.certfile /etc/hyperledger/fabric-ca-server-config/ca.org1.example.com-cert.pem --ca.keyfile /etc/hyperledger/fabric-ca-server-config/c843d3f021118963ce5d340e95286e8869bb7bd051454cd4166aa2887a2ad451_sk -b admin:adminpw -d'
|
|
|
|
|
|
|
|
ca.org2.example.com:
|
|
|
|
extends:
|
|
|
|
file: base.yaml
|
|
|
|
service: ca-base
|
|
|
|
container_name: ca.org2.example.com
|
|
|
|
hostname: ca.org2.example.com
|
|
|
|
environment:
|
|
|
|
- FABRIC_CA_SERVER_CA_NAME=ca-org2
|
|
|
|
- FABRIC_CA_SERVER_TLS_CERTFILE=/etc/hyperledger/fabric-ca-server-config/ca.org2.example.com-cert.pem
|
|
|
|
- FABRIC_CA_SERVER_TLS_KEYFILE=/etc/hyperledger/fabric-ca-server-config/1ee551a8753171c0377366e96a1d7ec01afddb868c9483cc501b6f8ac7ae752f_sk
|
|
|
|
ports:
|
|
|
|
- "8054:7054"
|
|
|
|
volumes:
|
|
|
|
- ./kafka/crypto-config/peerOrganizations/org2.example.com/ca/:/etc/hyperledger/fabric-ca-server-config
|
|
|
|
command: sh -c 'fabric-ca-server start --ca.certfile /etc/hyperledger/fabric-ca-server-config/ca.org2.example.com-cert.pem --ca.keyfile /etc/hyperledger/fabric-ca-server-config/1ee551a8753171c0377366e96a1d7ec01afddb868c9483cc501b6f8ac7ae752f_sk -b admin:adminpw -d'
|
|
|
|
|
|
|
|
orderer.example.com: # There can be multiple orderers
|
|
|
|
extends:
|
|
|
|
file: base.yaml
|
|
|
|
service: orderer-base
|
|
|
|
container_name: orderer.example.com
|
|
|
|
hostname: orderer.example.com
|
|
|
|
ports:
|
|
|
|
- "7050:7050"
|
|
|
|
environment:
|
|
|
|
# Kafka related configurations
|
|
|
|
- ORDERER_KAFKA_RETRY_SHORTINTERVAL=1s
|
|
|
|
- ORDERER_KAFKA_RETRY_SHORTTOTAL=30s
|
|
|
|
- ORDERER_KAFKA_VERBOSE=true
|
|
|
|
volumes:
|
|
|
|
- ./kafka/channel-artifacts/orderer.genesis.block:/var/hyperledger/orderer/orderer.genesis.block
|
|
|
|
- ./kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp:/var/hyperledger/orderer/msp
|
|
|
|
- ./kafka/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/:/var/hyperledger/orderer/tls
|
|
|
|
command: orderer start
|
|
|
|
|
|
|
|
cli:
|
|
|
|
extends:
|
|
|
|
file: base.yaml
|
|
|
|
service: cli-base
|
|
|
|
container_name: fabric-cli
|
|
|
|
hostname: fabric-cli
|
|
|
|
tty: true
|
|
|
|
environment:
|
|
|
|
- CORE_PEER_ID=fabric-cli
|
|
|
|
- CORE_PEER_ADDRESS=peer0.org1.example.com:7051 # default to operate on peer0.org1
|
|
|
|
- CORE_PEER_LOCALMSPID=Org1MSP
|
2017-12-19 15:09:40 +08:00
|
|
|
- CORE_PEER_TLS_CERT_FILE=/etc/hyperledger/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.crt
|
|
|
|
- CORE_PEER_TLS_KEY_FILE=/etc/hyperledger/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.key
|
|
|
|
- CORE_PEER_TLS_ROOTCERT_FILE=/etc/hyperledger/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
|
|
|
|
- CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/fabric/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
|
2017-11-02 10:19:05 +08:00
|
|
|
volumes:
|
|
|
|
- ./scripts:/tmp/scripts
|
|
|
|
- ./kafka/channel-artifacts:/tmp/channel-artifacts
|
|
|
|
- ./kafka/configtx.yaml:/etc/hyperledger/fabric/configtx.yaml
|
|
|
|
- ./kafka/crypto-config.yaml:/etc/hyperledger/fabric/crypto-config.yaml
|
2017-12-19 15:09:40 +08:00
|
|
|
- ./kafka/crypto-config:/etc/hyperledger/fabric/crypto-config
|
2017-11-29 20:20:01 +08:00
|
|
|
- ./kafka/examples:/opt/gopath/src/examples
|
2017-11-02 10:19:05 +08:00
|
|
|
|
|
|
|
## following are peer nodes ##
|
|
|
|
|
|
|
|
peer0.org1.example.com:
|
|
|
|
extends:
|
|
|
|
file: base.yaml
|
|
|
|
service: peer-base
|
|
|
|
container_name: peer0.org1.example.com
|
|
|
|
hostname: peer0.org1.example.com
|
|
|
|
environment:
|
|
|
|
- CORE_PEER_ID=peer0.org1.example.com
|
|
|
|
- CORE_PEER_ADDRESS=peer0.org1.example.com:7051
|
|
|
|
- CORE_PEER_CHAINCODELISTENADDRESS=peer0.org1.example.com:7052
|
|
|
|
- CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org1.example.com:7051
|
|
|
|
- CORE_PEER_LOCALMSPID=Org1MSP
|
|
|
|
volumes:
|
|
|
|
- ./kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp:/etc/hyperledger/fabric/msp
|
|
|
|
- ./kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls:/etc/hyperledger/fabric/tls
|
|
|
|
ports:
|
|
|
|
- 7051:7051
|
|
|
|
- 7052:7052
|
|
|
|
- 7053:7053
|
|
|
|
|
|
|
|
peer1.org1.example.com:
|
|
|
|
extends:
|
|
|
|
file: base.yaml
|
|
|
|
service: peer-base
|
|
|
|
container_name: peer1.org1.example.com
|
|
|
|
hostname: peer1.org1.example.com
|
|
|
|
environment:
|
|
|
|
- CORE_PEER_ID=peer1.org1.example.com
|
|
|
|
- CORE_PEER_ADDRESS=peer1.org1.example.com:7051
|
|
|
|
- CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer1.org1.example.com:7051
|
|
|
|
- CORE_PEER_CHAINCODELISTENADDRESS=peer1.org1.example.com:7052
|
|
|
|
- CORE_PEER_GOSSIP_BOOTSTRAP=peer0.org1.example.com:7051
|
|
|
|
- CORE_PEER_LOCALMSPID=Org1MSP
|
|
|
|
volumes:
|
|
|
|
- ./kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp:/etc/hyperledger/fabric/msp
|
|
|
|
- ./kafka/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls:/etc/hyperledger/fabric/tls
|
|
|
|
ports:
|
|
|
|
- 8051:7051
|
|
|
|
- 8052:7052
|
|
|
|
- 8053:7053
|
|
|
|
|
|
|
|
peer0.org2.example.com:
|
|
|
|
extends:
|
|
|
|
file: base.yaml
|
|
|
|
service: peer-base
|
|
|
|
container_name: peer0.org2.example.com
|
|
|
|
hostname: peer0.org2.example.com
|
|
|
|
environment:
|
|
|
|
- CORE_PEER_ID=peer0.org2.example.com
|
|
|
|
- CORE_PEER_ADDRESS=peer0.org2.example.com:7051
|
|
|
|
- CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org2.example.com:7051
|
|
|
|
- CORE_PEER_CHAINCODELISTENADDRESS=peer0.org2.example.com:7052
|
|
|
|
- CORE_PEER_GOSSIP_BOOTSTRAP=peer0.org2.example.com:7051
|
|
|
|
- CORE_PEER_LOCALMSPID=Org2MSP
|
|
|
|
volumes:
|
|
|
|
- ./kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp:/etc/hyperledger/fabric/msp
|
|
|
|
- ./kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls:/etc/hyperledger/fabric/tls
|
|
|
|
ports:
|
|
|
|
- 9051:7051
|
|
|
|
- 9052:7052
|
|
|
|
- 9053:7053
|
|
|
|
|
|
|
|
peer1.org2.example.com:
|
|
|
|
extends:
|
|
|
|
file: base.yaml
|
|
|
|
service: peer-base
|
|
|
|
container_name: peer1.org2.example.com
|
|
|
|
hostname: peer1.org2.example.com
|
|
|
|
environment:
|
|
|
|
- CORE_PEER_ID=peer1.org2.example.com
|
|
|
|
- CORE_PEER_ADDRESS=peer1.org2.example.com:7051
|
|
|
|
- CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer1.org2.example.com:7051
|
|
|
|
- CORE_PEER_CHAINCODELISTENADDRESS=peer1.org2.example.com:7052
|
|
|
|
- CORE_PEER_GOSSIP_BOOTSTRAP=peer1.org2.example.com:7051
|
|
|
|
- CORE_PEER_LOCALMSPID=Org2MSP
|
|
|
|
volumes:
|
|
|
|
- ./kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp:/etc/hyperledger/fabric/msp
|
|
|
|
- ./kafka/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls:/etc/hyperledger/fabric/tls
|
|
|
|
ports:
|
|
|
|
- 10051:7051
|
|
|
|
- 10052:7052
|
|
|
|
- 10053:7053
|
|
|
|
|
|
|
|
|
|
|
|
# ZooKeeper services, at least 3 nodes
|
|
|
|
zookeeper0:
|
|
|
|
extends:
|
|
|
|
file: base.yaml
|
|
|
|
service: zookeeper-base
|
|
|
|
container_name: zookeeper0
|
|
|
|
hostname: zookeeper0
|
|
|
|
environment:
|
|
|
|
- ZOO_MY_ID=1
|
|
|
|
- ZOO_SERVERS=server.1=zookeeper0:2888:3888 server.2=zookeeper1:2888:3888 server.3=zookeeper2:2888:3888
|
|
|
|
|
|
|
|
zookeeper1:
|
|
|
|
extends:
|
|
|
|
file: base.yaml
|
|
|
|
service: zookeeper-base
|
|
|
|
container_name: zookeeper1
|
|
|
|
hostname: zookeeper1
|
|
|
|
environment:
|
|
|
|
- ZOO_MY_ID=2
|
|
|
|
- ZOO_SERVERS=server.1=zookeeper0:2888:3888 server.2=zookeeper1:2888:3888 server.3=zookeeper2:2888:3888
|
|
|
|
|
|
|
|
zookeeper2:
|
|
|
|
extends:
|
|
|
|
file: base.yaml
|
|
|
|
service: zookeeper-base
|
|
|
|
container_name: zookeeper2
|
|
|
|
hostname: zookeeper2
|
|
|
|
environment:
|
|
|
|
- ZOO_MY_ID=3
|
|
|
|
- ZOO_SERVERS=server.1=zookeeper0:2888:3888 server.2=zookeeper1:2888:3888 server.3=zookeeper2:2888:3888
|
|
|
|
|
|
|
|
# Kafka services, at least 4 node to tolerant work with 1 node failure
|
|
|
|
kafka0:
|
|
|
|
extends:
|
|
|
|
file: base.yaml
|
|
|
|
service: kafka-base
|
|
|
|
container_name: kafka0
|
|
|
|
hostname: kafka0
|
|
|
|
environment:
|
|
|
|
- KAFKA_BROKER_ID=0
|
|
|
|
- KAFKA_MIN_INSYNC_REPLICAS=2
|
|
|
|
- KAFKA_DEFAULT_REPLICATION_FACTOR=3
|
|
|
|
- KAFKA_ZOOKEEPER_CONNECT=zookeeper0:2181,zookeeper1:2181,zookeeper2:2181
|
|
|
|
|
|
|
|
kafka1:
|
|
|
|
extends:
|
|
|
|
file: base.yaml
|
|
|
|
service: kafka-base
|
|
|
|
container_name: kafka1
|
|
|
|
hostname: kafka1
|
|
|
|
environment:
|
|
|
|
- KAFKA_BROKER_ID=1
|
|
|
|
- KAFKA_DEFAULT_REPLICATION_FACTOR=3
|
|
|
|
- KAFKA_MIN_INSYNC_REPLICAS=2
|
|
|
|
- KAFKA_ZOOKEEPER_CONNECT=zookeeper0:2181,zookeeper1:2181,zookeeper2:2181
|
|
|
|
|
|
|
|
kafka2:
|
|
|
|
extends:
|
|
|
|
file: base.yaml
|
|
|
|
service: kafka-base
|
|
|
|
container_name: kafka2
|
|
|
|
hostname: kafka2
|
|
|
|
environment:
|
|
|
|
- KAFKA_BROKER_ID=2
|
|
|
|
- KAFKA_DEFAULT_REPLICATION_FACTOR=3
|
|
|
|
- KAFKA_MIN_INSYNC_REPLICAS=2
|
|
|
|
- KAFKA_ZOOKEEPER_CONNECT=zookeeper0:2181,zookeeper1:2181,zookeeper2:2181
|
|
|
|
|
|
|
|
kafka3:
|
|
|
|
extends:
|
|
|
|
file: base.yaml
|
|
|
|
service: kafka-base
|
|
|
|
container_name: kafka3
|
|
|
|
hostname: kafka3
|
|
|
|
environment:
|
|
|
|
- KAFKA_BROKER_ID=3
|
|
|
|
- KAFKA_DEFAULT_REPLICATION_FACTOR=3
|
|
|
|
- KAFKA_MIN_INSYNC_REPLICAS=2
|
|
|
|
- KAFKA_ZOOKEEPER_CONNECT=zookeeper0:2181,zookeeper1:2181,zookeeper2:2181
|