147 lines
6.8 KiB
Bash
147 lines
6.8 KiB
Bash
#!/usr/bin/env bash
|
|
# Before running `make`, config this files
|
|
# Define some global variables for usage. Will be included by func.sh.
|
|
|
|
# For fabric images, including peer, orderer, ca
|
|
FABRIC_IMG_TAG=2.2.4
|
|
|
|
# Keep the same as in core.yaml, will tag ccenv with this value
|
|
PROJECT_VERSION=2.2.4
|
|
|
|
# for ccenv, baseos, javaenv, nodeenv
|
|
TWO_DIGIT_VERSION=2.2
|
|
|
|
# Name of app channel, need to align with the gen_artifacts.sh
|
|
SYS_CHANNEL="testchainid"
|
|
APP_CHANNEL="businesschannel"
|
|
APP_CHANNEL1="businesschannel1"
|
|
APP_CHANNEL2="businesschannel2"
|
|
|
|
# Client cmd execute timeout and retry times
|
|
TIMEOUT="90"
|
|
MAX_RETRY=10
|
|
|
|
# Organization and peers
|
|
ORGS=(1 2)
|
|
PEERS=(0 1)
|
|
#: "${ORGS:=( 1 2 )}"
|
|
#: "${PEERS:=( 0 1 )}"
|
|
|
|
ORG1MSP="Org1MSP"
|
|
ORG2MSP="Org2MSP"
|
|
ORG3MSP="Org3MSP"
|
|
|
|
# Orderer0 related paths
|
|
ORDERER0_MSP=/etc/hyperledger/fabric/crypto-config/ordererOrganizations/example.com/orderers/orderer0.example.com/msp
|
|
ORDERER0_ADMIN_MSP=/etc/hyperledger/fabric/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp
|
|
ORDERER0_TLS_CA=/etc/hyperledger/fabric/crypto-config/ordererOrganizations/example.com/orderers/orderer0.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
|
|
ORDERER0_TLS_ROOTCERT=/etc/hyperledger/fabric/crypto-config/ordererOrganizations/example.com/orderers/orderer0.example.com/tls/ca.crt
|
|
|
|
ORDERER1_TLS_ROOTCERT=/etc/hyperledger/fabric/crypto-config/ordererOrganizations/example.com/orderers/orderer1.example.com/tls/ca.crt
|
|
ORDERER2_TLS_ROOTCERT=/etc/hyperledger/fabric/crypto-config/ordererOrganizations/example.com/orderers/orderer2.example.com/tls/ca.crt
|
|
|
|
# Org1 related path
|
|
ORG1_ADMIN_MSP=/etc/hyperledger/fabric/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
|
|
ORG1_PEER0_MSP=/etc/hyperledger/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer0.Org1.example.com/msp
|
|
ORG1_PEER0_TLS_ROOTCERT=/etc/hyperledger/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
|
|
ORG1_PEER1_TLS_ROOTCERT=/etc/hyperledger/fabric/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls/ca.crt
|
|
ORG1_ADMIN_TLS_CLIENT_KEY=/etc/hyperledger/fabric/crypto-config/peerOrganizations/org1.example.com/users/Admin@Org1.example.com/tls/client.key
|
|
ORG1_ADMIN_TLS_CLIENT_CERT=/etc/hyperledger/fabric/crypto-config/peerOrganizations/org1.example.com/users/Admin@Org1.example.com/tls/client.crt
|
|
ORG1_ADMIN_TLS_CA_CERT=/etc/hyperledger/fabric/crypto-config/peerOrganizations/org1.example.com/users/Admin@Org1.example.com/tls/ca.crt
|
|
|
|
# Org2 related path
|
|
ORG2_ADMIN_MSP=/etc/hyperledger/fabric/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp
|
|
ORG2_PEER0_TLS_ROOTCERT=/etc/hyperledger/fabric/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt
|
|
ORG2_PEER1_TLS_ROOTCERT=/etc/hyperledger/fabric/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls/ca.crt
|
|
|
|
# Node URLS
|
|
ORDERER0_URL="orderer0.example.com:7050"
|
|
ORDERER1_URL="orderer1.example.com:7050"
|
|
ORDERER2_URL="orderer2.example.com:7050"
|
|
ORG1_PEER0_URL="peer0.org1.example.com:7051"
|
|
ORG1_PEER1_URL="peer1.org1.example.com:7051"
|
|
ORG2_PEER0_URL="peer0.org2.example.com:7051"
|
|
ORG2_PEER1_URL="peer1.org2.example.com:7051"
|
|
|
|
# Chaincode exp02 related
|
|
CC_02_NAME="exp02"
|
|
CC_02_PATH="chaincodes/go/chaincode_example02"
|
|
CC_02_INIT_ARGS='{"Args":["init","a","100","b","200"]}'
|
|
CC_02_UPGRADE_ARGS='{"Args":["upgrade","a","100","b","200"]}'
|
|
CC_02_INVOKE_ARGS='{"Args":["invoke","a","b","10"]}'
|
|
CC_02_QUERY_ARGS='{"Args":["query","a"]}'
|
|
|
|
# Chaincode map related
|
|
CC_MAP_NAME="map"
|
|
CC_MAP_PATH="examples/chaincode/go/map"
|
|
CC_MAP_INIT_ARGS='{"Args":["init",""]}'
|
|
CC_MAP_UPGRADE_ARGS='{"Args":["upgrade",""]}'
|
|
CC_MAP_INVOKE_ARGS='{"Args":["invoke","put","key","value"]}'
|
|
CC_MAP_QUERY_ARGS='{"Args":["get","key"]}'
|
|
|
|
# Chaincode marbles related
|
|
CC_MARBLES_NAME="marblesp"
|
|
CC_MARBLES_PATH="chaincodes/go/marbles02_private/go"
|
|
CC_MARBLES_INIT_ARGS='{"Args":["init"]}'
|
|
CC_MARBLES_UPGRADE_ARGS='{"Args":["upgrade",""]}'
|
|
CC_MARBLES_INVOKE_INIT_ARGS='{"Args":["initMarble","marble1","blue","10","tom","100"]}' # price is in collectionMarblePrivateDetails
|
|
CC_MARBLES_INVOKE_INIT_ARGS_2='{"Args":["initMarble","marble2","blue","10","tom","100"]}' # price is in collectionMarblePrivateDetails
|
|
CC_MARBLES_INVOKE_TRANSFER_ARGS='{"Args":["transferMarble","marble1","jerry"]}' # price is in collectionMarblePrivateDetails
|
|
CC_MARBLES_QUERY_READ_ARGS='{"Args":["readMarble","marble1"]}' # this requires 'collectionMarbles' collection
|
|
CC_MARBLES_QUERY_READPVTDETAILS_ARGS='{"Args":["readMarblePrivateDetails","marble1"]}' # this requires 'collectionMarblePrivateDetails' collection
|
|
CC_MARBLES_QUERY_READPVTDETAILS_ARGS_2='{"Args":["readMarblePrivateDetails","marble2"]}' # this requires 'collectionMarblePrivateDetails' collection
|
|
CC_MARBLES_COLLECTION_CONFIG="/go/src/chaincodes/go/marbles02_private/collections_config.json"
|
|
CC_MARBLES_COLLECTION_CONFIG_NEW="/go/src/chaincodes/go/marbles02_private/collections_config_new.json"
|
|
|
|
# unique chaincode params
|
|
CC_NAME=${CC_02_NAME}
|
|
CC_PATH=${CC_02_PATH}
|
|
CC_INIT_ARGS=${CC_02_INIT_ARGS}
|
|
CC_INIT_VERSION=1.0
|
|
CC_UPGRADE_ARGS=${CC_02_UPGRADE_ARGS}
|
|
CC_UPGRADE_VERSION=1.1
|
|
CC_INVOKE_ARGS=${CC_02_INVOKE_ARGS}
|
|
CC_QUERY_ARGS=${CC_02_QUERY_ARGS}
|
|
|
|
# Generate configs
|
|
GEN_IMG=yeasy/hyperledger-fabric:${FABRIC_IMG_TAG} # working dir is `/go/src/github.com/hyperledger/fabric`
|
|
GEN_CONTAINER=generator
|
|
FABRIC_CFG_PATH=/etc/hyperledger/fabric
|
|
CHANNEL_ARTIFACTS=channel-artifacts
|
|
CRYPTO_CONFIG=crypto-config
|
|
ORDERER0_GENESIS=orderer0.genesis
|
|
ORDERER1_GENESIS=orderer1.genesis
|
|
ORDERER2_GENESIS=orderer2.genesis
|
|
ORDERER0_GENESIS_BLOCK=${ORDERER0_GENESIS}.block
|
|
ORDERER1_GENESIS_BLOCK=${ORDERER1_GENESIS}.block
|
|
ORDERER2_GENESIS_BLOCK=${ORDERER2_GENESIS}.block
|
|
ORDERER_GENESIS_PROFILE=TwoOrgsOrdererGenesis
|
|
APP_CHANNEL_PROFILE=TwoOrgsChannel
|
|
APP_CHANNEL_TX=${APP_CHANNEL}.tx
|
|
APP_CHANNEL1_TX=${APP_CHANNEL1}.tx
|
|
APP_CHANNEL2_TX=${APP_CHANNEL2}.tx
|
|
UPDATE_ANCHOR_ORG1_TX=Org1MSPanchors.tx
|
|
UPDATE_ANCHOR_ORG2_TX=Org2MSPanchors.tx
|
|
|
|
# CONFIGTXLATOR
|
|
CTL_IMG=yeasy/hyperledger-fabric:${FABRIC_IMG_TAG}
|
|
CTL_CONTAINER=configtxlator
|
|
CTL_BASE_URL=http://127.0.0.1:7059
|
|
CTL_ENCODE_URL=${CTL_BASE_URL}/protolator/encode
|
|
CTL_DECODE_URL=${CTL_BASE_URL}/protolator/decode
|
|
CTL_COMPARE_URL=${CTL_BASE_URL}/configtxlator/compute/update-from-configs
|
|
|
|
PAYLOAD_PATH=".data.data[0].payload"
|
|
PAYLOAD_CFG_PATH=".data.data[0].payload.data.config"
|
|
MAX_BATCH_SIZE_PATH=".data.data[0].payload.data.config.channel_group.groups.Orderer.values.BatchSize.value.max_message_count"
|
|
|
|
# channel update config
|
|
ORIGINAL_CFG_JSON=original_config.json
|
|
ORIGINAL_CFG_PB=original_config.pb
|
|
UPDATED_CFG_JSON=updated_config.json
|
|
UPDATED_CFG_PB=updated_config.pb
|
|
CFG_DELTA_JSON=config_delta.json
|
|
CFG_DELTA_PB=config_delta.pb
|
|
CFG_DELTA_ENV_JSON=config_delta_env.json
|
|
CFG_DELTA_ENV_PB=config_delta_env.pb
|