mirror of
https://github.com/aljazceru/btcpayserver-docker.git
synced 2026-01-16 19:54:23 +01:00
Make the utxo-set scripts more friendly
This commit is contained in:
@@ -1,6 +1,11 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This script shows the steps to download and update an archive of the current UTXO Set
|
||||
# This script shows the steps to download and deploy an archive of the current UTXO Set
|
||||
# It will:
|
||||
# 1. Download the UTXO Set from UTXO_DOWNLOAD_LINK, if UTXO_DOWNLOAD_LINK is empty, use NBITCOIN_NETWORK to find a default
|
||||
# 2. Check the tarball against trusted hashes
|
||||
# 3. Create the container's folders for blocks and chainstate, or empty them if they exists
|
||||
# 4. Unzip the tarball
|
||||
|
||||
if ! [ "$0" = "$BASH_SOURCE" ]; then
|
||||
echo "This script must not be sourced"
|
||||
@@ -12,11 +17,20 @@ if [[ $EUID -ne 0 ]]; then
|
||||
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"
|
||||
if [[ "$NBITCOIN_NETWORK" ]]; then
|
||||
echo "NBITCOIN_NETWORK should be set to mainnet, testnet or regtest"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! [[ "$UTXO_DOWNLOAD_LINK" ]]; then
|
||||
[[ $NBITCOIN_NETWORK == "mainnet" ]] && UTXO_DOWNLOAD_LINK="http://utxosets.blob.core.windows.net/public/utxo-snapshot-bitcoin-mainnet-551636.tar"
|
||||
[[ $NBITCOIN_NETWORK == "testnet" ]] && UTXO_DOWNLOAD_LINK="http://utxosets.blob.core.windows.net/public/utxo-snapshot-bitcoin-testnet-1445586.tar"
|
||||
fi
|
||||
|
||||
if ! [[ "$UTXO_DOWNLOAD_LINK" ]]; then
|
||||
echo "No default UTXO_DOWNLOAD_LINK for $NBITCOIN_NETWORK"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
BITCOIN_DATA_DIR="/var/lib/docker/volumes/generated_bitcoin_datadir/_data"
|
||||
[ ! -d "$BITCOIN_DATA_DIR" ] && mkdir -p "$BITCOIN_DATA_DIR"
|
||||
@@ -48,11 +62,11 @@ fi
|
||||
rm "sig.asc"
|
||||
cd -
|
||||
|
||||
NETWORK_DIRECTORY=$NETWORK
|
||||
if [[ $NETWORK == "mainnet" ]]; then
|
||||
NETWORK_DIRECTORY=$NBITCOIN_NETWORK
|
||||
if [[ $NBITCOIN_NETWORK == "mainnet" ]]; then
|
||||
NETWORK_DIRECTORY="."
|
||||
fi
|
||||
if [[ $NETWORK == "testnet" ]]; then
|
||||
if [[ $NBITCOIN_NETWORK == "testnet" ]]; then
|
||||
NETWORK_DIRECTORY="testnet3"
|
||||
fi
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# This file is internal and meant to be run by save-utxo-set.sh
|
||||
BITCOIND="bitcoind -datadir=/data"
|
||||
BITCOIN_CLI="bitcoin-cli -datadir=/data"
|
||||
|
||||
@@ -26,3 +27,4 @@ TAR_NAME="utxo-snapshot-bitcoin-$NBITCOIN_NETWORK-$PRUNED_HEIGHT.tar"
|
||||
echo "Creating $TAR_NAME..."
|
||||
tar -cf "$TAR_NAME" "$NETWORK_DIRECTORY/blocks/"
|
||||
tar -rf "$TAR_NAME" "$NETWORK_DIRECTORY/chainstate/"
|
||||
exit
|
||||
|
||||
@@ -1,12 +1,17 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This script shows the steps to create an archive of the current UTXO Set
|
||||
# It will:
|
||||
# 1. Shutdown BTCPay Server
|
||||
# 2. Start bitcoind
|
||||
# 3. Prune it to up to 289 blocks from the tip
|
||||
# 4. Stop bitcoind
|
||||
# 5. Archive in a tarball the blocks and chainstate directories
|
||||
# 6. Restart BTCPay
|
||||
# 7. If AZURE_STORAGE_CONNECTION_STRING is set, then upload to azure storage and make the blob public, else print hash and tarball
|
||||
|
||||
: "${AZURE_STORAGE_CONTAINER:=public}"
|
||||
|
||||
# IN THE HOST #############################################################
|
||||
|
||||
# Stop btcpay
|
||||
btcpay-down.sh
|
||||
|
||||
for i in /var/lib/docker/volumes/generated_bitcoin_datadir/_data/utxo-snapshot-*; do
|
||||
|
||||
Reference in New Issue
Block a user