From 40cc5e29f65b5cb79218eaee3e15c8548e2dd5de Mon Sep 17 00:00:00 2001 From: Kurt Seifried Date: Wed, 10 Mar 2021 09:51:44 -0700 Subject: [PATCH] ORG4 scripts dir --- .../scripts/org4-scripts/joinChannel.sh | 70 +++++++++++++++++++ .../org4-scripts/updateChannelConfig.sh | 52 ++++++++++++++ 2 files changed, 122 insertions(+) create mode 100755 test-network/scripts/org4-scripts/joinChannel.sh create mode 100755 test-network/scripts/org4-scripts/updateChannelConfig.sh diff --git a/test-network/scripts/org4-scripts/joinChannel.sh b/test-network/scripts/org4-scripts/joinChannel.sh new file mode 100755 index 00000000..904d7942 --- /dev/null +++ b/test-network/scripts/org4-scripts/joinChannel.sh @@ -0,0 +1,70 @@ +#!/bin/bash +# +# Copyright IBM Corp. All Rights Reserved. +# +# SPDX-License-Identifier: Apache-2.0 +# + +# This script is designed to be run in the cli container as the +# second step of the EYFN tutorial. It joins the org3 peers to the +# channel previously setup in the BYFN tutorial and install the +# chaincode as version 2.0 on peer0.org3. +# + +CHANNEL_NAME="$1" +DELAY="$2" +TIMEOUT="$3" +VERBOSE="$4" +: ${CHANNEL_NAME:="mychannel"} +: ${DELAY:="3"} +: ${TIMEOUT:="10"} +: ${VERBOSE:="false"} +COUNTER=1 +MAX_RETRY=5 + +# import environment variables +. scripts/envVar.sh + +# joinChannel ORG +joinChannel() { + ORG=$1 + local rc=1 + local COUNTER=1 + ## Sometimes Join takes time, hence retry + while [ $rc -ne 0 -a $COUNTER -lt $MAX_RETRY ] ; do + sleep $DELAY + set -x + peer channel join -b $BLOCKFILE >&log.txt + res=$? + { set +x; } 2>/dev/null + let rc=$res + COUNTER=$(expr $COUNTER + 1) + done + cat log.txt + verifyResult $res "After $MAX_RETRY attempts, peer0.org${ORG} has failed to join channel '$CHANNEL_NAME' " +} + +setAnchorPeer() { + ORG=$1 + scripts/setAnchorPeer.sh $ORG $CHANNEL_NAME +} + +setGlobalsCLI 3 +BLOCKFILE="${CHANNEL_NAME}.block" + +echo "Fetching channel config block from orderer..." +set -x +peer channel fetch 0 $BLOCKFILE -o orderer.example.com:7050 --ordererTLSHostnameOverride orderer.example.com -c $CHANNEL_NAME --tls --cafile "$ORDERER_CA" >&log.txt +res=$? +{ set +x; } 2>/dev/null +cat log.txt +verifyResult $res "Fetching config block from orderer has failed" + +infoln "Joining org3 peer to the channel..." +joinChannel 3 + +infoln "Setting anchor peer for org3..." +setAnchorPeer 3 + +successln "Channel '$CHANNEL_NAME' joined" +successln "Org3 peer successfully added to network" diff --git a/test-network/scripts/org4-scripts/updateChannelConfig.sh b/test-network/scripts/org4-scripts/updateChannelConfig.sh new file mode 100755 index 00000000..6a9df1f5 --- /dev/null +++ b/test-network/scripts/org4-scripts/updateChannelConfig.sh @@ -0,0 +1,52 @@ +#!/bin/bash +# +# Copyright IBM Corp. All Rights Reserved. +# +# SPDX-License-Identifier: Apache-2.0 +# + +# This script is designed to be run in the cli container as the +# first step of the EYFN tutorial. It creates and submits a +# configuration transaction to add org3 to the test network +# + +CHANNEL_NAME="$1" +DELAY="$2" +TIMEOUT="$3" +VERBOSE="$4" +: ${CHANNEL_NAME:="mychannel"} +: ${DELAY:="3"} +: ${TIMEOUT:="10"} +: ${VERBOSE:="false"} +COUNTER=1 +MAX_RETRY=5 + + +# imports +. scripts/envVar.sh +. scripts/configUpdate.sh +. scripts/utils.sh + +infoln "Creating config transaction to add org3 to network" + +# Fetch the config for the channel, writing it to config.json +fetchChannelConfig 1 ${CHANNEL_NAME} config.json + +# Modify the configuration to append the new org +set -x +jq -s '.[0] * {"channel_group":{"groups":{"Application":{"groups": {"Org3MSP":.[1]}}}}}' config.json ./organizations/peerOrganizations/org3.example.com/org3.json > modified_config.json +{ set +x; } 2>/dev/null + +# Compute a config update, based on the differences between config.json and modified_config.json, write it as a transaction to org3_update_in_envelope.pb +createConfigUpdate ${CHANNEL_NAME} config.json modified_config.json org3_update_in_envelope.pb + +infoln "Signing config transaction" +signConfigtxAsPeerOrg 1 org3_update_in_envelope.pb + +infoln "Submitting transaction from a different peer (peer0.org2) which also signs it" +setGlobals 2 +set -x +peer channel update -f org3_update_in_envelope.pb -c ${CHANNEL_NAME} -o orderer.example.com:7050 --ordererTLSHostnameOverride orderer.example.com --tls --cafile "$ORDERER_CA" +{ set +x; } 2>/dev/null + +successln "Config transaction to add org3 to network submitted"