Fabric部署文档汇总(仅供参考)

老久之前研究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"

echo https://nexus.hyperledger.org/content/repositories/releases/org/hyperledger/fabric/hyperledger-fabric/${ARCH}-${VERSION}/hyperledger-fabric-${ARCH}-${VERSION}.tar.gz

#curl https://nexus.hyperledger.org/content/repositories/releases/org/hyperledger/fabric/hyperledger-fabric/${ARCH}-${VERSION}/hyperledger-fabric-${ARCH}-${VERSION}.tar.gz | tar xz

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/[email protected]/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/[email protected]/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/[email protected]/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/[email protected]/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/[email protected]/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/[email protected]/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/[email protected]/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/[email protected]/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/[email protected]/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/[email protected]/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/[email protected]/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/[email protected]/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/[email protected]/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/[email protected]/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/[email protected]/msp/admincerts

4       crypto-config/peerOrganizations/org1.example.com/users/[email protected]/msp/cacerts

4       crypto-config/peerOrganizations/org1.example.com/users/[email protected]/msp/tlscacerts

4       crypto-config/peerOrganizations/org1.example.com/users/[email protected]/msp/keystore

4       crypto-config/peerOrganizations/org1.example.com/users/[email protected]/msp/signcerts

20      crypto-config/peerOrganizations/org1.example.com/users/[email protected]/msp

12      crypto-config/peerOrganizations/org1.example.com/users/[email protected]/tls

32      crypto-config/peerOrganizations/org1.example.com/users/[email protected]

4       crypto-config/peerOrganizations/org1.example.com/users/[email protected]/msp/admincerts

4       crypto-config/peerOrganizations/org1.example.com/users/[email protected]/msp/cacerts

4       crypto-config/peerOrganizations/org1.example.com/users/[email protected]/msp/tlscacerts

4       crypto-config/peerOrganizations/org1.example.com/users/[email protected]/msp/keystore

4       crypto-config/peerOrganizations/org1.example.com/users/[email protected]/msp/signcerts

20      crypto-config/peerOrganizations/org1.example.com/users/[email protected]/msp

12      crypto-config/peerOrganizations/org1.example.com/users/[email protected]/tls

32      crypto-config/peerOrganizations/org1.example.com/users/[email protected]

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/[email protected]/msp/admincerts

4       crypto-config/peerOrganizations/org2.example.com/users/[email protected]/msp/cacerts

4       crypto-config/peerOrganizations/org2.example.com/users/[email protected]/msp/tlscacerts

4       crypto-config/peerOrganizations/org2.example.com/users/[email protected]/msp/keystore

4       crypto-config/peerOrganizations/org2.example.com/users/[email protected]/msp/signcerts

20      crypto-config/peerOrganizations/org2.example.com/users/[email protected]/msp

12      crypto-config/peerOrganizations/org2.example.com/users/[email protected]/tls

32      crypto-config/peerOrganizations/org2.example.com/users/[email protected]

4       crypto-config/peerOrganizations/org2.example.com/users/[email protected]/msp/admincerts

4       crypto-config/peerOrganizations/org2.example.com/users/[email protected]/msp/cacerts

4       crypto-config/peerOrganizations/org2.example.com/users/[email protected]/msp/tlscacerts

4       crypto-config/peerOrganizations/org2.example.com/users/[email protected]/msp/keystore

4       crypto-config/peerOrganizations/org2.example.com/users/[email protected]/msp/signcerts

20      crypto-config/peerOrganizations/org2.example.com/users/[email protected]/msp

12      crypto-config/peerOrganizations/org2.example.com/users/[email protected]/tls

32      crypto-config/peerOrganizations/org2.example.com/users/[email protected]

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/[email protected]/msp/admincerts

4       crypto-config/ordererOrganizations/example.com/users/[email protected]/msp/cacerts

4       crypto-config/ordererOrganizations/example.com/users/[email protected]/msp/tlscacerts

4       crypto-config/ordererOrganizations/example.com/users/[email protected]/msp/keystore

4       crypto-config/ordererOrganizations/example.com/users/[email protected]/msp/signcerts

20      crypto-config/ordererOrganizations/example.com/users/[email protected]/msp

12      crypto-config/ordererOrganizations/example.com/users/[email protected]/tls

32      crypto-config/ordererOrganizations/example.com/users/[email protected]

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 its 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

[email protected]'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/[email protected]/msp/admincerts

4       /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/[email protected]/msp/cacerts

4       /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/[email protected]/msp/tlscacerts

4       /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/[email protected]/msp/keystore

4       /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/[email protected]/msp/signcerts

20      /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/[email protected]/msp

12      /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/[email protected]/tls

32      /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/[email protected]

4       /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/[email protected]/msp/admincerts

4       /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/[email protected]/msp/cacerts

4       /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/[email protected]/msp/tlscacerts

4       /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/[email protected]/msp/keystore

4       /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/[email protected]/msp/signcerts

20      /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/[email protected]/msp

12      /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/[email protected]/tls

32      /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/[email protected]

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/[email protected]/msp/admincerts

4       /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/[email protected]/msp/cacerts

4       /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/[email protected]/msp/tlscacerts

4       /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/[email protected]/msp/keystore

4       /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/[email protected]/msp/signcerts

20      /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/[email protected]/msp

12      /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/[email protected]/tls

32      /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/[email protected]

4       /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/[email protected]/msp/admincerts

4       /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/[email protected]/msp/cacerts

4       /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/[email protected]/msp/tlscacerts

4       /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/[email protected]/msp/keystore

4       /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/[email protected]/msp/signcerts

20      /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/[email protected]/msp

12      /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/[email protected]/tls

32      /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/[email protected]

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/[email protected]/msp/admincerts

4       /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/users/[email protected]/msp/cacerts

4       /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/users/[email protected]/msp/tlscacerts

4       /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/users/[email protected]/msp/keystore

4       /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/users/[email protected]/msp/signcerts

20      /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/users/[email protected]/msp

12      /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/users/[email protected]/tls

32      /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/users/[email protected]

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/[email protected]/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/[email protected]/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/[email protected]/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/[email protected]/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/[email protected]/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/[email protected]/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/[email protected]/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/[email protected]/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/[email protected]/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/[email protected]/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/[email protected]/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/[email protected]/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/[email protected]/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/[email protected]/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/[email protected]/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

          └── [email protected]

       ├── cacerts

          └── ca.org3.example.com-cert.pem

       ├── config.yaml

       └── tlscacerts

           └── tlsca.org3.example.com-cert.pem

    ├── peers

       ├── peer0.org3.example.com

          ├── msp

             ├── admincerts

                └── [email protected]

             ├── 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

                 └── [email protected]

              ├── 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

        ├── [email protected]

           ├── msp

              ├── admincerts

                 └── [email protected]

              ├── cacerts

                 └── ca.org3.example.com-cert.pem

              ├── keystore

                 └── 7506da79bcf732ac0173a65de6a47bd5b4780aff005aa8117ff5355d490bfa91_sk

              ├── signcerts

                 └── [email protected]

              └── tlscacerts

                  └── tlsca.org3.example.com-cert.pem

           └── tls

               ├── ca.crt

               ├── client.crt

               └── client.key

        └── [email protected]

            ├── msp

               ├── admincerts

                  └── [email protected]

               ├── cacerts

                  └── ca.org3.example.com-cert.pem

               ├── keystore

                  └── 9679ef6580fc2155abaa80241ff9fb711dc4554b6d5e5943f1ac9414c752f74e_sk

               ├── signcerts

                  └── [email protected]

               └── 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/[email protected]/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/[email protected]/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,欢迎收藏,转载请保留原文地址并保留版权声明!谢谢~
还没完!往下看!!!

猜你喜欢

转载自blog.csdn.net/vohyeah/article/details/81082828