fabric-samples/test-network-nano-bash/generate_artifacts.sh
Chris Elder 3c63eac4e3 Add CA capability to test-network-nano-bash
This change adds:
- shell scripts to start CAs for each org
- optional flag (-c) to network.sh to start CAs
- generate crypto material in the same format as cryptogen using the CAs
- describe how to start the CAs using terminals

Signed-off-by: Chris Elder <celder@chriss-mbp.raleigh.ibm.com>
2024-05-28 23:31:18 -04:00

69 lines
1.6 KiB
Bash
Executable file

#!/usr/bin/env sh
#
# SPDX-License-Identifier: Apache-2.0
#
set -eu
ordererType="etcdraft"
INCLUDE_CA=false
# parse flags
while [ $# -ge 1 ] ; do
key="$1"
case $key in
etcdraft )
ordererType="etcdraft"
;;
BFT )
ordererType="BFT"
;;
-ca )
INCLUDE_CA=true
;;
* )
;;
esac
shift
done
# remove existing artifacts, or proceed on if the directories don't exist
rm -r "${PWD}"/channel-artifacts || true
rm -r "${PWD}"/crypto-config || true
rm -r "${PWD}"/data || true
# look for binaries in local dev environment /build/bin directory and then in local samples /bin directory
export PATH="${PWD}"/../../fabric/build/bin:"${PWD}"/../bin:"$PATH"
# if INCLUDE_CA is false (default), then use cryptogen
if [ "${INCLUDE_CA}" = false ]; then
echo "Generating MSP certificates using cryptogen tool"
cryptogen generate --config="${PWD}"/crypto-config.yaml
else
mkdir -p "${PWD}"/logs
# execute the script to configure the default set of enrollments
echo "Generating MSP certificates using the Fabric CAs"
./ca/createEnrollments.sh > ./logs/createEnrollments.log 2>&1
fi
# set FABRIC_CFG_PATH to configtx.yaml directory that contains the profiles
export FABRIC_CFG_PATH="${PWD}"
if [ "${ordererType}" = "BFT" ]
then
profile="ChannelUsingBFT"
ordererType="BFT"
export FABRIC_CFG_PATH="${PWD}/bft-config"
else
profile="ChannelUsingRaft"
fi
echo "Generating application channel genesis block with ${ordererType} consensus"
configtxgen -profile ${profile} -outputBlock ./channel-artifacts/mychannel.block -channelID mychannel