1- #! /usr/bin/env -S nix shell '.#cardano-wallet' '.#cardano-node' '.#cardano-cli' --command bash
1+ #! /usr/bin/env -S nix shell '.#cardano-wallet' '.#cardano-node' '.#cardano-cli' 'github:input-output-hk/mithril' --command bash
22# shellcheck shell=bash
33
44# set -euox pipefail
@@ -47,10 +47,6 @@ if [[ -z "${NODE_DB-}" ]]; then
4747 export NODE_DB
4848fi
4949
50- if [[ -n " ${CLEANUP_DB-} " ]]; then
51- rm -rf " ${NODE_DB:? } " /*
52- fi
53-
5450NETWORK=${NETWORK:= testnet}
5551
5652# Define and export the node socket name
@@ -72,17 +68,34 @@ LOCAL_NODE_LOGS_FILE=./node.log
7268NODE_LOGS_FILE=" ${NODE_LOGS_FILE:= $LOCAL_NODE_LOGS_FILE } "
7369
7470cleanup () {
75- # shellcheck disable=SC2317
7671 echo " Cleaning up..."
77- # shellcheck disable=SC2317
78- kill " ${NODE_ID} " || echo " Failed to kill node"
79- # shellcheck disable=SC2317
80- kill " ${WALLET_ID} " || echo " Failed to kill wallet"
72+ kill " ${NODE_ID-} " || echo " Failed to kill node"
73+ kill " ${WALLET_ID-} " || echo " Failed to kill wallet"
74+ sleep 5
75+ if [[ -n " ${CLEANUP_DB-} " ]]; then
76+ echo " Cleaning up databases..."
77+ rm -rf " ${NODE_DB:? } " /* || echo " Failed to clean node db"
78+ rm -rf " ${WALLET_DB:? } " /* || echo " Failed to clean wallet db"
79+ fi
8180}
8281
8382# Trap the cleanup function on exit
8483trap cleanup ERR INT EXIT
8584
85+ if [[ -n " ${USE_MITHRIL-} " ]];
86+ then
87+ if [ " $NETWORK " != " mainnet" ]; then
88+ echo " Error: This option is only available for the mainnet network"
89+ exit 1
90+ fi
91+ echo " Starting the mithril service..."
92+ rm -rf " ${NODE_DB:? } " /*
93+ export AGGREGATOR_ENDPOINT
94+ export GENESIS_VERIFICATION_KEY
95+ digest=$( mithril-client cdb snapshot list --json | jq -r .[0].digest)
96+ (cd " ${NODE_DB} " && mithril-client cdb download " $digest " )
97+ (cd " ${NODE_DB} " && mv db/* . && rmdir db)
98+ fi
8699
87100# Start the node with logs redirected to a file if NODE_LOGS_FILE is set
88101# shellcheck disable=SC2086
@@ -157,18 +170,11 @@ else
157170 WALLET_ID=$!
158171fi
159172
160- cleanup () {
161- echo " Cleaning up..."
162- kill " ${NODE_ID} " || echo " Failed to kill node"
163- kill " ${WALLET_ID} " || echo " Failed to kill wallet"
164- }
165-
166- # Trap the cleanup function on exit
167- trap cleanup ERR INT EXIT
168173
169174# Case statement to handle different command-line arguments
170175case " $1 " in
171176 sync)
177+
172178 echo " Wallet service port: $WALLET_PORT "
173179 echo " Syncing the service..."
174180 sleep 10
0 commit comments