Add scripts for testing
parent
33ed75246a
commit
3479f414d9
|
@ -0,0 +1,81 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# Fetch a config block and decode it. It will generate 3 local files:
|
||||||
|
# ${channel}_config.block: the config block;
|
||||||
|
# ${channel}_config.block.json: decoded config block;
|
||||||
|
# ${channel}_config.block.cfg.json: core config section of the config blcok
|
||||||
|
|
||||||
|
# Usage: ./script mspId channel ordererURL mspPath=${PWD}/msp-mspId
|
||||||
|
|
||||||
|
# use configtxlator to decode pb to json
|
||||||
|
# Usage: configtxlatorEncode msgType input output
|
||||||
|
configtxlatorDecode() {
|
||||||
|
local msgType=$1
|
||||||
|
local input=$2
|
||||||
|
local output=$3
|
||||||
|
|
||||||
|
if [ ! -f "$input" ]; then
|
||||||
|
echo "configDecode: input file not found"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! command -v configtxlator &> /dev/null; then
|
||||||
|
echo "configtxlator could not be found, please install it first"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Config Decode $input --> $output using type $msgType"
|
||||||
|
configtxlator proto_decode \
|
||||||
|
--type="${msgType}" \
|
||||||
|
--input="${input}" \
|
||||||
|
--output="${output}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# fetchConfigBlock fetch the config block
|
||||||
|
# Usage: fetchConfigBlock channel ordererURL tlscaFile
|
||||||
|
fetchConfigBlock() {
|
||||||
|
local channel=$1
|
||||||
|
local ordererURL=$2
|
||||||
|
local tlscaFile=$3
|
||||||
|
local config_block=${channel}_config.block
|
||||||
|
PAYLOAD_CFG_PATH=".data.data[0].payload.data.config"
|
||||||
|
|
||||||
|
peer channel fetch config "${config_block}" \
|
||||||
|
-c "${channel}" \
|
||||||
|
-o "${ordererURL}" \
|
||||||
|
--tls \
|
||||||
|
--cafile "${tlscaFile}"
|
||||||
|
|
||||||
|
echo "[${channel}] Decode config block into JSON with configtxlator"
|
||||||
|
configtxlatorDecode "common.Block" "${channel}_config.block" "${channel}_config.block.json"
|
||||||
|
|
||||||
|
echo "[${channel}] Export the config section ${PAYLOAD_CFG_PATH} from config block"
|
||||||
|
jq "${PAYLOAD_CFG_PATH}" "${channel}_config.block.json" >"${channel}_config.block.cfg.json"
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ $# -eq 0 ]; then
|
||||||
|
echo "Please use the <mspId> <channel> <ordererURL> as the argument"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Entry function
|
||||||
|
main() {
|
||||||
|
if [ $# -lt 3 ]; then
|
||||||
|
echo "Not enough argument supplied"
|
||||||
|
echo "$(basename $0) mspId channel ordererURL mspPath=${PWD}/msp-mspId"
|
||||||
|
fi
|
||||||
|
local mspId=$1
|
||||||
|
local channel=$2
|
||||||
|
local ordererURL=$3
|
||||||
|
local mspPath=${4:-${PWD}/msp-${mspId}} # Suppose the local msp path named as msp-${msp_id}
|
||||||
|
|
||||||
|
export FABRIC_LOGGING_SPEC="debug"
|
||||||
|
export CORE_PEER_LOCALMSPID=${mspId}
|
||||||
|
export CORE_PEER_MSPCONFIGPATH=${mspPath}
|
||||||
|
export CORE_PEER_TLS_ROOTCERT_FILE=${mspPath}/tlscacerts/tlsca.cert
|
||||||
|
#export CORE_PEER_TLS_ENABLED=true # Let client use TLS connection when connecting to peer
|
||||||
|
|
||||||
|
echo "[${channel}] Fetch config block and decode it into JSON"
|
||||||
|
fetchConfigBlock "${channel}" "${ordererURL}" "${CORE_PEER_TLS_ROOTCERT_FILE}"
|
||||||
|
}
|
||||||
|
|
||||||
|
main "$@"
|
|
@ -0,0 +1,36 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# Generate a valid msp dir based on given certificates.json and admin-credential
|
||||||
|
# It will overwrite any local msp path with the same name as msp-${mspId}
|
||||||
|
|
||||||
|
# Usage: ./script mspId
|
||||||
|
|
||||||
|
if [ $# -lt 1 ]; then
|
||||||
|
echo "Please use the <msp id> as the argument" && exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
mspId=$1
|
||||||
|
echo "msp id = ${mspId}"
|
||||||
|
|
||||||
|
cert_file=${mspId}-certificates.json
|
||||||
|
admin_dir=${mspId}-admin-credential
|
||||||
|
|
||||||
|
mkdir -p "msp-${mspId}"
|
||||||
|
pushd "msp-${mspId}" && mkdir tlscacerts signcerts keystore cacerts admincerts && popd || exit 1
|
||||||
|
|
||||||
|
echo "Unzip ${mspId}-admin-credential.zip file to create the ${admin_dir}"
|
||||||
|
unzip -d "${mspId}-admin-credential" "${mspId}-admin-credential.zip"
|
||||||
|
|
||||||
|
echo "Get tlscacert from ${cert_file}"
|
||||||
|
jq -r .certs.tlscacert "${cert_file}" > "msp-${mspId}/tlscacerts/tlsca.cert"
|
||||||
|
|
||||||
|
echo "Get signcerts from ${admin_dir}"
|
||||||
|
cp "${admin_dir}/${mspId}-cert.pem" "msp-${mspId}/signcerts/"
|
||||||
|
|
||||||
|
echo "Get keystore from ${admin_dir}"
|
||||||
|
cp "${admin_dir}/${mspId}-key" "msp-${mspId}/keystore/"
|
||||||
|
|
||||||
|
echo "Get cacerts from ${cert_file}"
|
||||||
|
jq -r .certs.cacert "${cert_file}" > "msp-${mspId}/cacerts/ca.cert"
|
||||||
|
|
||||||
|
echo "Get admincerts from ${admin_dir}"
|
||||||
|
cp "${admin_dir}/${mspId}-cert.pem" "msp-${mspId}/admincerts/"
|
Loading…
Reference in New Issue