I made this I got ai to make it pretty
Bash:
#!/bin/bash
# Script to automate the setup and configuration of Bitcoin Core for development and demonstration purposes.
# This script will perform system updates, install necessary dependencies, compile Bitcoin Core, and configure it for immediate use.
# Ensure the script is run as root to avoid permission issues
if [ "$(id -u)" -ne 0 ]; then
echo "This script must be run as root. Please use sudo or log in as the root user."
exit 1
fi
# Enable strict error handling
set -euo pipefail
# Step 1: Update and upgrade system packages
echo "=== Step 1: Updating and upgrading system packages... ==="
sudo apt update && sudo apt upgrade -y
# Step 2: Install necessary dependencies for building Bitcoin Core
echo "=== Step 2: Installing build dependencies... ==="
sudo apt install build-essential autoconf libtool libssl-dev libboost-all-dev libdb-dev libdb++-dev libevent-dev -y
# Step 3: Clone and compile Bitcoin Core
echo "=== Step 3: Downloading and compiling Bitcoin Core... ==="
git clone https://github.com/bitcoin/bitcoin.git
cd bitcoin
./autogen.sh
./configure --without-gui
make
# Step 4: Install Bitcoin Core
echo "=== Step 4: Installing Bitcoin Core... ==="
sudo make install
# Step 5: Download and install Bitcoin Core documentation
echo "=== Step 5: Setting up Bitcoin documentation... ==="
git clone https://github.com/bitcoin-core/docs.git
sudo mv docs /var/www/html/bitcoin-docs
# Step 6: Configure Bitcoin Core (bitcoind)
echo "=== Step 6: Configuring Bitcoin Core daemon (bitcoind)... ==="
BITCOIN_DIR=~/.bitcoin
mkdir -p $BITCOIN_DIR
# Create a secure bitcoin.conf file
cat > $BITCOIN_DIR/bitcoin.conf <<EOF
server=1
daemon=1
txindex=1
rpcuser=bitcoinrpc
rpcpassword=$(head -c 32 /dev/urandom | base64)
rpcallowip=127.0.0.1
EOF
# Start Bitcoin Core daemon in the background
echo "Starting Bitcoin Core daemon..."
bitcoind -daemon
# Completion message with instructions to access documentation
echo "Bitcoin Core is now installed and running in daemon mode."
echo "Documentation is available at http://$(hostname -I | awk '{print $1}')/bitcoin-docs"
# Optional: Display additional message on how to start mining
echo "To start mining, use 'bitcoin-cli generate 1' (not recommended for production)."