mirror of
https://github.com/corda/corda.git
synced 2025-06-01 15:10:54 +00:00
87 lines
3.5 KiB
Bash
Executable File
87 lines
3.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
NODE_LIST=("dockerNode1" "dockerNode2" "dockerNode3")
|
|
NETWORK_NAME=mininet
|
|
CORDAPP_VERSION="4.12.4-RC01"
|
|
DOCKER_IMAGE_VERSION="corda-zulu-4.12.4-RC01"
|
|
|
|
mkdir cordapps
|
|
rm -f cordapps/*
|
|
|
|
wget -O cordapps/finance-contracts.jar https://software.r3.com/artifactory/list/corda-dev/net/corda/corda-finance-contracts/${CORDAPP_VERSION}/corda-finance-contracts-${CORDAPP_VERSION}.jar
|
|
wget -O cordapps/finance-workflows.jar https://software.r3.com/artifactory/list/corda-dev/net/corda/corda-finance-workflows/${CORDAPP_VERSION}/corda-finance-workflows-${CORDAPP_VERSION}.jar
|
|
wget -O cordapps/confidential-identities.jar https://software.r3.com/artifactory/list/corda-dev/net/corda/corda-confidential-identities/${CORDAPP_VERSION}/corda-confidential-identities-${CORDAPP_VERSION}.jar
|
|
|
|
rm keystore
|
|
|
|
keytool -genkey -noprompt \
|
|
-alias alias1 \
|
|
-dname "CN=totally_not_r3, OU=ID, O=definitely_not_r3, L=LONDON, S=LONDON, C=GB" \
|
|
-keystore keystore \
|
|
-storepass password \
|
|
-keypass password \
|
|
-keyalg EC \
|
|
-keysize 256 \
|
|
-sigalg SHA256withECDSA
|
|
|
|
jarsigner -keystore keystore -storepass password -keypass password cordapps/finance-workflows.jar alias1
|
|
jarsigner -keystore keystore -storepass password -keypass password cordapps/finance-contracts.jar alias1
|
|
jarsigner -keystore keystore -storepass password -keypass password cordapps/confidential-identities.jar alias1
|
|
|
|
for NODE in ${NODE_LIST[*]}
|
|
do
|
|
echo Building ${NODE} directory
|
|
rm -rf ${NODE}
|
|
mkdir ${NODE}
|
|
mkdir ${NODE}/config
|
|
mkdir ${NODE}/certificates
|
|
mkdir ${NODE}/logs
|
|
mkdir ${NODE}/persistence
|
|
done
|
|
|
|
docker rm -f netmap
|
|
docker network rm -f ${NETWORK_NAME}
|
|
|
|
docker network create --attachable ${NETWORK_NAME}
|
|
docker run -d \
|
|
-p 18080:8080 \
|
|
-p 10200:10200 \
|
|
--name netmap \
|
|
-e PUBLIC_ADDRESS=netmap \
|
|
--network="${NETWORK_NAME}" \
|
|
roastario/notary-and-network-map:latest
|
|
|
|
let EXIT_CODE=255
|
|
while [ ${EXIT_CODE} -gt 0 ]
|
|
do
|
|
sleep 2
|
|
echo "Waiting for network map to start"
|
|
curl --max-time 2 -s http://localhost:18080/network-map > /dev/null
|
|
let EXIT_CODE=$?
|
|
done
|
|
|
|
for NODE in ${NODE_LIST[*]}
|
|
do
|
|
wget -O ${NODE}/certificates/network-root-truststore.jks http://localhost:18080/truststore
|
|
docker rm -f ${NODE}
|
|
docker run -d \
|
|
-e MY_LEGAL_NAME="O=${NODE},L=Berlin,C=DE" \
|
|
-e MY_PUBLIC_ADDRESS="${NODE}" \
|
|
-e NETWORKMAP_URL="http://netmap:8080" \
|
|
-e DOORMAN_URL="http://netmap:8080" \
|
|
-e NETWORK_TRUST_PASSWORD="trustpass" \
|
|
-e MY_EMAIL_ADDRESS="${NODE}@r3.com" \
|
|
-e MY_RPC_PORT="1100"$(echo ${NODE} | sed 's/[^0-9]*//g') \
|
|
-e RPC_PASSWORD="testingPassword" \
|
|
-v $(pwd)/${NODE}/config:/etc/corda \
|
|
-v $(pwd)/${NODE}/certificates:/opt/corda/certificates \
|
|
-v $(pwd)/${NODE}/logs:/opt/corda/logs \
|
|
-v $(pwd)/${NODE}/persistence:/opt/corda/persistence \
|
|
-v $(pwd)/cordapps:/opt/corda/cordapps \
|
|
-p "1100"$(echo ${NODE} | sed 's/[^0-9]*//g'):"1100"$(echo ${NODE} | sed 's/[^0-9]*//g') \
|
|
-p "222$(echo ${NODE} | sed 's/[^0-9]*//g')":"222$(echo ${NODE} | sed 's/[^0-9]*//g')" \
|
|
-e CORDA_ARGS="--sshd --sshd-port=222$(echo ${NODE} | sed 's/[^0-9]*//g')" \
|
|
--name ${NODE} \
|
|
--network="${NETWORK_NAME}" \
|
|
corda/${DOCKER_IMAGE_VERSION}:latest config-generator --generic
|
|
done
|