mirror of
https://github.com/hyperledger/fabric-samples.git
synced 2026-06-17 15:35:09 +00:00
BYFN and Fabcar with couchdb are failing intermittently because CLI sends a request for joining a Channel before a Peer connects to the couchdb. This CR changes the value of MAX_RETRY from 10 to 15 as a workaround. FAB-15601 #done Change-Id: I8d91fa224c585cc52c9dfabebb808b8909253900 Signed-off-by: Yuki Kondo <yuki.kondo@hal.hitachi.com>
159 lines
4.2 KiB
Bash
Executable file
159 lines
4.2 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"
|
|
VERBOSE="$5"
|
|
NO_CHAINCODE="$6"
|
|
: ${CHANNEL_NAME:="mychannel"}
|
|
: ${DELAY:="3"}
|
|
: ${LANGUAGE:="golang"}
|
|
: ${TIMEOUT:="10"}
|
|
: ${VERBOSE:="false"}
|
|
: ${NO_CHAINCODE:="false"}
|
|
LANGUAGE=`echo "$LANGUAGE" | tr [:upper:] [:lower:]`
|
|
COUNTER=1
|
|
MAX_RETRY=15
|
|
PACKAGE_ID=""
|
|
|
|
if [ "$LANGUAGE" = "node" ]; then
|
|
CC_SRC_PATH="/opt/gopath/src/github.com/hyperledger/fabric-samples/chaincode/abstore/node/"
|
|
elif [ "$LANGUAGE" = "java" ]; then
|
|
CC_SRC_PATH="/opt/gopath/src/github.com/hyperledger/fabric-samples/chaincode/abstore/java/"
|
|
else
|
|
CC_SRC_PATH="github.com/hyperledger/fabric-samples/chaincode/abstore/go/"
|
|
fi
|
|
|
|
echo "Channel name : "$CHANNEL_NAME
|
|
|
|
# import utils
|
|
. scripts/utils.sh
|
|
|
|
createChannel() {
|
|
setGlobals 0 1
|
|
|
|
if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then
|
|
set -x
|
|
peer channel create -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./channel-artifacts/channel.tx >&log.txt
|
|
res=$?
|
|
set +x
|
|
else
|
|
set -x
|
|
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
|
|
res=$?
|
|
set +x
|
|
fi
|
|
cat log.txt
|
|
verifyResult $res "Channel creation failed"
|
|
echo "===================== Channel '$CHANNEL_NAME' created ===================== "
|
|
echo
|
|
}
|
|
|
|
joinChannel () {
|
|
for org in 1 2; do
|
|
for peer in 0 1; do
|
|
joinChannelWithRetry $peer $org
|
|
echo "===================== peer${peer}.org${org} joined 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
|
|
|
|
if [ "${NO_CHAINCODE}" != "true" ]; then
|
|
|
|
## at first we package the chaincode
|
|
packageChaincode 1 0 1
|
|
|
|
## 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
|
|
|
|
## query whether the chaincode is installed
|
|
queryInstalled 0 1
|
|
|
|
## approve the definition for org1
|
|
approveForMyOrg 1 0 1
|
|
|
|
## query the approval status on both orgs, expect org1 to have approved and org2 not to
|
|
queryStatus 1 0 1 "\"Org1MSP\": true" "\"Org2MSP\": false"
|
|
queryStatus 1 0 2 "\"Org1MSP\": true" "\"Org2MSP\": false"
|
|
|
|
## now approve also for org2
|
|
approveForMyOrg 1 0 2
|
|
|
|
## query the approval status on both orgs, expect them both to have approved
|
|
queryStatus 1 0 1 "\"Org1MSP\": true" "\"Org2MSP\": true"
|
|
queryStatus 1 0 2 "\"Org1MSP\": true" "\"Org2MSP\": true"
|
|
|
|
## now that we know for sure both orgs have approved, commit the definition
|
|
commitChaincodeDefinition 1 0 1 0 2
|
|
|
|
## query on both orgs to see that the definition committed ok
|
|
queryCommitted 1 0 1
|
|
queryCommitted 1 0 2
|
|
|
|
# invoke init
|
|
chaincodeInvoke 1 0 1 0 2
|
|
|
|
# Query chaincode on peer0.org1
|
|
echo "Querying chaincode on peer0.org1..."
|
|
chaincodeQuery 0 1 100
|
|
|
|
# Invoke chaincode on peer0.org1 and peer0.org2
|
|
echo "Sending invoke transaction on peer0.org1 peer0.org2..."
|
|
chaincodeInvoke 0 0 1 0 2
|
|
|
|
# Query chaincode on peer0.org1
|
|
echo "Querying chaincode on peer0.org1..."
|
|
chaincodeQuery 0 1 90
|
|
|
|
## 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
|
|
|
|
fi
|
|
|
|
echo
|
|
echo "========= All GOOD, BYFN execution completed =========== "
|
|
echo
|
|
|
|
echo
|
|
echo " _____ _ _ ____ "
|
|
echo "| ____| | \ | | | _ \ "
|
|
echo "| _| | \| | | | | | "
|
|
echo "| |___ | |\ | | |_| | "
|
|
echo "|_____| |_| \_| |____/ "
|
|
echo
|
|
|
|
exit 0
|