4NK_miner/entrypoint.sh

57 lines
1.6 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
BITCOIN_DIR=${BITCOIN_DIR:-/bitcoin}
COOKIE_FILE=${COOKIE_FILE:-$BITCOIN_DIR/signet/.cookie}
RPC_HOST=${RPC_HOST:-bitcoin}
RPC_PORT=${RPC_PORT:-38332}
POLL_INTERVAL=${POLL_INTERVAL:-5}
WATCHONLY_WALLET=${WATCHONLY_WALLET:-watchonly}
MINING_WALLET=${MINING_WALLET:-mining_mnemonic}
MINER_TAG=${MINER_TAG:-lecoffre}
# Ajouter test_framework au PYTHONPATH
export PYTHONPATH="/app/test/functional:${PYTHONPATH:-}"
if [ ! -f "$COOKIE_FILE" ]; then
echo "Cookie introuvable: $COOKIE_FILE" >&2
ls -la "$BITCOIN_DIR" || true
exit 1
fi
# Variables attendues via miner/.env
# COINBASE_ADDRESS est optionnel - si non défini, une adresse sera générée automatiquement
# Adresse du relay pour partager les rewards (optionnel)
RELAY_ADDRESS="${RELAY_ADDRESS:-}"
REWARD_SPLIT_RATIO="${REWARD_SPLIT_RATIO:-0.5}"
# Lancer le miner (les options globales doivent précéder la sous-commande)
MINER_CMD=(
python /app/signet/miner \
--cli "bitcoin-cli -datadir=$BITCOIN_DIR -rpcconnect=$RPC_HOST -rpcport=$RPC_PORT -rpccookiefile=$COOKIE_FILE" \
generate \
--ongoing \
--min-nbits \
--WATCHONLY_WALLET "$WATCHONLY_WALLET" \
--MINING_WALLET "$MINING_WALLET" \
--MINER_TAG "$MINER_TAG"
)
if [ -n "${COINBASE_ADDRESS:-}" ]; then
MINER_CMD+=( --address "$COINBASE_ADDRESS" )
elif [ -n "${COINBASE_DESCRIPTOR:-}" ]; then
MINER_CMD+=( --descriptor "$COINBASE_DESCRIPTOR" )
else
# Générer automatiquement une adresse
MINER_CMD+=( --address "auto" )
fi
if [ -n "${RELAY_ADDRESS:-}" ]; then
MINER_CMD+=( --relay-address "$RELAY_ADDRESS" )
fi
MINER_CMD+=( --reward-split-ratio "$REWARD_SPLIT_RATIO" )
exec "${MINER_CMD[@]}"