You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

75 lines
2.3 KiB

#!/bin/bash
# This script shows the steps to download and update an archive of the current UTXO Set
if ! [ "$0" = "$BASH_SOURCE" ]; then
echo "This script must not be sourced"
exit 1
fi
if [[ $EUID -ne 0 ]]; then
echo "This script must be run as root after running \"sudo su -\""
exit 1
fi
: "${UTXO_DOWNLOAD_LINK:=http://utxosets.blob.core.windows.net/public/utxo-snapshot-bitcoin-mainnet-551636.tar}"
NETWORK=""
[[ $DOWNLOAD_LINK == *-testnet-* ]] && NETWORK="testnet"
[[ $DOWNLOAD_LINK == *-mainnet-* ]] && NETWORK="mainnet"
[[ $DOWNLOAD_LINK == *-regtest-* ]] && NETWORK="regtest"
BITCOIN_DATA_DIR="/var/lib/docker/volumes/generated_bitcoin_datadir/_data"
[ ! -d "$BITCOIN_DATA_DIR" ] && mkdir -p "$BITCOIN_DATA_DIR"
TAR_NAME="$(basename $DOWNLOAD_LINK)"
TAR_FILE="$BITCOIN_DATA_DIR/$TAR_NAME"
echo "Downloading $DOWNLOAD_LINK to $TAR_FILE"
cd "$BITCOIN_DATA_DIR"
if [ ! -f "$TAR_FILE" ]; then
wget "$DOWNLOAD_LINK" -q --show-progress
else
echo "$TAR_FILE already exists"
fi
echo "
fab994299273080bf7124c8c45c4ada867974ca747900178496a69e450cf713f utxo-snapshot-bitcoin-mainnet-551636.tar
eabaaa717bb8eeaf603e383dd8642d9d34df8e767fccbd208b0c936b79c82742 utxo-snapshot-bitcoin-testnet-1445586.tar
" > "trusted-utxo-sets.asc"
grep "$TAR_NAME" "trusted-utxo-sets.asc" | tee "sig.asc"
rm "trusted-utxo-sets.asc"
if ! sha256sum -c "sig.asc"; then
echo "$TAR_FILE is not trusted"
rm "sig.asc"
cd -
exit 1
fi
rm "sig.asc"
cd -
NETWORK_DIRECTORY=$NETWORK
if [[ $NETWORK == "mainnet" ]]; then
NETWORK_DIRECTORY="."
fi
if [[ $NETWORK == "testnet" ]]; then
NETWORK_DIRECTORY="testnet3"
fi
NETWORK_DIRECTORY="$BITCOIN_DATA_DIR/$NETWORK_DIRECTORY"
[ -d "$NETWORK_DIRECTORY/blocks" ] && rm -rf "$NETWORK_DIRECTORY/blocks"
[ -d "$NETWORK_DIRECTORY/chainstate" ] && rm -rf "$NETWORK_DIRECTORY/chainstate"
[ ! -d "$NETWORK_DIRECTORY" ] && mkdir "$NETWORK_DIRECTORY"
echo "Extracting..."
if ! tar -xf "$TAR_FILE" -C "$BITCOIN_DATA_DIR"; then
echo "Failed extracting, did you turned bitcoin off? (btcpay-down.sh)"
exit 1
fi
rm "$TAR_FILE"
BTCPAY_DATA_DIR="/var/lib/docker/volumes/generated_btcpay_datadir/_data"
[ ! -d "$BTCPAY_DATA_DIR" ] && mkdir -p "$BTCPAY_DATA_DIR"
echo "$TAR_NAME" > "$BTCPAY_DATA_DIR/FastSynced"
echo "Successfully downloaded and extracted, you can run btcpay again (btcpay-up.sh)"