Add missing files
parent
05b6b6382c
commit
c20d68b183
|
@ -0,0 +1,97 @@
|
||||||
|
# This is the development compose file to config env and command
|
||||||
|
# Notice that chaincode is executed inside docker in default net mode
|
||||||
|
# https://github.com/yeasy/docker-compose-files
|
||||||
|
|
||||||
|
# Depends on the yeasy/hyperledger-fabric image.
|
||||||
|
|
||||||
|
version: '2'
|
||||||
|
|
||||||
|
services:
|
||||||
|
orderer.example.com: # There can be multiple orderers
|
||||||
|
extends:
|
||||||
|
file: base.yaml
|
||||||
|
service: orderer-base
|
||||||
|
image: yeasy/hyperledger-fabric:1.0.3
|
||||||
|
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:
|
||||||
|
- $GOPATH/src/github.com/hyperledger/fabric:/go/src/github.com/hyperledger/fabric
|
||||||
|
# for solo case
|
||||||
|
#- ./solo/channel-artifacts/orderer.genesis.block:/var/hyperledger/orderer/orderer.genesis.block
|
||||||
|
#- ./solo/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp:/var/hyperledger/orderer/msp
|
||||||
|
#- ./solo/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/:/var/hyperledger/orderer/tls
|
||||||
|
# for kafka case
|
||||||
|
- ./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: bash -c 'bash /tmp/orderer_build.sh; orderer start' # use this if to debug orderer
|
||||||
|
command: bash -c 'orderer start' # use this if to debug orderer
|
||||||
|
|
||||||
|
peer0.org1.example.com:
|
||||||
|
extends:
|
||||||
|
file: base.yaml
|
||||||
|
service: peer-base
|
||||||
|
image: yeasy/hyperledger-fabric:latest
|
||||||
|
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:
|
||||||
|
- $GOPATH/src/github.com/hyperledger/fabric:/go/src/github.com/hyperledger/fabric
|
||||||
|
# e2e mode configuration
|
||||||
|
#- ./solo/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp:/etc/hyperledger/fabric/msp
|
||||||
|
#- ./solo/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls:/etc/hyperledger/fabric/tls
|
||||||
|
# kafka mode configuration
|
||||||
|
- ./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
|
||||||
|
#command: bash -c 'bash /tmp/peer_build.sh; peer node start'
|
||||||
|
command: bash -c 'peer node start'
|
||||||
|
#command: bash -c 'peer node start --peer-chaincodedev=true' # DEV mode
|
||||||
|
|
||||||
|
cli:
|
||||||
|
extends:
|
||||||
|
file: base.yaml
|
||||||
|
service: cli-base
|
||||||
|
image: yeasy/hyperledger-fabric:1.0.3
|
||||||
|
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
|
||||||
|
- CORE_PEER_TLS_CERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.crt
|
||||||
|
- CORE_PEER_TLS_KEY_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.key
|
||||||
|
- CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
|
||||||
|
- CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
|
||||||
|
volumes:
|
||||||
|
- $GOPATH/src/github.com/hyperledger/fabric:/opt/gopath/src/github.com/hyperledger/fabric
|
||||||
|
#- /tmp/:/tmp/
|
||||||
|
- ./scripts:/tmp/scripts
|
||||||
|
# e2e mode configuration
|
||||||
|
#- ./solo/channel-artifacts:/tmp/channel-artifacts
|
||||||
|
#- ./solo/configtx.yaml:/etc/hyperledger/fabric/configtx.yaml
|
||||||
|
#- ./solo/crypto-config.yaml:/etc/hyperledger/fabric/crypto-config.yaml
|
||||||
|
#- ./solo/crypto-config:/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto
|
||||||
|
#- ./solo/examples:/opt/gopath/src/github.com/hyperledger/fabric/examples
|
||||||
|
# kafka mode configuration
|
||||||
|
- ./kafka/channel-artifacts:/tmp/channel-artifacts
|
||||||
|
- ./kafka/configtx.yaml:/etc/hyperledger/fabric/configtx.yaml
|
||||||
|
- ./kafka/crypto-config.yaml:/etc/hyperledger/fabric/crypto-config.yaml
|
||||||
|
- ./kafka/crypto-config:/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto
|
||||||
|
- ./kafka/examples:/opt/gopath/src/github.com/hyperledger/fabric/examples
|
|
@ -0,0 +1,256 @@
|
||||||
|
# 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
|
||||||
|
- CORE_PEER_TLS_CERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.crt
|
||||||
|
- CORE_PEER_TLS_KEY_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.key
|
||||||
|
- CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
|
||||||
|
- CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
|
||||||
|
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
|
||||||
|
- ./kafka/crypto-config:/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto
|
||||||
|
- ./kafka/examples:/opt/gopath/src/github.com/hyperledger/fabric/examples
|
||||||
|
|
||||||
|
## 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
|
|
@ -0,0 +1,105 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# This script will build and start and test chaincode in DEV mode
|
||||||
|
|
||||||
|
if [ -f ./func.sh ]; then
|
||||||
|
source ./func.sh
|
||||||
|
elif [ -f scripts/func.sh ]; then
|
||||||
|
source scripts/func.sh
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo " ============================================== "
|
||||||
|
echo " ==========initialize businesschannel========== "
|
||||||
|
echo " ============================================== "
|
||||||
|
echo
|
||||||
|
|
||||||
|
echo_b "Channel name : "$CHANNEL_NAME
|
||||||
|
|
||||||
|
## Create channel
|
||||||
|
echo_b "Creating channel..."
|
||||||
|
channelCreate
|
||||||
|
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
## Join all the peers to the channel
|
||||||
|
echo_b "Having peer0 join the channel..."
|
||||||
|
channelJoin 0
|
||||||
|
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
## Set the anchor peers for each org in the channel
|
||||||
|
#echo_b "Updating anchor peers for peer0/org1... no use for only single channel"
|
||||||
|
#updateAnchorPeers 0
|
||||||
|
|
||||||
|
# We suppose the binary is there, otherwise, run `go build` under the chaincode path
|
||||||
|
chaincodeStartDev 0 1.0
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
## Install chaincode on all peers
|
||||||
|
echo_b "Installing chaincode on peer0..."
|
||||||
|
chaincodeInstall 0 1.0
|
||||||
|
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
# Instantiate chaincode on all peers
|
||||||
|
# Instantiate can only be executed once on any node
|
||||||
|
echo_b "Instantiating chaincode on the channel..."
|
||||||
|
chaincodeInstantiate 0
|
||||||
|
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo_g "===================== All GOOD, initialization completed ===================== "
|
||||||
|
echo
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo " _____ _ _ ____ "
|
||||||
|
echo "| ____| | \ | | | _ \ "
|
||||||
|
echo "| _| | \| | | | | |"
|
||||||
|
echo "| |___ | |\ | | |_| |"
|
||||||
|
echo "|_____| |_| \_| |____/ "
|
||||||
|
echo
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
|
||||||
|
|
||||||
|
echo "Starting chaincode in dev mode..."
|
||||||
|
cd $GOPATH/src/github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02
|
||||||
|
go build
|
||||||
|
CORE_CHAINCODE_LOGLEVEL=debug \
|
||||||
|
CORE_PEER_ADDRESS=peer0.org1.example.com:7052 \
|
||||||
|
CORE_CHAINCODE_ID_NAME=mycc:1.0 \
|
||||||
|
./chaincode_example02 &
|
||||||
|
|
||||||
|
echo "Install chaincode"
|
||||||
|
CORE_PEER_ADDRESS=peer0.org1.example.com:7051 \
|
||||||
|
peer chaincode install \
|
||||||
|
-n mycc \
|
||||||
|
-v 1.0 \
|
||||||
|
-p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02
|
||||||
|
|
||||||
|
echo "Instantiate chaincode"
|
||||||
|
CORE_PEER_ADDRESS=peer0.org1.example.com:7051 \
|
||||||
|
peer chaincode instantiate \
|
||||||
|
-n mycc \
|
||||||
|
-v 1.0 \
|
||||||
|
-c '{"Args":["init","a","100","b","200"]}' \
|
||||||
|
-o orderer.example.com:7050 \
|
||||||
|
-C businesschannel
|
||||||
|
|
||||||
|
echo "Invoke chaincode..."
|
||||||
|
CORE_PEER_ADDRESS=peer0.org1.example.com:7051 \
|
||||||
|
peer chaincode invoke \
|
||||||
|
-n mycc \
|
||||||
|
-c '{"Args":["invoke","a","b","10"]}' \
|
||||||
|
-o orderer.example.com:7050 \
|
||||||
|
-C businesschannel
|
||||||
|
|
||||||
|
echo "Query chaincode..."
|
||||||
|
CORE_PEER_ADDRESS=peer0.org1.example.com:7051 \
|
||||||
|
peer chaincode query \
|
||||||
|
-n mycc \
|
||||||
|
-c '{"Args":["query","a"]}' \
|
||||||
|
-o orderer.example.com:7050 \
|
||||||
|
-C businesschannel
|
|
@ -0,0 +1,28 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# This script will fetch blocks for testing.
|
||||||
|
|
||||||
|
# Importing useful functions for cc testing
|
||||||
|
if [ -f ./func.sh ]; then
|
||||||
|
source ./func.sh
|
||||||
|
elif [ -f scripts/func.sh ]; then
|
||||||
|
source scripts/func.sh
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo_b "Channel name: $CHANNEL_NAME"
|
||||||
|
|
||||||
|
echo_b "====================Fetching blocks================================"
|
||||||
|
|
||||||
|
echo_b "Fetch block 0"
|
||||||
|
channelFetch 0 0
|
||||||
|
|
||||||
|
echo_b "Fetch block 1"
|
||||||
|
channelFetch 0 1
|
||||||
|
|
||||||
|
echo_b "Fetch block 2"
|
||||||
|
channelFetch 0 2
|
||||||
|
|
||||||
|
echo_b "Fetch block 3"
|
||||||
|
channelFetch 0 3
|
||||||
|
|
||||||
|
echo_g "Block fetching done!"
|
Loading…
Reference in New Issue