@@ -42,6 +42,11 @@ CARDANO_PORT=${CARDANO_PORT:-3001}
4242CARDANO_RTS_OPTS=${CARDANO_RTS_OPTS:- -N2 -A64m -I0 -qg -qb --disable-delayed-os-memory-return}
4343CARDANO_SOCKET_PATH=${CARDANO_SOCKET_PATH:-/ opt/ cardano/ ipc/ socket}
4444CARDANO_TOPOLOGY=${CARDANO_TOPOLOGY:- ${CARDANO_CONFIG_BASE} / ${CARDANO_NETWORK} / topology.json}
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)}
48+ SNAPSHOT_DIGEST=${SNAPSHOT_DIGEST:- latest}
49+ RESTORE_SNAPSHOT=${RESTORE_SNAPSHOT:- true}
4550
4651echo CARDANO_BIND_ADDR=${CARDANO_BIND_ADDR}
4752echo CARDANO_BLOCK_PRODUCER=${CARDANO_BLOCK_PRODUCER}
@@ -64,8 +69,37 @@ if [[ ${CARDANO_BLOCK_PRODUCER} == true ]]; then
6469 echo CARDANO_SHELLEY_OPERATIONAL_CERTIFICATE=${CARDANO_SHELLEY_OPERATIONAL_CERTIFICATE}
6570fi
6671
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
77+ fi
78+
79+ echo AGGREGATOR_ENDPOINT=${AGGREGATOR_ENDPOINT}
80+ echo GENESIS_VERIFICATION_KEY=${GENESIS_VERIFICATION_KEY}
81+ echo SNAPSHOT_DIGEST=${SNAPSHOT_DIGEST}
82+ echo RESTORE_SNAPSHOT=${RESTORE_SNAPSHOT}
83+
6784mkdir -p $( dirname ${CARDANO_SOCKET_PATH} )
6885
86+ # Mithril
87+ if ! test -e ${CARDANO_DATABASE_PATH} /protocolMagicId; then
88+ echo " Detected empty ${CARDANO_DATABASE_PATH} "
89+ if [[ ${RESTORE_SNAPSHOT} == true ]]; then
90+ mkdir -p ${CARDANO_DATABASE_PATH}
91+ cd $( dirname ${CARDANO_DATABASE_PATH} )
92+ export AGGREGATOR_ENDPOINT GENESIS_VERIFICATION_KEY SNAPSHOT_DIGEST
93+ echo " Starting: /usr/local/bin/mithril-client snapshot download ${SNAPSHOT_DIGEST} "
94+ mithril-client snapshot download ${SNAPSHOT_DIGEST}
95+ if [[ $( cd ${CARDANO_DATABASE_PATH} ; pwd -P) != $( pwd -P) /db ]]; then
96+ mv -f db/* ${CARDANO_DATABASE_PATH} /
97+ fi
98+ fi
99+ elif [[ ${RESTORE_SNAPSHOT} == true ]]; then
100+ echo " Detected populated ${CARDANO_DATABASE_PATH} ... skipping restore"
101+ fi
102+
69103if [[ ${CARDANO_BLOCK_PRODUCER} == true ]]; then
70104 effopts=(--config ${CARDANO_CONFIG} \
71105 --database-path ${CARDANO_DATABASE_PATH} \
0 commit comments