mirror of
https://github.com/hyperledger/fabric-samples.git
synced 2026-06-17 15:35:09 +00:00
This change brings a new set of scripts and configuration files to the first-network sample to make it easier for people to follow the new tutorial on how to add a third org to the network setup in BYFN. To function properly the new Extend You First Network script (eyfn.sh) must be run after byfn.sh is run and with the same parameters. So, valid uses include: ./byfn.sh up ./eyfn.sh up or ./byfn.sh up -c testchannel -s couchdb -l node ./eyfn.sh up -c testchannel -s couchdb -l node A single './eyfn.sh down' command is however necessary to take the whole network down. Patch-set #2: fixes ./eyfn.sh down Patch-set #3: removed unused option from Usage and spurious whitespaces Patch-set #4: added missing test file Change-Id: I9c926b52f2243dda1c5f9368112c314a6c5c6929 Signed-off-by: Arnaud J Le Hors <lehors@us.ibm.com>
113 lines
3 KiB
Bash
Executable file
113 lines
3 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
echo
|
|
echo " ____ _____ _ ____ _____ "
|
|
echo "/ ___| |_ _| / \ | _ \ |_ _|"
|
|
echo "\___ \ | | / _ \ | |_) | | | "
|
|
echo " ___) | | | / ___ \ | _ < | | "
|
|
echo "|____/ |_| /_/ \_\ |_| \_\ |_| "
|
|
echo
|
|
echo "Build your first network (BYFN) end-to-end test"
|
|
echo
|
|
CHANNEL_NAME="$1"
|
|
DELAY="$2"
|
|
LANGUAGE="$3"
|
|
TIMEOUT="$4"
|
|
: ${CHANNEL_NAME:="mychannel"}
|
|
: ${DELAY:="3"}
|
|
: ${LANGUAGE:="golang"}
|
|
: ${TIMEOUT:="10"}
|
|
LANGUAGE=`echo "$LANGUAGE" | tr [:upper:] [:lower:]`
|
|
COUNTER=1
|
|
MAX_RETRY=5
|
|
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
|
|
|
|
CC_SRC_PATH="github.com/chaincode/chaincode_example02/go/"
|
|
if [ "$LANGUAGE" = "node" ]; then
|
|
CC_SRC_PATH="/opt/gopath/src/github.com/chaincode/chaincode_example02/node/"
|
|
fi
|
|
|
|
echo "Channel name : "$CHANNEL_NAME
|
|
|
|
# import utils
|
|
. scripts/utils.sh
|
|
|
|
createChannel() {
|
|
setGlobals 0 0
|
|
|
|
if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then
|
|
peer channel create -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./channel-artifacts/channel.tx >&log.txt
|
|
else
|
|
peer channel create -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./channel-artifacts/channel.tx --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA >&log.txt
|
|
fi
|
|
res=$?
|
|
cat log.txt
|
|
verifyResult $res "Channel creation failed"
|
|
echo "===================== Channel \"$CHANNEL_NAME\" is created successfully ===================== "
|
|
echo
|
|
}
|
|
|
|
joinChannel () {
|
|
for org in 1 2; do
|
|
for peer in 0 1; do
|
|
joinChannelWithRetry $peer $org
|
|
echo "===================== peer${peer}.org${org} joined on the channel \"$CHANNEL_NAME\" ===================== "
|
|
sleep $DELAY
|
|
echo
|
|
done
|
|
done
|
|
}
|
|
|
|
## Create channel
|
|
echo "Creating channel..."
|
|
createChannel
|
|
|
|
## Join all the peers to the channel
|
|
echo "Having all peers join the channel..."
|
|
joinChannel
|
|
|
|
## Set the anchor peers for each org in the channel
|
|
echo "Updating anchor peers for org1..."
|
|
updateAnchorPeers 0 1
|
|
echo "Updating anchor peers for org2..."
|
|
updateAnchorPeers 0 2
|
|
|
|
## Install chaincode on peer0.org1 and peer0.org2
|
|
echo "Installing chaincode on peer0.org1..."
|
|
installChaincode 0 1
|
|
echo "Install chaincode on peer0.org2..."
|
|
installChaincode 0 2
|
|
|
|
# Instantiate chaincode on peer0.org2
|
|
echo "Instantiating chaincode on peer0.org2..."
|
|
instantiateChaincode 0 2
|
|
|
|
# Query chaincode on peer0.org1
|
|
echo "Querying chaincode on peer0.org1..."
|
|
chaincodeQuery 0 1 100
|
|
|
|
# Invoke chaincode on peer0.org1
|
|
echo "Sending invoke transaction on peer0.org1..."
|
|
chaincodeInvoke 0 1
|
|
|
|
## Install chaincode on peer1.org2
|
|
echo "Installing chaincode on peer1.org2..."
|
|
installChaincode 1 2
|
|
|
|
# Query on chaincode on peer1.org2, check if the result is 90
|
|
echo "Querying chaincode on peer1.org2..."
|
|
chaincodeQuery 1 2 90
|
|
|
|
echo
|
|
echo "========= All GOOD, BYFN execution completed =========== "
|
|
echo
|
|
|
|
echo
|
|
echo " _____ _ _ ____ "
|
|
echo "| ____| | \ | | | _ \ "
|
|
echo "| _| | \| | | | | | "
|
|
echo "| |___ | |\ | | |_| | "
|
|
echo "|_____| |_| \_| |____/ "
|
|
echo
|
|
|
|
exit 0
|