matiru

Blockchain-Based Supply Chain Transparency for Agricultural Produce

fabric/network/scripts/setAnchorPeer.sh (1609B)


 1#!/usr/bin/env bash
 2
 3. scripts/envVar.sh
 4. scripts/configUpdate.sh
 5
 6createAnchorPeerUpdate() {
 7  infoln "Fetching channel config for channel $CHANNEL_NAME"
 8  fetchChannelConfig $ORG $CHANNEL_NAME ${CORE_PEER_LOCALMSPID}config.json
 9
10  infoln "Generating anchor peer update transaction for Org${ORG} on channel $CHANNEL_NAME"
11
12  if [ $ORG -eq 1 ]; then
13    HOST="peer0.org1.example.com"
14    PORT=7051
15  elif [ $ORG -eq 2 ]; then
16    HOST="peer0.org2.example.com"
17    PORT=9051
18  elif [ $ORG -eq 3 ]; then
19    HOST="peer0.org3.example.com"
20    PORT=11051
21  elif [ $ORG -eq 4 ]; then
22    HOST="peer0.org4.example.com"
23    PORT=13051
24  else
25    errorln "Org${ORG} unknown"
26  fi
27
28  set -x
29  jq '.channel_group.groups.Application.groups.'${CORE_PEER_LOCALMSPID}'.values += {"AnchorPeers":{"mod_policy": "Admins","value":{"anchor_peers": [{"host": "'$HOST'","port": '$PORT'}]},"version": "0"}}' ${CORE_PEER_LOCALMSPID}config.json > ${CORE_PEER_LOCALMSPID}modified_config.json
30  { set +x; } 2>/dev/null
31
32  createConfigUpdate ${CHANNEL_NAME} ${CORE_PEER_LOCALMSPID}config.json ${CORE_PEER_LOCALMSPID}modified_config.json ${CORE_PEER_LOCALMSPID}anchors.tx
33}
34
35updateAnchorPeer() {
36  peer channel update -o orderer.example.com:7050 --ordererTLSHostnameOverride orderer.example.com -c $CHANNEL_NAME -f ${CORE_PEER_LOCALMSPID}anchors.tx --tls --cafile "$ORDERER_CA" >&log.txt
37  res=$?
38  cat log.txt
39  verifyResult $res "Anchor peer update failed"
40  successln "Anchor peer set for org '$CORE_PEER_LOCALMSPID' on channel '$CHANNEL_NAME'"
41}
42
43ORG=$1
44CHANNEL_NAME=$2
45setGlobalsCLI $ORG
46
47createAnchorPeerUpdate 
48
49updateAnchorPeer