老久之前研究Fabric记录的部署文档,有需要的可以做个参考!
这里编辑器不太好用,看起来有些乱,有要求的可以在这https://download.csdn.net/download/vohyeah/10546651下载html文件
------------------------------------------------------------------------------------------------------------------1.Prerequisites
[root@cloud0 ~]# cd /data/blockchain
[root@cloud0 blockchain]# curl --version
curl 7.29.0 (x86_64-redhat-linux-gnu) libcurl/7.29.0 NSS/3.28.4 zlib/1.2.7 libidn/1.28 libssh2/1.4.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smtp smtps telnet tftp
Features: AsynchDNS GSS-Negotiate IDN IPv6 Largefile NTLM NTLM_WB SSL libz unix-sockets
[root@cloud0 ~]# docker --version
Docker version 18.01.0-ce, build 03596f5
[root@cloud0 blockchain]# sudo curl -L https://github.com/docker/compose/releases/download/1.19.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
[root@cloud0 blockchain]# sudo chmod +x /usr/local/bin/docker-compose
[root@cloud0 blockchain]# docker-compose --version
docker-compose version 1.19.0, build 9e633ef
[root@cloud0 softs]# mkdir -p /data/softs && cd /data/softs && wget https://dl.google.com/go/go1.10.linux-amd64.tar.gz && tar -zvxf go1.10.linux-amd64.tar.gz && mv go /data/env/go
[root@cloud0 go]# echo -e 'export GOPATH=/data/env/go\nexport PATH=$PATH:$GOPATH/bin\n\n' >> /etc/profile
[root@cloud0 go]# source /etc/profile
[root@cloud0 go]# go version
go version go1.10 linux/amd64
[root@cloud0 ~]# cd /data/softs && curl --location https://rpm.nodesource.com/setup_8.x | bash - && yum install -y nodejs && npm install -g forever
[root@cloud0 ~]# npm version
{ npm: '5.6.0',
ares: '1.10.1-DEV',
cldr: '31.0.1',
http_parser: '2.7.0',
icu: '59.1',
modules: '57',
nghttp2: '1.25.0',
node: '8.9.4',
openssl: '1.0.2n',
tz: '2017b',
unicode: '9.0',
uv: '1.15.0',
v8: '6.1.534.50',
[root@cloud0 ~]# python --version
Python 2.7.5
docker stop $(docker ps -q) && docker rm $(docker ps -aq) #清空容器
------------------------------------------------------------------------------------------------------------------2.check out fabric sample code
[root@cloud0 softs]# cd /data/blockchain/
[root@cloud0 blockchain]# yum install git
[root@cloud0 blockchain]# git clone -b master https://github.com/hyperledger/fabric-samples.git
[root@cloud0 blockchain]# cd fabric-samples
[root@cloud0 fabric-samples]# git checkout v1.1.0-rc1
[root@cloud0 fabric-samples]# ll
total 24
drwxr-xr-x. 5 root root 200 Mar 5 21:33 balance-transfer
drwxr-xr-x. 4 root root 227 Mar 5 21:33 basic-network
drwxr-xr-x. 7 root root 88 Mar 5 21:33 chaincode
drwxr-xr-x. 3 root root 121 Mar 5 21:33 chaincode-docker-devmode
drwxr-xr-x. 2 root root 126 Mar 5 21:33 fabcar
drwxr-xr-x. 3 root root 163 Mar 5 21:33 fabric-ca
drwxr-xr-x. 6 root root 4096 Mar 5 21:33 first-network
drwxr-xr-x. 4 root root 55 Mar 5 21:33 high-throughput
-rw-r--r--. 1 root root 11358 Mar 5 21:33 LICENSE
-rw-r--r--. 1 root root 470 Mar 5 21:33 MAINTAINERS.md
-rw-r--r--. 1 root root 522 Mar 5 21:33 README.md
drwxr-xr-x. 2 root root 48 Mar 5 21:33 scripts
------------------------------------------------------------------------------------------------------------------2.Download Platform-specific Binaries
[root@cloud0 blockchain]# cd /data/blockchain/fabric-samples
[root@cloud0 fabric-samples]# vi bootstrap.sh
#!/bin/bash
#
# Copyright IBM Corp. All Rights Reserved.
#
# SPDX-License-Identifier: Apache-2.0
#
# current version of fabric released
export VERSION=${1:-1.0.4}
# current version of fabric-ca released
export CA_VERSION=${2:-$VERSION}
# current version of thirdparty images (couchdb, kafka and zookeeper) released
export THIRDPARTY_IMAGE_VERSION=0.4.6
export ARCH=$(echo "$(uname -s|tr '[:upper:]' '[:lower:]'|sed 's/mingw64_nt.*/windows/')-$(uname -m | sed 's/x86_64/amd64/g')" | awk '{print tolower($0)}')
#Set MARCH variable i.e ppc64le,s390x,x86_64,i386
MARCH=`uname -m`
dockerFabricPull() {
local FABRIC_TAG=$1
for IMAGES in peer orderer ccenv javaenv tools; do
echo "==> FABRIC IMAGE: $IMAGES"
echo
docker pull hyperledger/fabric-$IMAGES:$FABRIC_TAG
docker tag hyperledger/fabric-$IMAGES:$FABRIC_TAG hyperledger/fabric-$IMAGES
done
}
dockerThirdPartyImagesPull() {
local THIRDPARTY_TAG=$1
for IMAGES in couchdb kafka zookeeper; do
echo "==> THIRDPARTY DOCKER IMAGE: $IMAGES"
echo
docker pull hyperledger/fabric-$IMAGES:$THIRDPARTY_TAG
docker tag hyperledger/fabric-$IMAGES:$THIRDPARTY_TAG hyperledger/fabric-$IMAGES
done
}
dockerCaPull() {
local CA_TAG=$1
echo "==> FABRIC CA IMAGE"
echo
docker pull hyperledger/fabric-ca:$CA_TAG
docker tag hyperledger/fabric-ca:$CA_TAG hyperledger/fabric-ca
}
: ${CA_TAG:="$MARCH-$CA_VERSION"}
: ${FABRIC_TAG:="$MARCH-$VERSION"}
: ${THIRDPARTY_TAG:="$MARCH-$THIRDPARTY_IMAGE_VERSION"}
echo "===> Downloading platform binaries"
tar xzvf hyperledger-fabric-linux-amd64-1.1.0-rc1.tar.gz
echo "===> Pulling fabric Images"
dockerFabricPull ${FABRIC_TAG}
echo "===> Pulling fabric ca Image"
dockerCaPull ${CA_TAG}
echo "===> Pulling thirdparty docker images"
dockerThirdPartyImagesPull ${THIRDPARTY_TAG}
echo
echo "===> List out hyperledger docker images"
#docker images | grep hyperledger*
docker images | grep hyperledger
[root@cloud0 fabric-samples]# chmod +x bootstrap.sh
[root@cloud0 fabric-samples]# ./bootstrap.sh 1.1.0-rc1 #curl -SL https://goo.gl/6wtTN5 | bash -s 1.1.0-rc1
[root@cloud0 fabric-samples]# docker images | grep hyperledger
hyperledger/fabric-ca latest 8a6c8c2e2ebf 3 days ago 283MB
hyperledger/fabric-ca x86_64-1.1.0-rc1 8a6c8c2e2ebf 3 days ago 283MB
hyperledger/fabric-tools latest 006c689ec08e 3 days ago 1.46GB
hyperledger/fabric-tools x86_64-1.1.0-rc1 006c689ec08e 3 days ago 1.46GB
hyperledger/fabric-orderer latest 10afc128d402 3 days ago 180MB
hyperledger/fabric-orderer x86_64-1.1.0-rc1 10afc128d402 3 days ago 180MB
hyperledger/fabric-peer latest 6b44b1d021cb 3 days ago 187MB
hyperledger/fabric-peer x86_64-1.1.0-rc1 6b44b1d021cb 3 days ago 187MB
hyperledger/fabric-javaenv latest ea263125afb1 3 days ago 1.52GB
hyperledger/fabric-javaenv x86_64-1.1.0-rc1 ea263125afb1 3 days ago 1.52GB
hyperledger/fabric-ccenv latest 65c951b9681f 3 days ago 1.39GB
hyperledger/fabric-ccenv x86_64-1.1.0-rc1 65c951b9681f 3 days ago 1.39GB
hyperledger/fabric-zookeeper latest 92cbb952b6f8 2 weeks ago 1.39GB
hyperledger/fabric-zookeeper x86_64-0.4.6 92cbb952b6f8 2 weeks ago 1.39GB
hyperledger/fabric-kafka latest 554c591b86a8 2 weeks ago 1.4GB
hyperledger/fabric-kafka x86_64-0.4.6 554c591b86a8 2 weeks ago 1.4GB
hyperledger/fabric-couchdb latest 7e73c828fc5b 2 weeks ago 1.56GB
hyperledger/fabric-couchdb x86_64-0.4.6 7e73c828fc5b 2 weeks ago 1.56GB
[root@cloud0 fabric-samples]# echo -e 'export PATH=/data/blockchain/fabric-samples/bin:$PATH\n' >> /etc/profile
------------------------------------------------------------------------------------------------------------------3.Run
[root@cloud0 fabric-samples]# cd /data/blockchain/fabric-samples/first-network
[root@cloud0 first-network]# ./byfn.sh -m generate
Generating certs and genesis block for with channel 'mychannel' and CLI timeout of '10' seconds and CLI delay of '3' seconds
Continue? [Y/n] y
proceeding ...
/data/blockchain/fabric-samples/bin/cryptogen
##########################################################
##### Generate certificates using cryptogen tool #########
##########################################################
+ cryptogen generate --config=./crypto-config.yaml
org1.example.com
org2.example.com
+ set +x
/data/blockchain/fabric-samples/bin/configtxgen
##########################################################
######### Generating Orderer Genesis block ##############
##########################################################
+ configtxgen -profile TwoOrgsOrdererGenesis -outputBlock ./channel-artifacts/genesis.block
2018-03-05 23:04:59.697 CST [common/tools/configtxgen] main -> INFO 001 Loading configuration
2018-03-05 23:04:59.708 CST [msp] getMspConfig -> INFO 002 Loading NodeOUs
2018-03-05 23:04:59.709 CST [msp] getMspConfig -> INFO 003 Loading NodeOUs
2018-03-05 23:04:59.709 CST [common/tools/configtxgen] doOutputBlock -> INFO 004 Generating genesis block
2018-03-05 23:04:59.709 CST [common/tools/configtxgen] doOutputBlock -> INFO 005 Writing genesis block
+ set +x
#################################################################
### Generating channel configuration transaction 'channel.tx' ###
#################################################################
+ configtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./channel-artifacts/channel.tx -channelID mychannel
2018-03-05 23:04:59.722 CST [common/tools/configtxgen] main -> INFO 001 Loading configuration
2018-03-05 23:04:59.734 CST [common/tools/configtxgen] doOutputChannelCreateTx -> INFO 002 Generating new channel configtx
2018-03-05 23:04:59.734 CST [msp] getMspConfig -> INFO 003 Loading NodeOUs
2018-03-05 23:04:59.735 CST [msp] getMspConfig -> INFO 004 Loading NodeOUs
2018-03-05 23:04:59.760 CST [common/tools/configtxgen] doOutputChannelCreateTx -> INFO 005 Writing new channel tx
+ set +x
#################################################################
####### Generating anchor peer update for Org1MSP ##########
#################################################################
+ configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org1MSPanchors.tx -channelID mychannel -asOrg Org1MSP
2018-03-05 23:04:59.771 CST [common/tools/configtxgen] main -> INFO 001 Loading configuration
2018-03-05 23:04:59.780 CST [common/tools/configtxgen] doOutputAnchorPeersUpdate -> INFO 002 Generating anchor peer update
2018-03-05 23:04:59.781 CST [common/tools/configtxgen] doOutputAnchorPeersUpdate -> INFO 003 Writing anchor peer update
+ set +x
#################################################################
####### Generating anchor peer update for Org2MSP ##########
#################################################################
+ configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org2MSPanchors.tx -channelID mychannel -asOrg Org2MSP
2018-03-05 23:04:59.792 CST [common/tools/configtxgen] main -> INFO 001 Loading configuration
2018-03-05 23:04:59.799 CST [common/tools/configtxgen] doOutputAnchorPeersUpdate -> INFO 002 Generating anchor peer update
2018-03-05 23:04:59.799 CST [common/tools/configtxgen] doOutputAnchorPeersUpdate -> INFO 003 Writing anchor peer update
+ set +x
[root@cloud0 first-network]# ./byfn.sh -m up
Starting with channel 'mychannel' and CLI timeout of '10' seconds and CLI delay of '3' seconds
Continue? [Y/n] y
proceeding ...
2018-03-05 15:05:52.864 UTC [main] main -> INFO 001 Exiting.....
LOCAL_VERSION=1.1.0-rc1
DOCKER_IMAGE_VERSION=1.1.0-rc1
Creating network "net_byfn" with the default driver
Creating volume "net_peer0.org2.example.com" with default driver
Creating volume "net_peer1.org2.example.com" with default driver
Creating volume "net_peer1.org1.example.com" with default driver
Creating volume "net_peer0.org1.example.com" with default driver
Creating peer0.org2.example.com ... done
Creating cli ... done
Creating peer0.org2.example.com ...
Creating peer1.org1.example.com ...
Creating peer0.org1.example.com ...
Creating orderer.example.com ...
Creating cli ...
____ _____ _ ____ _____
/ ___| |_ _| / \ | _ \ |_ _|
\___ \ | | / _ \ | |_) | | |
___) | | | / ___ \ | _ < | |
|____/ |_| /_/ \_\ |_| \_\ |_|
Build your first network (BYFN) end-to-end test
Channel name : mychannel
Creating channel...
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_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_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.example.com/peers/peer0.org1.example.com/tls/server.crt
CORE_PEER_TLS_ENABLED=true
CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
CORE_PEER_ID=cli
CORE_LOGGING_LEVEL=INFO
CORE_PEER_ADDRESS=peer0.org1.example.com:7051
2018-03-05 15:06:05.672 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
2018-03-05 15:06:05.735 UTC [channelCmd] InitCmdFactory -> INFO 002 Endorser and orderer connections initialized
2018-03-05 15:06:05.939 UTC [main] main -> INFO 003 Exiting.....
===================== Channel "mychannel" is created successfully =====================
Having all peers join the channel...
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_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_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.example.com/peers/peer0.org1.example.com/tls/server.crt
CORE_PEER_TLS_ENABLED=true
CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
CORE_PEER_ID=cli
CORE_LOGGING_LEVEL=INFO
CORE_PEER_ADDRESS=peer0.org1.example.com:7051
+ peer channel join -b mychannel.block
+ set +x
2018-03-05 15:06:06.020 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
2018-03-05 15:06:06.334 UTC [channelCmd] executeJoin -> INFO 002 Successfully submitted proposal to join channel
2018-03-05 15:06:06.334 UTC [main] main -> INFO 003 Exiting.....
===================== peer0.org1 joined on the channel "mychannel" =====================
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_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_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.example.com/peers/peer0.org1.example.com/tls/server.crt
CORE_PEER_TLS_ENABLED=true
CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
CORE_PEER_ID=cli
CORE_LOGGING_LEVEL=INFO
CORE_PEER_ADDRESS=peer1.org1.example.com:7051
+ peer channel join -b mychannel.block
+ set +x
2018-03-05 15:06:09.420 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
2018-03-05 15:06:09.707 UTC [channelCmd] executeJoin -> INFO 002 Successfully submitted proposal to join channel
2018-03-05 15:06:09.708 UTC [main] main -> INFO 003 Exiting.....
===================== peer1.org1 joined on the channel "mychannel" =====================
CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.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_LOCALMSPID=Org2MSP
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.example.com/peers/peer0.org1.example.com/tls/server.crt
CORE_PEER_TLS_ENABLED=true
CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp
CORE_PEER_ID=cli
CORE_LOGGING_LEVEL=INFO
CORE_PEER_ADDRESS=peer0.org2.example.com:7051
+ peer channel join -b mychannel.block
+ set +x
2018-03-05 15:06:12.775 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
2018-03-05 15:06:13.252 UTC [channelCmd] executeJoin -> INFO 002 Successfully submitted proposal to join channel
2018-03-05 15:06:13.252 UTC [main] main -> INFO 003 Exiting.....
===================== peer0.org2 joined on the channel "mychannel" =====================
CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.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_LOCALMSPID=Org2MSP
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.example.com/peers/peer0.org1.example.com/tls/server.crt
CORE_PEER_TLS_ENABLED=true
CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp
CORE_PEER_ID=cli
CORE_LOGGING_LEVEL=INFO
CORE_PEER_ADDRESS=peer1.org2.example.com:7051
+ peer channel join -b mychannel.block
+ set +x
2018-03-05 15:06:16.320 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
2018-03-05 15:06:16.805 UTC [channelCmd] executeJoin -> INFO 002 Successfully submitted proposal to join channel
2018-03-05 15:06:16.805 UTC [main] main -> INFO 003 Exiting.....
===================== peer1.org2 joined on the channel "mychannel" =====================
Updating anchor peers for org1...
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_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_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.example.com/peers/peer0.org1.example.com/tls/server.crt
CORE_PEER_TLS_ENABLED=true
CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
CORE_PEER_ID=cli
CORE_LOGGING_LEVEL=INFO
CORE_PEER_ADDRESS=peer0.org1.example.com:7051
+ peer channel update -o orderer.example.com:7050 -c mychannel -f ./channel-artifacts/Org1MSPanchors.tx --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
+ set +x
2018-03-05 15:06:19.872 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
2018-03-05 15:06:19.888 UTC [channelCmd] update -> INFO 002 Successfully submitted channel update
2018-03-05 15:06:19.888 UTC [main] main -> INFO 003 Exiting.....
===================== Anchor peers for org "Org1MSP" on "mychannel" is updated successfully =====================
Updating anchor peers for org2...
CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.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_LOCALMSPID=Org2MSP
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.example.com/peers/peer0.org1.example.com/tls/server.crt
CORE_PEER_TLS_ENABLED=true
CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp
CORE_PEER_ID=cli
CORE_LOGGING_LEVEL=INFO
CORE_PEER_ADDRESS=peer0.org2.example.com:7051
+ peer channel update -o orderer.example.com:7050 -c mychannel -f ./channel-artifacts/Org2MSPanchors.tx --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
+ set +x
2018-03-05 15:06:22.957 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
2018-03-05 15:06:22.972 UTC [channelCmd] update -> INFO 002 Successfully submitted channel update
2018-03-05 15:06:22.972 UTC [main] main -> INFO 003 Exiting.....
===================== Anchor peers for org "Org2MSP" on "mychannel" is updated successfully =====================
Installing chaincode on peer0.org1...
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_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_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.example.com/peers/peer0.org1.example.com/tls/server.crt
CORE_PEER_TLS_ENABLED=true
CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
CORE_PEER_ID=cli
CORE_LOGGING_LEVEL=INFO
CORE_PEER_ADDRESS=peer0.org1.example.com:7051
+ peer chaincode install -n mycc -v 1.0 -l golang -p github.com/chaincode/chaincode_example02/go/
+ set +x
2018-03-05 15:06:26.041 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 001 Using default escc
2018-03-05 15:06:26.041 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc
2018-03-05 15:06:27.881 UTC [main] main -> INFO 003 Exiting.....
===================== Chaincode is installed on peer0.org1 =====================
Install chaincode on peer0.org2...
CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.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_LOCALMSPID=Org2MSP
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.example.com/peers/peer0.org1.example.com/tls/server.crt
CORE_PEER_TLS_ENABLED=true
CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp
CORE_PEER_ID=cli
CORE_LOGGING_LEVEL=INFO
CORE_PEER_ADDRESS=peer0.org2.example.com:7051
+ peer chaincode install -n mycc -v 1.0 -l golang -p github.com/chaincode/chaincode_example02/go/
+ set +x
2018-03-05 15:06:27.946 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 001 Using default escc
2018-03-05 15:06:27.946 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc
2018-03-05 15:06:28.099 UTC [main] main -> INFO 003 Exiting.....
===================== Chaincode is installed on peer0.org2 =====================
Instantiating chaincode on peer0.org2...
CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.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_LOCALMSPID=Org2MSP
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.example.com/peers/peer0.org1.example.com/tls/server.crt
CORE_PEER_TLS_ENABLED=true
CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp
CORE_PEER_ID=cli
CORE_LOGGING_LEVEL=INFO
CORE_PEER_ADDRESS=peer0.org2.example.com:7051
+ peer chaincode instantiate -o orderer.example.com:7050 --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n mycc -l golang -v 1.0 -c '{"Args":["init","a","100","b","200"]}' -P 'OR ('\''Org1MSP.peer'\'','\''Org2MSP.peer'\'')'
+ set +x
2018-03-05 15:06:28.141 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 001 Using default escc
2018-03-05 15:06:28.141 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc
2018-03-05 15:06:57.826 UTC [main] main -> INFO 003 Exiting.....
===================== Chaincode Instantiation on peer0.org2 on channel 'mychannel' is successful =====================
Querying chaincode on peer0.org1...
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_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_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.example.com/peers/peer0.org1.example.com/tls/server.crt
CORE_PEER_TLS_ENABLED=true
CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
CORE_PEER_ID=cli
CORE_LOGGING_LEVEL=INFO
CORE_PEER_ADDRESS=peer0.org1.example.com:7051
===================== Querying on peer0.org1 on channel 'mychannel'... =====================
Attempting to Query peer0.org1 ...3 secs
+ peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'
+ set +x
2018-03-05 15:07:01.005 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 001 Using default escc
2018-03-05 15:07:01.005 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc
Query Result: 100
2018-03-05 15:07:14.057 UTC [main] main -> INFO 003 Exiting.....
===================== Query on peer0.org1 on channel 'mychannel' is successful =====================
Sending invoke transaction on peer0.org1...
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_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_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.example.com/peers/peer0.org1.example.com/tls/server.crt
CORE_PEER_TLS_ENABLED=true
CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
CORE_PEER_ID=cli
CORE_LOGGING_LEVEL=INFO
CORE_PEER_ADDRESS=peer0.org1.example.com:7051
+ peer chaincode invoke -o orderer.example.com:7050 --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n mycc -c '{"Args":["invoke","a","b","10"]}'
+ set +x
2018-03-05 15:07:14.205 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 001 Using default escc
2018-03-05 15:07:14.205 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc
2018-03-05 15:07:15.512 UTC [chaincodeCmd] chaincodeInvokeOrQuery -> INFO 003 Chaincode invoke successful. result: status:200
2018-03-05 15:07:15.579 UTC [main] main -> INFO 004 Exiting.....
===================== Invoke transaction on peer0.org1 on channel 'mychannel' is successful =====================
Installing chaincode on peer1.org2...
CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.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_LOCALMSPID=Org2MSP
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.example.com/peers/peer0.org1.example.com/tls/server.crt
CORE_PEER_TLS_ENABLED=true
CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp
CORE_PEER_ID=cli
CORE_LOGGING_LEVEL=INFO
CORE_PEER_ADDRESS=peer1.org2.example.com:7051
+ peer chaincode install -n mycc -v 1.0 -l golang -p github.com/chaincode/chaincode_example02/go/
+ set +x
2018-03-05 15:07:15.638 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 001 Using default escc
2018-03-05 15:07:15.638 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc
2018-03-05 15:07:15.780 UTC [main] main -> INFO 003 Exiting.....
===================== Chaincode is installed on peer1.org2 =====================
Querying chaincode on peer1.org2...
CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.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_LOCALMSPID=Org2MSP
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.example.com/peers/peer0.org1.example.com/tls/server.crt
CORE_PEER_TLS_ENABLED=true
CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp
CORE_PEER_ID=cli
CORE_LOGGING_LEVEL=INFO
CORE_PEER_ADDRESS=peer1.org2.example.com:7051
===================== Querying on peer1.org2 on channel 'mychannel'... =====================
Attempting to Query peer1.org2 ...3 secs
+ peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'
+ set +x
2018-03-05 15:07:18.850 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 001 Using default escc
2018-03-05 15:07:18.850 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc
Query Result: 90
2018-03-05 15:07:30.720 UTC [main] main -> INFO 003 Exiting.....
===================== Query on peer1.org2 on channel 'mychannel' is successful =====================
========= All GOOD, BYFN execution completed ===========
_____ _ _ ____
| ____| | \ | | | _ \
| _| | \| | | | | |
| |___ | |\ | | |_| |
|_____| |_| \_| |____/
[root@cloud0 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
844af7f23ea0 dev-peer1.org2.example.com-mycc-1.0-26c2ef32838554aac4f7ad6f100aca865e87959c9a126e86d764c8d01f8346ab "chaincode -peer.adda|" About a minute ago Up About a minute dev-peer1.org2.example.com-mycc-1.0
eb806a95a906 dev-peer0.org1.example.com-mycc-1.0-384f11f484b9302df90b453200cfb25174305fce8f53f4e94d45ee3b6cab0ce9 "chaincode -peer.adda|" About a minute ago Up About a minute dev-peer0.org1.example.com-mycc-1.0
b78facdeb592 dev-peer0.org2.example.com-mycc-1.0-15b571b3ce849066b7ec74497da3b27e54e0df1345daff3951b94245ce09c42b "chaincode -peer.adda|" About a minute ago Up About a minute dev-peer0.org2.example.com-mycc-1.0
048d8e4e9879 hyperledger/fabric-tools:latest "/bin/bash" 2 minutes ago Up 2 minutes cli
18cdbe1847aa hyperledger/fabric-peer:latest "peer node start" 2 minutes ago Up 2 minutes 0.0.0.0:9051->7051/tcp, 0.0.0.0:9053->7053/tcp peer0.org2.example.com
2e9fcfa3346b hyperledger/fabric-peer:latest "peer node start" 2 minutes ago Up 2 minutes 0.0.0.0:8051->7051/tcp, 0.0.0.0:8053->7053/tcp peer1.org1.example.com
a0aa90f467a7 hyperledger/fabric-peer:latest "peer node start" 2 minutes ago Up 2 minutes 0.0.0.0:7051->7051/tcp, 0.0.0.0:7053->7053/tcp peer0.org1.example.com
5d4ec97e0642 hyperledger/fabric-orderer:latest "orderer" 2 minutes ago Up 2 minutes 0.0.0.0:7050->7050/tcp orderer.example.com
fa45895feea4 hyperledger/fabric-peer:latest "peer node start" 2 minutes ago Up 2 minutes 0.0.0.0:10051->7051/tcp, 0.0.0.0:10053->7053/tcp peer1.org2.example.com
908b59273b67 registry "/entrypoint.sh /etca|" 6 weeks ago Up 6 weeks 0.0.0.0:5000->5000/tcp registry
[root@cloud0 first-network]# ./byfn.sh -m down
Stopping with channel 'mychannel' and CLI timeout of '10' seconds and CLI delay of '3' seconds
Continue? [Y/n] y
proceeding ...
Stopping cli ... done
Stopping peer0.org2.example.com ... done
Stopping peer1.org1.example.com ... done
Stopping peer0.org1.example.com ... done
Stopping orderer.example.com ... done
Stopping peer1.org2.example.com ... done
Removing cli ... done
Removing peer0.org2.example.com ... done
Removing peer1.org1.example.com ... done
Removing peer0.org1.example.com ... done
Removing orderer.example.com ... done
Removing peer1.org2.example.com ... done
Removing network net_byfn
Removing volume net_peer0.org2.example.com
Removing volume net_peer1.org2.example.com
Removing volume net_peer1.org1.example.com
Removing volume net_peer0.org1.example.com
Removing volume net_orderer.example.com
Removing network net_byfn
WARNING: Network net_byfn not found.
Removing volume net_peer0.org2.example.com
WARNING: Volume net_peer0.org2.example.com not found.
Removing volume net_peer1.org2.example.com
WARNING: Volume net_peer1.org2.example.com not found.
Removing volume net_peer1.org1.example.com
WARNING: Volume net_peer1.org1.example.com not found.
Removing volume net_peer0.org1.example.com
WARNING: Volume net_peer0.org1.example.com not found.
Removing volume net_orderer.example.com
WARNING: Volume net_orderer.example.com not found.
844af7f23ea0
eb806a95a906
b78facdeb592
908b59273b67
Untagged: dev-peer1.org2.example.com-mycc-1.0-26c2ef32838554aac4f7ad6f100aca865e87959c9a126e86d764c8d01f8346ab:latest
Deleted: sha256:7e602043764f8fb9db53937123e8550bf2f5bdfe6aaf983455eb23c3fe1f5d67
Deleted: sha256:bc0a7efa1cdb221f3a4bf8fe8fca13f32e0cbba8deb8492ed96b2b3513427114
Deleted: sha256:ec2b32d73d731a8720018af580f4048aa9e12f7bd0546d2bb1d74f0f981acb4e
Deleted: sha256:5e875182c385a29b31ed650170b7571736bbff050514571047a8cc133a71aad2
Untagged: dev-peer0.org1.example.com-mycc-1.0-384f11f484b9302df90b453200cfb25174305fce8f53f4e94d45ee3b6cab0ce9:latest
Deleted: sha256:c89a9fd089f4f924b7122c4385e8c4a7b276e93d6b00c4b47ddfede75e6f8aac
Deleted: sha256:08cb2c6e198a1b779e907ebae1fbd3ff0594f2d0f4d2aeee9501e5242dddfe5b
Deleted: sha256:2e1a7944562ffdde2a4315bca97d2cb8bdb5bef8d9a90b1f64d7330594f39b02
Deleted: sha256:b6d5447f44ff901d37409cb9815367ebc6e3d3a99349623528dbb3c929c241b5
Untagged: dev-peer0.org2.example.com-mycc-1.0-15b571b3ce849066b7ec74497da3b27e54e0df1345daff3951b94245ce09c42b:latest
Deleted: sha256:3f8a158011f3146db1d3c35bc932adef2963a4fc4973633224237343392aa737
Deleted: sha256:ff6e1dbe6cf1856e5fd9f3988fc52526b9285fb73247fec7488f3dae4780ce39
Deleted: sha256:9bc10055e48ad639688b44bb1d0159268796df2e866bbb4b00e0d34dc7d8e0bc
Deleted: sha256:2517f24ee677d7581fe8e73f11da2cf4b75c7ecdc7f79b4bb3397fe23999126e
Deleted: sha256:313dc9a8adbc794bbed4231548dfb9c4cae6e4a4ff17ae1f3f1f6e9e261cc5cc
Deleted: sha256:81c8e2f22014eed7dce6a27887966f50fcb195cc0f13d0fc9f4526ef33651d8b
Deleted: sha256:6dd3f53714e6858bf37f10761f382c86eff833d44cdd85aafce43e0be9bd058b
Deleted: sha256:808a077e25a41ba442d9f750feafaf3d02a8dc39b52ab90bfb120a03e547756f
Deleted: sha256:f564166b7f73f34a933caa7e11ca7528856b524d6669ee39e5405b1b9fd811e5
Deleted: sha256:c337ffbd61fecae5549b2201990dc4cb355611989ed22f2e3a64ea44bc370f4e
Deleted: sha256:9fe9552f77104af0793854ad4c21491fe7813c5c021f7e56e9fb2458f309cb93
Deleted: sha256:618cb61fb2251488aadc825c6b5893971fb0b414fb1a6c3ad8da9f8a3afae249
Deleted: sha256:4198b6aff5b613f233cedda3daf525cec09797e122f275aa1774c9f86cf1b94f
Deleted: sha256:ac26fef2abf60e5e4d8037c028de3ae6458b164cc55b9f93bff3ca06132937c7
Deleted: sha256:15da31d565105a2ff1f46c03f83c93296f19a1075f894645e21409af9029e48f
Deleted: sha256:b47b7b507f8d1b71fdd61904b948875869f80bac4c8672a853c4dc95d0ef80a5
Deleted: sha256:a22ee324350f34b3aa5c4a9ee0e5c4de58aac4b856a46622c7d6867da76db139
Deleted: sha256:3e589e08baf78b6b4a480cf0d92867035f265fd276662ea482d7bb3e4eee24ba
Deleted: sha256:15a1d66acb9e2cfae3ebd3e4588e9fa3b5ea8d133b24932cf0d4da4b9a225e35
Deleted: sha256:2dbc6280a35c9834792a7d15050b7a6381d5542b78a62eb01732d5ab6dfa0c0f
Deleted: sha256:967541b2ca767252cecd707545a5abb0044cc1e7aabdb958ca269cb8a378ca8a
Deleted: sha256:2ba12f7245cb603aeadf1ecea7b2c3d9d9d30978753418fb920a8cd15dda83af
Untagged: greatbsky/flume@sha256:f55dc386c75ea666ec8f9e28565fcf78ea15935e4131290a31ecc6a942a7d977
Deleted: sha256:e8620aef9c38afe2bcb0fad9b9f11eefa033dfe323e325c1bce6be68f872c6c1
Deleted: sha256:8432f810d777df64c2624ad77156d927e5b9bb449b293b8b78da4e0f1888f687
Deleted: sha256:4cbc3f031d89aa97740311d64f215fb44addbd9888a435f27b109dce65050ccb
Deleted: sha256:0f99ade2fa13a6daa05571b90805483fb14fa0b233d7e72688aa855cab4419e8
Untagged: greatbsky/flume@sha256:1ddea19c33e1f6a6b2be758f65ef84dc888065952123833189c4caa944bf55fe
Deleted: sha256:e6bffb0bc09ed145e331095f66ae4196f92d27bee8c60e39a5f3cb159fff0100
Deleted: sha256:30b7e8f76ad354bbe8779d3b898c27638b5e3c04f39a0af40619f9f177a594a2
Deleted: sha256:7147014833f5e702dde8038e2cf6833c0569f18f75a373a17af7c01067a7ca75
Deleted: sha256:0ebb0fb12cf1f7bc78730178609c8d590a497ef06ca019df0379d5db77d06c8f
------------------------------------------------------------------------------------------------------------------4.Manually generate the artifacts & Start the network
[root@cloud0 ~]# cd /data/blockchain/fabric-samples/first-network
[root@cloud0 first-network]# ./byfn.sh -m down
[root@cloud0 first-network]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@cloud0 first-network]# ll
total 76
drwxr-xr-x. 2 root root 60 Mar 5 21:33 base
-rwxr-xr-x. 1 root root 20069 Mar 5 21:33 byfn.sh
drwxr-xr-x. 2 root root 22 Mar 7 16:19 channel-artifacts
-rw-r--r--. 1 root root 7912 Mar 5 21:33 configtx.yaml
-rw-r--r--. 1 root root 3906 Mar 5 21:33 crypto-config.yaml
-rw-r--r--. 1 root root 2972 Mar 5 23:31 docker-compose-cli.yaml
-rw-r--r--. 1 root root 2971 Mar 5 23:29 docker-compose-cli.yaml.bak
-rw-r--r--. 1 root root 2345 Mar 5 21:33 docker-compose-couch-org3.yaml
-rw-r--r--. 1 root root 4560 Mar 5 21:33 docker-compose-couch.yaml
-rw-r--r--. 1 root root 2883 Mar 5 21:33 docker-compose-e2e-template.yaml
-rw-r--r--. 1 root root 3493 Mar 5 21:33 docker-compose-org3.yaml
-rwxr-xr-x. 1 root root 10607 Mar 5 21:33 eyfn.sh
drwxr-xr-x. 2 root root 51 Mar 5 21:33 org3-artifacts
-rw-r--r--. 1 root root 335 Mar 5 21:33 README.md
drwxr-xr-x. 2 root root 168 Mar 5 21:33 scripts
[root@cloud0 first-network]# ../bin/cryptogen version
cryptogen:
Version: 1.1.0-rc1
Go version: go1.9.2
OS/Arch: linux/amd64
[root@cloud0 first-network]# ../bin/cryptogen generate --config=./crypto-config.yaml
org1.example.com
org2.example.com
[root@cloud0 first-network]# du crypto-config
8 crypto-config/peerOrganizations/org1.example.com/ca
8 crypto-config/peerOrganizations/org1.example.com/tlsca
4 crypto-config/peerOrganizations/org1.example.com/msp/cacerts
4 crypto-config/peerOrganizations/org1.example.com/msp/tlscacerts
4 crypto-config/peerOrganizations/org1.example.com/msp/admincerts
16 crypto-config/peerOrganizations/org1.example.com/msp
4 crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/cacerts
4 crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/tlscacerts
4 crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/keystore
4 crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/signcerts
4 crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/admincerts
24 crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp
12 crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls
36 crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com
4 crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/cacerts
4 crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/tlscacerts
4 crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/keystore
4 crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/signcerts
4 crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/admincerts
24 crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp
12 crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls
36 crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com
72 crypto-config/peerOrganizations/org1.example.com/peers
4 crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/admincerts
4 crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/cacerts
4 crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/tlscacerts
4 crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore
4 crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/signcerts
20 crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp
12 crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/tls
32 crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com
4 crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/admincerts
4 crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/cacerts
4 crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/tlscacerts
4 crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore
4 crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts
20 crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
12 crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls
32 crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com
64 crypto-config/peerOrganizations/org1.example.com/users
168 crypto-config/peerOrganizations/org1.example.com
8 crypto-config/peerOrganizations/org2.example.com/ca
8 crypto-config/peerOrganizations/org2.example.com/tlsca
4 crypto-config/peerOrganizations/org2.example.com/msp/cacerts
4 crypto-config/peerOrganizations/org2.example.com/msp/tlscacerts
4 crypto-config/peerOrganizations/org2.example.com/msp/admincerts
16 crypto-config/peerOrganizations/org2.example.com/msp
4 crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/cacerts
4 crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/tlscacerts
4 crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/keystore
4 crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/signcerts
4 crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/admincerts
24 crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp
12 crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls
36 crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com
4 crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/cacerts
4 crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/tlscacerts
4 crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/keystore
4 crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/signcerts
4 crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/admincerts
24 crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp
12 crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls
36 crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com
72 crypto-config/peerOrganizations/org2.example.com/peers
4 crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/admincerts
4 crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/cacerts
4 crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/tlscacerts
4 crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/keystore
4 crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/signcerts
20 crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp
12 crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/tls
32 crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com
4 crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/admincerts
4 crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/cacerts
4 crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/tlscacerts
4 crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/keystore
4 crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/signcerts
20 crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp
12 crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/tls
32 crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com
64 crypto-config/peerOrganizations/org2.example.com/users
168 crypto-config/peerOrganizations/org2.example.com
336 crypto-config/peerOrganizations
8 crypto-config/ordererOrganizations/example.com/ca
8 crypto-config/ordererOrganizations/example.com/tlsca
4 crypto-config/ordererOrganizations/example.com/msp/cacerts
4 crypto-config/ordererOrganizations/example.com/msp/tlscacerts
4 crypto-config/ordererOrganizations/example.com/msp/admincerts
12 crypto-config/ordererOrganizations/example.com/msp
4 crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts
4 crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts
4 crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/keystore
4 crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/signcerts
4 crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/admincerts
20 crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp
12 crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls
32 crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com
32 crypto-config/ordererOrganizations/example.com/orderers
4 crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/admincerts
4 crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/cacerts
4 crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/tlscacerts
4 crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/keystore
4 crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/signcerts
20 crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp
12 crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls
32 crypto-config/ordererOrganizations/example.com/users/Admin@example.com
32 crypto-config/ordererOrganizations/example.com/users
92 crypto-config/ordererOrganizations/example.com
92 crypto-config/ordererOrganizations
428 crypto-config
[root@cloud0 first-network]# export FABRIC_CFG_PATH=$PWD
[root@cloud0 first-network]# echo $FABRIC_CFG_PATH
/data/blockchain/fabric-samples/first-network
[root@cloud0 first-network]# du channel-artifacts/*
du: cannot access ‘channel-artifacts/*’: No such file or directory
[root@cloud0 first-network]# ../bin/configtxgen -profile TwoOrgsOrdererGenesis -outputBlock ./channel-artifacts/genesis.block #create the orderer genesis block
2018-03-05 23:17:53.454 CST [common/tools/configtxgen] main -> INFO 001 Loading configuration
2018-03-05 23:17:53.469 CST [msp] getMspConfig -> INFO 002 Loading NodeOUs
2018-03-05 23:17:53.469 CST [msp] getMspConfig -> INFO 003 Loading NodeOUs
2018-03-05 23:17:53.470 CST [common/tools/configtxgen] doOutputBlock -> INFO 004 Generating genesis block
2018-03-05 23:17:53.470 CST [common/tools/configtxgen] doOutputBlock -> INFO 005 Writing genesis block
[root@cloud0 first-network]# du channel-artifacts/*
16 channel-artifacts/genesis.block
[root@cloud0 first-network]# export CHANNEL_NAME=mychannel && ../bin/configtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./channel-artifacts/channel.tx -channelID $CHANNEL_NAME #Create a Channel Configuration Transaction
2018-03-05 23:20:22.083 CST [common/tools/configtxgen] main -> INFO 001 Loading configuration
2018-03-05 23:20:22.096 CST [common/tools/configtxgen] doOutputChannelCreateTx -> INFO 002 Generating new channel configtx
2018-03-05 23:20:22.097 CST [msp] getMspConfig -> INFO 003 Loading NodeOUs
2018-03-05 23:20:22.098 CST [msp] getMspConfig -> INFO 004 Loading NodeOUs
2018-03-05 23:20:22.132 CST [common/tools/configtxgen] doOutputChannelCreateTx -> INFO 005 Writing new channel tx
[root@cloud0 first-network]# ../bin/configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org1MSPanchors.tx -channelID $CHANNEL_NAME -asOrg Org1MSP
2018-03-05 23:21:06.284 CST [common/tools/configtxgen] main -> INFO 001 Loading configuration
2018-03-05 23:21:06.297 CST [common/tools/configtxgen] doOutputAnchorPeersUpdate -> INFO 002 Generating anchor peer update
2018-03-05 23:21:06.298 CST [common/tools/configtxgen] doOutputAnchorPeersUpdate -> INFO 003 Writing anchor peer update
[root@cloud0 first-network]# ../bin/configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org2MSPanchors.tx -channelID $CHANNEL_NAME -asOrg Org2MSP
2018-03-05 23:21:46.182 CST [common/tools/configtxgen] main -> INFO 001 Loading configuration
2018-03-05 23:21:46.196 CST [common/tools/configtxgen] doOutputAnchorPeersUpdate -> INFO 002 Generating anchor peer update
2018-03-05 23:21:46.196 CST [common/tools/configtxgen] doOutputAnchorPeersUpdate -> INFO 003 Writing anchor peer update
[root@cloud0 first-network]# du channel-artifacts/*
4 channel-artifacts/channel.tx
16 channel-artifacts/genesis.block
4 channel-artifacts/Org1MSPanchors.tx
4 channel-artifacts/Org2MSPanchors.tx
[root@cloud0 first-network]# vi docker-compose-cli.yaml
file: base/docker-compose-base.yaml
service: peer1.org2.example.com
networks:
- byfn
cli:
container_name: cli
image: hyperledger/fabric-tools:$IMAGE_TAG
#tty: true
stdin_open: true
environment:
- GOPATH=/opt/gopath
[root@cloud0 first-network]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@cloud0 first-network]# docker-compose -f docker-compose-cli.yaml up
Creating network "net_byfn" with the default driver
Creating volume "net_peer0.org2.example.com" with default driver
Creating volume "net_peer1.org2.example.com" with default driver
Creating volume "net_peer1.org1.example.com" with default driver
Creating volume "net_peer0.org1.example.com" with default driver
Creating peer0.org2.example.com ... done
Creating cli ... done
Creating orderer.example.com ...
Creating peer1.org1.example.com ...
Creating peer1.org2.example.com ...
Creating peer0.org1.example.com ...
Creating cli ...
Attaching to orderer.example.com, peer0.org1.example.com, peer1.org1.example.com, peer1.org2.example.com, peer0.org2.example.com, cli
orderer.example.com | 2018-03-05 15:34:12.830 UTC [orderer/common/server] prettyPrintStruct -> INFO 001 Orderer config values:
orderer.example.com | General.LedgerType = "file"
orderer.example.com | General.ListenAddress = "0.0.0.0"
orderer.example.com | General.ListenPort = 7050
orderer.example.com | General.TLS.Enabled = true
orderer.example.com | General.TLS.PrivateKey = "/var/hyperledger/orderer/tls/server.key"
orderer.example.com | General.TLS.Certificate = "/var/hyperledger/orderer/tls/server.crt"
orderer.example.com | General.TLS.RootCAs = [/var/hyperledger/orderer/tls/ca.crt]
orderer.example.com | General.TLS.ClientAuthRequired = false
peer0.org1.example.com | 2018-03-05 15:34:13.483 UTC [msp] getMspConfig -> INFO 001 Loading NodeOUs
orderer.example.com | General.TLS.ClientRootCAs = []
orderer.example.com | General.Keepalive.ServerMinInterval = 1m0s
orderer.example.com | General.Keepalive.ServerInterval = 2h0m0s
orderer.example.com | General.Keepalive.ServerTimeout = 20s
orderer.example.com | General.GenesisMethod = "file"
orderer.example.com | General.GenesisProfile = "SampleInsecureSolo"
orderer.example.com | General.SystemChannel = "testchainid"
orderer.example.com | General.GenesisFile = "/var/hyperledger/orderer/orderer.genesis.block"
orderer.example.com | General.Profile.Enabled = false
peer1.org1.example.com | 2018-03-05 15:34:13.422 UTC [msp] getMspConfig -> INFO 001 Loading NodeOUs
orderer.example.com | General.Profile.Address = "0.0.0.0:6060"
orderer.example.com | General.LogLevel = "INFO"
orderer.example.com | General.LogFormat = "%{color}%{time:2006-01-02 15:04:05.000 MST} [%{module}] %{shortfunc} -> %{level:.4s} %{id:03x}%{color:reset} %{message}"
peer0.org1.example.com | 2018-03-05 15:34:13.503 UTC [nodeCmd] serve -> INFO 002 Starting peer:
peer1.org2.example.com | 2018-03-05 15:34:13.680 UTC [msp] getMspConfig -> INFO 001 Loading NodeOUs
orderer.example.com | General.LocalMSPDir = "/var/hyperledger/orderer/msp"
peer1.org1.example.com | 2018-03-05 15:34:13.447 UTC [nodeCmd] serve -> INFO 002 Starting peer:
peer0.org2.example.com | 2018-03-05 15:34:13.846 UTC [msp] getMspConfig -> INFO 001 Loading NodeOUs
peer0.org1.example.com | Version: 1.1.0-rc1
orderer.example.com | General.LocalMSPID = "OrdererMSP"
peer1.org1.example.com | Version: 1.1.0-rc1
peer0.org1.example.com | Go version: go1.9.2
orderer.example.com | General.BCCSP.ProviderName = "SW"
peer1.org1.example.com | Go version: go1.9.2
peer0.org1.example.com | OS/Arch: linux/amd64
peer1.org2.example.com | 2018-03-05 15:34:13.702 UTC [nodeCmd] serve -> INFO 002 Starting peer:
peer1.org1.example.com | OS/Arch: linux/amd64
orderer.example.com | General.BCCSP.SwOpts.SecLevel = 256
peer0.org1.example.com | Experimental features: false
peer0.org2.example.com | 2018-03-05 15:34:13.865 UTC [nodeCmd] serve -> INFO 002 Starting peer:
peer1.org2.example.com | Version: 1.1.0-rc1
peer1.org1.example.com | Experimental features: false
orderer.example.com | General.BCCSP.SwOpts.HashFamily = "SHA2"
peer0.org1.example.com | Chaincode:
peer0.org2.example.com | Version: 1.1.0-rc1
peer1.org2.example.com | Go version: go1.9.2
peer1.org2.example.com | OS/Arch: linux/amd64
orderer.example.com | General.BCCSP.SwOpts.Ephemeral = false
peer0.org1.example.com | Base Image Version: 0.4.6
peer0.org2.example.com | Go version: go1.9.2
peer1.org2.example.com | Experimental features: false
peer1.org1.example.com | Chaincode:
orderer.example.com | General.BCCSP.SwOpts.FileKeystore.KeyStorePath = "/var/hyperledger/orderer/msp/keystore"
peer0.org1.example.com | Base Docker Namespace: hyperledger
peer0.org2.example.com | OS/Arch: linux/amd64
peer1.org2.example.com | Chaincode:
peer1.org1.example.com | Base Image Version: 0.4.6
orderer.example.com | General.BCCSP.SwOpts.DummyKeystore =
peer1.org2.example.com | Base Image Version: 0.4.6
peer1.org1.example.com | Base Docker Namespace: hyperledger
orderer.example.com | General.BCCSP.PluginOpts =
peer1.org2.example.com | Base Docker Namespace: hyperledger
peer0.org1.example.com | Base Docker Label: org.hyperledger.fabric
peer0.org2.example.com | Experimental features: false
peer1.org1.example.com | Base Docker Label: org.hyperledger.fabric
orderer.example.com | General.BCCSP.Pkcs11Opts =
peer1.org2.example.com | Base Docker Label: org.hyperledger.fabric
peer1.org2.example.com | Docker Namespace: hyperledger
peer0.org2.example.com | Chaincode:
peer1.org1.example.com | Docker Namespace: hyperledger
orderer.example.com | General.Authentication.TimeWindow = 15m0s
peer0.org1.example.com | Docker Namespace: hyperledger
peer1.org2.example.com |
peer0.org2.example.com | Base Image Version: 0.4.6
peer1.org1.example.com |
orderer.example.com | FileLedger.Location = "/var/hyperledger/production/orderer"
peer0.org1.example.com |
peer1.org2.example.com | 2018-03-05 15:34:13.702 UTC [ledgermgmt] initialize -> INFO 003 Initializing ledger mgmt
peer1.org2.example.com | 2018-03-05 15:34:13.702 UTC [kvledger] NewProvider -> INFO 004 Initializing ledger provider
peer1.org1.example.com | 2018-03-05 15:34:13.447 UTC [ledgermgmt] initialize -> INFO 003 Initializing ledger mgmt
orderer.example.com | FileLedger.Prefix = "hyperledger-fabric-ordererledger"
peer0.org2.example.com | Base Docker Namespace: hyperledger
peer1.org1.example.com | 2018-03-05 15:34:13.447 UTC [kvledger] NewProvider -> INFO 004 Initializing ledger provider
orderer.example.com | RAMLedger.HistorySize = 1000
peer0.org2.example.com | Base Docker Label: org.hyperledger.fabric
peer1.org2.example.com | 2018-03-05 15:34:13.893 UTC [kvledger] NewProvider -> INFO 005 ledger provider Initialized
peer0.org1.example.com | 2018-03-05 15:34:13.503 UTC [ledgermgmt] initialize -> INFO 003 Initializing ledger mgmt
orderer.example.com | Kafka.Retry.ShortInterval = 5s
peer1.org2.example.com | 2018-03-05 15:34:13.893 UTC [ledgermgmt] initialize -> INFO 006 ledger mgmt initialized
peer0.org2.example.com | Docker Namespace: hyperledger
peer1.org1.example.com | 2018-03-05 15:34:13.707 UTC [kvledger] NewProvider -> INFO 005 ledger provider Initialized
orderer.example.com | Kafka.Retry.ShortTotal = 10m0s
peer0.org2.example.com |
peer1.org1.example.com | 2018-03-05 15:34:13.707 UTC [ledgermgmt] initialize -> INFO 006 ledger mgmt initialized
orderer.example.com | Kafka.Retry.LongInterval = 5m0s
peer1.org2.example.com | 2018-03-05 15:34:13.893 UTC [peer] func1 -> INFO 007 Auto-detected peer address: 172.18.0.5:7051
peer0.org1.example.com | 2018-03-05 15:34:13.503 UTC [kvledger] NewProvider -> INFO 004 Initializing ledger provider
orderer.example.com | Kafka.Retry.LongTotal = 12h0m0s
peer0.org2.example.com | 2018-03-05 15:34:13.865 UTC [ledgermgmt] initialize -> INFO 003 Initializing ledger mgmt
peer1.org2.example.com | 2018-03-05 15:34:13.893 UTC [peer] func1 -> INFO 008 Returning peer1.org2.example.com:7051
orderer.example.com | Kafka.Retry.NetworkTimeouts.DialTimeout = 10s
orderer.example.com | Kafka.Retry.NetworkTimeouts.ReadTimeout = 10s
peer0.org2.example.com | 2018-03-05 15:34:13.865 UTC [kvledger] NewProvider -> INFO 004 Initializing ledger provider
peer1.org1.example.com | 2018-03-05 15:34:13.707 UTC [peer] func1 -> INFO 007 Auto-detected peer address: 172.18.0.3:7051
orderer.example.com | Kafka.Retry.NetworkTimeouts.WriteTimeout = 10s
peer0.org1.example.com | 2018-03-05 15:34:13.730 UTC [kvledger] NewProvider -> INFO 005 ledger provider Initialized
peer1.org2.example.com | 2018-03-05 15:34:13.893 UTC [peer] func1 -> INFO 009 Auto-detected peer address: 172.18.0.5:7051
orderer.example.com | Kafka.Retry.Metadata.RetryMax = 3
peer0.org1.example.com | 2018-03-05 15:34:13.730 UTC [ledgermgmt] initialize -> INFO 006 ledger mgmt initialized
peer1.org1.example.com | 2018-03-05 15:34:13.707 UTC [peer] func1 -> INFO 008 Returning peer1.org1.example.com:7051
peer0.org2.example.com | 2018-03-05 15:34:14.015 UTC [kvledger] NewProvider -> INFO 005 ledger provider Initialized
orderer.example.com | Kafka.Retry.Metadata.RetryBackoff = 250ms
peer1.org2.example.com | 2018-03-05 15:34:13.893 UTC [peer] func1 -> INFO 00a Returning peer1.org2.example.com:7051
peer0.org2.example.com | 2018-03-05 15:34:14.016 UTC [ledgermgmt] initialize -> INFO 006 ledger mgmt initialized
peer1.org1.example.com | 2018-03-05 15:34:13.707 UTC [peer] func1 -> INFO 009 Auto-detected peer address: 172.18.0.3:7051
orderer.example.com | Kafka.Retry.Producer.RetryMax = 3
peer0.org1.example.com | 2018-03-05 15:34:13.730 UTC [peer] func1 -> INFO 007 Auto-detected peer address: 172.18.0.4:7051
peer1.org2.example.com | 2018-03-05 15:34:13.895 UTC [nodeCmd] serve -> INFO 00b Starting peer with TLS enabled
orderer.example.com | Kafka.Retry.Producer.RetryBackoff = 100ms
peer1.org1.example.com | 2018-03-05 15:34:13.707 UTC [peer] func1 -> INFO 00a Returning peer1.org1.example.com:7051
peer0.org2.example.com | 2018-03-05 15:34:14.016 UTC [peer] func1 -> INFO 007 Auto-detected peer address: 172.18.0.6:7051
orderer.example.com | Kafka.Retry.Consumer.RetryBackoff = 2s
peer0.org1.example.com | 2018-03-05 15:34:13.730 UTC [peer] func1 -> INFO 008 Returning peer0.org1.example.com:7051
peer1.org2.example.com | 2018-03-05 15:34:13.897 UTC [eventhub_producer] start -> INFO 00c Event processor started
orderer.example.com | Kafka.Verbose = false
peer1.org1.example.com | 2018-03-05 15:34:13.708 UTC [nodeCmd] serve -> INFO 00b Starting peer with TLS enabled
orderer.example.com | Kafka.Version = 0.10.2.0
peer0.org2.example.com | 2018-03-05 15:34:14.016 UTC [peer] func1 -> INFO 008 Returning peer0.org2.example.com:7051
peer0.org1.example.com | 2018-03-05 15:34:13.731 UTC [peer] func1 -> INFO 009 Auto-detected peer address: 172.18.0.4:7051
peer1.org2.example.com | 2018-03-05 15:34:13.898 UTC [nodeCmd] computeChaincodeEndpoint -> INFO 00d Entering computeChaincodeEndpoint with peerHostname: peer1.org2.example.com
orderer.example.com | Kafka.TLS.Enabled = false
orderer.example.com | Kafka.TLS.PrivateKey = ""
peer0.org1.example.com | 2018-03-05 15:34:13.731 UTC [peer] func1 -> INFO 00a Returning peer0.org1.example.com:7051
orderer.example.com | Kafka.TLS.Certificate = ""
peer1.org1.example.com | 2018-03-05 15:34:13.710 UTC [eventhub_producer] start -> INFO 00c Event processor started
peer0.org2.example.com | 2018-03-05 15:34:14.016 UTC [peer] func1 -> INFO 009 Auto-detected peer address: 172.18.0.6:7051
peer1.org2.example.com | 2018-03-05 15:34:13.898 UTC [nodeCmd] computeChaincodeEndpoint -> INFO 00e Exit with ccEndpoint: peer1.org2.example.com:7052
orderer.example.com | Kafka.TLS.RootCAs = []
orderer.example.com | Kafka.TLS.ClientAuthRequired = false
peer0.org1.example.com | 2018-03-05 15:34:13.732 UTC [nodeCmd] serve -> INFO 00b Starting peer with TLS enabled
peer0.org2.example.com | 2018-03-05 15:34:14.017 UTC [peer] func1 -> INFO 00a Returning peer0.org2.example.com:7051
peer1.org1.example.com | 2018-03-05 15:34:13.710 UTC [nodeCmd] computeChaincodeEndpoint -> INFO 00d Entering computeChaincodeEndpoint with peerHostname: peer1.org1.example.com
orderer.example.com | Kafka.TLS.ClientRootCAs = []
peer1.org2.example.com | 2018-03-05 15:34:13.898 UTC [nodeCmd] createChaincodeServer -> WARN 00f peer.chaincodeListenAddress is not set, using peer1.org2.example.com:7052
peer0.org1.example.com | 2018-03-05 15:34:13.733 UTC [nodeCmd] computeChaincodeEndpoint -> INFO 00c Entering computeChaincodeEndpoint with peerHostname: peer0.org1.example.com
peer0.org2.example.com | 2018-03-05 15:34:14.018 UTC [nodeCmd] serve -> INFO 00b Starting peer with TLS enabled
orderer.example.com | Debug.BroadcastTraceDir = ""
peer1.org1.example.com | 2018-03-05 15:34:13.711 UTC [nodeCmd] computeChaincodeEndpoint -> INFO 00e Exit with ccEndpoint: peer1.org1.example.com:7052
peer1.org2.example.com | 2018-03-05 15:34:13.900 UTC [chaincode] NewChaincodeSupport -> INFO 010 Chaincode support using peerAddress: peer1.org2.example.com:7052
peer0.org2.example.com | 2018-03-05 15:34:14.020 UTC [eventhub_producer] start -> INFO 00c Event processor started
orderer.example.com | Debug.DeliverTraceDir = ""
peer0.org1.example.com | 2018-03-05 15:34:13.733 UTC [nodeCmd] computeChaincodeEndpoint -> INFO 00d Exit with ccEndpoint: peer0.org1.example.com:7052
peer1.org1.example.com | 2018-03-05 15:34:13.711 UTC [nodeCmd] createChaincodeServer -> WARN 00f peer.chaincodeListenAddress is not set, using peer1.org1.example.com:7052
orderer.example.com | 2018-03-05 15:34:12.830 UTC [orderer/common/server] initializeServerConfig -> INFO 002 Starting orderer with TLS enabled
peer1.org2.example.com | 2018-03-05 15:34:13.901 UTC [sccapi] registerSysCC -> INFO 011 system chaincode cscc(github.com/hyperledger/fabric/core/scc/cscc) registered
peer0.org1.example.com | 2018-03-05 15:34:13.733 UTC [nodeCmd] createChaincodeServer -> WARN 00e peer.chaincodeListenAddress is not set, using peer0.org1.example.com:7052
peer1.org1.example.com | 2018-03-05 15:34:13.712 UTC [chaincode] NewChaincodeSupport -> INFO 010 Chaincode support using peerAddress: peer1.org1.example.com:7052
peer1.org1.example.com | 2018-03-05 15:34:13.713 UTC [sccapi] registerSysCC -> INFO 011 system chaincode cscc(github.com/hyperledger/fabric/core/scc/cscc) registered
peer1.org2.example.com | 2018-03-05 15:34:13.901 UTC [sccapi] registerSysCC -> INFO 012 system chaincode lscc(github.com/hyperledger/fabric/core/scc/lscc) registered
peer0.org2.example.com | 2018-03-05 15:34:14.020 UTC [nodeCmd] computeChaincodeEndpoint -> INFO 00d Entering computeChaincodeEndpoint with peerHostname: peer0.org2.example.com
peer1.org1.example.com | 2018-03-05 15:34:13.713 UTC [sccapi] registerSysCC -> INFO 012 system chaincode lscc(github.com/hyperledger/fabric/core/scc/lscc) registered
orderer.example.com | 2018-03-05 15:34:12.872 UTC [fsblkstorage] newBlockfileMgr -> INFO 003 Getting block information from block storage
peer0.org1.example.com | 2018-03-05 15:34:13.734 UTC [eventhub_producer] start -> INFO 00f Event processor started
peer1.org1.example.com | 2018-03-05 15:34:13.713 UTC [sccapi] registerSysCC -> INFO 013 system chaincode escc(github.com/hyperledger/fabric/core/scc/escc) registered
peer0.org2.example.com | 2018-03-05 15:34:14.021 UTC [nodeCmd] computeChaincodeEndpoint -> INFO 00e Exit with ccEndpoint: peer0.org2.example.com:7052
peer1.org2.example.com | 2018-03-05 15:34:13.901 UTC [sccapi] registerSysCC -> INFO 013 system chaincode escc(github.com/hyperledger/fabric/core/scc/escc) registered
peer1.org1.example.com | 2018-03-05 15:34:13.713 UTC [sccapi] registerSysCC -> INFO 014 system chaincode vscc(github.com/hyperledger/fabric/core/scc/vscc) registered
orderer.example.com | 2018-03-05 15:34:13.015 UTC [orderer/commmon/multichannel] NewRegistrar -> INFO 004 Starting system channel 'testchainid' with genesis block hash 9b163d3d32342890b671a2135e352ba84ea2e8bdd262a80610f0e78b637f6e10 and orderer type solo
peer1.org1.example.com | 2018-03-05 15:34:13.713 UTC [sccapi] registerSysCC -> INFO 015 system chaincode qscc(github.com/hyperledger/fabric/core/chaincode/qscc) registered
peer0.org2.example.com | 2018-03-05 15:34:14.021 UTC [nodeCmd] createChaincodeServer -> WARN 00f peer.chaincodeListenAddress is not set, using peer0.org2.example.com:7052
orderer.example.com | 2018-03-05 15:34:13.015 UTC [orderer/common/server] Start -> INFO 005 Starting orderer:
peer1.org2.example.com | 2018-03-05 15:34:13.901 UTC [sccapi] registerSysCC -> INFO 014 system chaincode vscc(github.com/hyperledger/fabric/core/scc/vscc) registered
peer1.org1.example.com | 2018-03-05 15:34:13.714 UTC [gossip/service] func1 -> INFO 016 Initialize gossip with endpoint peer1.org1.example.com:7051 and bootstrap set [peer0.org1.example.com:7051]
orderer.example.com | Version: 1.1.0-rc1
peer0.org1.example.com | 2018-03-05 15:34:13.735 UTC [chaincode] NewChaincodeSupport -> INFO 010 Chaincode support using peerAddress: peer0.org1.example.com:7052
peer1.org1.example.com | 2018-03-05 15:34:13.716 UTC [msp] DeserializeIdentity -> INFO 017 Obtaining identity
orderer.example.com | Go version: go1.9.2
peer1.org2.example.com | 2018-03-05 15:34:13.901 UTC [sccapi] registerSysCC -> INFO 015 system chaincode qscc(github.com/hyperledger/fabric/core/chaincode/qscc) registered
peer0.org2.example.com | 2018-03-05 15:34:14.024 UTC [chaincode] NewChaincodeSupport -> INFO 010 Chaincode support using peerAddress: peer0.org2.example.com:7052
peer0.org1.example.com | 2018-03-05 15:34:13.735 UTC [sccapi] registerSysCC -> INFO 011 system chaincode cscc(github.com/hyperledger/fabric/core/scc/cscc) registered
orderer.example.com | OS/Arch: linux/amd64
peer1.org1.example.com | 2018-03-05 15:34:13.717 UTC [gossip/discovery] NewDiscoveryService -> INFO 018 Started {peer1.org1.example.com:7051 [] [20 39 241 1 56 35 134 153 219 244 184 196 81 195 218 210 65 202 181 63 94 45 163 81 50 243 82 71 37 128 144 214] peer1.org1.example.com:7051 <nil>} incTime is 1520264053717477865
peer1.org2.example.com | 2018-03-05 15:34:13.903 UTC [gossip/service] func1 -> INFO 016 Initialize gossip with endpoint peer1.org2.example.com:7051 and bootstrap set [peer0.org2.example.com:7051]
orderer.example.com | Experimental features: false
peer0.org1.example.com | 2018-03-05 15:34:13.735 UTC [sccapi] registerSysCC -> INFO 012 system chaincode lscc(github.com/hyperledger/fabric/core/scc/lscc) registered
peer1.org1.example.com | 2018-03-05 15:34:13.717 UTC [gossip/gossip] NewGossipService -> INFO 019 Creating gossip service with self membership of {peer1.org1.example.com:7051 [] [20 39 241 1 56 35 134 153 219 244 184 196 81 195 218 210 65 202 181 63 94 45 163 81 50 243 82 71 37 128 144 214] peer1.org1.example.com:7051 <nil>}
peer0.org2.example.com | 2018-03-05 15:34:14.024 UTC [sccapi] registerSysCC -> INFO 011 system chaincode cscc(github.com/hyperledger/fabric/core/scc/cscc) registered
orderer.example.com | 2018-03-05 15:34:13.015 UTC [orderer/common/server] Start -> INFO 006 Beginning to serve requests
peer1.org2.example.com | 2018-03-05 15:34:13.905 UTC [msp] DeserializeIdentity -> INFO 017 Obtaining identity
peer1.org1.example.com | 2018-03-05 15:34:13.719 UTC [gossip/gossip] start -> INFO 01a Gossip instance peer1.org1.example.com:7051 started
peer0.org1.example.com | 2018-03-05 15:34:13.736 UTC [sccapi] registerSysCC -> INFO 013 system chaincode escc(github.com/hyperledger/fabric/core/scc/escc) registered
peer0.org2.example.com | 2018-03-05 15:34:14.024 UTC [sccapi] registerSysCC -> INFO 012 system chaincode lscc(github.com/hyperledger/fabric/core/scc/lscc) registered
peer1.org2.example.com | 2018-03-05 15:34:13.908 UTC [gossip/discovery] NewDiscoveryService -> INFO 018 Started {peer1.org2.example.com:7051 [] [123 136 58 139 103 20 9 71 143 32 80 167 238 166 27 114 169 24 196 19 122 29 229 223 125 68 161 60 128 208 74 237] peer1.org2.example.com:7051 <nil>} incTime is 1520264053907758604
peer1.org1.example.com | 2018-03-05 15:34:13.720 UTC [cscc] Init -> INFO 01b Init CSCC
peer0.org1.example.com | 2018-03-05 15:34:13.736 UTC [sccapi] registerSysCC -> INFO 014 system chaincode vscc(github.com/hyperledger/fabric/core/scc/vscc) registered
peer0.org2.example.com | 2018-03-05 15:34:14.025 UTC [sccapi] registerSysCC -> INFO 013 system chaincode escc(github.com/hyperledger/fabric/core/scc/escc) registered
peer1.org1.example.com | 2018-03-05 15:34:13.720 UTC [sccapi] deploySysCC -> INFO 01c system chaincode cscc/(github.com/hyperledger/fabric/core/scc/cscc) deployed
peer1.org2.example.com | 2018-03-05 15:34:13.908 UTC [gossip/gossip] NewGossipService -> INFO 019 Creating gossip service with self membership of {peer1.org2.example.com:7051 [] [123 136 58 139 103 20 9 71 143 32 80 167 238 166 27 114 169 24 196 19 122 29 229 223 125 68 161 60 128 208 74 237] peer1.org2.example.com:7051 <nil>}
peer0.org2.example.com | 2018-03-05 15:34:14.025 UTC [sccapi] registerSysCC -> INFO 014 system chaincode vscc(github.com/hyperledger/fabric/core/scc/vscc) registered
peer0.org1.example.com | 2018-03-05 15:34:13.736 UTC [sccapi] registerSysCC -> INFO 015 system chaincode qscc(github.com/hyperledger/fabric/core/chaincode/qscc) registered
peer1.org1.example.com | 2018-03-05 15:34:13.721 UTC [sccapi] deploySysCC -> INFO 01d system chaincode lscc/(github.com/hyperledger/fabric/core/scc/lscc) deployed
peer1.org2.example.com | 2018-03-05 15:34:13.910 UTC [gossip/gossip] start -> INFO 01a Gossip instance peer1.org2.example.com:7051 started
peer0.org2.example.com | 2018-03-05 15:34:14.025 UTC [sccapi] registerSysCC -> INFO 015 system chaincode qscc(github.com/hyperledger/fabric/core/chaincode/qscc) registered
peer0.org1.example.com | 2018-03-05 15:34:13.737 UTC [gossip/service] func1 -> INFO 016 Initialize gossip with endpoint peer0.org1.example.com:7051 and bootstrap set [peer1.org1.example.com:7051]
peer1.org1.example.com | 2018-03-05 15:34:13.722 UTC [escc] Init -> INFO 01e Successfully initialized ESCC
peer1.org2.example.com | 2018-03-05 15:34:13.911 UTC [cscc] Init -> INFO 01b Init CSCC
peer1.org2.example.com | 2018-03-05 15:34:13.912 UTC [sccapi] deploySysCC -> INFO 01c system chaincode cscc/(github.com/hyperledger/fabric/core/scc/cscc) deployed
peer0.org1.example.com | 2018-03-05 15:34:13.738 UTC [msp] DeserializeIdentity -> INFO 017 Obtaining identity
peer1.org1.example.com | 2018-03-05 15:34:13.722 UTC [sccapi] deploySysCC -> INFO 01f system chaincode escc/(github.com/hyperledger/fabric/core/scc/escc) deployed
peer0.org1.example.com | 2018-03-05 15:34:13.740 UTC [gossip/discovery] NewDiscoveryService -> INFO 018 Started {peer0.org1.example.com:7051 [] [160 13 28 229 138 107 148 11 181 57 107 99 184 64 69 96 141 188 129 48 215 2 0 152 34 3 213 237 242 47 185 15] peer0.org1.example.com:7051 <nil>} incTime is 1520264053740147411
peer1.org2.example.com | 2018-03-05 15:34:13.913 UTC [sccapi] deploySysCC -> INFO 01d system chaincode lscc/(github.com/hyperledger/fabric/core/scc/lscc) deployed
peer1.org1.example.com | 2018-03-05 15:34:13.722 UTC [sccapi] deploySysCC -> INFO 020 system chaincode vscc/(github.com/hyperledger/fabric/core/scc/vscc) deployed
peer0.org2.example.com | 2018-03-05 15:34:14.027 UTC [gossip/service] func1 -> INFO 016 Initialize gossip with endpoint peer0.org2.example.com:7051 and bootstrap set [peer1.org2.example.com:7051]
peer0.org1.example.com | 2018-03-05 15:34:13.740 UTC [gossip/gossip] NewGossipService -> INFO 019 Creating gossip service with self membership of {peer0.org1.example.com:7051 [] [160 13 28 229 138 107 148 11 181 57 107 99 184 64 69 96 141 188 129 48 215 2 0 152 34 3 213 237 242 47 185 15] peer0.org1.example.com:7051 <nil>}
peer1.org2.example.com | 2018-03-05 15:34:13.914 UTC [escc] Init -> INFO 01e Successfully initialized ESCC
peer1.org1.example.com | 2018-03-05 15:34:13.723 UTC [qscc] Init -> INFO 021 Init QSCC
peer0.org2.example.com | 2018-03-05 15:34:14.030 UTC [msp] DeserializeIdentity -> INFO 017 Obtaining identity
peer0.org1.example.com | 2018-03-05 15:34:13.742 UTC [gossip/gossip] start -> INFO 01a Gossip instance peer0.org1.example.com:7051 started
peer1.org2.example.com | 2018-03-05 15:34:13.914 UTC [sccapi] deploySysCC -> INFO 01f system chaincode escc/(github.com/hyperledger/fabric/core/scc/escc) deployed
peer1.org1.example.com | 2018-03-05 15:34:13.723 UTC [sccapi] deploySysCC -> INFO 022 system chaincode qscc/(github.com/hyperledger/fabric/core/chaincode/qscc) deployed
peer0.org2.example.com | 2018-03-05 15:34:14.033 UTC [gossip/discovery] NewDiscoveryService -> INFO 018 Started {peer0.org2.example.com:7051 [] [7 79 124 15 118 209 44 156 42 176 37 83 36 224 67 143 111 106 248 39 182 72 115 108 229 139 106 23 233 37 85 198] peer0.org2.example.com:7051 <nil>} incTime is 1520264054032640915
peer1.org1.example.com | 2018-03-05 15:34:13.723 UTC [nodeCmd] initSysCCs -> INFO 023 Deployed system chaincodes
peer1.org2.example.com | 2018-03-05 15:34:13.914 UTC [sccapi] deploySysCC -> INFO 020 system chaincode vscc/(github.com/hyperledger/fabric/core/scc/vscc) deployed
peer1.org1.example.com | 2018-03-05 15:34:13.723 UTC [nodeCmd] serve -> INFO 024 Starting peer with ID=[name:"peer1.org1.example.com" ], network ID=[dev], address=[peer1.org1.example.com:7051]
peer0.org2.example.com | 2018-03-05 15:34:14.033 UTC [gossip/gossip] NewGossipService -> INFO 019 Creating gossip service with self membership of {peer0.org2.example.com:7051 [] [7 79 124 15 118 209 44 156 42 176 37 83 36 224 67 143 111 106 248 39 182 72 115 108 229 139 106 23 233 37 85 198] peer0.org2.example.com:7051 <nil>}
peer0.org1.example.com | 2018-03-05 15:34:13.742 UTC [cscc] Init -> INFO 01b Init CSCC
peer1.org2.example.com | 2018-03-05 15:34:13.915 UTC [qscc] Init -> INFO 021 Init QSCC
peer1.org1.example.com | 2018-03-05 15:34:13.724 UTC [nodeCmd] serve -> INFO 025 Started peer with ID=[name:"peer1.org1.example.com" ], network ID=[dev], address=[peer1.org1.example.com:7051]
peer0.org2.example.com | 2018-03-05 15:34:14.035 UTC [gossip/gossip] start -> INFO 01a Gossip instance peer0.org2.example.com:7051 started
peer1.org1.example.com | 2018-03-05 15:34:13.724 UTC [nodeCmd] func7 -> INFO 026 Starting profiling server with listenAddress = 0.0.0.0:6060
peer1.org2.example.com | 2018-03-05 15:34:13.915 UTC [sccapi] deploySysCC -> INFO 022 system chaincode qscc/(github.com/hyperledger/fabric/core/chaincode/qscc) deployed
peer1.org2.example.com | 2018-03-05 15:34:13.915 UTC [nodeCmd] initSysCCs -> INFO 023 Deployed system chaincodes
peer0.org1.example.com | 2018-03-05 15:34:13.743 UTC [sccapi] deploySysCC -> INFO 01c system chaincode cscc/(github.com/hyperledger/fabric/core/scc/cscc) deployed
peer0.org2.example.com | 2018-03-05 15:34:14.036 UTC [cscc] Init -> INFO 01b Init CSCC
peer1.org2.example.com | 2018-03-05 15:34:13.915 UTC [nodeCmd] serve -> INFO 024 Starting peer with ID=[name:"peer1.org2.example.com" ], network ID=[dev], address=[peer1.org2.example.com:7051]
peer0.org1.example.com | 2018-03-05 15:34:13.744 UTC [sccapi] deploySysCC -> INFO 01d system chaincode lscc/(github.com/hyperledger/fabric/core/scc/lscc) deployed
peer0.org2.example.com | 2018-03-05 15:34:14.037 UTC [sccapi] deploySysCC -> INFO 01c system chaincode cscc/(github.com/hyperledger/fabric/core/scc/cscc) deployed
peer0.org1.example.com | 2018-03-05 15:34:13.744 UTC [escc] Init -> INFO 01e Successfully initialized ESCC
peer1.org2.example.com | 2018-03-05 15:34:13.916 UTC [nodeCmd] serve -> INFO 025 Started peer with ID=[name:"peer1.org2.example.com" ], network ID=[dev], address=[peer1.org2.example.com:7051]
peer0.org1.example.com | 2018-03-05 15:34:13.744 UTC [sccapi] deploySysCC -> INFO 01f system chaincode escc/(github.com/hyperledger/fabric/core/scc/escc) deployed
peer0.org1.example.com | 2018-03-05 15:34:13.745 UTC [sccapi] deploySysCC -> INFO 020 system chaincode vscc/(github.com/hyperledger/fabric/core/scc/vscc) deployed
peer0.org2.example.com | 2018-03-05 15:34:14.038 UTC [sccapi] deploySysCC -> INFO 01d system chaincode lscc/(github.com/hyperledger/fabric/core/scc/lscc) deployed
peer1.org2.example.com | 2018-03-05 15:34:13.916 UTC [nodeCmd] func7 -> INFO 026 Starting profiling server with listenAddress = 0.0.0.0:6060
peer0.org2.example.com | 2018-03-05 15:34:14.040 UTC [escc] Init -> INFO 01e Successfully initialized ESCC
peer0.org1.example.com | 2018-03-05 15:34:13.746 UTC [qscc] Init -> INFO 021 Init QSCC
peer0.org1.example.com | 2018-03-05 15:34:13.746 UTC [sccapi] deploySysCC -> INFO 022 system chaincode qscc/(github.com/hyperledger/fabric/core/chaincode/qscc) deployed
peer0.org2.example.com | 2018-03-05 15:34:14.040 UTC [sccapi] deploySysCC -> INFO 01f system chaincode escc/(github.com/hyperledger/fabric/core/scc/escc) deployed
peer0.org1.example.com | 2018-03-05 15:34:13.746 UTC [nodeCmd] initSysCCs -> INFO 023 Deployed system chaincodes
peer0.org2.example.com | 2018-03-05 15:34:14.041 UTC [sccapi] deploySysCC -> INFO 020 system chaincode vscc/(github.com/hyperledger/fabric/core/scc/vscc) deployed
peer0.org1.example.com | 2018-03-05 15:34:13.746 UTC [nodeCmd] serve -> INFO 024 Starting peer with ID=[name:"peer0.org1.example.com" ], network ID=[dev], address=[peer0.org1.example.com:7051]
peer0.org1.example.com | 2018-03-05 15:34:13.747 UTC [nodeCmd] serve -> INFO 025 Started peer with ID=[name:"peer0.org1.example.com" ], network ID=[dev], address=[peer0.org1.example.com:7051]
peer0.org2.example.com | 2018-03-05 15:34:14.042 UTC [qscc] Init -> INFO 021 Init QSCC
peer0.org2.example.com | 2018-03-05 15:34:14.042 UTC [sccapi] deploySysCC -> INFO 022 system chaincode qscc/(github.com/hyperledger/fabric/core/chaincode/qscc) deployed
peer0.org2.example.com | 2018-03-05 15:34:14.042 UTC [nodeCmd] initSysCCs -> INFO 023 Deployed system chaincodes
peer0.org1.example.com | 2018-03-05 15:34:13.748 UTC [nodeCmd] func7 -> INFO 026 Starting profiling server with listenAddress = 0.0.0.0:6060
peer0.org2.example.com | 2018-03-05 15:34:14.042 UTC [nodeCmd] serve -> INFO 024 Starting peer with ID=[name:"peer0.org2.example.com" ], network ID=[dev], address=[peer0.org2.example.com:7051]
peer0.org2.example.com | 2018-03-05 15:34:14.043 UTC [nodeCmd] serve -> INFO 025 Started peer with ID=[name:"peer0.org2.example.com" ], network ID=[dev], address=[peer0.org2.example.com:7051]
peer0.org2.example.com | 2018-03-05 15:34:14.044 UTC [nodeCmd] func7 -> INFO 026 Starting profiling server with listenAddress = 0.0.0.0:6060
[root@cloud0 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e81eb53f07f4 hyperledger/fabric-tools:latest "/bin/bash" 20 seconds ago Up 19 seconds cli
a6980adea2ac hyperledger/fabric-peer:latest "peer node start" 23 seconds ago Up 21 seconds 0.0.0.0:9051->7051/tcp, 0.0.0.0:9053->7053/tcp peer0.org2.example.com
0dcfa3a69055 hyperledger/fabric-peer:latest "peer node start" 23 seconds ago Up 20 seconds 0.0.0.0:8051->7051/tcp, 0.0.0.0:8053->7053/tcp peer1.org1.example.com
ce60a72c3a35 hyperledger/fabric-peer:latest "peer node start" 23 seconds ago Up 20 seconds 0.0.0.0:7051->7051/tcp, 0.0.0.0:7053->7053/tcp peer0.org1.example.com
f2a733c76ab0 hyperledger/fabric-orderer:latest "orderer" 23 seconds ago Up 21 seconds 0.0.0.0:7050->7050/tcp orderer.example.com
c387f42a2f64 hyperledger/fabric-peer:latest "peer node start" 23 seconds ago Up 21 seconds 0.0.0.0:10051->7051/tcp, 0.0.0.0:10053->7053/tcp peer1.org2.example.com
[root@cloud0 first-network]# docker start cli #The CLI container will stick around idle for 1000 seconds. If it’s gone when you need it you can restart it with a simple command
------------------------------------------------------------------------------------------------------------------5.Create & Join Channel & Update the anchor peers & Install & Instantiate Chaincode
#open a second terminal to execute the CLI calls
login as: root
root@192.168.1.167's password:
Last login: Mon Mar 5 23:06:09 2018 from 192.168.1.88
[root@cloud0 ~]# docker exec -it cli bash
root@570ab0a44923:/opt/gopath/src/github.com/hyperledger/fabric/peer# pwd
/opt/gopath/src/github.com/hyperledger/fabric/peer
root@570ab0a44923:/# ll /opt/ && du /opt/gopath/
total 0
drwxr-xr-x. 1 root root 20 Feb 16 22:40 ./
drwxr-xr-x. 1 root root 40 Mar 7 06:26 ../
drwxrwxr-x. 11 root root 265 Oct 25 18:40 go/
drwxrwxr-x. 1 root root 17 Mar 7 06:26 gopath/
28 /opt/gopath/src/github.com/hyperledger/fabric/peer/channel-artifacts
44 /opt/gopath/src/github.com/hyperledger/fabric/peer/scripts
8 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/ca
8 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/tlsca
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/msp/cacerts
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/msp/tlscacerts
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/msp/admincerts
16 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/msp
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/cacerts
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/tlscacerts
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/keystore
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/signcerts
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/admincerts
24 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp
12 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls
36 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/cacerts
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/tlscacerts
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/keystore
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/signcerts
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/admincerts
24 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp
12 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls
36 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer1.org1.example.com
72 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/admincerts
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/cacerts
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/tlscacerts
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/signcerts
20 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp
12 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/User1@org1.example.com/tls
32 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/User1@org1.example.com
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/admincerts
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/cacerts
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/tlscacerts
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts
20 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
12 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls
32 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com
64 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users
168 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com
8 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/ca
8 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/tlsca
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/msp/cacerts
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/msp/tlscacerts
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/msp/admincerts
16 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/msp
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/cacerts
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/tlscacerts
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/keystore
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/signcerts
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/admincerts
24 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp
12 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls
36 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/cacerts
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/tlscacerts
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/keystore
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/signcerts
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/admincerts
24 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp
12 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls
36 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer1.org2.example.com
72 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/admincerts
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/cacerts
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/tlscacerts
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/keystore
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/signcerts
20 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp
12 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/User1@org2.example.com/tls
32 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/User1@org2.example.com
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/admincerts
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/cacerts
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/tlscacerts
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/keystore
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/signcerts
20 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp
12 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/Admin@org2.example.com/tls
32 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/Admin@org2.example.com
64 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users
168 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com
336 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations
8 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/ca
8 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/tlsca
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/msp/cacerts
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/msp/tlscacerts
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/msp/admincerts
12 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/msp
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/keystore
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/signcerts
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/admincerts
20 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp
12 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/tls
32 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com
32 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/users/Admin@example.com/msp/admincerts
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/users/Admin@example.com/msp/cacerts
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/users/Admin@example.com/msp/tlscacerts
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/users/Admin@example.com/msp/keystore
4 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/users/Admin@example.com/msp/signcerts
20 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/users/Admin@example.com/msp
12 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/users/Admin@example.com/tls
32 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/users/Admin@example.com
32 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/users
92 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com
92 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations
428 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto
516 /opt/gopath/src/github.com/hyperledger/fabric/peer
516 /opt/gopath/src/github.com/hyperledger/fabric
516 /opt/gopath/src/github.com/hyperledger
252 /opt/gopath/src/github.com/chaincode/abac/go/vendor/github.com/golang/protobuf/proto
256 /opt/gopath/src/github.com/chaincode/abac/go/vendor/github.com/golang/protobuf
256 /opt/gopath/src/github.com/chaincode/abac/go/vendor/github.com/golang
8 /opt/gopath/src/github.com/chaincode/abac/go/vendor/github.com/hyperledger/fabric/common/attrmgr
8 /opt/gopath/src/github.com/chaincode/abac/go/vendor/github.com/hyperledger/fabric/common
20 /opt/gopath/src/github.com/chaincode/abac/go/vendor/github.com/hyperledger/fabric/core/chaincode/lib/cid
20 /opt/gopath/src/github.com/chaincode/abac/go/vendor/github.com/hyperledger/fabric/core/chaincode/lib
20 /opt/gopath/src/github.com/chaincode/abac/go/vendor/github.com/hyperledger/fabric/core/chaincode
20 /opt/gopath/src/github.com/chaincode/abac/go/vendor/github.com/hyperledger/fabric/core
40 /opt/gopath/src/github.com/chaincode/abac/go/vendor/github.com/hyperledger/fabric
40 /opt/gopath/src/github.com/chaincode/abac/go/vendor/github.com/hyperledger
24 /opt/gopath/src/github.com/chaincode/abac/go/vendor/github.com/pkg/errors
24 /opt/gopath/src/github.com/chaincode/abac/go/vendor/github.com/pkg
320 /opt/gopath/src/github.com/chaincode/abac/go/vendor/github.com
324 /opt/gopath/src/github.com/chaincode/abac/go/vendor
332 /opt/gopath/src/github.com/chaincode/abac/go
332 /opt/gopath/src/github.com/chaincode/abac
8 /opt/gopath/src/github.com/chaincode/chaincode_example02/go
8 /opt/gopath/src/github.com/chaincode/chaincode_example02/node
16 /opt/gopath/src/github.com/chaincode/chaincode_example02
8 /opt/gopath/src/github.com/chaincode/fabcar/go
12 /opt/gopath/src/github.com/chaincode/fabcar/node
20 /opt/gopath/src/github.com/chaincode/fabcar
4 /opt/gopath/src/github.com/chaincode/marbles02/go/META-INF/statedb/couchdb/indexes
4 /opt/gopath/src/github.com/chaincode/marbles02/go/META-INF/statedb/couchdb
4 /opt/gopath/src/github.com/chaincode/marbles02/go/META-INF/statedb
4 /opt/gopath/src/github.com/chaincode/marbles02/go/META-INF
32 /opt/gopath/src/github.com/chaincode/marbles02/go
4 /opt/gopath/src/github.com/chaincode/marbles02/node/META-INF/statedb/couchdb/indexes
4 /opt/gopath/src/github.com/chaincode/marbles02/node/META-INF/statedb/couchdb
4 /opt/gopath/src/github.com/chaincode/marbles02/node/META-INF/statedb
4 /opt/gopath/src/github.com/chaincode/marbles02/node/META-INF
24 /opt/gopath/src/github.com/chaincode/marbles02/node
56 /opt/gopath/src/github.com/chaincode/marbles02
4 /opt/gopath/src/github.com/chaincode/sacc
428 /opt/gopath/src/github.com/chaincode
944 /opt/gopath/src/github.com
944 /opt/gopath/src
944 /opt/gopath/
root@c5223d4ac3d5:/opt/gopath/src/github.com/hyperledger/fabric/peer# export CHANNEL_NAME=mychannel
root@e81eb53f07f4:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer
Usage:
peer [flags]
peer [command]
Available Commands:
chaincode Operate a chaincode: install|instantiate|invoke|package|query|signpackage|upgrade|list.
channel Operate a channel: create|fetch|join|list|update|signconfigtx|getinfo.
logging Log levels: getlevel|setlevel|revertlevels.
node Operate a peer node: start|status.
version Print fabric peer version.
Flags:
-h, --help help for peer
--logging-level string Default logging level and overrides, see core.yaml for full syntax
-v, --version Display current version of fabric peer server
Use "peer [command] --help" for more information about a command.
2018-03-07 08:31:13.418 UTC [main] main -> INFO 001 Exiting.....
root@e81eb53f07f4:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer -v
peer:
Version: 1.1.0-rc1
Go version: go1.9.2
OS/Arch: linux/amd64
Experimental features: false
Chaincode:
Base Image Version: 0.4.6
Base Docker Namespace: hyperledger
Base Docker Label: org.hyperledger.fabric
Docker Namespace: hyperledger
2018-03-07 08:31:47.670 UTC [main] main -> INFO 001 Exiting.....
root@e81eb53f07f4:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer node status
status:STARTED
2018-03-07 08:33:45.161 UTC [main] main -> INFO 001 Exiting.....
root@e81eb53f07f4:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer channel list
2018-03-07 08:36:01.204 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
Channels peers has joined:
2018-03-07 08:36:01.208 UTC [main] main -> INFO 002 Exiting.....
root@e81eb53f07f4:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer chaincode list --installed
Get installed chaincodes on peer:
2018-03-07 08:43:12.883 UTC [main] main -> INFO 001 Exiting.....
root@e81eb53f07f4:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer chaincode list --instantiated -C mychannel
Error: Error endorsing chaincode: rpc error: code = Unknown desc = access denied: channel [mychannel] creator org [Org1MSP]
Usage:
peer chaincode list [flags]
Flags:
-C, --channelID string The channel on which this command should be executed
--installed Get the installed chaincodes on a peer
--instantiated Get the instantiated chaincodes on a channel
Global Flags:
--cafile string Path to file containing PEM-encoded trusted certificate(s) for the ordering endpoint
--certfile string Path to file containing PEM-encoded X509 public key to use for mutual TLS communication with the orderer endpoint
--clientauth Use mutual TLS when communicating with the orderer endpoint
--keyfile string Path to file containing PEM-encoded private key to use for mutual TLS communication with the orderer endpoint
--logging-level string Default logging level and overrides, see core.yaml for full syntax
-o, --orderer string Ordering service endpoint
--ordererTLSHostnameOverride string The hostname override to use when validating the TLS connection to the orderer.
--tls Use TLS when communicating with the orderer endpoint
--transient string Transient map of arguments in JSON encoding
-v, --version Display current version of fabric peer server
root@e81eb53f07f4:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer channel getinfo -c mychannel
2018-03-07 08:44:15.524 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
Error: failed sending proposal: rpc error: code = Unknown desc = chaincode error (status: 500, message: Invalid chain ID, mychannel)
Usage:
peer channel getinfo [flags]
Flags:
-c, --channelID string In case of a newChain command, the channel ID to create.
Global Flags:
--cafile string Path to file containing PEM-encoded trusted certificate(s) for the ordering endpoint
--certfile string Path to file containing PEM-encoded X509 public key to use for mutual TLS communication with the orderer endpoint
--clientauth Use mutual TLS when communicating with the orderer endpoint
--keyfile string Path to file containing PEM-encoded private key to use for mutual TLS communication with the orderer endpoint
--logging-level string Default logging level and overrides, see core.yaml for full syntax
-o, --orderer string Ordering service endpoint
--ordererTLSHostnameOverride string The hostname override to use when validating the TLS connection to the orderer.
--tls Use TLS when communicating with the orderer endpoint
-v, --version Display current version of fabric peer server
root@c5223d4ac3d5:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer channel create -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./channel-artifacts/channel.tx --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
2018-03-05 15:41:41.059 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
2018-03-05 15:41:41.091 UTC [channelCmd] InitCmdFactory -> INFO 002 Endorser and orderer connections initialized
2018-03-05 15:41:41.295 UTC [main] main -> INFO 003 Exiting.....
root@e81eb53f07f4:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer channel list
2018-03-07 08:47:54.637 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
Channels peers has joined:
2018-03-07 08:47:54.640 UTC [main] main -> INFO 002 Exiting.....
root@570ab0a44923:/opt/gopath/src/github.com/hyperledger/fabric/peer# ll
total 16
drwxr-xr-x. 5 root root 83 Mar 7 06:37 ./
drwxr-xr-x. 3 root root 18 Mar 7 06:26 ../
drwxr-xr-x. 2 root root 111 Mar 7 06:25 channel-artifacts/
drwxr-xr-x. 4 root root 59 Mar 7 06:18 crypto/
-rw-r--r--. 1 root root 15688 Mar 7 06:37 mychannel.block
drwxr-xr-x. 2 root root 168 Mar 5 13:33 scripts/
root@c5223d4ac3d5:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer channel join -b mychannel.block
2018-03-05 15:42:52.304 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
2018-03-05 15:42:52.614 UTC [channelCmd] executeJoin -> INFO 002 Successfully submitted proposal to join channel
2018-03-05 15:42:52.615 UTC [main] main -> INFO 003 Exiting.....
root@c5223d4ac3d5:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer channel list
2018-03-07 08:48:44.296 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
Channels peers has joined:
mychannel
2018-03-07 08:48:44.299 UTC [main] main -> INFO 002 Exiting.....
root@c5223d4ac3d5:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer channel getinfo -c mychannel
2018-03-07 09:09:45.448 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
Blockchain info: {"height":1,"currentBlockHash":"TP5ydUJ3S4cikMOaS6Yv6srSlOYCW+ilf2eG9QsJdkU="}
2018-03-07 09:09:45.452 UTC [main] main -> INFO 002 Exiting.....
root@c5223d4ac3d5:/opt/gopath/src/github.com/hyperledger/fabric/peer# CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp CORE_PEER_ADDRESS=peer0.org2.example.com:7051 CORE_PEER_LOCALMSPID="Org2MSP" CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt peer channel join -b mychannel.block
2018-03-05 15:43:51.310 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
2018-03-05 15:43:51.598 UTC [channelCmd] executeJoin -> INFO 002 Successfully submitted proposal to join channel
2018-03-05 15:43:51.598 UTC [main] main -> INFO 003 Exiting.....
root@c5223d4ac3d5:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer channel update -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./channel-artifacts/Org1MSPanchors.tx --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem #Update the channel definition to define the anchor peer for Org1 as peer0.org1.example.com
2018-03-05 15:44:19.513 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
2018-03-05 15:44:19.526 UTC [channelCmd] update -> INFO 002 Successfully submitted channel update
2018-03-05 15:44:19.526 UTC [main] main -> INFO 003 Exiting.....
root@c5223d4ac3d5:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer channel getinfo -c mychannel
2018-03-07 09:14:12.042 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
Blockchain info: {"height":2,"currentBlockHash":"Drfz9bMeudAO009jZ5L7ZF7rAg/7AcyH4YaW5sUXgvA=","previousBlockHash":"TP5ydUJ3S4cikMOaS6Yv6srSlOYCW+ilf2eG9QsJdkU="}
2018-03-07 09:14:12.046 UTC [main] main -> INFO 002 Exiting.....
root@c5223d4ac3d5:/opt/gopath/src/github.com/hyperledger/fabric/peer# CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp CORE_PEER_ADDRESS=peer0.org2.example.com:7051 CORE_PEER_LOCALMSPID="Org2MSP" CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt peer channel update -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./channel-artifacts/Org2MSPanchors.tx --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
2018-03-07 06:42:07.274 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
2018-03-07 06:42:07.308 UTC [channelCmd] update -> INFO 002 Successfully submitted channel update
2018-03-07 06:42:07.308 UTC [main] main -> INFO 003 Exiting.....
root@c5223d4ac3d5:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer channel getinfo -c mychannel
2018-03-07 09:19:51.580 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
Blockchain info: {"height":3,"currentBlockHash":"6uuBUC02a36XIpjYQArDEuI0JickSCeVx8n68N3eSKs=","previousBlockHash":"Drfz9bMeudAO009jZ5L7ZF7rAg/7AcyH4YaW5sUXgvA="}
2018-03-07 09:19:51.584 UTC [main] main -> INFO 002 Exiting.....
root@570ab0a44923:~# cat /opt/gopath/src/github.com/chaincode/chaincode_example02/go/chaincode_example02.go
package main
import (
"fmt"
"strconv"
"github.com/hyperledger/fabric/core/chaincode/shim"
pb "github.com/hyperledger/fabric/protos/peer"
)
// SimpleChaincode example simple Chaincode implementation
type SimpleChaincode struct {
}
func (t *SimpleChaincode) Init(stub shim.ChaincodeStubInterface) pb.Response {
fmt.Println("ex02 Init")
_, args := stub.GetFunctionAndParameters()
var A, B string // Entities
var Aval, Bval int // Asset holdings
var err error
if len(args) != 4 {
return shim.Error("Incorrect number of arguments. Expecting 4")
}
// Initialize the chaincode
A = args[0]
Aval, err = strconv.Atoi(args[1])
if err != nil {
return shim.Error("Expecting integer value for asset holding")
}
B = args[2]
Bval, err = strconv.Atoi(args[3])
if err != nil {
return shim.Error("Expecting integer value for asset holding")
}
fmt.Printf("Aval = %d, Bval = %d\n", Aval, Bval)
// Write the state to the ledger
err = stub.PutState(A, []byte(strconv.Itoa(Aval)))
if err != nil {
return shim.Error(err.Error())
}
err = stub.PutState(B, []byte(strconv.Itoa(Bval)))
if err != nil {
return shim.Error(err.Error())
}
return shim.Success(nil)
}
func (t *SimpleChaincode) Invoke(stub shim.ChaincodeStubInterface) pb.Response {
fmt.Println("ex02 Invoke")
function, args := stub.GetFunctionAndParameters()
if function == "invoke" {
// Make payment of X units from A to B
return t.invoke(stub, args)
} else if function == "delete" {
// Deletes an entity from its state
return t.delete(stub, args)
} else if function == "query" {
// the old "Query" is now implemtned in invoke
return t.query(stub, args)
}
return shim.Error("Invalid invoke function name. Expecting \"invoke\" \"delete\" \"query\"")
}
// Transaction makes payment of X units from A to B
func (t *SimpleChaincode) invoke(stub shim.ChaincodeStubInterface, args []string) pb.Response {
var A, B string // Entities
var Aval, Bval int // Asset holdings
var X int // Transaction value
var err error
if len(args) != 3 {
return shim.Error("Incorrect number of arguments. Expecting 3")
}
A = args[0]
B = args[1]
// Get the state from the ledger
// TODO: will be nice to have a GetAllState call to ledger
Avalbytes, err := stub.GetState(A)
if err != nil {
return shim.Error("Failed to get state")
}
if Avalbytes == nil {
return shim.Error("Entity not found")
}
Aval, _ = strconv.Atoi(string(Avalbytes))
Bvalbytes, err := stub.GetState(B)
if err != nil {
return shim.Error("Failed to get state")
}
if Bvalbytes == nil {
return shim.Error("Entity not found")
}
Bval, _ = strconv.Atoi(string(Bvalbytes))
// Perform the execution
X, err = strconv.Atoi(args[2])
if err != nil {
return shim.Error("Invalid transaction amount, expecting a integer value")
}
Aval = Aval - X
Bval = Bval + X
fmt.Printf("Aval = %d, Bval = %d\n", Aval, Bval)
// Write the state back to the ledger
err = stub.PutState(A, []byte(strconv.Itoa(Aval)))
if err != nil {
return shim.Error(err.Error())
}
err = stub.PutState(B, []byte(strconv.Itoa(Bval)))
if err != nil {
return shim.Error(err.Error())
}
return shim.Success(nil)
}
// Deletes an entity from state
func (t *SimpleChaincode) delete(stub shim.ChaincodeStubInterface, args []string) pb.Response {
if len(args) != 1 {
return shim.Error("Incorrect number of arguments. Expecting 1")
}
A := args[0]
// Delete the key from the state in ledger
err := stub.DelState(A)
if err != nil {
return shim.Error("Failed to delete state")
}
return shim.Success(nil)
}
// query callback representing the query of a chaincode
func (t *SimpleChaincode) query(stub shim.ChaincodeStubInterface, args []string) pb.Response {
var A string // Entities
var err error
if len(args) != 1 {
return shim.Error("Incorrect number of arguments. Expecting name of the person to query")
}
A = args[0]
// Get the state from the ledger
Avalbytes, err := stub.GetState(A)
if err != nil {
jsonResp := "{\"Error\":\"Failed to get state for " + A + "\"}"
return shim.Error(jsonResp)
}
if Avalbytes == nil {
jsonResp := "{\"Error\":\"Nil amount for " + A + "\"}"
return shim.Error(jsonResp)
}
jsonResp := "{\"Name\":\"" + A + "\",\"Amount\":\"" + string(Avalbytes) + "\"}"
fmt.Printf("Query Response:%s\n", jsonResp)
return shim.Success(Avalbytes)
}
func main() {
err := shim.Start(new(SimpleChaincode))
if err != nil {
fmt.Printf("Error starting Simple chaincode: %s", err)
}
}
root@c5223d4ac3d5:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer chaincode install -n mycc -v 1.0 -p github.com/chaincode/chaincode_example02/go
2018-03-05 15:45:51.024 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 001 Using default escc
2018-03-05 15:45:51.024 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc
2018-03-05 15:45:51.167 UTC [main] main -> INFO 003 Exiting.....
root@e81eb53f07f4:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer chaincode list --installed
Get installed chaincodes on peer:
Name: mycc, Version: 1.0, Path: github.com/chaincode/chaincode_example02/go, Id: 476fca1a949274001971f1ec2836cb09321f0b71268b3762d68931c93f218134
2018-03-07 09:23:14.943 UTC [main] main -> INFO 001 Exiting.....
root@e81eb53f07f4:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer chaincode list --instantiated -C mychannel
Get instantiated chaincodes on channel mychannel:
2018-03-07 09:26:24.038 UTC [main] main -> INFO 001 Exiting.....
[root@cloud0 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e81eb53f07f4 hyperledger/fabric-tools:latest "/bin/bash" About an hour ago Up About an hour cli
a6980adea2ac hyperledger/fabric-peer:latest "peer node start" About an hour ago Up About an hour 0.0.0.0:9051->7051/tcp, 0.0.0.0:9053->7053/tcp peer0.org2.example.com
0dcfa3a69055 hyperledger/fabric-peer:latest "peer node start" About an hour ago Up About an hour 0.0.0.0:8051->7051/tcp, 0.0.0.0:8053->7053/tcp peer1.org1.example.com
ce60a72c3a35 hyperledger/fabric-peer:latest "peer node start" About an hour ago Up About an hour 0.0.0.0:7051->7051/tcp, 0.0.0.0:7053->7053/tcp peer0.org1.example.com
f2a733c76ab0 hyperledger/fabric-orderer:latest "orderer" About an hour ago Up About an hour 0.0.0.0:7050->7050/tcp orderer.example.com
c387f42a2f64 hyperledger/fabric-peer:latest "peer node start" About an hour ago Up About an hour 0.0.0.0:10051->7051/tcp, 0.0.0.0:10053->7053/tcp peer1.org2.example.com
root@c5223d4ac3d5:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer chaincode instantiate -o orderer.example.com:7050 --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C $CHANNEL_NAME -n mycc -v 1.0 -c '{"Args":["init","a", "100", "b","200"]}' -P "OR ('Org1MSP.peer','Org2MSP.peer')"
2018-03-05 15:46:15.731 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 001 Using default escc
2018-03-05 15:46:15.732 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc
2018-03-05 15:46:27.169 UTC [main] main -> INFO 003 Exiting.....
root@e81eb53f07f4:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer chaincode list --instantiated -C mychannel
Get instantiated chaincodes on channel mychannel:
Name: mycc, Version: 1.0, Path: github.com/chaincode/chaincode_example02/go, Escc: escc, Vscc: vscc
2018-03-07 09:31:30.684 UTC [main] main -> INFO 001 Exiting.....
[root@cloud0 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e4f6ff1c9d21 dev-peer0.org1.example.com-mycc-1.0-384f11f484b9302df90b453200cfb25174305fce8f53f4e94d45ee3b6cab0ce9 "chaincode -peer.adda|" 7 seconds ago Up 21 minutes dev-peer0.org1.example.com-mycc-1.0
570ab0a44923 hyperledger/fabric-tools:latest "/bin/bash" About an hour ago Up About an hour cli
98cb360fcc59 hyperledger/fabric-peer:latest "peer node start" About an hour ago Up About an hour 0.0.0.0:8051->7051/tcp, 0.0.0.0:8053->7053/tcp peer1.org1.example.com
c6c7bf76e483 hyperledger/fabric-peer:latest "peer node start" About an hour ago Up About an hour 0.0.0.0:7051->7051/tcp, 0.0.0.0:7053->7053/tcp peer0.org1.example.com
8e4dd03348fe hyperledger/fabric-peer:latest "peer node start" About an hour ago Up About an hour 0.0.0.0:9051->7051/tcp, 0.0.0.0:9053->7053/tcp peer0.org2.example.com
3f3aa7a9ac7f hyperledger/fabric-peer:latest "peer node start" About an hour ago Up About an hour 0.0.0.0:10051->7051/tcp, 0.0.0.0:10053->7053/tcp peer1.org2.example.com
bf2f9889ec69 hyperledger/fabric-orderer:latest "orderer" About an hour ago Up About an hour 0.0.0.0:7050->7050/tcp orderer.example.com
[root@cloud0 ~]# docker logs dev-peer0.org1.example.com-mycc-1.0
ex02 Init
Aval = 100, Bval = 200
root@c5223d4ac3d5:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer chaincode query -C $CHANNEL_NAME -n mycc -c '{"Args":["query","a"]}'
2018-03-05 15:47:11.577 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 001 Using default escc
2018-03-05 15:47:11.577 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc
Query Result: 100
2018-03-05 15:47:12.748 UTC [main] main -> INFO 003 Exiting.....
root@c5223d4ac3d5:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer chaincode invoke -o orderer.example.com:7050 --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C $CHANNEL_NAME -n mycc -c '{"Args":["invoke","a","b","10"]}'
2018-03-05 15:47:27.221 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 001 Using default escc
2018-03-05 15:47:27.221 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc
2018-03-05 15:47:28.567 UTC [chaincodeCmd] chaincodeInvokeOrQuery -> INFO 003 Chaincode invoke successful. result: status:200
2018-03-05 15:47:28.567 UTC [main] main -> INFO 004 Exiting.....
root@c5223d4ac3d5:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer chaincode query -C $CHANNEL_NAME -n mycc -c '{"Args":["query","a"]}'
2018-03-05 15:47:42.409 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 001 Using default escc
2018-03-05 15:47:42.409 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc
Query Result: 90
2018-03-05 15:47:43.631 UTC [main] main -> INFO 003 Exiting.....
[root@cloud0 ~]# docker logs dev-peer0.org1.example.com-mycc-1.0
ex02 Invoke
Query Response:{"Name":"a","Amount":"90"}
root@e81eb53f07f4:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer channel getinfo -c mychannel
2018-03-07 09:39:07.960 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
Blockchain info: {"height":6,"currentBlockHash":"6+u0iyQrH+Krk6m1JknJbu5gyP9vf4lQ5GE8ABmWoyw=","previousBlockHash":"c+QTKh1HyEjYcemh5+dr/9kCrN7xN8z8MT0PUM9dmwk="}
2018-03-07 09:39:07.963 UTC [main] main -> INFO 002 Exiting.....
root@c5223d4ac3d5:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer chaincode invoke -o orderer.example.com:7050 --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C $CHANNEL_NAME -n mycc -c '{"Args":["invoke","a","b","10"]}'
2018-03-05 15:47:27.221 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 001 Using default escc
2018-03-05 15:47:27.221 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc
2018-03-05 15:47:28.567 UTC [chaincodeCmd] chaincodeInvokeOrQuery -> INFO 003 Chaincode invoke successful. result: status:200
2018-03-05 15:47:28.567 UTC [main] main -> INFO 004 Exiting.....
root@e81eb53f07f4:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer channel getinfo -c mychannel
2018-03-07 09:41:32.495 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
Blockchain info: {"height":7,"currentBlockHash":"EFtphxv59+fATQPR/iCEq64wiCNu8jp0TciklvxN9Ho=","previousBlockHash":"6+u0iyQrH+Krk6m1JknJbu5gyP9vf4lQ5GE8ABmWoyw="}
2018-03-07 09:41:32.499 UTC [main] main -> INFO 002 Exiting.....
[root@cloud0 ~]# docker logs dev-peer0.org1.example.com-mycc-1.0
ex02 Invoke
Aval = 80, Bval = 220
------------------------------------------------------------------------------------------------------------------X1.fabcar项目调试
参考:https://hyperledger-fabric.readthedocs.io/en/latest/write_first_app.html
[root@cloud0 ~]# yum install -y epel-release && yum install -y gcc gcc-c++ perl automake autoconf libtool make yum-plugin-priorities sudo && mv /etc/localtime /etc/localtime.bak && ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && yum install -y wget net-tools
[root@cloud0 ~]# cd /data/blockchain/fabric-samples/fabcar/
[root@cloud0 fabcar]# ll
total 28
-rw-r--r--. 1 root root 2809 Mar 5 21:33 enrollAdmin.js
-rw-r--r--. 1 root root 6353 Mar 5 21:33 invoke.js
-rw-r--r--. 1 root root 537 Mar 5 21:33 package.json
-rw-r--r--. 1 root root 2606 Mar 5 21:33 query.js
-rw-r--r--. 1 root root 3147 Mar 5 21:33 registerUser.js
-rwxr-xr-x. 1 root root 2070 Mar 5 21:33 startFabric.sh
[root@cloud0 ~]# docker rm -f $(docker ps -aq)
[root@cloud0 ~]# docker network prune
WARNING! This will remove all networks not used by at least one container.
Are you sure you want to continue? [y/N] y
Deleted Networks:
net_byfn
[root@cloud0 ~]# cd /data/blockchain/fabric-samples/fabcar
[root@cloud0 fabcar]# npm i -g npm
[root@cloud0 fabcar]# npm install
[root@cloud0 fabcar]# ./startFabric.sh
# don't rewrite paths for Windows Git Bash users
export MSYS_NO_PATHCONV=1
docker-compose -f docker-compose.yml down
.Removing network net_basic
WARNING: Network net_basic not found.
docker-compose -f docker-compose.yml up -d ca.example.com orderer.example.com peer0.org1.example.com couchdb
Creating couchdb ... done
Creating peer0.org1.example.com ... done
Creating orderer.example.com ...
Creating ca.example.com ...
Creating peer0.org1.example.com ...
# wait for Hyperledger Fabric to start
# incase of errors when running later commands, issue export FABRIC_START_TIMEOUT=<larger number>
export FABRIC_START_TIMEOUT=10
#echo ${FABRIC_START_TIMEOUT}
sleep ${FABRIC_START_TIMEOUT}
# Create the channel
docker exec -e "CORE_PEER_LOCALMSPID=Org1MSP" -e "CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp/users/Admin@org1.example.com/msp" peer0.org1.example.com peer channel create -o orderer.example.com:7050 -c mychannel -f /etc/hyperledger/configtx/channel.tx
2018-03-10 05:20:19.860 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
2018-03-10 05:20:19.912 UTC [channelCmd] InitCmdFactory -> INFO 002 Endorser and orderer connections initialized
2018-03-10 05:20:20.117 UTC [main] main -> INFO 003 Exiting.....
# Join peer0.org1.example.com to the channel.
docker exec -e "CORE_PEER_LOCALMSPID=Org1MSP" -e "CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp/users/Admin@org1.example.com/msp" peer0.org1.example.com peer channel join -b mychannel.block
2018-03-10 05:20:20.319 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
2018-03-10 05:20:20.794 UTC [channelCmd] executeJoin -> INFO 002 Successfully submitted proposal to join channel
2018-03-10 05:20:20.794 UTC [main] main -> INFO 003 Exiting.....
Creating cli ... done
2018-03-10 05:20:22.493 UTC [msp] GetLocalMSP -> DEBU 001 Returning existing local MSP
2018-03-10 05:20:22.513 UTC [msp] GetDefaultSigningIdentity -> DEBU 002 Obtaining default signing identity
2018-03-10 05:20:22.513 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 003 Using default escc
2018-03-10 05:20:22.513 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 004 Using default vscc
2018-03-10 05:20:22.513 UTC [chaincodeCmd] getChaincodeSpec -> DEBU 005 java chaincode disabled
2018-03-10 05:20:22.543 UTC [golang-platform] getCodeFromFS -> DEBU 006 getCodeFromFS github.com/fabcar/go
2018-03-10 05:20:22.641 UTC [golang-platform] func1 -> DEBU 007 Discarding GOROOT package bytes
2018-03-10 05:20:22.641 UTC [golang-platform] func1 -> DEBU 008 Discarding GOROOT package encoding/json
2018-03-10 05:20:22.641 UTC [golang-platform] func1 -> DEBU 009 Discarding GOROOT package fmt
2018-03-10 05:20:22.641 UTC [golang-platform] func1 -> DEBU 00a Discarding provided package github.com/hyperledger/fabric/core/chaincode/shim
2018-03-10 05:20:22.641 UTC [golang-platform] func1 -> DEBU 00b Discarding provided package github.com/hyperledger/fabric/protos/peer
2018-03-10 05:20:22.641 UTC [golang-platform] func1 -> DEBU 00c Discarding GOROOT package strconv
2018-03-10 05:20:22.641 UTC [golang-platform] GetDeploymentPayload -> DEBU 00d done
2018-03-10 05:20:22.642 UTC [container] WriteFileToPackage -> DEBU 00e Writing file to tarball: src/github.com/fabcar/go/fabcar.go
2018-03-10 05:20:22.643 UTC [msp/identity] Sign -> DEBU 00f Sign: plaintext: 0A9C070A5C08031A0C0896D68DD50510...F1F3DF000000FFFF06BA999800200000
2018-03-10 05:20:22.643 UTC [msp/identity] Sign -> DEBU 010 Sign: digest: E2DB262C41C218C642DED76C58FAC0C73855C59BA26E4FC96353493EEABF861E
2018-03-10 05:20:22.838 UTC [chaincodeCmd] install -> DEBU 011 Installed remotely response:<status:200 payload:"OK" >
2018-03-10 05:20:22.838 UTC [main] main -> INFO 012 Exiting.....
2018-03-10 05:20:23.005 UTC [msp] GetLocalMSP -> DEBU 001 Returning existing local MSP
2018-03-10 05:20:23.005 UTC [msp] GetDefaultSigningIdentity -> DEBU 002 Obtaining default signing identity
2018-03-10 05:20:23.006 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 003 Using default escc
2018-03-10 05:20:23.006 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 004 Using default vscc
2018-03-10 05:20:23.006 UTC [chaincodeCmd] getChaincodeSpec -> DEBU 005 java chaincode disabled
2018-03-10 05:20:23.006 UTC [msp/identity] Sign -> DEBU 006 Sign: plaintext: 0AA6070A6608031A0B0897D68DD50510...324D53500A04657363630A0476736363
2018-03-10 05:20:23.006 UTC [msp/identity] Sign -> DEBU 007 Sign: digest: 8A1426A7130B1C35245125C15B74FF1958F1DD8F10D69D906461E51648C85036
2018-03-10 05:20:34.738 UTC [msp/identity] Sign -> DEBU 008 Sign: plaintext: 0AA6070A6608031A0B0897D68DD50510...3BF79F1C14413B86C07D4DBB7AFCAC1A
2018-03-10 05:20:34.738 UTC [msp/identity] Sign -> DEBU 009 Sign: digest: ADE33FD7CF94AB5A1E6A162C029CF012338542323B72966DCA091A5EBD4690BC
2018-03-10 05:20:34.740 UTC [main] main -> INFO 00a Exiting.....
2018-03-10 05:20:44.939 UTC [msp] GetLocalMSP -> DEBU 001 Returning existing local MSP
2018-03-10 05:20:44.939 UTC [msp] GetDefaultSigningIdentity -> DEBU 002 Obtaining default signing identity
2018-03-10 05:20:44.940 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 003 Using default escc
2018-03-10 05:20:44.940 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 004 Using default vscc
2018-03-10 05:20:44.940 UTC [chaincodeCmd] getChaincodeSpec -> DEBU 005 java chaincode disabled
2018-03-10 05:20:44.941 UTC [msp/identity] Sign -> DEBU 006 Sign: plaintext: 0AA9070A6908031A0C08ACD68DD50510...1A0E0A0A696E69744C65646765720A00
2018-03-10 05:20:44.941 UTC [msp/identity] Sign -> DEBU 007 Sign: digest: 7B197C037ECF16B2830AB36B8F1A1A86E8C5A515F8574B56EC82337D33D78414
2018-03-10 05:20:46.424 UTC [msp/identity] Sign -> DEBU 008 Sign: plaintext: 0AA9070A6908031A0C08ACD68DD50510...D2E52DF9A1801B3BDFE3587947DC75AA
2018-03-10 05:20:46.425 UTC [msp/identity] Sign -> DEBU 009 Sign: digest: 47F89189F50D31543ACB05ACCE830048849BA9D991DD24139CD175CBFABEBF46
2018-03-10 05:20:46.426 UTC [chaincodeCmd] chaincodeInvokeOrQuery -> DEBU 00a ESCC invoke result: version:1 response:<status:200 message:"OK" > payload:"\n ;\005M\r\316\251\030.\241\026\347u\021Wf\3073I\255d\215\020\343L3\266\354\343=nv\343\022\267\006\n\240\006\022\205\006\n\006fabcar\022\372\005\032J\n\004CAR0\032B{\"make\":\"Toyota\",\"model\":\"Prius\",\"colour\":\"blue\",\"owner\":\"Tomoko\"}\032G\n\004CAR1\032?{\"make\":\"Ford\",\"model\":\"Mustang\",\"colour\":\"red\",\"owner\":\"Brad\"}\032N\n\004CAR2\032F{\"make\":\"Hyundai\",\"model\":\"Tucson\",\"colour\":\"green\",\"owner\":\"Jin Soo\"}\032N\n\004CAR3\032F{\"make\":\"Volkswagen\",\"model\":\"Passat\",\"colour\":\"yellow\",\"owner\":\"Max\"}\032G\n\004CAR4\032?{\"make\":\"Tesla\",\"model\":\"S\",\"colour\":\"black\",\"owner\":\"Adriana\"}\032K\n\004CAR5\032C{\"make\":\"Peugeot\",\"model\":\"205\",\"colour\":\"purple\",\"owner\":\"Michel\"}\032H\n\004CAR6\032@{\"make\":\"Chery\",\"model\":\"S22L\",\"colour\":\"white\",\"owner\":\"Aarav\"}\032H\n\004CAR7\032@{\"make\":\"Fiat\",\"model\":\"Punto\",\"colour\":\"violet\",\"owner\":\"Pari\"}\032J\n\004CAR8\032B{\"make\":\"Tata\",\"model\":\"Nano\",\"colour\":\"indigo\",\"owner\":\"Valeria\"}\032M\n\004CAR9\032E{\"make\":\"Holden\",\"model\":\"Barina\",\"colour\":\"brown\",\"owner\":\"Shotaro\"}\022\026\n\004lscc\022\016\n\014\n\006fabcar\022\002\010\001\032\003\010\310\001\"\r\022\006fabcar\032\0031.0" endorsement:<endorser:"\n\007Org1MSP\022\226\006-----BEGIN CERTIFICATE-----\nMIICGjCCAcCgAwIBAgIRAPlwF/rUZUP9mqN4wSml4iswCgYIKoZIzj0EAwIwczEL\nMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG\ncmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh\nLm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwODMxMDkxNDMyWhcNMjcwODI5MDkxNDMy\nWjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN\nU2FuIEZyYW5jaXNjbzEfMB0GA1UEAxMWcGVlcjAub3JnMS5leGFtcGxlLmNvbTBZ\nMBMGByqGSM49AgEGCCqGSM49AwEHA0IABHihxW6ks3B2+5XdbAVq3CBgxRRRZ22x\nzzpqnD86nKkz7fBElBuhlXl2K6rTxyY2OBOB0ts8keqZ93xueRGymrajTTBLMA4G\nA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIEI5qg3Ndtru\nuLoM2nAYUdFFBNMarRst3dusalc2Xkl8MAoGCCqGSM49BAMCA0gAMEUCIQD4j0Rn\ne1rrd0FSCzsR6u+IuuPK5dI/kR/bh7+VLf0TNgIgCfUtkJvfvzVEwZLFoFyjoHtr\ntvwzNUS1U0hEqIaDeo4=\n-----END CERTIFICATE-----\n" signature:"0D\002 $\217v\372\311u\226\320\034^\364\356\304 ]\027\262\370\271\370'bo\350\210\r\003\335P'\032\327\002 ;\245l\261\305\026~\034\350\2068\242\300i\202\271\322\345-\371\241\200\033;\337\343XyG\334u\252" >
2018-03-10 05:20:46.427 UTC [chaincodeCmd] chaincodeInvokeOrQuery -> INFO 00b Chaincode invoke successful. result: status:200
2018-03-10 05:20:46.427 UTC [main] main -> INFO 00c Exiting.....
Total setup execution time : 42 secs ...
Start by installing required packages run 'npm install'
Then run 'node enrollAdmin.js', then 'node registerUser'
The 'node invoke.js' will fail until it has been updated with valid arguments
The 'node query.js' may be run at anytime once the user has been registered
[root@cloud0 fabcar]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
de28e3148e5f dev-peer0.org1.example.com-fabcar-1.0-5c906e402ed29f20260ae42283216aa75549c571e2e380f3615826365d8269ba "chaincode -peer.add…" 23 seconds ago Up 22 seconds dev-peer0.org1.example.com-fabcar-1.0
1f52f7dc078d hyperledger/fabric-tools "/bin/bash" 47 seconds ago Up 46 seconds cli
1d10aa270ea3 hyperledger/fabric-peer "peer node start" About a minute ago Up 59 seconds 0.0.0.0:7051->7051/tcp, 0.0.0.0:7053->7053/tcp peer0.org1.example.com
6b79608c6bb2 hyperledger/fabric-ca "sh -c 'fabric-ca-se…" About a minute ago Up About a minute 0.0.0.0:7054->7054/tcp ca.example.com
098201ab8a09 hyperledger/fabric-couchdb "tini -- /docker-ent…" About a minute ago Up About a minute 4369/tcp, 9100/tcp, 0.0.0.0:5984->5984/tcp couchdb
31f3d11c3deb hyperledger/fabric-orderer "orderer" About a minute ago Up About a minute 0.0.0.0:7050->7050/tcp orderer.example.com
[root@cloud0 fabcar]# npm rebuild
[root@cloud0 fabcar]# node enrollAdmin.js
Store path:/data/blockchain/fabric-samples/fabcar/hfc-key-store
Successfully enrolled admin user "admin"
Assigned the admin user to the fabric client ::{"name":"admin","mspid":"Org1MSP","roles":null,"affiliation":"","enrollmentSecret":"","enrollment":{"signingIdentity":"7cacf8e26695637fcf851d1903aff657eea72427002d1fb2dc805a9ecb63e8fb","identity":{"certificate":"-----BEGIN CERTIFICATE-----\nMIICAjCCAaigAwIBAgIUTE1PEhE/Q0jNQCvm4BSFoYzPSq8wCgYIKoZIzj0EAwIw\nczELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNh\nbiBGcmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMT\nE2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTgwMzEwMDUyNDAwWhcNMTkwMzEwMDUy\nOTAwWjAhMQ8wDQYDVQQLEwZjbGllbnQxDjAMBgNVBAMTBWFkbWluMFkwEwYHKoZI\nzj0CAQYIKoZIzj0DAQcDQgAE34X8nRP5NTP/KMk94rXOFUyQaf2P+V5gm2TMuSe4\nmfMgDZY4FF0bGVwu0TevnOh6/CPYiBmuBvP3Gyxv14M0YaNsMGowDgYDVR0PAQH/\nBAQDAgeAMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFM4qj8lxyZyTSuFK301l+r9s\nQ7ZyMCsGA1UdIwQkMCKAIEI5qg3NdtruuLoM2nAYUdFFBNMarRst3dusalc2Xkl8\nMAoGCCqGSM49BAMCA0gAMEUCIQCE8abN+2pIGtEXiqPzIbtPgh+of028aLAexiaR\n877g0AIgKSACdjfEbBJQykQ35mF/fZ4Vc6+qC5dnkTqw0YzzJQA=\n-----END CERTIFICATE-----\n"}}}
[root@cloud0 fabcar]# node registerUser.js
Store path:/data/blockchain/fabric-samples/fabcar/hfc-key-store
Successfully loaded admin from persistence
Successfully registered user1 - secret:ltBqeRiRfsWL
Successfully enrolled member user "user1"
User1 was successfully registered and enrolled and is ready to intreact with the fabric network
[root@cloud0 fabcar]# node query.js
Store path:/data/blockchain/fabric-samples/fabcar/hfc-key-store
Successfully loaded user1 from persistence
Query has completed, checking results
Response is [{"Key":"CAR0", "Record":{"colour":"blue","make":"Toyota","model":"Prius","owner":"Tomoko"}},{"Key":"CAR1", "Record":{"colour":"red","make":"Ford","model":"Mustang","owner":"Brad"}},{"Key":"CAR2", "Record":{"colour":"green","make":"Hyundai","model":"Tucson","owner":"Jin Soo"}},{"Key":"CAR3", "Record":{"colour":"yellow","make":"Volkswagen","model":"Passat","owner":"Max"}},{"Key":"CAR4", "Record":{"colour":"black","make":"Tesla","model":"S","owner":"Adriana"}},{"Key":"CAR5", "Record":{"colour":"purple","make":"Peugeot","model":"205","owner":"Michel"}},{"Key":"CAR6", "Record":{"colour":"white","make":"Chery","model":"S22L","owner":"Aarav"}},{"Key":"CAR7", "Record":{"colour":"violet","make":"Fiat","model":"Punto","owner":"Pari"}},{"Key":"CAR8", "Record":{"colour":"indigo","make":"Tata","model":"Nano","owner":"Valeria"}},{"Key":"CAR9", "Record":{"colour":"brown","make":"Holden","model":"Barina","owner":"Shotaro"}}]
[root@cloud0 fabcar]# docker logs -f ca.example.com
2018/03/10 05:20:07 [INFO] Created default configuration file at /etc/hyperledger/fabric-ca-server/fabric-ca-server-config.yaml
2018/03/10 05:20:07 [INFO] Starting server in home directory: /etc/hyperledger/fabric-ca-server
2018/03/10 05:20:07 [INFO] Server Version: 1.1.0-rc1
2018/03/10 05:20:07 [INFO] Server Levels: &{Identity:1 Affiliation:1 Certificate:1}
2018/03/10 05:20:07 [DEBUG] Making server filenames absolute
2018/03/10 05:20:07 [DEBUG] Initializing default CA in directory /etc/hyperledger/fabric-ca-server
2018/03/10 05:20:07 [DEBUG] Init CA with home /etc/hyperledger/fabric-ca-server and config {Version:1.1.0-rc1 Cfg:{Identities:{AllowRemove:false} Affiliations:{AllowRemove:false}} CA:{Name:ca.example.com Keyfile:/etc/hyperledger/fabric-ca-server-config/4239aa0dcd76daeeb8ba0cda701851d14504d31aad1b2ddddbac6a57365e497c_sk Certfile:/etc/hyperledger/fabric-ca-server-config/ca.org1.example.com-cert.pem Chainfile:ca-chain.pem} Signing:0xc4203277a0 CSR:{CN:fabric-ca-server Names:[{C:US ST:North Carolina L: O:Hyperledger OU:Fabric SerialNumber:}] Hosts:[6b79608c6bb2 localhost] KeyRequest:<nil> CA:0xc4202b9aa0 SerialNumber:} Registry:{MaxEnrollments:-1 Identities:[{ Name:**** Pass:**** Type:client Affiliation: MaxEnrollments:0 Attrs:map[hf.GenCRL:1 hf.Registrar.Attributes:* hf.AffiliationMgr:1 hf.Registrar.Roles:peer,orderer,client,user hf.Registrar.DelegateRoles:peer,orderer,client,user hf.Revoker:1 hf.IntermediateCA:1] }]} Affiliations:map[org1:[department1 department2] org2:[department1]] LDAP:{ Enabled:false URL:ldap://****:****@<host>:<port>/<base> UserFilter:(uid=%s) GroupFilter:(memberUid=%s) Attribute:{[uid member] [{ }] map[groups:[{ }]]} TLS:{false [] { }} } DB:{ Type:sqlite3 Datasource:fabric-ca-server.db TLS:{false [] { }} } CSP:0xc420338860 Client:<nil> Intermediate:{ParentServer:{ URL: CAName: } TLS:{Enabled:false CertFiles:[] Client:{KeyFile: CertFile:}} Enrollment:{ Name: Secret:**** Profile: Label: CSR:<nil> CAName: AttrReqs:[] }} CRL:{Expiry:24h0m0s}}
2018/03/10 05:20:07 [DEBUG] CA Home Directory: /etc/hyperledger/fabric-ca-server
2018/03/10 05:20:07 [DEBUG] Checking configuration file version '1.1.0-rc1' against server version: '1.1.0-rc1'
2018/03/10 05:20:07 [DEBUG] Initializing BCCSP: &{ProviderName:SW SwOpts:0xc420324870 Pkcs11Opts:<nil>}
2018/03/10 05:20:07 [DEBUG] Initializing BCCSP with software options &{SecLevel:256 HashFamily:SHA2 Ephemeral:false FileKeystore:0xc42033e8b0 DummyKeystore:<nil>}
2018/03/10 05:20:07 [DEBUG] Initialize key material
2018/03/10 05:20:07 [DEBUG] Making CA filenames absolute
2018/03/10 05:20:07 [INFO] The CA key and certificate files already exist
2018/03/10 05:20:07 [INFO] Key file location: /etc/hyperledger/fabric-ca-server-config/4239aa0dcd76daeeb8ba0cda701851d14504d31aad1b2ddddbac6a57365e497c_sk
2018/03/10 05:20:07 [INFO] Certificate file location: /etc/hyperledger/fabric-ca-server-config/ca.org1.example.com-cert.pem
2018/03/10 05:20:07 [DEBUG] Validating the CA certificate and key
2018/03/10 05:20:07 [DEBUG] Check CA certificate for valid dates
2018/03/10 05:20:07 [DEBUG] Check CA certificate for valid usages
2018/03/10 05:20:07 [DEBUG] Check CA certificate for valid IsCA value
2018/03/10 05:20:07 [DEBUG] Check that key type is supported
2018/03/10 05:20:07 [DEBUG] Check that key size is of appropriate length
2018/03/10 05:20:07 [DEBUG] Check that public key and private key match
2018/03/10 05:20:07 [DEBUG] Validation of CA certificate and key successful
2018/03/10 05:20:07 [DEBUG] Loading CN from existing enrollment information
2018/03/10 05:20:07 [DEBUG] Initializing DB
2018/03/10 05:20:07 [DEBUG] Initializing 'sqlite3' database at '/etc/hyperledger/fabric-ca-server/fabric-ca-server.db'
2018/03/10 05:20:07 [DEBUG] Using sqlite database, connect to database in home (/etc/hyperledger/fabric-ca-server/fabric-ca-server.db) directory
2018/03/10 05:20:07 [DEBUG] Creating SQLite database (/etc/hyperledger/fabric-ca-server/fabric-ca-server.db) if it does not exist...
2018/03/10 05:20:07 [DEBUG] Creating users table if it does not exist
2018/03/10 05:20:07 [DEBUG] Creating affiliations table if it does not exist
2018/03/10 05:20:07 [DEBUG] Creating certificates table if it does not exist
2018/03/10 05:20:08 [DEBUG] Creating properties table if it does not exist
2018/03/10 05:20:08 [DEBUG] Successfully opened sqlite3 DB
2018/03/10 05:20:08 [DEBUG] Checking database schema...
2018/03/10 05:20:08 [DEBUG] Update SQLite schema, if using outdated schema
2018/03/10 05:20:08 [DEBUG] Upgrade identities table
2018/03/10 05:20:08 [DEBUG] Creating users table if it does not exist
2018/03/10 05:20:08 [DEBUG] Upgrade affiliation table
2018/03/10 05:20:08 [DEBUG] Creating affiliations table if it does not exist
2018/03/10 05:20:08 [DEBUG] Upgrade certificates table
2018/03/10 05:20:08 [DEBUG] Creating certificates table if it does not exist
2018/03/10 05:20:08 [DEBUG] Initializing identity registry
2018/03/10 05:20:08 [DEBUG] Initialized DB identity registry
2018/03/10 05:20:08 [DEBUG] DB: Get properties [identity.level affiliation.level certificate.level]
2018/03/10 05:20:08 [DEBUG] Checking database levels 'map[affiliation.level:0 certificate.level:0 identity.level:0]' against server levels '&{Identity:1 Affiliation:1 Certificate:1}'
2018/03/10 05:20:08 [DEBUG] Loading identity table
2018/03/10 05:20:08 [DEBUG] Loading identity 'admin'
2018/03/10 05:20:08 [DEBUG] DB: Getting identity admin
2018/03/10 05:20:08 [DEBUG] Max enrollment value verification - User specified max enrollment: 0, CA max enrollment: -1
2018/03/10 05:20:08 [DEBUG] DB: Add identity admin
2018/03/10 05:20:08 [DEBUG] Successfully added identity admin to the database
2018/03/10 05:20:08 [DEBUG] Registered identity: { Name:**** Pass:**** Type:client Affiliation: MaxEnrollments:-1 Attrs:map[hf.AffiliationMgr:1 hf.Registrar.Roles:peer,orderer,client,user hf.Registrar.DelegateRoles:peer,orderer,client,user hf.Revoker:1 hf.IntermediateCA:1 hf.GenCRL:1 hf.Registrar.Attributes:*] }
2018/03/10 05:20:08 [DEBUG] Successfully loaded identity table
2018/03/10 05:20:08 [DEBUG] Loading affiliations table
2018/03/10 05:20:08 [DEBUG] DB: Add affiliation org1
2018/03/10 05:20:08 [DEBUG] Affiliation 'org1' added
2018/03/10 05:20:08 [DEBUG] DB: Add affiliation org1.department1
2018/03/10 05:20:09 [DEBUG] Affiliation 'org1.department1' added
2018/03/10 05:20:09 [DEBUG] DB: Add affiliation org1.department2
2018/03/10 05:20:09 [DEBUG] Affiliation 'org1.department2' added
2018/03/10 05:20:09 [DEBUG] DB: Add affiliation org2
2018/03/10 05:20:09 [DEBUG] Affiliation 'org2' added
2018/03/10 05:20:09 [DEBUG] DB: Add affiliation org2.department1
2018/03/10 05:20:09 [DEBUG] Affiliation 'org2.department1' added
2018/03/10 05:20:09 [DEBUG] Successfully loaded affiliations table
2018/03/10 05:20:09 [DEBUG] Checking and performing migration, if needed
2018/03/10 05:20:09 [DEBUG] Updating database level to &{Identity:1 Affiliation:1 Certificate:1}
2018/03/10 05:20:10 [INFO] Initialized sqlite3 database at /etc/hyperledger/fabric-ca-server/fabric-ca-server.db
2018/03/10 05:20:10 [DEBUG] Initializing enrollment signer
2018/03/10 05:20:10 [DEBUG] No key found in BCCSP keystore, attempting fallback
2018/03/10 05:20:10 [DEBUG] validating configuration
2018/03/10 05:20:10 [DEBUG] validate local profile
2018/03/10 05:20:10 [DEBUG] profile is valid
2018/03/10 05:20:10 [DEBUG] validate local profile
2018/03/10 05:20:10 [DEBUG] profile is valid
2018/03/10 05:20:10 [DEBUG] validate local profile
2018/03/10 05:20:10 [DEBUG] profile is valid
2018/03/10 05:20:10 [DEBUG] CA initialization successful
2018/03/10 05:20:10 [INFO] Home directory for default CA: /etc/hyperledger/fabric-ca-server
2018/03/10 05:20:10 [DEBUG] 1 CA instance(s) running on server
2018/03/10 05:20:10 [INFO] Listening on http://0.0.0.0:7054
2018/03/10 05:28:59 [DEBUG] Received request for /api/v1/enroll
2018/03/10 05:28:59 [DEBUG] ca.Config: &{Version:1.1.0-rc1 Cfg:{Identities:{AllowRemove:false} Affiliations:{AllowRemove:false}} CA:{Name:ca.example.com Keyfile:/etc/hyperledger/fabric-ca-server-config/4239aa0dcd76daeeb8ba0cda701851d14504d31aad1b2ddddbac6a57365e497c_sk Certfile:/etc/hyperledger/fabric-ca-server-config/ca.org1.example.com-cert.pem Chainfile:/etc/hyperledger/fabric-ca-server/ca-chain.pem} Signing:0xc4203277a0 CSR:{CN:ca.org1.example.com Names:[{C:US ST:North Carolina L: O:Hyperledger OU:Fabric SerialNumber:}] Hosts:[6b79608c6bb2 localhost] KeyRequest:<nil> CA:0xc4202b9aa0 SerialNumber:} Registry:{MaxEnrollments:-1 Identities:[{ Name:**** Pass:**** Type:client Affiliation: MaxEnrollments:0 Attrs:map[hf.Registrar.DelegateRoles:peer,orderer,client,user hf.Revoker:1 hf.IntermediateCA:1 hf.GenCRL:1 hf.Registrar.Attributes:* hf.AffiliationMgr:1 hf.Registrar.Roles:peer,orderer,client,user] }]} Affiliations:map[org2:[department1] org1:[department1 department2]] LDAP:{ Enabled:false URL:ldap://****:****@<host>:<port>/<base> UserFilter:(uid=%s) GroupFilter:(memberUid=%s) Attribute:{[uid member] [{ }] map[groups:[{ }]]} TLS:{false [] { }} } DB:{ Type:sqlite3 Datasource:/etc/hyperledger/fabric-ca-server/fabric-ca-server.db TLS:{false [] { }} } CSP:0xc420338860 Client:<nil> Intermediate:{ParentServer:{ URL: CAName: } TLS:{Enabled:false CertFiles:[] Client:{KeyFile: CertFile:}} Enrollment:{ Name: Secret:**** Profile: Label: CSR:<nil> CAName: AttrReqs:[] }} CRL:{Expiry:24h0m0s}}
2018/03/10 05:28:59 [DEBUG] DB: Getting identity admin
2018/03/10 05:28:59 [DEBUG] DB: Login user admin with max enrollments of -1 and state of 0
2018/03/10 05:29:00 [DEBUG] DB: identity admin successfully logged in
2018/03/10 05:29:00 [DEBUG] Processing sign request: id=admin, CommonName=admin, Subject=<nil>
2018/03/10 05:29:00 [DEBUG] Request is not for a CA signing certificate
2018/03/10 05:29:00 [DEBUG] Checking CSR fields to make sure that they do not exceed maximum character limits
2018/03/10 05:29:00 [DEBUG] DB: Getting identity admin
2018/03/10 05:29:00 [DEBUG] Finished processing sign request
2018/03/10 05:29:00 [DEBUG] DB: Getting identity admin
2018/03/10 05:29:00 [INFO] signed certificate with serial number 435607343981495230779819025903844584839590136495
2018/03/10 05:29:00 [DEBUG] DB: Insert Certificate
2018/03/10 05:29:00 [DEBUG] Saved serial number as hex 4c4d4f12113f4348cd402be6e01485a18ccf4aaf
2018/03/10 05:29:00 [DEBUG] saved certificate with serial number 435607343981495230779819025903844584839590136495
2018/03/10 05:29:00 [DEBUG] Successfully incremented state for identity admin to 1
2018/03/10 05:29:00 [INFO] 172.18.0.1:47836 POST /api/v1/enroll 201 0 "OK"
2018/03/10 05:51:27 [DEBUG] Received request for /api/v1/enroll
2018/03/10 05:51:27 [DEBUG] ca.Config: &{Version:1.1.0-rc1 Cfg:{Identities:{AllowRemove:false} Affiliations:{AllowRemove:false}} CA:{Name:ca.example.com Keyfile:/etc/hyperledger/fabric-ca-server-config/4239aa0dcd76daeeb8ba0cda701851d14504d31aad1b2ddddbac6a57365e497c_sk Certfile:/etc/hyperledger/fabric-ca-server-config/ca.org1.example.com-cert.pem Chainfile:/etc/hyperledger/fabric-ca-server/ca-chain.pem} Signing:0xc4203277a0 CSR:{CN:ca.org1.example.com Names:[{C:US ST:North Carolina L: O:Hyperledger OU:Fabric SerialNumber:}] Hosts:[6b79608c6bb2 localhost] KeyRequest:<nil> CA:0xc4202b9aa0 SerialNumber:} Registry:{MaxEnrollments:-1 Identities:[{ Name:**** Pass:**** Type:client Affiliation: MaxEnrollments:0 Attrs:map[hf.Registrar.Roles:peer,orderer,client,user hf.Registrar.DelegateRoles:peer,orderer,client,user hf.Revoker:1 hf.IntermediateCA:1 hf.GenCRL:1 hf.Registrar.Attributes:* hf.AffiliationMgr:1] }]} Affiliations:map[org1:[department1 department2] org2:[department1]] LDAP:{ Enabled:false URL:ldap://****:****@<host>:<port>/<base> UserFilter:(uid=%s) GroupFilter:(memberUid=%s) Attribute:{[uid member] [{ }] map[groups:[{ }]]} TLS:{false [] { }} } DB:{ Type:sqlite3 Datasource:/etc/hyperledger/fabric-ca-server/fabric-ca-server.db TLS:{false [] { }} } CSP:0xc420338860 Client:<nil> Intermediate:{ParentServer:{ URL: CAName: } TLS:{Enabled:false CertFiles:[] Client:{KeyFile: CertFile:}} Enrollment:{ Name: Secret:**** Profile: Label: CSR:<nil> CAName: AttrReqs:[] }} CRL:{Expiry:24h0m0s}}
2018/03/10 05:51:27 [DEBUG] DB: Getting identity user1
2018/03/10 05:51:27 [DEBUG] DB: Login user user1 with max enrollments of 1 and state of 0
2018/03/10 05:51:28 [DEBUG] DB: identity user1 successfully logged in
2018/03/10 05:51:28 [DEBUG] Processing sign request: id=user1, CommonName=user1, Subject=<nil>
2018/03/10 05:51:28 [DEBUG] Request is not for a CA signing certificate
2018/03/10 05:51:28 [DEBUG] Checking CSR fields to make sure that they do not exceed maximum character limits
2018/03/10 05:51:28 [DEBUG] DB: Getting identity user1
2018/03/10 05:51:28 [DEBUG] Finished processing sign request
2018/03/10 05:51:28 [DEBUG] DB: Getting identity user1
2018/03/10 05:51:28 [DEBUG] Attribute extension being added to certificate is: &{ID:[1 2 3 4 5 6 7 8 1] Critical:false Value:7b226174747273223a7b2268662e416666696c696174696f6e223a226f7267312e6465706172746d656e7431222c2268662e456e726f6c6c6d656e744944223a227573657231222c2268662e54797065223a22636c69656e74227d7d}
2018/03/10 05:51:28 [DEBUG] Adding attribute extension to CSR: &{ID:[1 2 3 4 5 6 7 8 1] Critical:false Value:7b226174747273223a7b2268662e416666696c696174696f6e223a226f7267312e6465706172746d656e7431222c2268662e456e726f6c6c6d656e744944223a227573657231222c2268662e54797065223a22636c69656e74227d7d}
2018/03/10 05:51:28 [INFO] signed certificate with serial number 527199194248426046825801783604875231581626677354
2018/03/10 05:51:28 [DEBUG] DB: Insert Certificate
2018/03/10 05:51:28 [DEBUG] Saved serial number as hex 5c586df27e22ac3db6629268b8a4f997435fb86a
2018/03/10 05:51:28 [DEBUG] saved certificate with serial number 527199194248426046825801783604875231581626677354
2018/03/10 05:51:28 [DEBUG] Successfully incremented state for identity user1 to 1
2018/03/10 05:51:28 [INFO] 172.18.0.1:47844 POST /api/v1/enroll 201 0 "OK"
node invoke.js
node query.js
------------------------------------------------------------------------------------------------------------------X2.Adding an Org to a Channel
参考:https://hyperledger-fabric.readthedocs.io/en/latest/channel_update_tutorial.html
[root@cloud0 first-network]# ./byfn.sh -m down
[root@cloud0 first-network]# ./byfn.sh -m generate
[root@cloud0 first-network]# ./byfn.sh -m up
[root@cloud0 first-network]# ./eyfn.sh up
Starting with channel 'mychannel' and CLI timeout of '10' seconds and CLI delay of '3' seconds
Continue? [Y/n] y
proceeding ...
/data/blockchain/fabric-samples/bin/cryptogen
###############################################################
##### Generate Org3 certificates using cryptogen tool #########
###############################################################
+ cryptogen generate --config=./org3-crypto.yaml
org3.example.com
+ set +x
/data/blockchain/fabric-samples/bin/configtxgen
##########################################################
######### Generating Org3 config material ###############
##########################################################
+ configtxgen -printOrg Org3MSP
2018-03-10 14:22:51.307 CST [common/tools/configtxgen] main -> INFO 001 Loading configuration
2018-03-10 14:22:51.317 CST [msp] getMspConfig -> INFO 002 Loading NodeOUs
+ set +x
###############################################################
####### Generate and submit config tx to add Org3 #############
###############################################################
========= Creating config transaction to add org3 to network ===========
Installing jq
Get:1 http://archive.ubuntu.com/ubuntu xenial InRelease [247 kB]
Get:2 http://security.ubuntu.com/ubuntu xenial-security InRelease [102 kB]
Get:3 http://security.ubuntu.com/ubuntu xenial-security/universe Sources [73.2 kB]
Get:4 http://security.ubuntu.com/ubuntu xenial-security/main amd64 Packages [589 kB]
Get:5 http://archive.ubuntu.com/ubuntu xenial-updates InRelease [102 kB]
Get:6 http://archive.ubuntu.com/ubuntu xenial-backports InRelease [102 kB]
Get:7 http://archive.ubuntu.com/ubuntu xenial/universe Sources [9802 kB]
Get:8 http://security.ubuntu.com/ubuntu xenial-security/restricted amd64 Packages [12.7 kB]
Get:9 http://security.ubuntu.com/ubuntu xenial-security/universe amd64 Packages [406 kB]
Get:10 http://security.ubuntu.com/ubuntu xenial-security/multiverse amd64 Packages [3486 B]
Get:11 http://archive.ubuntu.com/ubuntu xenial/main amd64 Packages [1558 kB]
Get:12 http://archive.ubuntu.com/ubuntu xenial/restricted amd64 Packages [14.1 kB]
Get:13 http://archive.ubuntu.com/ubuntu xenial/universe amd64 Packages [9827 kB]
Get:14 http://archive.ubuntu.com/ubuntu xenial/multiverse amd64 Packages [176 kB]
Get:15 http://archive.ubuntu.com/ubuntu xenial-updates/universe Sources [242 kB]
Get:16 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages [957 kB]
Get:17 http://archive.ubuntu.com/ubuntu xenial-updates/restricted amd64 Packages [13.1 kB]
Get:18 http://archive.ubuntu.com/ubuntu xenial-updates/universe amd64 Packages [766 kB]
Get:19 http://archive.ubuntu.com/ubuntu xenial-updates/multiverse amd64 Packages [18.5 kB]
Get:20 http://archive.ubuntu.com/ubuntu xenial-backports/main amd64 Packages [5153 B]
Get:21 http://archive.ubuntu.com/ubuntu xenial-backports/universe amd64 Packages [7705 B]
Fetched 25.0 MB in 28s (874 kB/s)
Reading package lists...
Reading package lists...
Building dependency tree...
Reading state information...
The following additional packages will be installed:
libonig2
The following NEW packages will be installed:
jq libonig2
0 upgraded, 2 newly installed, 0 to remove and 32 not upgraded.
Need to get 232 kB of archives.
After this operation, 829 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libonig2 amd64 5.9.6-1 [88.1 kB]
Get:2 http://archive.ubuntu.com/ubuntu xenial/universe amd64 jq amd64 1.5+dfsg-1 [144 kB]
debconf: unable to initialize frontend: Dialog
debconf: (TERM is not set, so the dialog frontend is not usable.)
debconf: falling back to frontend: Readline
debconf: unable to initialize frontend: Readline
debconf: (This frontend requires a controlling tty.)
debconf: falling back to frontend: Teletype
dpkg-preconfigure: unable to re-open stdin:
Fetched 232 kB in 4s (55.4 kB/s)
Selecting previously unselected package libonig2:amd64.
(Reading database ... 22650 files and directories currently installed.)
Preparing to unpack .../libonig2_5.9.6-1_amd64.deb ...
Unpacking libonig2:amd64 (5.9.6-1) ...
Selecting previously unselected package jq.
Preparing to unpack .../jq_1.5+dfsg-1_amd64.deb ...
Unpacking jq (1.5+dfsg-1) ...
Setting up libonig2:amd64 (5.9.6-1) ...
Setting up jq (1.5+dfsg-1) ...
Processing triggers for libc-bin (2.23-0ubuntu10) ...
Fetching the most recent configuration block for the channel
+ peer channel fetch config config_block.pb -o orderer.example.com:7050 -c mychannel --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
2018-03-10 06:23:32.358 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
2018-03-10 06:23:32.365 UTC [main] main -> INFO 002 Exiting.....
+ set +x
Decoding config block to JSON and isolating config to config.json
+ configtxlator proto_decode --input config_block.pb --type common.Block
+ jq '.data.data[0].payload.data.config'
+ set +x
+ jq -s '.[0] * {"channel_group":{"groups":{"Application":{"groups": {"Org3MSP":.[1]}}}}}' config.json ./channel-artifacts/org3.json
+ set +x
+ configtxlator proto_encode --input config.json --type common.Config
+ configtxlator proto_encode --input modified_config.json --type common.Config
+ configtxlator compute_update --channel_id mychannel --original original_config.pb --updated modified_config.pb
+ configtxlator proto_decode --input config_update.pb --type common.ConfigUpdate
+ jq .
++ cat config_update.json
+ echo '{"payload":{"header":{"channel_header":{"channel_id":"mychannel", "type":2}},"data":{"config_update":{' '"channel_id":' '"mychannel",' '"read_set":' '{' '"groups":' '{' '"Application":' '{' '"groups":' '{' '"Org1MSP":' '{' '"mod_policy":' '"",' '"version":' '"1"' '},' '"Org2MSP":' '{' '"mod_policy":' '"",' '"version":' '"1"' '}' '},' '"mod_policy":' '"",' '"policies":' '{' '"Admins":' '{' '"mod_policy":' '"",' '"version":' '"0"' '},' '"Readers":' '{' '"mod_policy":' '"",' '"version":' '"0"' '},' '"Writers":' '{' '"mod_policy":' '"",' '"version":' '"0"' '}' '},' '"values":' '{' '"Capabilities":' '{' '"mod_policy":' '"",' '"version":' '"0"' '}' '},' '"version":' '"1"' '}' '},' '"mod_policy":' '"",' '"version":' '"0"' '},' '"type":' 0, '"write_set":' '{' '"groups":' '{' '"Application":' '{' '"groups":' '{' '"Org1MSP":' '{' '"mod_policy":' '"",' '"version":' '"1"' '},' '"Org2MSP":' '{' '"mod_policy":' '"",' '"version":' '"1"' '},' '"Org3MSP":' '{' '"mod_policy":' '"Admins",' '"policies":' '{' '"Admins":' '{' '"mod_policy":' '"Admins",' '"policy":' '{' '"type":' 1, '"value":' '{' '"identities":' '[' '{' '"principal":' '{' '"msp_identifier":' '"Org3MSP",' '"role":' '"ADMIN"' '},' '"principal_classification":' '"ROLE"' '}' '],' '"rule":' '{' '"n_out_of":' '{' '"n":' 1, '"rules":' '[' '{' '"signed_by":' 0 '}' ']' '}' '},' '"version":' 0 '}' '},' '"version":' '"0"' '},' '"Readers":' '{' '"mod_policy":' '"Admins",' '"policy":' '{' '"type":' 1, '"value":' '{' '"identities":' '[' '{' '"principal":' '{' '"msp_identifier":' '"Org3MSP",' '"role":' '"MEMBER"' '},' '"principal_classification":' '"ROLE"' '}' '],' '"rule":' '{' '"n_out_of":' '{' '"n":' 1, '"rules":' '[' '{' '"signed_by":' 0 '}' ']' '}' '},' '"version":' 0 '}' '},' '"version":' '"0"' '},' '"Writers":' '{' '"mod_policy":' '"Admins",' '"policy":' '{' '"type":' 1, '"value":' '{' '"identities":' '[' '{' '"principal":' '{' '"msp_identifier":' '"Org3MSP",' '"role":' '"MEMBER"' '},' '"principal_classification":' '"ROLE"' '}' '],' '"rule":' '{' '"n_out_of":' '{' '"n":' 1, '"rules":' '[' '{' '"signed_by":' 0 '}' ']' '}' '},' '"version":' 0 '}' '},' '"version":' '"0"' '}' '},' '"values":' '{' '"MSP":' '{' '"mod_policy":' '"Admins",' '"value":' '{' '"config":' '{' '"FabricNodeOUs":' '{' '"Enable":' true, '"clientOUIdentifier":' '{' '"certificate":' '"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNSRENDQWVxZ0F3SUJBZ0lSQU10R0dYTXp4SnoybXkwbkRvelRkdEl3Q2dZSUtvWkl6ajBFQXdJd2N6RUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhHVEFYQmdOVkJBb1RFRzl5WnpNdVpYaGhiWEJzWlM1amIyMHhIREFhQmdOVkJBTVRFMk5oCkxtOXlaek11WlhoaGJYQnNaUzVqYjIwd0hoY05NVGd3TXpFd01EWXhOelV4V2hjTk1qZ3dNekEzTURZeE56VXgKV2pCek1Rc3dDUVlEVlFRR0V3SlZVekVUTUJFR0ExVUVDQk1LUTJGc2FXWnZjbTVwWVRFV01CUUdBMVVFQnhNTgpVMkZ1SUVaeVlXNWphWE5qYnpFWk1CY0dBMVVFQ2hNUWIzSm5NeTVsZUdGdGNHeGxMbU52YlRFY01Cb0dBMVVFCkF4TVRZMkV1YjNKbk15NWxlR0Z0Y0d4bExtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUEKQkZNdjhCejhOdllyck4yQ3grdGUxcHBtb2FPT2hyVkhoMkZSeThCOGFiOElGV3Izcys5WlovYjU1Vm9VdXFYVgptcmkzODFCUm0yM2kyNkhVczRlc2hoT2pYekJkTUE0R0ExVWREd0VCL3dRRUF3SUJwakFQQmdOVkhTVUVDREFHCkJnUlZIU1VBTUE4R0ExVWRFd0VCL3dRRk1BTUJBZjh3S1FZRFZSME9CQ0lFSUUvNDNreFJ0UEU1dnBBK3ZBZ1UKOHoyQWhKNnkxeFNEaWNIZ1R2QldMRjdvTUFvR0NDcUdTTTQ5QkFNQ0EwZ0FNRVVDSVFDdS9McVBBTk9lRHNueQpHblNiQ29CU0VIZUtyVm5wWW01ZzArRElrWkVBQ2dJZ2NabjZQRmpOakZ5aVhFeGtzZnk1Nk5QU25Za2R4N1lkClVoejQvTVovWWEwPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==",' '"organizational_unit_identifier":' '"client"' '},' '"peerOUIdentifier":' '{' '"certificate":' '"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNSRENDQWVxZ0F3SUJBZ0lSQU10R0dYTXp4SnoybXkwbkRvelRkdEl3Q2dZSUtvWkl6ajBFQXdJd2N6RUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhHVEFYQmdOVkJBb1RFRzl5WnpNdVpYaGhiWEJzWlM1amIyMHhIREFhQmdOVkJBTVRFMk5oCkxtOXlaek11WlhoaGJYQnNaUzVqYjIwd0hoY05NVGd3TXpFd01EWXhOelV4V2hjTk1qZ3dNekEzTURZeE56VXgKV2pCek1Rc3dDUVlEVlFRR0V3SlZVekVUTUJFR0ExVUVDQk1LUTJGc2FXWnZjbTVwWVRFV01CUUdBMVVFQnhNTgpVMkZ1SUVaeVlXNWphWE5qYnpFWk1CY0dBMVVFQ2hNUWIzSm5NeTVsZUdGdGNHeGxMbU52YlRFY01Cb0dBMVVFCkF4TVRZMkV1YjNKbk15NWxlR0Z0Y0d4bExtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUEKQkZNdjhCejhOdllyck4yQ3grdGUxcHBtb2FPT2hyVkhoMkZSeThCOGFiOElGV3Izcys5WlovYjU1Vm9VdXFYVgptcmkzODFCUm0yM2kyNkhVczRlc2hoT2pYekJkTUE0R0ExVWREd0VCL3dRRUF3SUJwakFQQmdOVkhTVUVDREFHCkJnUlZIU1VBTUE4R0ExVWRFd0VCL3dRRk1BTUJBZjh3S1FZRFZSME9CQ0lFSUUvNDNreFJ0UEU1dnBBK3ZBZ1UKOHoyQWhKNnkxeFNEaWNIZ1R2QldMRjdvTUFvR0NDcUdTTTQ5QkFNQ0EwZ0FNRVVDSVFDdS9McVBBTk9lRHNueQpHblNiQ29CU0VIZUtyVm5wWW01ZzArRElrWkVBQ2dJZ2NabjZQRmpOakZ5aVhFeGtzZnk1Nk5QU25Za2R4N1lkClVoejQvTVovWWEwPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==",' '"organizational_unit_identifier":' '"peer"' '}' '},' '"admins":' '[' '"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNLakNDQWRHZ0F3SUJBZ0lSQU5NZ25aTk9YZ1IrVXQ1NW5FVzFKUUF3Q2dZSUtvWkl6ajBFQXdJd2N6RUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhHVEFYQmdOVkJBb1RFRzl5WnpNdVpYaGhiWEJzWlM1amIyMHhIREFhQmdOVkJBTVRFMk5oCkxtOXlaek11WlhoaGJYQnNaUzVqYjIwd0hoY05NVGd3TXpFd01EWXhOelV4V2hjTk1qZ3dNekEzTURZeE56VXgKV2pCc01Rc3dDUVlEVlFRR0V3SlZVekVUTUJFR0ExVUVDQk1LUTJGc2FXWnZjbTVwWVRFV01CUUdBMVVFQnhNTgpVMkZ1SUVaeVlXNWphWE5qYnpFUE1BMEdBMVVFQ3hNR1kyeHBaVzUwTVI4d0hRWURWUVFEREJaQlpHMXBia0J2CmNtY3pMbVY0WVcxd2JHVXVZMjl0TUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFSFFFclJDUnUKSlNXVTc0MXFVc2dGZjZsV0VMdDJ6Qy9JWktJOXVaODBsUUpiZjl1aHhhYit0RmxCendLOFY3ZnZkM2tBQUJrNQpma1Q4QWR0UnpmdGtGcU5OTUVzd0RnWURWUjBQQVFIL0JBUURBZ2VBTUF3R0ExVWRFd0VCL3dRQ01BQXdLd1lEClZSMGpCQ1F3SW9BZ1QvamVURkcwOFRtK2tENjhDQlR6UFlDRW5yTFhGSU9Kd2VCTzhGWXNYdWd3Q2dZSUtvWkkKemowRUF3SURSd0F3UkFJZ0VDU2kvcGlIMDZzSlcrSEpTOE5Bd0Q5TFMyN3k0dWxidjNIYmYzSVdkWklDSURiWAo1UXhLK3RZaklrWkpxbnFFYStWRHZwV0N2T3VsWXZ0KzE5SUdRRS9KCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K"' '],' '"crypto_config":' '{' '"identity_identifier_hash_function":' '"SHA256",' '"signature_hash_family":' '"SHA2"' '},' '"name":' '"Org3MSP",' '"root_certs":' '[' '"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNSRENDQWVxZ0F3SUJBZ0lSQU10R0dYTXp4SnoybXkwbkRvelRkdEl3Q2dZSUtvWkl6ajBFQXdJd2N6RUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhHVEFYQmdOVkJBb1RFRzl5WnpNdVpYaGhiWEJzWlM1amIyMHhIREFhQmdOVkJBTVRFMk5oCkxtOXlaek11WlhoaGJYQnNaUzVqYjIwd0hoY05NVGd3TXpFd01EWXhOelV4V2hjTk1qZ3dNekEzTURZeE56VXgKV2pCek1Rc3dDUVlEVlFRR0V3SlZVekVUTUJFR0ExVUVDQk1LUTJGc2FXWnZjbTVwWVRFV01CUUdBMVVFQnhNTgpVMkZ1SUVaeVlXNWphWE5qYnpFWk1CY0dBMVVFQ2hNUWIzSm5NeTVsZUdGdGNHeGxMbU52YlRFY01Cb0dBMVVFCkF4TVRZMkV1YjNKbk15NWxlR0Z0Y0d4bExtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUEKQkZNdjhCejhOdllyck4yQ3grdGUxcHBtb2FPT2hyVkhoMkZSeThCOGFiOElGV3Izcys5WlovYjU1Vm9VdXFYVgptcmkzODFCUm0yM2kyNkhVczRlc2hoT2pYekJkTUE0R0ExVWREd0VCL3dRRUF3SUJwakFQQmdOVkhTVUVDREFHCkJnUlZIU1VBTUE4R0ExVWRFd0VCL3dRRk1BTUJBZjh3S1FZRFZSME9CQ0lFSUUvNDNreFJ0UEU1dnBBK3ZBZ1UKOHoyQWhKNnkxeFNEaWNIZ1R2QldMRjdvTUFvR0NDcUdTTTQ5QkFNQ0EwZ0FNRVVDSVFDdS9McVBBTk9lRHNueQpHblNiQ29CU0VIZUtyVm5wWW01ZzArRElrWkVBQ2dJZ2NabjZQRmpOakZ5aVhFeGtzZnk1Nk5QU25Za2R4N1lkClVoejQvTVovWWEwPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg=="' '],' '"tls_root_certs":' '[' '"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNTVENDQWZDZ0F3SUJBZ0lSQUxVeUFBMmprQzdNVnpkbTJTdGJSb0V3Q2dZSUtvWkl6ajBFQXdJd2RqRUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhHVEFYQmdOVkJBb1RFRzl5WnpNdVpYaGhiWEJzWlM1amIyMHhIekFkQmdOVkJBTVRGblJzCmMyTmhMbTl5WnpNdVpYaGhiWEJzWlM1amIyMHdIaGNOTVRnd016RXdNRFl4TnpVeFdoY05Namd3TXpBM01EWXgKTnpVeFdqQjJNUXN3Q1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRQpCeE1OVTJGdUlFWnlZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTXk1bGVHRnRjR3hsTG1OdmJURWZNQjBHCkExVUVBeE1XZEd4elkyRXViM0puTXk1bGVHRnRjR3hsTG1OdmJUQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDkKQXdFSEEwSUFCTmFySVdVQzNETlEzcjdtUkR1S00yTzdQWm9QQzhQQnQxd0ptZnFUSlhCUWhnakNKYytKU2NvOAo5RWJYL1o4QnBHS0JBZ014RlBscDJtcGVJdm5PczRtalh6QmRNQTRHQTFVZER3RUIvd1FFQXdJQnBqQVBCZ05WCkhTVUVDREFHQmdSVkhTVUFNQThHQTFVZEV3RUIvd1FGTUFNQkFmOHdLUVlEVlIwT0JDSUVJREUwd3FRR2FINHQKTkdQbjQyZHEvSXI1ZFJmTjUvSDlyRU9XVFU4NUM2ajJNQW9HQ0NxR1NNNDlCQU1DQTBjQU1FUUNJRGtNd3JsawpwZ1QrcEh3czFpMUFyYW9tNVZXdjdjUzhOc25PVXl5a2VhTE9BaUF6dzh1YjVpVEV4WGd5ajYwK3UyTkJyM3V4CkpiZkhnSk9jdE4yYkRaVU4zZz09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K"' ']' '},' '"type":' 0 '},' '"version":' '"0"' '}' '},' '"version":' '"0"' '}' '},' '"mod_policy":' '"Admins",' '"policies":' '{' '"Admins":' '{' '"mod_policy":' '"",' '"version":' '"0"' '},' '"Readers":' '{' '"mod_policy":' '"",' '"version":' '"0"' '},' '"Writers":' '{' '"mod_policy":' '"",' '"version":' '"0"' '}' '},' '"values":' '{' '"Capabilities":' '{' '"mod_policy":' '"",' '"version":' '"0"' '}' '},' '"version":' '"2"' '}' '},' '"mod_policy":' '"",' '"version":' '"0"' '}' '}}}}'
+ configtxlator proto_encode --input config_update_in_envelope.json --type common.Envelope
+ set +x
========= Config transaction to add org3 to network created =====
Signing config transaction
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_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_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.example.com/peers/peer0.org1.example.com/tls/server.crt
CORE_PEER_TLS_ENABLED=true
CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
CORE_PEER_ID=cli
CORE_LOGGING_LEVEL=INFO
CORE_PEER_ADDRESS=peer0.org1.example.com:7051
+ peer channel signconfigtx -f org3_update_in_envelope.pb
2018-03-10 06:23:32.961 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
2018-03-10 06:23:32.962 UTC [main] main -> INFO 002 Exiting.....
+ set +x
========= Submitting transaction from a different peer (peer0.org2) which also signs it =========
CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.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_LOCALMSPID=Org2MSP
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.example.com/peers/peer0.org1.example.com/tls/server.crt
CORE_PEER_TLS_ENABLED=true
CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp
CORE_PEER_ID=cli
CORE_LOGGING_LEVEL=INFO
CORE_PEER_ADDRESS=peer0.org2.example.com:7051
+ peer channel update -f org3_update_in_envelope.pb -c mychannel -o orderer.example.com:7050 --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
2018-03-10 06:23:33.000 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
2018-03-10 06:23:33.013 UTC [channelCmd] update -> INFO 002 Successfully submitted channel update
2018-03-10 06:23:33.013 UTC [main] main -> INFO 003 Exiting.....
+ set +x
========= Config transaction to add org3 to network submitted! ===========
Creating peer0.org3.example.com ... done
Creating volume "net_peer1.org3.example.com" with default driver
WARNING: Found orphan containers (cli, peer0.org1.example.com, peer1.org2.example.com, peer0.org2.example.com, peer1.org1.example.com, orderer.example.com) for this project. If you removed or renamed this service in your compose file, yoCreating peer1.org3.example.com ... done-orphans flag to clean it up.
Creating Org3cli ... done
Creating peer0.org3.example.com ...
Creating Org3cli ...
###############################################################
############### Have Org3 peers join network ##################
###############################################################
========= Getting Org3 on to your first network =========
Fetching channel config block from orderer...
+ peer channel fetch 0 mychannel.block -o orderer.example.com:7050 -c mychannel --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
+ set +x
2018-03-10 06:23:36.401 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
2018-03-10 06:23:36.403 UTC [main] main -> INFO 002 Exiting.....
===================== Having peer0.org3 join the channel =====================
CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org3.example.com/peers/peer0.org3.example.com/tls/ca.crt
CORE_PEER_TLS_KEY_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org3.example.com/peers/peer0.org3.example.com/tls/server.key
CORE_PEER_LOCALMSPID=Org3MSP
CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
CORE_PEER_TLS_CERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org3.example.com/peers/peer0.org3.example.com/tls/server.crt
CORE_PEER_TLS_ENABLED=true
CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org3.example.com/users/Admin@org3.example.com/msp
CORE_PEER_ID=Org3cli
CORE_LOGGING_LEVEL=INFO
CORE_PEER_ADDRESS=peer0.org3.example.com:7051
+ peer channel join -b mychannel.block
+ set +x
2018-03-10 06:23:36.444 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
2018-03-10 06:23:36.730 UTC [channelCmd] executeJoin -> INFO 002 Successfully submitted proposal to join channel
2018-03-10 06:23:36.730 UTC [main] main -> INFO 003 Exiting.....
===================== peer0.org3 joined the channel "mychannel" =====================
===================== Having peer1.org3 join the channel =====================
CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org3.example.com/peers/peer0.org3.example.com/tls/ca.crt
CORE_PEER_TLS_KEY_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org3.example.com/peers/peer0.org3.example.com/tls/server.key
CORE_PEER_LOCALMSPID=Org3MSP
CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
CORE_PEER_TLS_CERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org3.example.com/peers/peer0.org3.example.com/tls/server.crt
CORE_PEER_TLS_ENABLED=true
CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org3.example.com/users/Admin@org3.example.com/msp
CORE_PEER_ID=Org3cli
CORE_LOGGING_LEVEL=INFO
CORE_PEER_ADDRESS=peer1.org3.example.com:7051
+ peer channel join -b mychannel.block
+ set +x
2018-03-10 06:23:36.801 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
2018-03-10 06:23:37.085 UTC [channelCmd] executeJoin -> INFO 002 Successfully submitted proposal to join channel
2018-03-10 06:23:37.085 UTC [main] main -> INFO 003 Exiting.....
===================== peer1.org3 joined the channel "mychannel" =====================
Installing chaincode 2.0 on peer0.org3...
CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org3.example.com/peers/peer0.org3.example.com/tls/ca.crt
CORE_PEER_TLS_KEY_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org3.example.com/peers/peer0.org3.example.com/tls/server.key
CORE_PEER_LOCALMSPID=Org3MSP
CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
CORE_PEER_TLS_CERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org3.example.com/peers/peer0.org3.example.com/tls/server.crt
CORE_PEER_TLS_ENABLED=true
CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org3.example.com/users/Admin@org3.example.com/msp
CORE_PEER_ID=Org3cli
CORE_LOGGING_LEVEL=INFO
CORE_PEER_ADDRESS=peer0.org3.example.com:7051
+ peer chaincode install -n mycc -v 2.0 -l golang -p github.com/chaincode/chaincode_example02/go/
+ set +x
2018-03-10 06:23:37.143 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 001 Using default escc
2018-03-10 06:23:37.143 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc
2018-03-10 06:23:37.283 UTC [main] main -> INFO 003 Exiting.....
===================== Chaincode is installed on peer0.org3 =====================
========= Got Org3 halfway onto your first network =========
###############################################################
##### Upgrade chaincode to have Org3 peers on the network #####
###############################################################
========= Finish adding Org3 to your first network =========
===================== Installing chaincode 2.0 on peer0.org1 =====================
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_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_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.example.com/peers/peer0.org1.example.com/tls/server.crt
CORE_PEER_TLS_ENABLED=true
CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
CORE_PEER_ID=cli
CORE_LOGGING_LEVEL=INFO
CORE_PEER_ADDRESS=peer0.org1.example.com:7051
+ peer chaincode install -n mycc -v 2.0 -l golang -p github.com/chaincode/chaincode_example02/go/
+ set +x
2018-03-10 06:23:37.442 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 001 Using default escc
2018-03-10 06:23:37.442 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc
2018-03-10 06:23:37.564 UTC [main] main -> INFO 003 Exiting.....
===================== Chaincode is installed on peer0.org1 =====================
===================== Installing chaincode 2.0 on peer0.org2 =====================
CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.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_LOCALMSPID=Org2MSP
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.example.com/peers/peer0.org1.example.com/tls/server.crt
CORE_PEER_TLS_ENABLED=true
CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp
CORE_PEER_ID=cli
CORE_LOGGING_LEVEL=INFO
CORE_PEER_ADDRESS=peer0.org2.example.com:7051
+ peer chaincode install -n mycc -v 2.0 -l golang -p github.com/chaincode/chaincode_example02/go/
+ set +x
2018-03-10 06:23:37.603 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 001 Using default escc
2018-03-10 06:23:37.603 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc
2018-03-10 06:23:37.723 UTC [main] main -> INFO 003 Exiting.....
===================== Chaincode is installed on peer0.org2 =====================
===================== Upgrading chaincode on peer0.org1 =====================
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_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_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.example.com/peers/peer0.org1.example.com/tls/server.crt
CORE_PEER_TLS_ENABLED=true
CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
CORE_PEER_ID=cli
CORE_LOGGING_LEVEL=INFO
CORE_PEER_ADDRESS=peer0.org1.example.com:7051
+ peer chaincode upgrade -o orderer.example.com:7050 --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n mycc -v 2.0 -c '{"Args":["init","a","90","b","210"]}' -P 'OR ('\''Org1MSP.peer'\'','\''Org2MSP.peer'\'','\''Org3MSP.peer'\'')'
2018-03-10 06:23:37.765 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 001 Using default escc
2018-03-10 06:23:37.765 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc
2018-03-10 06:23:49.907 UTC [main] main -> INFO 003 Exiting.....
+ set +x
2018-03-10 06:23:37.603 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 001 Using default escc
2018-03-10 06:23:37.603 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc
2018-03-10 06:23:37.723 UTC [main] main -> INFO 003 Exiting.....
===================== Chaincode is upgraded on org1 peer0 =====================
========= Finished adding Org3 to your first network! =========
____ _____ _ ____ _____
/ ___| |_ _| / \ | _ \ |_ _|
\___ \ | | / _ \ | |_) | | |
___) | | | / ___ \ | _ < | |
|____/ |_| /_/ \_\ |_| \_\ |_|
Extend your first network (EYFN) test
Channel name : mychannel
CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org3.example.com/peers/peer0.org3.example.com/tls/ca.crt
CORE_PEER_TLS_KEY_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org3.example.com/peers/peer0.org3.example.com/tls/server.key
CORE_PEER_LOCALMSPID=Org3MSP
CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
CORE_PEER_TLS_CERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org3.example.com/peers/peer0.org3.example.com/tls/server.crt
CORE_PEER_TLS_ENABLED=true
CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org3.example.com/users/Admin@org3.example.com/msp
CORE_PEER_ID=Org3cli
CORE_LOGGING_LEVEL=INFO
CORE_PEER_ADDRESS=peer0.org3.example.com:7051
===================== Querying on peer0.org3 on channel 'mychannel'... =====================
Attempting to Query peer0.org3 ...3 secs
+ peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'
+ set +x
2018-03-10 06:23:53.127 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 001 Using default escc
2018-03-10 06:23:53.127 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc
Query Result: 90
2018-03-10 06:24:05.568 UTC [main] main -> INFO 003 Exiting.....
===================== Query on peer0.org3 on channel 'mychannel' is successful =====================
CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org3.example.com/peers/peer0.org3.example.com/tls/ca.crt
CORE_PEER_TLS_KEY_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org3.example.com/peers/peer0.org3.example.com/tls/server.key
CORE_PEER_LOCALMSPID=Org3MSP
CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
CORE_PEER_TLS_CERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org3.example.com/peers/peer0.org3.example.com/tls/server.crt
CORE_PEER_TLS_ENABLED=true
CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org3.example.com/users/Admin@org3.example.com/msp
CORE_PEER_ID=Org3cli
CORE_LOGGING_LEVEL=INFO
CORE_PEER_ADDRESS=peer0.org3.example.com:7051
+ peer chaincode invoke -o orderer.example.com:7050 --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n mycc -c '{"Args":["invoke","a","b","10"]}'
+ set +x
2018-03-10 06:24:05.620 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 001 Using default escc
2018-03-10 06:24:05.620 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc
2018-03-10 06:24:06.811 UTC [chaincodeCmd] chaincodeInvokeOrQuery -> INFO 003 Chaincode invoke successful. result: status:200
2018-03-10 06:24:06.812 UTC [main] main -> INFO 004 Exiting.....
===================== Invoke transaction on peer0.org3 on channel 'mychannel' is successful =====================
CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org3.example.com/peers/peer0.org3.example.com/tls/ca.crt
CORE_PEER_TLS_KEY_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org3.example.com/peers/peer0.org3.example.com/tls/server.key
CORE_PEER_LOCALMSPID=Org3MSP
CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
CORE_PEER_TLS_CERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org3.example.com/peers/peer0.org3.example.com/tls/server.crt
CORE_PEER_TLS_ENABLED=true
CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org3.example.com/users/Admin@org3.example.com/msp
CORE_PEER_ID=Org3cli
CORE_LOGGING_LEVEL=INFO
CORE_PEER_ADDRESS=peer0.org3.example.com:7051
===================== Querying on peer0.org3 on channel 'mychannel'... =====================
Attempting to Query peer0.org3 ...3 secs
+ peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'
+ set +x
2018-03-10 06:24:09.913 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 001 Using default escc
2018-03-10 06:24:09.913 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc
Query Result: 80
2018-03-10 06:24:11.133 UTC [main] main -> INFO 003 Exiting.....
===================== Query on peer0.org3 on channel 'mychannel' is successful =====================
========= All GOOD, EYFN test execution completed ===========
_____ _ _ ____
| ____| | \ | | | _ \
| _| | \| | | | | |
| |___ | |\ | | |_| |
|_____| |_| \_| |____/
[root@cloud0 first-network]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
75bf89230ee0 dev-peer0.org3.example.com-mycc-2.0-156223788c3ef42ff3094c6cf1d2f71284c36f2074cc4d1f09a7065cb903d192 "chaincode -peer.add…" 3 minutes ago Up 3 minutes dev-peer0.org3.example.com-mycc-2.0
2dea1b0eb201 dev-peer0.org1.example.com-mycc-2.0-2732cd4d96a0b88594aefca15581eaa0fb481ad15beeb86cc79931b2a90ee621 "chaincode -peer.add…" 4 minutes ago Up 4 minutes dev-peer0.org1.example.com-mycc-2.0
73a231e8c178 hyperledger/fabric-tools:latest "/bin/bash" 4 minutes ago Up 4 minutes Org3cli
e88794b593a7 hyperledger/fabric-peer:latest "peer node start" 4 minutes ago Up 4 minutes 0.0.0.0:12051->7051/tcp, 0.0.0.0:12053->7053/tcp peer1.org3.example.com
e3aa45fafc79 hyperledger/fabric-peer:latest "peer node start" 4 minutes ago Up 4 minutes 0.0.0.0:11051->7051/tcp, 0.0.0.0:11053->7053/tcp peer0.org3.example.com
8c6805b0b000 dev-peer1.org2.example.com-mycc-1.0-26c2ef32838554aac4f7ad6f100aca865e87959c9a126e86d764c8d01f8346ab "chaincode -peer.add…" 5 minutes ago Up 5 minutes dev-peer1.org2.example.com-mycc-1.0
636035c7a955 dev-peer0.org1.example.com-mycc-1.0-384f11f484b9302df90b453200cfb25174305fce8f53f4e94d45ee3b6cab0ce9 "chaincode -peer.add…" 5 minutes ago Up 5 minutes dev-peer0.org1.example.com-mycc-1.0
746e0040dd78 dev-peer0.org2.example.com-mycc-1.0-15b571b3ce849066b7ec74497da3b27e54e0df1345daff3951b94245ce09c42b "chaincode -peer.add…" 5 minutes ago Up 5 minutes dev-peer0.org2.example.com-mycc-1.0
2c2844b061ef hyperledger/fabric-tools:latest "/bin/bash" 6 minutes ago Up 6 minutes cli
1fff04207f32 hyperledger/fabric-peer:latest "peer node start" 6 minutes ago Up 6 minutes 0.0.0.0:7051->7051/tcp, 0.0.0.0:7053->7053/tcp peer0.org1.example.com
bb6d4d37086a hyperledger/fabric-peer:latest "peer node start" 6 minutes ago Up 6 minutes 0.0.0.0:10051->7051/tcp, 0.0.0.0:10053->7053/tcp peer1.org2.example.com
e00df8ec160e hyperledger/fabric-peer:latest "peer node start" 6 minutes ago Up 6 minutes 0.0.0.0:9051->7051/tcp, 0.0.0.0:9053->7053/tcp peer0.org2.example.com
a0980b7a450a hyperledger/fabric-peer:latest "peer node start" 6 minutes ago Up 6 minutes 0.0.0.0:8051->7051/tcp, 0.0.0.0:8053->7053/tcp peer1.org1.example.com
12dab62f9d17 hyperledger/fabric-orderer:latest "orderer" 6 minutes ago Up 6 minutes 0.0.0.0:7050->7050/tcp orderer.example.com
[root@cloud0 first-network]# ./eyfn.sh down
------------------------------------------------------------------------------------------------------------------X3.Bring Org3 into the Channel Manually
[root@cloud0 first-network]# ./byfn.sh -m generate
[root@cloud0 first-network]# ./byfn.sh -m up
[root@cloud0 fabcar]# docker inspect --format='{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)
/dev-peer1.org2.example.com-mycc-1.0 - 172.19.0.10
/dev-peer0.org1.example.com-mycc-1.0 - 172.19.0.9
/dev-peer0.org2.example.com-mycc-1.0 - 172.19.0.8
/cli - 172.19.0.7
/peer1.org2.example.com - 172.19.0.6
/peer0.org2.example.com - 172.19.0.3
/orderer.example.com - 172.19.0.2
/peer0.org1.example.com - 172.19.0.4
/peer1.org1.example.com - 172.19.0.5
[root@cloud0 first-network]# cd org3-artifacts
[root@cloud0 org3-artifacts]# cat ./org3-crypto.yaml
# Copyright IBM Corp. All Rights Reserved.
#
# SPDX-License-Identifier: Apache-2.0
#
# ---------------------------------------------------------------------------
# "PeerOrgs" - Definition of organizations managing peer nodes
# ---------------------------------------------------------------------------
PeerOrgs:
# ---------------------------------------------------------------------------
# Org3
# ---------------------------------------------------------------------------
- Name: Org3
Domain: org3.example.com
EnableNodeOUs: true
Template:
Count: 2
Users:
Count: 1
[root@cloud0 org3-artifacts]# ../../bin/cryptogen generate --config=./org3-crypto.yaml
org3.example.com
[root@cloud0 org3-artifacts]# tree
configtx.yaml crypto-config/ org3-crypto.yaml
[root@cloud0 org3-artifacts]# tree crypto-config/*
crypto-config/peerOrganizations
└── org3.example.com
├── ca
│ ├── 7f003a372522ecfb987565c48ff5d193297c145f3df772bc8a5d42ed1b8a2b60_sk
│ └── ca.org3.example.com-cert.pem
├── msp
│ ├── admincerts
│ │ └── Admin@org3.example.com-cert.pem
│ ├── cacerts
│ │ └── ca.org3.example.com-cert.pem
│ ├── config.yaml
│ └── tlscacerts
│ └── tlsca.org3.example.com-cert.pem
├── peers
│ ├── peer0.org3.example.com
│ │ ├── msp
│ │ │ ├── admincerts
│ │ │ │ └── Admin@org3.example.com-cert.pem
│ │ │ ├── cacerts
│ │ │ │ └── ca.org3.example.com-cert.pem
│ │ │ ├── config.yaml
│ │ │ ├── keystore
│ │ │ │ └── 137f67558d8ab0ec33f3ee84df88b5d90da95d720ed41fe471ac24dce8e2f027_sk
│ │ │ ├── signcerts
│ │ │ │ └── peer0.org3.example.com-cert.pem
│ │ │ └── tlscacerts
│ │ │ └── tlsca.org3.example.com-cert.pem
│ │ └── tls
│ │ ├── ca.crt
│ │ ├── server.crt
│ │ └── server.key
│ └── peer1.org3.example.com
│ ├── msp
│ │ ├── admincerts
│ │ │ └── Admin@org3.example.com-cert.pem
│ │ ├── cacerts
│ │ │ └── ca.org3.example.com-cert.pem
│ │ ├── config.yaml
│ │ ├── keystore
│ │ │ └── 360f542fa60ff38843692aa7b60cfc31523387eff45b26dc27d141c77ead0dcd_sk
│ │ ├── signcerts
│ │ │ └── peer1.org3.example.com-cert.pem
│ │ └── tlscacerts
│ │ └── tlsca.org3.example.com-cert.pem
│ └── tls
│ ├── ca.crt
│ ├── server.crt
│ └── server.key
├── tlsca
│ ├── 68c71d60c5667e197964703d100c5635475c221c2f1f576dbb80a4f8439dd710_sk
│ └── tlsca.org3.example.com-cert.pem
└── users
├── Admin@org3.example.com
│ ├── msp
│ │ ├── admincerts
│ │ │ └── Admin@org3.example.com-cert.pem
│ │ ├── cacerts
│ │ │ └── ca.org3.example.com-cert.pem
│ │ ├── keystore
│ │ │ └── 7506da79bcf732ac0173a65de6a47bd5b4780aff005aa8117ff5355d490bfa91_sk
│ │ ├── signcerts
│ │ │ └── Admin@org3.example.com-cert.pem
│ │ └── tlscacerts
│ │ └── tlsca.org3.example.com-cert.pem
│ └── tls
│ ├── ca.crt
│ ├── client.crt
│ └── client.key
└── User1@org3.example.com
├── msp
│ ├── admincerts
│ │ └── User1@org3.example.com-cert.pem
│ ├── cacerts
│ │ └── ca.org3.example.com-cert.pem
│ ├── keystore
│ │ └── 9679ef6580fc2155abaa80241ff9fb711dc4554b6d5e5943f1ac9414c752f74e_sk
│ ├── signcerts
│ │ └── User1@org3.example.com-cert.pem
│ └── tlscacerts
│ └── tlsca.org3.example.com-cert.pem
└── tls
├── ca.crt
├── client.crt
└── client.key
41 directories, 42 files
[root@cloud0 org3-artifacts]# export FABRIC_CFG_PATH=$PWD && ../../bin/configtxgen -printOrg Org3MSP > ../channel-artifacts/org3.json
2018-03-10 14:34:19.331 CST [common/tools/configtxgen] main -> INFO 001 Loading configuration
2018-03-10 14:34:19.332 CST [msp] getMspConfig -> INFO 002 Loading NodeOUs
[root@cloud0 org3-artifacts]# cat ../channel-artifacts/org3.json
{
"groups": {},
"mod_policy": "Admins",
"policies": {
"Admins": {
"mod_policy": "Admins",
"policy": {
"type": 1,
"value": {
"identities": [
{
"principal": {
"msp_identifier": "Org3MSP",
"role": "ADMIN"
},
"principal_classification": "ROLE"
}
],
"rule": {
"n_out_of": {
"n": 1,
"rules": [
{
"signed_by": 0
}
]
}
},
"version": 0
}
},
"version": "0"
},
"Readers": {
"mod_policy": "Admins",
"policy": {
"type": 1,
"value": {
"identities": [
{
"principal": {
"msp_identifier": "Org3MSP",
"role": "MEMBER"
},
"principal_classification": "ROLE"
}
],
"rule": {
"n_out_of": {
"n": 1,
"rules": [
{
"signed_by": 0
}
]
}
},
"version": 0
}
},
"version": "0"
},
"Writers": {
"mod_policy": "Admins",
"policy": {
"type": 1,
"value": {
"identities": [
{
"principal": {
"msp_identifier": "Org3MSP",
"role": "MEMBER"
},
"principal_classification": "ROLE"
}
],
"rule": {
"n_out_of": {
"n": 1,
"rules": [
{
"signed_by": 0
}
]
}
},
"version": 0
}
},
"version": "0"
}
},
"values": {
"MSP": {
"mod_policy": "Admins",
"value": {
"config": {
"FabricNodeOUs": {
"Enable": true,
"clientOUIdentifier": {
"certificate": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNRekNDQWVxZ0F3SUJBZ0lSQUkwQlB4TUFUcUc3MWwvU0dxU2dmYkF3Q2dZSUtvWkl6ajBFQXdJd2N6RUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhHVEFYQmdOVkJBb1RFRzl5WnpNdVpYaGhiWEJzWlM1amIyMHhIREFhQmdOVkJBTVRFMk5oCkxtOXlaek11WlhoaGJYQnNaUzVqYjIwd0hoY05NVGd3TXpFd01EWXlOelUxV2hjTk1qZ3dNekEzTURZeU56VTEKV2pCek1Rc3dDUVlEVlFRR0V3SlZVekVUTUJFR0ExVUVDQk1LUTJGc2FXWnZjbTVwWVRFV01CUUdBMVVFQnhNTgpVMkZ1SUVaeVlXNWphWE5qYnpFWk1CY0dBMVVFQ2hNUWIzSm5NeTVsZUdGdGNHeGxMbU52YlRFY01Cb0dBMVVFCkF4TVRZMkV1YjNKbk15NWxlR0Z0Y0d4bExtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUEKQkwvNzAxSFNwQ2xCL2tCWEZ2dmZOeFp0K29wVm5UVXRpeU1PRjlvVXlnT1NvTnVmWERFZ0w2b3lsMTJNdDdhYworQWcwNzVrMk5Gb3ZndnNsN0ljSXJJcWpYekJkTUE0R0ExVWREd0VCL3dRRUF3SUJwakFQQmdOVkhTVUVDREFHCkJnUlZIU1VBTUE4R0ExVWRFd0VCL3dRRk1BTUJBZjh3S1FZRFZSME9CQ0lFSUg4QU9qY2xJdXo3bUhWbHhJLzEKMFpNcGZCUmZQZmR5dklwZFF1MGJpaXRnTUFvR0NDcUdTTTQ5QkFNQ0EwY0FNRVFDSUQ4Tm9Sd1AvdExVNFZNcgorUFNSbjllV05GclZCSGx3MXhKeWwvUEZWY3dEQWlCYmFyR24vQWFKR2QwM2cyOTVQUEZKOXRubmZZSFFEeGNGCkNYQzVwSzB0OWc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==",
"organizational_unit_identifier": "client"
},
"peerOUIdentifier": {
"certificate": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNRekNDQWVxZ0F3SUJBZ0lSQUkwQlB4TUFUcUc3MWwvU0dxU2dmYkF3Q2dZSUtvWkl6ajBFQXdJd2N6RUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhHVEFYQmdOVkJBb1RFRzl5WnpNdVpYaGhiWEJzWlM1amIyMHhIREFhQmdOVkJBTVRFMk5oCkxtOXlaek11WlhoaGJYQnNaUzVqYjIwd0hoY05NVGd3TXpFd01EWXlOelUxV2hjTk1qZ3dNekEzTURZeU56VTEKV2pCek1Rc3dDUVlEVlFRR0V3SlZVekVUTUJFR0ExVUVDQk1LUTJGc2FXWnZjbTVwWVRFV01CUUdBMVVFQnhNTgpVMkZ1SUVaeVlXNWphWE5qYnpFWk1CY0dBMVVFQ2hNUWIzSm5NeTVsZUdGdGNHeGxMbU52YlRFY01Cb0dBMVVFCkF4TVRZMkV1YjNKbk15NWxlR0Z0Y0d4bExtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUEKQkwvNzAxSFNwQ2xCL2tCWEZ2dmZOeFp0K29wVm5UVXRpeU1PRjlvVXlnT1NvTnVmWERFZ0w2b3lsMTJNdDdhYworQWcwNzVrMk5Gb3ZndnNsN0ljSXJJcWpYekJkTUE0R0ExVWREd0VCL3dRRUF3SUJwakFQQmdOVkhTVUVDREFHCkJnUlZIU1VBTUE4R0ExVWRFd0VCL3dRRk1BTUJBZjh3S1FZRFZSME9CQ0lFSUg4QU9qY2xJdXo3bUhWbHhJLzEKMFpNcGZCUmZQZmR5dklwZFF1MGJpaXRnTUFvR0NDcUdTTTQ5QkFNQ0EwY0FNRVFDSUQ4Tm9Sd1AvdExVNFZNcgorUFNSbjllV05GclZCSGx3MXhKeWwvUEZWY3dEQWlCYmFyR24vQWFKR2QwM2cyOTVQUEZKOXRubmZZSFFEeGNGCkNYQzVwSzB0OWc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==",
"organizational_unit_identifier": "peer"
}
},
"admins": [
"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNLakNDQWRHZ0F3SUJBZ0lSQVBpWEh1UE16Q1FSalVrVjhIK0l0ZDB3Q2dZSUtvWkl6ajBFQXdJd2N6RUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhHVEFYQmdOVkJBb1RFRzl5WnpNdVpYaGhiWEJzWlM1amIyMHhIREFhQmdOVkJBTVRFMk5oCkxtOXlaek11WlhoaGJYQnNaUzVqYjIwd0hoY05NVGd3TXpFd01EWXlOelUxV2hjTk1qZ3dNekEzTURZeU56VTEKV2pCc01Rc3dDUVlEVlFRR0V3SlZVekVUTUJFR0ExVUVDQk1LUTJGc2FXWnZjbTVwWVRFV01CUUdBMVVFQnhNTgpVMkZ1SUVaeVlXNWphWE5qYnpFUE1BMEdBMVVFQ3hNR1kyeHBaVzUwTVI4d0hRWURWUVFEREJaQlpHMXBia0J2CmNtY3pMbVY0WVcxd2JHVXVZMjl0TUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFWFQ1dGdqSEcKVmlVekFjSDFJTS9IQjVySmJmWUFrZDIrdUxyc3NzbWNGZnlwaklFYlVlNVVnd0IrY3RSSURNWGo2Y2VsSjBSRQplQnN6THFmTFFRTkZCYU5OTUVzd0RnWURWUjBQQVFIL0JBUURBZ2VBTUF3R0ExVWRFd0VCL3dRQ01BQXdLd1lEClZSMGpCQ1F3SW9BZ2Z3QTZOeVVpN1B1WWRXWEVqL1hSa3lsOEZGODk5M0s4aWwxQzdSdUtLMkF3Q2dZSUtvWkkKemowRUF3SURSd0F3UkFJZ0UzdUZEdm1PWmtYb0NaUStzRXR6VVpQWXp0Uy85RHZydjg5SFJ5TklHbW9DSUJETgpRZTV3YnlBcVNrclJ4TUZ1U0VBeHY0SlRmRHQvNXpUUWxub2dZc2M3Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K"
],
"crypto_config": {
"identity_identifier_hash_function": "SHA256",
"signature_hash_family": "SHA2"
},
"name": "Org3MSP",
"root_certs": [
"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNRekNDQWVxZ0F3SUJBZ0lSQUkwQlB4TUFUcUc3MWwvU0dxU2dmYkF3Q2dZSUtvWkl6ajBFQXdJd2N6RUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhHVEFYQmdOVkJBb1RFRzl5WnpNdVpYaGhiWEJzWlM1amIyMHhIREFhQmdOVkJBTVRFMk5oCkxtOXlaek11WlhoaGJYQnNaUzVqYjIwd0hoY05NVGd3TXpFd01EWXlOelUxV2hjTk1qZ3dNekEzTURZeU56VTEKV2pCek1Rc3dDUVlEVlFRR0V3SlZVekVUTUJFR0ExVUVDQk1LUTJGc2FXWnZjbTVwWVRFV01CUUdBMVVFQnhNTgpVMkZ1SUVaeVlXNWphWE5qYnpFWk1CY0dBMVVFQ2hNUWIzSm5NeTVsZUdGdGNHeGxMbU52YlRFY01Cb0dBMVVFCkF4TVRZMkV1YjNKbk15NWxlR0Z0Y0d4bExtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUEKQkwvNzAxSFNwQ2xCL2tCWEZ2dmZOeFp0K29wVm5UVXRpeU1PRjlvVXlnT1NvTnVmWERFZ0w2b3lsMTJNdDdhYworQWcwNzVrMk5Gb3ZndnNsN0ljSXJJcWpYekJkTUE0R0ExVWREd0VCL3dRRUF3SUJwakFQQmdOVkhTVUVDREFHCkJnUlZIU1VBTUE4R0ExVWRFd0VCL3dRRk1BTUJBZjh3S1FZRFZSME9CQ0lFSUg4QU9qY2xJdXo3bUhWbHhJLzEKMFpNcGZCUmZQZmR5dklwZFF1MGJpaXRnTUFvR0NDcUdTTTQ5QkFNQ0EwY0FNRVFDSUQ4Tm9Sd1AvdExVNFZNcgorUFNSbjllV05GclZCSGx3MXhKeWwvUEZWY3dEQWlCYmFyR24vQWFKR2QwM2cyOTVQUEZKOXRubmZZSFFEeGNGCkNYQzVwSzB0OWc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg=="
],
"tls_root_certs": [
"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNTRENDQWUrZ0F3SUJBZ0lRR0FQUHJjKzlLR1prSk5ZdHRTNzlQREFLQmdncWhrak9QUVFEQWpCMk1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTXk1bGVHRnRjR3hsTG1OdmJURWZNQjBHQTFVRUF4TVdkR3h6ClkyRXViM0puTXk1bGVHRnRjR3hsTG1OdmJUQWVGdzB4T0RBek1UQXdOakkzTlRWYUZ3MHlPREF6TURjd05qSTMKTlRWYU1IWXhDekFKQmdOVkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSApFdzFUWVc0Z1JuSmhibU5wYzJOdk1Sa3dGd1lEVlFRS0V4QnZjbWN6TG1WNFlXMXdiR1V1WTI5dE1SOHdIUVlEClZRUURFeFowYkhOallTNXZjbWN6TG1WNFlXMXdiR1V1WTI5dE1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMEQKQVFjRFFnQUVpMVhTRTdENUJGYVU0b2xGSjRFVitydklZTndxQ2dRZUw3S0tNWkgzaFROYUxkZlZPL3M1a25oRAprSUJGNkhRanRUNmUvaFAycTNEemxqSGdKYkFLb0tOZk1GMHdEZ1lEVlIwUEFRSC9CQVFEQWdHbU1BOEdBMVVkCkpRUUlNQVlHQkZVZEpRQXdEd1lEVlIwVEFRSC9CQVV3QXdFQi96QXBCZ05WSFE0RUlnUWdhTWNkWU1WbWZobDUKWkhBOUVBeFdOVWRjSWh3dkgxZHR1NENrK0VPZDF4QXdDZ1lJS29aSXpqMEVBd0lEUndBd1JBSWdFemY4Qys1QgpQK0Q0cUl6NHdEV2xERGhnN3V6Zkdoa29aMkw5WWpVRkg0TUNJRWMvMEFVSmVscTEvOTVZYzgrMlRzWld2QzBPCmhiUlRTaXFEeFpMVHR4K1gKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo="
]
},
"type": 0
},
"version": "0"
}
},
"version": "0"
}
[root@cloud0 org3-artifacts]# cd ../ && cp -r crypto-config/ordererOrganizations org3-artifacts/crypto-config/
[root@cloud0 first-network]# docker exec -it cli bash
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# clear
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# apt install inetutils-ping
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
inetutils-ping
0 upgraded, 1 newly installed, 0 to remove and 32 not upgraded.
Need to get 56.9 kB of archives.
After this operation, 338 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu xenial/universe amd64 inetutils-ping amd64 2:1.9.4-1build1 [56.9 kB]
Fetched 56.9 kB in 2s (26.5 kB/s)
debconf: unable to initialize frontend: Dialog
debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 76, <> line 1.)
debconf: falling back to frontend: Readline
Selecting previously unselected package inetutils-ping.
(Reading database ... 22662 files and directories currently installed.)
Preparing to unpack .../inetutils-ping_2%3a1.9.4-1build1_amd64.deb ...
Unpacking inetutils-ping (2:1.9.4-1build1) ...
Setting up inetutils-ping (2:1.9.4-1build1) ...
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# ping orderer.example.com
PING orderer.example.com (172.19.0.2): 56 data bytes
64 bytes from 172.19.0.2: icmp_seq=0 ttl=64 time=0.097 ms
64 bytes from 172.19.0.2: icmp_seq=1 ttl=64 time=0.073 ms
64 bytes from 172.19.0.2: icmp_seq=2 ttl=64 time=0.074 ms
^C--- orderer.example.com ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max/stddev = 0.073/0.081/0.097/0.000 ms
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
881: eth0@if882: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:ac:13:00:07 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 172.19.0.7/16 brd 172.19.255.255 scope global eth0
valid_lft forever preferred_lft forever
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# apt update && apt install -y jq
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# export ORDERER_CA=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem && export CHANNEL_NAME=mychannel
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer channel getinfo -c mychannel
2018-03-10 07:06:46.180 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
Blockchain info: {"height":5,"currentBlockHash":"Mp0TsivBada4L0QMdbOSevrlP1mLCMUIgbZMr4vzh2o=","previousBlockHash":"ZoL+jHrEbvg/28UABa+3RNFu9/KL2XarU9zVunDL0OM="}
2018-03-10 07:06:46.183 UTC [main] main -> INFO 002 Exiting.....
#备注:
#block 0: genesis block
#block 1: Org1 anchor peer update
#block 2: Org2 anchor peer update
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer
Usage:
peer [flags]
peer [command]
Available Commands:
chaincode Operate a chaincode: install|instantiate|invoke|package|query|signpackage|upgrade|list.
channel Operate a channel: create|fetch|join|list|update|signconfigtx|getinfo.
logging Log levels: getlevel|setlevel|revertlevels.
node Operate a peer node: start|status.
version Print fabric peer version.
Flags:
-h, --help help for peer
--logging-level string Default logging level and overrides, see core.yaml for full syntax
-v, --version Display current version of fabric peer server
Use "peer [command] --help" for more information about a command.
2018-03-10 07:12:04.469 UTC [main] main -> INFO 001 Exiting.....
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer channel fetch
Error: ordering service endpoint is not valid or missing
Usage:
peer channel fetch <newest|oldest|config|(number)> [outputfile] [flags]
Flags:
-c, --channelID string In case of a newChain command, the channel ID to create.
-h, --help help for fetch
Global Flags:
--cafile string Path to file containing PEM-encoded trusted certificate(s) for the ordering endpoint
--certfile string Path to file containing PEM-encoded X509 public key to use for mutual TLS communication with the orderer endpoint
--clientauth Use mutual TLS when communicating with the orderer endpoint
--keyfile string Path to file containing PEM-encoded private key to use for mutual TLS communication with the orderer endpoint
--logging-level string Default logging level and overrides, see core.yaml for full syntax
-o, --orderer string Ordering service endpoint
--ordererTLSHostnameOverride string The hostname override to use when validating the TLS connection to the orderer.
--tls Use TLS when communicating with the orderer endpoint
-v, --version Display current version of fabric peer server
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer channel fetch newest newest_block.pb -o orderer.example.com:7050 -c $CHANNEL_NAME --tls --cafile $ORDERER_CA
2018-03-10 07:14:10.197 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
2018-03-10 07:14:10.200 UTC [main] main -> INFO 002 Exiting.....
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer channel fetch oldest oldest_block.pb -o orderer.example.com:7050 -c $CHANNEL_NAME --tls --cafile $ORDERER_CA
2018-03-10 07:15:10.892 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
2018-03-10 07:15:10.895 UTC [main] main -> INFO 002 Exiting.....
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer channel fetch 0 0_block.pb -o orderer.example.com:7050 -c $CHANNEL_NAME --tls --cafile $ORDERER_CA
2018-03-10 07:18:10.445 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
2018-03-10 07:18:10.450 UTC [main] main -> INFO 002 Exiting.....
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer channel fetch 1 1_block.pb -o orderer.example.com:7050 -c $CHANNEL_NAME --tls --cafile $ORDERER_CA
2018-03-10 07:18:26.058 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
2018-03-10 07:18:26.061 UTC [main] main -> INFO 002 Exiting.....
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer channel fetch 2 2_block.pb -o orderer.example.com:7050 -c $CHANNEL_NAME --tls --cafile $ORDERER_CA
2018-03-10 07:18:32.024 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
2018-03-10 07:18:32.029 UTC [main] main -> INFO 002 Exiting.....
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer channel fetch 3 3_block.pb -o orderer.example.com:7050 -c $CHANNEL_NAME --tls --cafile $ORDERER_CA
2018-03-10 07:18:37.719 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
2018-03-10 07:18:37.723 UTC [main] main -> INFO 002 Exiting.....
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer channel fetch 4 4_block.pb -o orderer.example.com:7050 -c $CHANNEL_NAME --tls --cafile $ORDERER_CA
2018-03-10 07:18:43.081 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
2018-03-10 07:18:43.085 UTC [main] main -> INFO 002 Exiting.....
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer channel fetch config config_block.pb -o orderer.example.com:7050 -c $CHANNEL_NAME --tls --cafile $ORDERER_CA
2018-03-10 07:22:20.022 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
2018-03-10 07:22:20.029 UTC [main] main -> INFO 002 Exiting.....
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# ll
total 136
drwxr-xr-x. 5 root root 257 Mar 10 07:18 ./
drwxr-xr-x. 3 root root 18 Mar 10 06:30 ../
-rw-r--r--. 1 root root 15664 Mar 10 07:18 0_block.pb
-rw-r--r--. 1 root root 17492 Mar 10 07:18 1_block.pb
-rw-r--r--. 1 root root 17560 Mar 10 07:18 2_block.pb
-rw-r--r--. 1 root root 5402 Mar 10 07:18 3_block.pb
-rw-r--r--. 1 root root 4846 Mar 10 07:18 4_block.pb
drwxr-xr-x. 2 root root 128 Mar 10 06:34 channel-artifacts/
-rw-r--r--. 1 root root 17560 Mar 10 07:12 config_block.pb
drwxr-xr-x. 4 root root 59 Mar 10 06:30 crypto/
-rw-r--r--. 1 root root 290 Mar 10 06:31 log.txt
-rw-r--r--. 1 root root 15664 Mar 10 06:30 mychannel.block
-rw-r--r--. 1 root root 4846 Mar 10 07:14 newest_block.pb
-rw-r--r--. 1 root root 15664 Mar 10 07:15 oldest_block.pb
drwxr-xr-x. 2 root root 168 Mar 5 13:33 scripts/
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# configtxlator
usage: configtxlator [<flags>] <command> [<args> ...]
Utility for generating Hyperledger Fabric channel configurations
Flags:
--help Show context-sensitive help (also try --help-long and --help-man).
Commands:
help [<command>...]
Show help.
start [<flags>]
Start the configtxlator REST server
proto_encode --type=TYPE [<flags>]
Converts a JSON document to protobuf.
proto_decode --type=TYPE [<flags>]
Converts a proto message to JSON.
compute_update --channel_id=CHANNEL_ID [<flags>]
Takes two marshaled common.Config messages and computes the config update which transitions between the two.
version
Show version information
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# configtxlator proto_decode --help
usage: configtxlator proto_decode --type=TYPE [<flags>]
Converts a proto message to JSON.
Flags:
--help Show context-sensitive help (also try --help-long and --help-man).
--type=TYPE The type of protobuf structure to decode from. For example, 'common.Config'.
--input=/dev/stdin A file containing the proto message.
--output=/dev/stdout A file to write the JSON document to.
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# configtxlator proto_decode --input 0_block.pb --type common.Block > block0.json
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# configtxlator proto_decode --input 1_block.pb --type common.Block > block1.json
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# configtxlator proto_decode --input 2_block.pb --type common.Block > block2.json
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# configtxlator proto_decode --input 3_block.pb --type common.Block > block3.json
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# configtxlator proto_decode --input 4_block.pb --type common.Block > block4.json
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# configtxlator proto_decode --input newest_block.pb --type common.Block > blocknew.json
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# configtxlator proto_decode --input oldest_block.pb --type common.Block > blockold.json
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# configtxlator proto_decode --input config_block.pb --type common.Block | jq .data.data[0].payload.data.config > config.json
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer#
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# jq -s '.[0] * {"channel_group":{"groups":{"Application":{"groups": {"Org3MSP":.[1]}}}}}' config.json ./channel-artifacts/org3.json > modified_config.json
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# configtxlator proto_encode --input config.json --type common.Config --output config.pb
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# configtxlator proto_encode --input modified_config.json --type common.Config --output modified_config.pb
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# configtxlator compute_update --channel_id $CHANNEL_NAME --original config.pb --updated modified_config.pb --output org3_update.pb
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# configtxlator proto_decode --input org3_update.pb --type common.ConfigUpdate | jq . > org3_update.json
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# echo '{"payload":{"header":{"channel_header":{"channel_id":"mychannel", "type":2}},"data":{"config_update":'$(cat org3_update.json)'}}}' | jq . > org3_update_in_envelope.json
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# less org3_update_in_envelope.json
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# configtxlator proto_encode --input org3_update_in_envelope.json --type common.Envelope --output org3_update_in_envelope.pb
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer channel signconfigtx -f org3_update_in_envelope.pb
2018-03-10 08:42:55.739 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
2018-03-10 08:42:55.741 UTC [main] main -> INFO 002 Exiting.....
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# export CORE_PEER_LOCALMSPID="Org2MSP"
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer#
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# export CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crtroot@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer#
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# export CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer#
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# export CORE_PEER_ADDRESS=peer0.org2.example.com:7051
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer channel update -f org3_update_in_envelope.pb -c $CHANNEL_NAME -o orderer.example.com:7050 --tls --cafile $ORDERER_CA
2018-03-10 08:43:51.043 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
2018-03-10 08:43:51.061 UTC [channelCmd] update -> INFO 002 Successfully submitted channel update
2018-03-10 08:43:51.061 UTC [main] main -> INFO 003 Exiting.....
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer channel getinfo -c mychannel
2018-03-10 08:45:14.547 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
Blockchain info: {"height":6,"currentBlockHash":"7eLpggxXuS7PuXVIaVbNZIPZh0ob63hL1KW5rZ9ZXSE=","previousBlockHash":"Mp0TsivBada4L0QMdbOSevrlP1mLCMUIgbZMr4vzh2o="}
2018-03-10 08:45:14.550 UTC [main] main -> INFO 002 Exiting.....
[root@cloud0 ~]# cd /data/blockchain/fabric-samples/first-network
[root@cloud0 first-network]# docker-compose -f docker-compose-org3.yaml up -d
Creating volume "net_peer0.org3.example.com" with default driver
Creating volume "net_peer1.org3.example.com" with default driver
WARNING: Found orphan containers (cli, peer1.org2.example.com, peer0.org2.example.com, orderer.example.com, peer0.org1.example.com, peer1.org1.example.com) for this project. If you removed or renamed this service in your compose file, yoCreating peer1.org3.example.com ... done
Creating Org3cli ... done
Creating peer1.org3.example.com ...
Creating Org3cli ...
[root@cloud0 first-network]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9808b1f21d4f hyperledger/fabric-tools:latest "/bin/bash" 11 seconds ago Up 10 seconds Org3cli
e16294870f9a hyperledger/fabric-peer:latest "peer node start" 12 seconds ago Up 11 seconds 0.0.0.0:12051->7051/tcp, 0.0.0.0:12053->7053/tcp peer1.org3.example.com
169f04f7b9ba hyperledger/fabric-peer:latest "peer node start" 12 seconds ago Up 11 seconds 0.0.0.0:11051->7051/tcp, 0.0.0.0:11053->7053/tcp peer0.org3.example.com
bcadf752fe8b dev-peer1.org2.example.com-mycc-1.0-26c2ef32838554aac4f7ad6f100aca865e87959c9a126e86d764c8d01f8346ab "chaincode -peer.add…" 2 hours ago Up 2 hours dev-peer1.org2.example.com-mycc-1.0
9f4a8be9a861 dev-peer0.org1.example.com-mycc-1.0-384f11f484b9302df90b453200cfb25174305fce8f53f4e94d45ee3b6cab0ce9 "chaincode -peer.add…" 2 hours ago Up 2 hours dev-peer0.org1.example.com-mycc-1.0
b891a25fcaaa dev-peer0.org2.example.com-mycc-1.0-15b571b3ce849066b7ec74497da3b27e54e0df1345daff3951b94245ce09c42b "chaincode -peer.add…" 2 hours ago Up 2 hours dev-peer0.org2.example.com-mycc-1.0
bccef515b9b1 hyperledger/fabric-tools:latest "/bin/bash" 2 hours ago Up 2 hours cli
4f7788ff2202 hyperledger/fabric-peer:latest "peer node start" 2 hours ago Up 2 hours 0.0.0.0:10051->7051/tcp, 0.0.0.0:10053->7053/tcp peer1.org2.example.com
df102c944fb3 hyperledger/fabric-peer:latest "peer node start" 2 hours ago Up 2 hours 0.0.0.0:9051->7051/tcp, 0.0.0.0:9053->7053/tcp peer0.org2.example.com
6b344f3cb287 hyperledger/fabric-orderer:latest "orderer" 2 hours ago Up 2 hours 0.0.0.0:7050->7050/tcp orderer.example.com
1311da237b1b hyperledger/fabric-peer:latest "peer node start" 2 hours ago Up 2 hours 0.0.0.0:7051->7051/tcp, 0.0.0.0:7053->7053/tcp peer0.org1.example.com
ad519c13a058 hyperledger/fabric-peer:latest "peer node start" 2 hours ago Up 2 hours 0.0.0.0:8051->7051/tcp, 0.0.0.0:8053->7053/tcp peer1.org1.example.com
[root@cloud0 first-network]# docker exec -it Org3cli bash
root@9808b1f21d4f:/opt/gopath/src/github.com/hyperledger/fabric/peer#
root@9808b1f21d4f:/opt/gopath/src/github.com/hyperledger/fabric/peer# export ORDERER_CA=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem && export CHANNEL_NAME=mychannel
root@9808b1f21d4f:/opt/gopath/src/github.com/hyperledger/fabric/peer# echo $ORDERER_CA && echo $CHANNEL_NAME
/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
mychannel
root@9808b1f21d4f:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer channel fetch 0 mychannel.block -o orderer.example.com:7050 -c $CHANNEL_NAME --tls --cafile $ORDERER_CA
2018-03-10 08:52:11.317 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
2018-03-10 08:52:11.320 UTC [main] main -> INFO 002 Exiting.....
root@9808b1f21d4f:/opt/gopath/src/github.com/hyperledger/fabric/peer# ll
total 16
drwxr-xr-x. 4 root root 58 Mar 10 08:52 ./
drwxr-xr-x. 3 root root 18 Mar 10 08:49 ../
drwxr-xr-x. 4 root root 59 Mar 10 06:36 crypto/
-rw-r--r--. 1 root root 15664 Mar 10 08:52 mychannel.block
drwxr-xr-x. 2 root root 168 Mar 5 13:33 scripts/
root@9808b1f21d4f:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer channel join -b mychannel.block
2018-03-10 08:52:43.461 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
2018-03-10 08:52:43.745 UTC [channelCmd] executeJoin -> INFO 002 Successfully submitted proposal to join channel
2018-03-10 08:52:43.745 UTC [main] main -> INFO 003 Exiting.....
root@9808b1f21d4f:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer channel getinfo -c mychannel
2018-03-10 08:53:46.908 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
Blockchain info: {"height":6,"currentBlockHash":"7eLpggxXuS7PuXVIaVbNZIPZh0ob63hL1KW5rZ9ZXSE=","previousBlockHash":"Mp0TsivBada4L0QMdbOSevrlP1mLCMUIgbZMr4vzh2o="}
2018-03-10 08:53:46.912 UTC [main] main -> INFO 002 Exiting.....
root@9808b1f21d4f:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer chaincode install -n mycc -v 2.0 -p github.com/chaincode/chaincode_example02/go/
2018-03-10 08:56:07.042 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 001 Using default escc
2018-03-10 08:56:07.042 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc
2018-03-10 08:56:07.191 UTC [main] main -> INFO 003 Exiting.....
# peer org3cli
root@9808b1f21d4f:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer chaincode install -n mycc -v 2.0 -p github.com/chaincode/chaincode_example02/go/
2018-03-10 08:56:07.042 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 001 Using default escc
2018-03-10 08:56:07.042 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc
2018-03-10 08:56:07.191 UTC [main] main -> INFO 003 Exiting.....
root@9808b1f21d4f:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer chaincode list --installed
Get installed chaincodes on peer:
Name: mycc, Version: 2.0, Path: github.com/chaincode/chaincode_example02/go/, Id: 9dd24a058c56bbafe0a4bb2479d58d6950f589b627b73c7029e010f460a7c7d3
2018-03-10 08:57:27.562 UTC [main] main -> INFO 001 Exiting.....
root@9808b1f21d4f:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer chaincode list --instantiated -C mychannel
Get instantiated chaincodes on channel mychannel:
Name: mycc, Version: 1.0, Escc: escc, Vscc: vscc
2018-03-10 08:57:56.130 UTC [main] main -> INFO 001 Exiting.....
# peer org1cli
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer chaincode list --installed
Get installed chaincodes on peer:
Name: mycc, Version: 1.0, Path: github.com/chaincode/chaincode_example02/go/, Id: 476fca1a949274001971f1ec2836cb09321f0b71268b3762d68931c93f218134
2018-03-10 08:57:36.758 UTC [main] main -> INFO 001 Exiting.....
# peer org1cli
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer chaincode install -n mycc -v 2.0 -p github.com/chaincode/chaincode_example02/go/
2018-03-10 09:03:44.974 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 001 Using default escc
2018-03-10 09:03:44.975 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc
2018-03-10 09:03:45.126 UTC [main] main -> INFO 003 Exiting.....
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# export CORE_PEER_LOCALMSPID="Org1MSP"
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# export 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.crtroot@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer#
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# export CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# export CORE_PEER_ADDRESS=peer0.org1.example.com:7051
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer chaincode install -n mycc -v 2.0 -p github.com/chaincode/chaincode_example02/go/
2018-03-10 09:03:59.380 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 001 Using default escc
2018-03-10 09:03:59.380 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc
2018-03-10 09:03:59.522 UTC [main] main -> INFO 003 Exiting.....
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer chaincode list --installed
Get installed chaincodes on peer:
Name: mycc, Version: 1.0, Path: github.com/chaincode/chaincode_example02/go/, Id: 476fca1a949274001971f1ec2836cb09321f0b71268b3762d68931c93f218134
Name: mycc, Version: 2.0, Path: github.com/chaincode/chaincode_example02/go/, Id: 9dd24a058c56bbafe0a4bb2479d58d6950f589b627b73c7029e010f460a7c7d3
2018-03-10 09:04:07.361 UTC [main] main -> INFO 001 Exiting.....
[root@cloud0 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fbde8ed1b5e5 hyperledger/fabric-ccenv:x86_64-1.1.0-rc1 "/bin/sh -c 'GOPATH=a|" 8 seconds ago Up 7 seconds hopeful_blackwell
03442515ad6d dev-peer0.org1.example.com-mycc-2.0-2732cd4d96a0b88594aefca15581eaa0fb481ad15beeb86cc79931b2a90ee621 "chaincode -peer.adda|" About a minute ago Up About a minute dev-peer0.org1.example.com-mycc-2.0
9808b1f21d4f hyperledger/fabric-tools:latest "/bin/bash" 19 minutes ago Up 19 minutes Org3cli
e16294870f9a hyperledger/fabric-peer:latest "peer node start" 19 minutes ago Up 19 minutes 0.0.0.0:12051->7051/tcp, 0.0.0.0:12053->7053/tcp peer1.org3.example.com
169f04f7b9ba hyperledger/fabric-peer:latest "peer node start" 19 minutes ago Up 19 minutes 0.0.0.0:11051->7051/tcp, 0.0.0.0:11053->7053/tcp peer0.org3.example.com
bcadf752fe8b dev-peer1.org2.example.com-mycc-1.0-26c2ef32838554aac4f7ad6f100aca865e87959c9a126e86d764c8d01f8346ab "chaincode -peer.adda|" 3 hours ago Up 3 hours dev-peer1.org2.example.com-mycc-1.0
9f4a8be9a861 dev-peer0.org1.example.com-mycc-1.0-384f11f484b9302df90b453200cfb25174305fce8f53f4e94d45ee3b6cab0ce9 "chaincode -peer.adda|" 3 hours ago Up 3 hours dev-peer0.org1.example.com-mycc-1.0
b891a25fcaaa dev-peer0.org2.example.com-mycc-1.0-15b571b3ce849066b7ec74497da3b27e54e0df1345daff3951b94245ce09c42b "chaincode -peer.adda|" 3 hours ago Up 3 hours dev-peer0.org2.example.com-mycc-1.0
bccef515b9b1 hyperledger/fabric-tools:latest "/bin/bash" 3 hours ago Up 3 hours cli
4f7788ff2202 hyperledger/fabric-peer:latest "peer node start" 3 hours ago Up 3 hours 0.0.0.0:10051->7051/tcp, 0.0.0.0:10053->7053/tcp peer1.org2.example.com
df102c944fb3 hyperledger/fabric-peer:latest "peer node start" 3 hours ago Up 3 hours 0.0.0.0:9051->7051/tcp, 0.0.0.0:9053->7053/tcp peer0.org2.example.com
6b344f3cb287 hyperledger/fabric-orderer:latest "orderer" 3 hours ago Up 3 hours 0.0.0.0:7050->7050/tcp orderer.example.com
1311da237b1b hyperledger/fabric-peer:latest "peer node start" 3 hours ago Up 3 hours 0.0.0.0:7051->7051/tcp, 0.0.0.0:7053->7053/tcp peer0.org1.example.com
ad519c13a058 hyperledger/fabric-peer:latest "peer node start" 3 hours ago Up 3 hours 0.0.0.0:8051->7051/tcp, 0.0.0.0:8053->7053/tcp peer1.org1.example.com
# peer org1cli
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer chaincode upgrade -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA -C $CHANNEL_NAME -n mycc -v 2.0 -c '{"Args":["init","a","90","b","210"]}' -P "OR ('Org1MSP.peer','Org2MSP.peer','Org3MSP.peer')"
2018-03-10 09:06:43.740 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 001 Using default escc
2018-03-10 09:06:43.740 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc
2018-03-10 09:06:55.611 UTC [main] main -> INFO 003 Exiting.....
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer channel getinfo -c mychannel
2018-03-10 09:07:33.570 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
Blockchain info: {"height":7,"currentBlockHash":"ZDoiRJS4UOOzPvC7wE1J9YtdHROXzuzjw+0lSskrq8Q=","previousBlockHash":"7eLpggxXuS7PuXVIaVbNZIPZh0ob63hL1KW5rZ9ZXSE="}
2018-03-10 09:07:33.575 UTC [main] main -> INFO 002 Exiting.....
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer chaincode list --instantiated -C mychannel
Get instantiated chaincodes on channel mychannel:
Name: mycc, Version: 2.0, Path: github.com/chaincode/chaincode_example02/go/, Escc: escc, Vscc: vscc
2018-03-10 09:07:42.715 UTC [main] main -> INFO 001 Exiting.....
# peer org3cli
root@9808b1f21d4f:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer chaincode list --instantiated -C mychannel
Get instantiated chaincodes on channel mychannel:
Name: mycc, Version: 2.0, Path: github.com/chaincode/chaincode_example02/go/, Escc: escc, Vscc: vscc
2018-03-10 09:07:49.827 UTC [main] main -> INFO 001 Exiting.....
root@9808b1f21d4f:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer chaincode query -C $CHANNEL_NAME -n mycc -c '{"Args":["query","a"]}'
2018-03-10 09:08:08.040 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 001 Using default escc
2018-03-10 09:08:08.040 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc
Query Result: 90
2018-03-10 09:08:19.985 UTC [main] main -> INFO 003 Exiting.....
root@9808b1f21d4f:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer chaincode invoke -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA -C $CHANNEL_NAME -n mycc -c '{"Args":["invoke","a","b","10"]}'
2018-03-10 09:08:48.504 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 001 Using default escc
2018-03-10 09:08:48.504 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc
2018-03-10 09:08:49.703 UTC [chaincodeCmd] chaincodeInvokeOrQuery -> INFO 003 Chaincode invoke successful. result: status:200
2018-03-10 09:08:49.703 UTC [main] main -> INFO 004 Exiting.....
# peer org1cli
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer channel getinfo -c mychannel
2018-03-10 09:09:11.706 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
Blockchain info: {"height":8,"currentBlockHash":"Urdxc46s5+QoAEeqx+nfH3lvPwLbrd4ESgSNifAAUGQ=","previousBlockHash":"ZDoiRJS4UOOzPvC7wE1J9YtdHROXzuzjw+0lSskrq8Q="}
2018-03-10 09:09:11.709 UTC [main] main -> INFO 002 Exiting.....
# peer org3cli
root@9808b1f21d4f:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer chaincode query -C $CHANNEL_NAME -n mycc -c '{"Args":["query","a"]}'
2018-03-10 09:09:05.151 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 001 Using default escc
2018-03-10 09:09:05.151 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc
Query Result: 80
2018-03-10 09:09:06.325 UTC [main] main -> INFO 003 Exiting.....
[root@cloud0 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c3c429543c2e dev-peer0.org3.example.com-mycc-2.0-156223788c3ef42ff3094c6cf1d2f71284c36f2074cc4d1f09a7065cb903d192 "chaincode -peer.adda|" 9 seconds ago Up 8 seconds dev-peer0.org3.example.com-mycc-2.0
03442515ad6d dev-peer0.org1.example.com-mycc-2.0-2732cd4d96a0b88594aefca15581eaa0fb481ad15beeb86cc79931b2a90ee621 "chaincode -peer.adda|" About a minute ago Up About a minute dev-peer0.org1.example.com-mycc-2.0
9808b1f21d4f hyperledger/fabric-tools:latest "/bin/bash" 19 minutes ago Up 19 minutes Org3cli
e16294870f9a hyperledger/fabric-peer:latest "peer node start" 19 minutes ago Up 19 minutes 0.0.0.0:12051->7051/tcp, 0.0.0.0:12053->7053/tcp peer1.org3.example.com
169f04f7b9ba hyperledger/fabric-peer:latest "peer node start" 19 minutes ago Up 19 minutes 0.0.0.0:11051->7051/tcp, 0.0.0.0:11053->7053/tcp peer0.org3.example.com
bcadf752fe8b dev-peer1.org2.example.com-mycc-1.0-26c2ef32838554aac4f7ad6f100aca865e87959c9a126e86d764c8d01f8346ab "chaincode -peer.adda|" 3 hours ago Up 3 hours dev-peer1.org2.example.com-mycc-1.0
9f4a8be9a861 dev-peer0.org1.example.com-mycc-1.0-384f11f484b9302df90b453200cfb25174305fce8f53f4e94d45ee3b6cab0ce9 "chaincode -peer.adda|" 3 hours ago Up 3 hours dev-peer0.org1.example.com-mycc-1.0
b891a25fcaaa dev-peer0.org2.example.com-mycc-1.0-15b571b3ce849066b7ec74497da3b27e54e0df1345daff3951b94245ce09c42b "chaincode -peer.adda|" 3 hours ago Up 3 hours dev-peer0.org2.example.com-mycc-1.0
bccef515b9b1 hyperledger/fabric-tools:latest "/bin/bash" 3 hours ago Up 3 hours cli
4f7788ff2202 hyperledger/fabric-peer:latest "peer node start" 3 hours ago Up 3 hours 0.0.0.0:10051->7051/tcp, 0.0.0.0:10053->7053/tcp peer1.org2.example.com
df102c944fb3 hyperledger/fabric-peer:latest "peer node start" 3 hours ago Up 3 hours 0.0.0.0:9051->7051/tcp, 0.0.0.0:9053->7053/tcp peer0.org2.example.com
6b344f3cb287 hyperledger/fabric-orderer:latest "orderer" 3 hours ago Up 3 hours 0.0.0.0:7050->7050/tcp orderer.example.com
1311da237b1b hyperledger/fabric-peer:latest "peer node start" 3 hours ago Up 3 hours 0.0.0.0:7051->7051/tcp, 0.0.0.0:7053->7053/tcp peer0.org1.example.com
ad519c13a058 hyperledger/fabric-peer:latest "peer node start" 3 hours ago Up 3 hours 0.0.0.0:8051->7051/tcp, 0.0.0.0:8053->7053/tcp peer1.org1.example.com
# peer org3cli
root@9808b1f21d4f:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer chaincode install -n mycc -v 3.0 -p github.com/chaincode/chaincode_example02/go/
2018-03-10 09:19:53.196 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 001 Using default escc
2018-03-10 09:19:53.196 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc
2018-03-10 09:19:53.389 UTC [main] main -> INFO 003 Exiting.....
root@9808b1f21d4f:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer chaincode upgrade -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA -C $CHANNEL_NAME -n mycc -v 3.0 -c '{"Args":["init","a","90","b","210"]}' -P "OR ('Org1MSP.peer','Org2MSP.peer','Org3MSP.peer')"
2018-03-10 09:20:14.928 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 001 Using default escc
2018-03-10 09:20:14.928 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc
2018-03-10 09:20:26.828 UTC [main] main -> INFO 003 Exiting.....
[root@cloud0 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2fdcc61b338e dev-peer0.org3.example.com-mycc-3.0-3d0f437242f271eff8370fd2cb053d34668ba09ab5ad8a3c292a8c338e164aa3 "chaincode -peer.adda|" 4 minutes ago Up 4 minutes dev-peer0.org3.example.com-mycc-3.0
76fca4d8a2e1 dev-peer0.org3.example.com-mycc-2.0-156223788c3ef42ff3094c6cf1d2f71284c36f2074cc4d1f09a7065cb903d192 "chaincode -peer.adda|" 5 minutes ago Up 5 minutes dev-peer0.org3.example.com-mycc-2.0
03442515ad6d dev-peer0.org1.example.com-mycc-2.0-2732cd4d96a0b88594aefca15581eaa0fb481ad15beeb86cc79931b2a90ee621 "chaincode -peer.adda|" 17 minutes ago Up 17 minutes dev-peer0.org1.example.com-mycc-2.0
9808b1f21d4f hyperledger/fabric-tools:latest "/bin/bash" 35 minutes ago Up 35 minutes Org3cli
e16294870f9a hyperledger/fabric-peer:latest "peer node start" 35 minutes ago Up 35 minutes 0.0.0.0:12051->7051/tcp, 0.0.0.0:12053->7053/tcp peer1.org3.example.com
169f04f7b9ba hyperledger/fabric-peer:latest "peer node start" 35 minutes ago Up 35 minutes 0.0.0.0:11051->7051/tcp, 0.0.0.0:11053->7053/tcp peer0.org3.example.com
bcadf752fe8b dev-peer1.org2.example.com-mycc-1.0-26c2ef32838554aac4f7ad6f100aca865e87959c9a126e86d764c8d01f8346ab "chaincode -peer.adda|" 3 hours ago Up 3 hours dev-peer1.org2.example.com-mycc-1.0
9f4a8be9a861 dev-peer0.org1.example.com-mycc-1.0-384f11f484b9302df90b453200cfb25174305fce8f53f4e94d45ee3b6cab0ce9 "chaincode -peer.adda|" 3 hours ago Up 3 hours dev-peer0.org1.example.com-mycc-1.0
b891a25fcaaa dev-peer0.org2.example.com-mycc-1.0-15b571b3ce849066b7ec74497da3b27e54e0df1345daff3951b94245ce09c42b "chaincode -peer.adda|" 3 hours ago Up 3 hours dev-peer0.org2.example.com-mycc-1.0
bccef515b9b1 hyperledger/fabric-tools:latest "/bin/bash" 3 hours ago Up 3 hours cli
4f7788ff2202 hyperledger/fabric-peer:latest "peer node start" 3 hours ago Up 3 hours 0.0.0.0:10051->7051/tcp, 0.0.0.0:10053->7053/tcp peer1.org2.example.com
df102c944fb3 hyperledger/fabric-peer:latest "peer node start" 3 hours ago Up 3 hours 0.0.0.0:9051->7051/tcp, 0.0.0.0:9053->7053/tcp peer0.org2.example.com
6b344f3cb287 hyperledger/fabric-orderer:latest "orderer" 3 hours ago Up 3 hours 0.0.0.0:7050->7050/tcp orderer.example.com
1311da237b1b hyperledger/fabric-peer:latest "peer node start" 3 hours ago Up 3 hours 0.0.0.0:7051->7051/tcp, 0.0.0.0:7053->7053/tcp peer0.org1.example.com
ad519c13a058 hyperledger/fabric-peer:latest "peer node start" 3 hours ago Up 3 hours 0.0.0.0:8051->7051/tcp, 0.0.0.0:8053->7053/tcp peer1.org1.example.com
root@9808b1f21d4f:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer channel getinfo -c mychannel
2018-03-10 09:25:46.685 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
Blockchain info: {"height":10,"currentBlockHash":"V+1TKeg4oRi9KpPjqh9IhGBMQyeiY2DFD9MKASPSVTk=","previousBlockHash":"xsrWXX5zTyLOL+YsXkwYekF3BG3wPfiBJ1SDYD5ck2E="}
2018-03-10 09:25:46.688 UTC [main] main -> INFO 002 Exiting.....
root@9808b1f21d4f:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer chaincode list --instantiated -C mychannel
Get instantiated chaincodes on channel mychannel:
Name: mycc, Version: 3.0, Path: github.com/chaincode/chaincode_example02/go/, Escc: escc, Vscc: vscc
2018-03-10 09:25:58.096 UTC [main] main -> INFO 001 Exiting.....
root@9808b1f21d4f:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer chaincode query -C $CHANNEL_NAME -n mycc -c '{"Args":["query","a"]}'
2018-03-10 09:26:21.613 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 001 Using default escc
2018-03-10 09:26:21.613 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc
Query Result: 90
2018-03-10 09:26:22.823 UTC [main] main -> INFO 003 Exiting.....
root@9808b1f21d4f:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer chaincode invoke -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA -C $CHANNEL_NAME -n mycc -c '{"Args":["invoke","a","b","10"]}'
2018-03-10 09:26:33.572 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 001 Using default escc
2018-03-10 09:26:33.572 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc
2018-03-10 09:26:34.764 UTC [chaincodeCmd] chaincodeInvokeOrQuery -> INFO 003 Chaincode invoke successful. result: status:200
2018-03-10 09:26:34.764 UTC [main] main -> INFO 004 Exiting.....
root@9808b1f21d4f:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer chaincode query -C $CHANNEL_NAME -n mycc -c '{"Args":["query","a"]}'
2018-03-10 09:26:45.067 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 001 Using default escc
2018-03-10 09:26:45.067 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc
Query Result: 80
2018-03-10 09:26:46.258 UTC [main] main -> INFO 003 Exiting.....
root@9808b1f21d4f:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer channel getinfo -c mychannel
2018-03-10 09:31:00.982 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
Blockchain info: {"height":11,"currentBlockHash":"gTENZXKR5P9ZV/fjgvhakvhHftoymBIDyX5fqsrBESo=","previousBlockHash":"V+1TKeg4oRi9KpPjqh9IhGBMQyeiY2DFD9MKASPSVTk="}
2018-03-10 09:31:00.986 UTC [main] main -> INFO 002 Exiting.....
# peer org1li
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer chaincode list --instantiated -C mychannel
Get instantiated chaincodes on channel mychannel:
Name: mycc, Version: 3.0, Escc: escc, Vscc: vscc
2018-03-10 09:26:04.503 UTC [main] main -> INFO 001 Exiting.....
root@bccef515b9b1:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer channel getinfo -c mychannel
2018-03-10 09:30:49.571 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
Blockchain info: {"height":11,"currentBlockHash":"gTENZXKR5P9ZV/fjgvhakvhHftoymBIDyX5fqsrBESo=","previousBlockHash":"V+1TKeg4oRi9KpPjqh9IhGBMQyeiY2DFD9MKASPSVTk="}
2018-03-10 09:30:49.574 UTC [main] main -> INFO 002 Exiting.....
# peer org3cli
root@9808b1f21d4f:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer chaincode invoke -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA -C $CHANNEL_NAME -n mycc -c '{"Args":["invoke","a","b","10"]}'
2018-03-10 09:43:26.977 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 001 Using default escc
2018-03-10 09:43:26.977 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc
2018-03-10 09:43:28.184 UTC [chaincodeCmd] chaincodeInvokeOrQuery -> INFO 003 Chaincode invoke successful. result: status:200
2018-03-10 09:43:28.185 UTC [main] main -> INFO 004 Exiting.....
root@9808b1f21d4f:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer channel getinfo -c mychannel
2018-03-10 09:43:48.297 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
Blockchain info: {"height":12,"currentBlockHash":"R4iL+YG/eDSxJlq5GdJVopkzkqYsrA4tQP3Hn+60ikE=","previousBlockHash":"gTENZXKR5P9ZV/fjgvhakvhHftoymBIDyX5fqsrBESo="}
2018-03-10 09:43:48.300 UTC [main] main -> INFO 002 Exiting.....
root@9808b1f21d4f:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer chaincode query -C $CHANNEL_NAME -n mycc -c '{"Args":["query","a"]}'
2018-03-10 09:43:45.005 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 001 Using default escc
2018-03-10 09:43:45.005 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc
Query Result: 70
2018-03-10 09:43:46.199 UTC [main] main -> INFO 003 Exiting.....
本文作者:architect.bian,欢迎收藏,转载请保留原文地址并保留版权声明!谢谢~
还没完!往下看!!!