@@ -43,8 +43,16 @@ CARDANO_RTS_OPTS=${CARDANO_RTS_OPTS:--N2 -A64m -I0 -qg -qb --disable-delayed-os-
4343CARDANO_SOCKET_PATH=${CARDANO_SOCKET_PATH:-/ opt/ cardano/ ipc/ socket}
4444CARDANO_TOPOLOGY=${CARDANO_TOPOLOGY:- ${CARDANO_CONFIG_BASE} / ${CARDANO_NETWORK} -topology.json}
4545# mithril
46- AGGREGATOR_ENDPOINT=${AGGREGATOR_ENDPOINT:- https:// aggregator.release-${CARDANO_NETWORK} .api.mithril.network/ aggregator}
47- GENESIS_VERIFICATION_KEY=${GENESIS_VERIFICATION_KEY:- $(<${CARDANO_CONFIG_BASE} / ${CARDANO_NETWORK} -genesis.vkey)}
46+ case ${CARDANO_NETWORK} in
47+ mainnet|preprod) __path=release-${CARDANO_NETWORK} ;;
48+ preview) __path=pre-release-${CARDANO_NETWORK} ;;
49+ sanchonet) __path=testing-${CARDANO_NETWORK} ;;
50+ esac
51+ AGGREGATOR_ENDPOINT=${AGGREGATOR_ENDPOINT:- https:// aggregator.${__path} .api.mithril.network/ aggregator}
52+ GENESIS_VERIFICATION_KEY_PATH=${GENESIS_VERIFICATION_KEY_PATH:- ${CARDANO_CONFIG_BASE} / ${CARDANO_NETWORK} -genesis.vkey}
53+ if [[ -z $GENESIS_VERIFICATION_KEY && -f $GENESIS_VERIFICATION_KEY_PATH ]]; then
54+ GENESIS_VERIFICATION_KEY=$( < ${GENESIS_VERIFICATION_KEY_PATH} )
55+ fi
4856SNAPSHOT_DIGEST=${SNAPSHOT_DIGEST:- latest}
4957RESTORE_SNAPSHOT=${RESTORE_SNAPSHOT:- true}
5058
@@ -67,13 +75,11 @@ if [[ ${CARDANO_BLOCK_PRODUCER} == true ]]; then
6775 echo CARDANO_SHELLEY_KES_KEY=${CARDANO_SHELLEY_KES_KEY}
6876 echo CARDANO_SHELLEY_VRF_KEY=${CARDANO_SHELLEY_VRF_KEY}
6977 echo CARDANO_SHELLEY_OPERATIONAL_CERTIFICATE=${CARDANO_SHELLEY_OPERATIONAL_CERTIFICATE}
70- fi
71-
72- if [[ ${CARDANO_NETWORK} == preview ]]; then
73- if [[ ${RESTORE_SNAPSHOT} == true ]]; then
74- echo " Mithril not supported on preview... skipping"
75- fi
76- RESTORE_SNAPSHOT=false
78+ else
79+ sed -i \
80+ -e ' s/"PeerSharing": false/"PeerSharing": true/' \
81+ -e ' s/"TraceMempool": false/"TraceMempool": true/' \
82+ ${CARDANO_CONFIG}
7783fi
7884
7985echo AGGREGATOR_ENDPOINT=${AGGREGATOR_ENDPOINT}
@@ -87,11 +93,22 @@ mkdir -p $(dirname ${CARDANO_SOCKET_PATH})
8793if ! test -e ${CARDANO_DATABASE_PATH} /protocolMagicId; then
8894 echo " Detected empty ${CARDANO_DATABASE_PATH} "
8995 if [[ ${RESTORE_SNAPSHOT} == true ]]; then
90- mkdir -p ${CARDANO_DATABASE_PATH}
96+ mkdir -p $( dirname $ {CARDANO_DATABASE_PATH})
9197 cd $( dirname ${CARDANO_DATABASE_PATH} )
9298 export AGGREGATOR_ENDPOINT GENESIS_VERIFICATION_KEY SNAPSHOT_DIGEST
9399 echo " Starting: /usr/local/bin/mithril-client snapshot download ${SNAPSHOT_DIGEST} "
94- mithril-client snapshot download ${SNAPSHOT_DIGEST}
100+ if [[ $( cd ${CARDANO_DATABASE_PATH} ; pwd -P) != $( pwd -P) /db ]]; then
101+ rm -rf db/*
102+ fi
103+ # Handle SIGTERM during initial sync
104+ trap ' kill -TERM $(pidof mithril-client)' TERM
105+ # Run mithril-client in the background so we can capture the PID and wait
106+ mithril-client snapshot download ${SNAPSHOT_DIGEST} &
107+ _mithril_pid=$!
108+ wait $_mithril_pid || exit $?
109+ # Reset signal handler and wait again (to avoid race condition)
110+ trap - TERM
111+ wait $_mithril_pid || exit $?
95112 if [[ $( cd ${CARDANO_DATABASE_PATH} ; pwd -P) != $( pwd -P) /db ]]; then
96113 mv -f db/* ${CARDANO_DATABASE_PATH} /
97114 fi
0 commit comments