Bitcoin Solo Mining
Take a chance at the block lottery and contribute to the Bitcoin network!
What is Bitcoin Solo Mining?
Bitcoin solo mining is the process of mining Bitcoin blocks independently, without joining a mining pool. As a solo miner, you use your own hardware to solve cryptographic puzzles, attempting to add a new block to the Bitcoin blockchain. If successful, you receive the entire block reward, which includes the block subsidy and transaction fees. However, the odds are extremely low due to the high network hash rate, making it akin to playing a lottery with a massive potential payout.
Why Solo Mining is Helpful for the Network
Solo mining contributes to the decentralization and security of the Bitcoin network. By participating as an independent miner, you help distribute the network’s hash power, reducing the risk of centralization that can occur when large mining pools dominate. This decentralization strengthens Bitcoin’s resilience against attacks and censorship, ensuring the network remains trustless and permissionless. Additionally, every miner, regardless of size, helps validate transactions and maintain the integrity of the blockchain, supporting Bitcoin’s core principles of fairness and transparency.
Solo Mining vs. Traditional Lottery
Solo mining is often compared to playing a traditional lottery due to its low probability of success but high potential reward. Here’s how they stack up:
- Odds of Winning: In solo mining, your odds depend on your hash rate relative to the network’s total hash rate—often 1 in hundreds of millions per block. For lotteries like Euromillions, odds are 1 in 139,838,160 per ticket, and Powerball is 1 in 292,201,338. Solo mining allows for more frequent attempts (52,596 blocks per year) compared to daily lottery tickets (365.25 per year).
- Cost: Solo mining involves upfront hardware costs and ongoing electricity expenses, while lotteries require small, recurring ticket purchases. For example, daily Euromillions tickets cost €913.13 annually, while a solo mining setup might cost €200–€500 for hardware and energy.
- Reward: A successful solo mined block currently pays out over €233,000 (based on the live price below), while lottery jackpots can range from €15 million to €190 million for Euromillions, or $40 million to $1 billion for Powerball, depending on the draw.
- Impact: Solo mining supports Bitcoin’s decentralization and security, contributing to a global financial network, whereas lotteries typically fund charities or government programs but don’t contribute to a broader technological ecosystem.
Featured Solo Miners
Explore two popular solo mining devices to start your Bitcoin mining journey:
NerdQAxe+
The NerdQAxe+ is a powerful open-source Bitcoin miner featuring 4 BM1368 ASIC chips, delivering 2.5 TH/s at just 55 W. It’s ideal for solo miners seeking efficiency and performance, with a user-friendly interface and full-color display. Learn more
Bitaxe Gamma
The Bitaxe Gamma is an efficient open-source miner with a BM1370 ASIC chip, offering 1.2 TH/s at 17 W. Perfect for home mining setups, it combines compact design with powerful performance and open-source firmware. Learn more
Running a Bitcoin Node and Solo Mining Pool on Raspberry Pi
Running a Bitcoin node on a Raspberry Pi allows you to contribute to the Bitcoin network’s security and decentralization, while setting up a solo mining pool lets you mine independently. Here’s how to set up both using a Raspberry Pi.
Step 1: Gather Your Hardware
You’ll need:
- Raspberry Pi 4 (4GB or 8GB RAM recommended) with a case and cooling solution (e.g., heatsink or fan).
- MicroSD card (32GB or larger) for the operating system.
- External USB hard drive or SSD (1TB or larger) to store the Bitcoin blockchain (currently ~600 GB and growing).
- USB-C power supply for the Raspberry Pi.
- Keyboard, mouse, and monitor (for initial setup, optional if using SSH).
- Ethernet cable or Wi-Fi for a reliable internet connection (preferably unlimited bandwidth).
- Solo mining hardware (e.g., NerdQAxe+ or Bitaxe Gamma).
Step 2: Install Raspberry Pi OS
Download the Raspberry Pi Imager from the official Raspberry Pi website and install Raspberry Pi OS (64-bit) on your MicroSD card:
- Insert the MicroSD card into your computer.
- Open Raspberry Pi Imager, select Raspberry Pi OS (64-bit), and choose your MicroSD card.
- Click the gear icon to enable SSH, set a username (e.g., `pi`) and password (e.g., `raspberry`), and configure Wi-Fi if needed.
- Write the image to the MicroSD card.
Insert the MicroSD card into the Raspberry Pi, connect your peripherals (if using a monitor), and power on the device. If using SSH, find your Pi’s IP address on your router and connect via `ssh pi@
Step 3: Set Up the External Storage
The Bitcoin blockchain requires significant storage, so we’ll use an external drive:
- Connect the external drive to your Raspberry Pi.
- Format the drive to ext4 using the terminal:
sudo fdisk /dev/sda # Delete existing partitions (d), create a new partition (n), set type to primary (p), write changes (w) sudo mkfs.ext4 /dev/sda1 - Create a mount point and mount the drive:
sudo mkdir /mnt/bitcoin sudo mount /dev/sda1 /mnt/bitcoin - Ensure the drive auto-mounts on reboot by editing `/etc/fstab`:
sudo nano /etc/fstab # Add the line: /dev/sda1 /mnt/bitcoin ext4 defaults 0 2 # Save and exit (Ctrl+O, Enter, Ctrl+X) - Set permissions:
sudo chown -R pi:pi /mnt/bitcoin sudo chmod -R 775 /mnt/bitcoin
Step 4: Install Bitcoin Core
Bitcoin Core is the software to run your full node:
- Update your Raspberry Pi:
sudo apt update sudo apt upgrade -y - Download the latest Bitcoin Core ARM64 binary from the official website (bitcoincore.org):
wget https://bitcoincore.org/bin/bitcoin-core-27.0/bitcoin-27.0-aarch64-linux-gnu.tar.gz wget https://bitcoincore.org/bin/bitcoin-core-27.0/SHA256SUMS - Verify the download:
sha256sum --check SHA256SUMS --ignore-missing - Extract and install Bitcoin Core:
tar -xvf bitcoin-27.0-aarch64-linux-gnu.tar.gz sudo install -m 0755 -o root -g root -t /usr/local/bin bitcoin-27.0/bin/* - Create a Bitcoin data directory on the external drive:
mkdir /mnt/bitcoin/.bitcoin
Step 5: Configure Bitcoin Core
Create a configuration file to optimize your node:
- Edit the `bitcoin.conf` file:
nano /mnt/bitcoin/.bitcoin/bitcoin.conf - Add the following configuration:
datadir=/mnt/bitcoin/.bitcoin dbcache=100 maxconnections=8 rpcuser=yourusername rpcpassword=yoursecurepassword txindex=1 daemon=1Save and exit (Ctrl+O, Enter, Ctrl+X). - Start Bitcoin Core to begin syncing the blockchain:
bitcoind -daemon -conf=/mnt/bitcoin/.bitcoin/bitcoin.conf - Monitor the sync progress (this may take days or weeks depending on your internet speed):
bitcoin-cli -conf=/mnt/bitcoin/.bitcoin/bitcoin.conf getblockchaininfo
Your node will download the entire blockchain (currently ~600 GB), contributing to the Bitcoin network’s security and decentralization. Once synced, it will validate transactions and blocks independently.
Step 6: Set Up a Solo Mining Pool
Unlike joining a mining pool, a solo mining pool means you mine independently using your node. We’ll use **CKPool** software, a popular choice for solo mining, to connect your mining hardware to your node.
- Install dependencies for CKPool:
sudo apt install -y build-essential autoconf libcurl4-openssl-dev libjansson-dev libssl-dev libgmp-dev zlib1g-dev git - Clone and compile CKPool:
git clone https://github.com/ckolivas/ckpool.git cd ckpool autoreconf -i ./configure --enable-solo make sudo make install - Create a CKPool configuration file:
mkdir ~/ckpool nano ~/ckpool/ckpool.confAdd the following configuration:{ "btcd" : [ { "url" : "localhost:8332", "auth" : "yourusername", "pass" : "yoursecurepassword" } ], "logdir" : "/var/log/ckpool", "proxy" : false, "update_interval" : 30, "serverurl" : ["0.0.0.0:3333"], "name" : "SoloMinerBitcoin" }Save and exit. - Create a log directory:
sudo mkdir /var/log/ckpool sudo chown pi:pi /var/log/ckpool - Start CKPool:
ckpool -c ~/ckpool/ckpool.conf - Connect your mining hardware (e.g., NerdQAxe+ or Bitaxe Gamma) to the pool by configuring the miner’s software with:
- URL: `stratum+tcp://
:3333` - Username: Your Bitcoin address (e.g., a legacy address starting with `1`).
- Password: Any value (e.g., `x`).
` with your Pi’s IP address (find it with `hostname -I`). - URL: `stratum+tcp://
Your Raspberry Pi is now running a Bitcoin full node and a solo mining pool, allowing you to mine independently while supporting the network. Note that solo mining has very low odds of success due to the network’s high hash rate, but it maximizes your contribution to Bitcoin’s decentralization.
Optional: Enhance Privacy with Tor
To increase privacy, you can route your node’s traffic through Tor:
- Install Tor:
sudo apt install -y tor - Edit the Tor configuration:
sudo nano /etc/tor/torrcAdd:HiddenServiceDir /var/lib/tor/bitcoin-service/ HiddenServicePort 8333 127.0.0.1:8333Save and exit. - Restart Tor:
sudo systemctl restart tor - Get your Tor onion address:
sudo cat /var/lib/tor/bitcoin-service/hostnameYour node is now accessible via the Tor network, enhancing privacy. - Update `bitcoin.conf` to use Tor:
nano /mnt/bitcoin/.bitcoin/bitcoin.conf # Add: proxy=127.0.0.1:9050 listen=1 bind=127.0.0.1 onlynet=onionSave and restart Bitcoin Core:bitcoin-cli -conf=/mnt/bitcoin/.bitcoin/bitcoin.conf stop bitcoind -daemon -conf=/mnt/bitcoin/.bitcoin/bitcoin.conf
Solo Mining Calculator
Use our calculator to estimate your odds of mining a block, compare them to lotteries, and see the potential payout in Euros based on the live Bitcoin price.