@@ -43,8 +43,16 @@ CARDANO_RTS_OPTS=${CARDANO_RTS_OPTS:--N2 -A64m -I0 -qg -qb --disable-delayed-os-
43
43
CARDANO_SOCKET_PATH=${CARDANO_SOCKET_PATH:-/ opt/ cardano/ ipc/ socket}
44
44
CARDANO_TOPOLOGY=${CARDANO_TOPOLOGY:- ${CARDANO_CONFIG_BASE} / ${CARDANO_NETWORK} -topology.json}
45
45
# 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
48
56
SNAPSHOT_DIGEST=${SNAPSHOT_DIGEST:- latest}
49
57
RESTORE_SNAPSHOT=${RESTORE_SNAPSHOT:- true}
50
58
@@ -67,13 +75,11 @@ if [[ ${CARDANO_BLOCK_PRODUCER} == true ]]; then
67
75
echo CARDANO_SHELLEY_KES_KEY=${CARDANO_SHELLEY_KES_KEY}
68
76
echo CARDANO_SHELLEY_VRF_KEY=${CARDANO_SHELLEY_VRF_KEY}
69
77
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}
77
83
fi
78
84
79
85
echo AGGREGATOR_ENDPOINT=${AGGREGATOR_ENDPOINT}
@@ -87,11 +93,22 @@ mkdir -p $(dirname ${CARDANO_SOCKET_PATH})
87
93
if ! test -e ${CARDANO_DATABASE_PATH} /protocolMagicId; then
88
94
echo " Detected empty ${CARDANO_DATABASE_PATH} "
89
95
if [[ ${RESTORE_SNAPSHOT} == true ]]; then
90
- mkdir -p ${CARDANO_DATABASE_PATH}
96
+ mkdir -p $( dirname $ {CARDANO_DATABASE_PATH})
91
97
cd $( dirname ${CARDANO_DATABASE_PATH} )
92
98
export AGGREGATOR_ENDPOINT GENESIS_VERIFICATION_KEY SNAPSHOT_DIGEST
93
99
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 $?
95
112
if [[ $( cd ${CARDANO_DATABASE_PATH} ; pwd -P) != $( pwd -P) /db ]]; then
96
113
mv -f db/* ${CARDANO_DATABASE_PATH} /
97
114
fi
0 commit comments