Node Operator Guide
Run a Bitcoin-PoCX full node to support network decentralization, validate transactions, and relay blocks.
Prefer automated setup? Use the Quick Start installer.
Overview
| Purpose | Support network decentralization |
| Setup time | ~15-20 minutes |
| Sync time | Several hours |
| Disk space | 50GB+ (SSD recommended) |
| Wallet | Not required (disabled) |
Prerequisites
System Requirements
| Resource | Minimum | Recommended |
|---|---|---|
| OS | Linux (64-bit) | Ubuntu 22.04+, Debian 12+, Fedora 38+ |
| Disk | 50 GB | 100+ GB (SSD) |
| RAM | 2 GB | 4+ GB |
| Network | Broadband | Stable, low latency |
Network Ports
| Network | Port |
|---|---|
| Mainnet | 8333 |
| Testnet | 18333 |
Install Dependencies
# Debian/Ubuntu
sudo apt update && sudo apt install -y curl tar
# Fedora
sudo dnf install -y curl tar
# Arch
sudo pacman -S --noconfirm curl tar
Installation
Download Latest Release
Network Selection
Bitcoin-PoCX is currently in testnet phase. All examples default to testnet.
# Create directory
mkdir -p ~/bitcoin-pocx && cd ~/bitcoin-pocx
# Get latest release URL from GitHub API
LATEST=$(curl -s https://api.github.com/repos/PoC-Consortium/bitcoin/releases/latest \
| grep "browser_download_url.*x86_64-linux-gnu.tar.gz" \
| cut -d '"' -f 4)
# Download
curl -LO "$LATEST"
# Extract
tar -xzf *.tar.gz
# Find and add to PATH
BINDIR=$(find . -type d -name "bin" | head -1)
export PATH="$PWD/$BINDIR:$PATH"
echo "export PATH=\"$PWD/$BINDIR:\$PATH\"" >> ~/.bashrc
Verify Installation
# Note: -testnet required until mainnet launch
bitcoind -testnet -?
You should see version info: Bitcoin PoCX daemon version v30.x.x
Configuration
Create Data Directory
mkdir -p ~/.bitcoin-pocx-pocx
Create Configuration File
Create ~/.bitcoin-pocx-pocx/bitcoin.conf:
Testnet (Current)
# Network
testnet=1
# Disable wallet (node operator only)
disablewallet=1
# RPC Settings (cookie auth - no password needed)
server=1
# Node Settings
listen=1
maxconnections=40
dbcache=450
[test]
rpcport=18332
Mainnet (After Launch)
# Disable wallet (node operator only)
disablewallet=1
# RPC Settings (cookie auth - no password needed)
server=1
# Node Settings
listen=1
maxconnections=40
dbcache=450
rpcport=8332
Cookie Authentication: With
disablewallet=1, cookie auth is simpler and more secure. Bitcoin Core automatically creates a.cookiefile for local RPC access. No password configuration needed.
Running the Node
Start Manually
bitcoind -daemon
Check Status
# Wait ~30 seconds for initial startup, then check blockchain info
bitcoin-cli -testnet getblockchaininfo
Note: During the first few seconds after startup, you may see a JSON parsing error. This is normal - wait for the initial block download to begin.
Monitor Sync Progress
watch bitcoin-cli -testnet getblockchaininfo
When blocks equals headers and initialblockdownload is false, sync is complete.
Systemd Service (Recommended)
Create Service User
sudo useradd -r -m -d /var/lib/bitcoin-pocx -s /sbin/nologin bitcoin
sudo mkdir -p /var/lib/bitcoin-pocx/.bitcoin-pocx
sudo chown -R bitcoin:bitcoin /var/lib/bitcoin-pocx
Copy Configuration
sudo cp ~/.bitcoin-pocx/bitcoin.conf /var/lib/bitcoin-pocx/.bitcoin-pocx/
sudo chown bitcoin:bitcoin /var/lib/bitcoin-pocx/.bitcoin-pocx/bitcoin.conf
Install Binaries System-Wide
sudo install -m 0755 ~/bitcoin-pocx/*/bin/* /usr/local/bin/
Create Service File
Create /etc/systemd/system/bitcoind.service:
[Unit]
Description=Bitcoin PoCX Node
After=network-online.target
Wants=network-online.target
[Service]
Type=forking
User=bitcoin
Group=bitcoin
ExecStart=/usr/local/bin/bitcoind -daemon -datadir=/var/lib/bitcoin-pocx/.bitcoin-pocx
ExecStop=/usr/local/bin/bitcoin-cli -datadir=/var/lib/bitcoin-pocx/.bitcoin-pocx stop
Restart=on-failure
RestartSec=30
TimeoutStartSec=60
TimeoutStopSec=120
[Install]
WantedBy=multi-user.target
Note: With cookie auth, use
-datadir=to point to the data directory. The cookie file is read automatically.
Enable and Start
sudo systemctl daemon-reload
sudo systemctl enable bitcoind
sudo systemctl start bitcoind
Check Status
sudo systemctl status bitcoind
sudo journalctl -u bitcoind -f
Verification
Check Peer Connections
# Manual run (as your user)
bitcoin-cli -testnet getpeerinfo | grep -E '"addr"|"subver"'
# Systemd (as bitcoin user)
sudo -u bitcoin bitcoin-cli -datadir=/var/lib/bitcoin-pocx/.bitcoin-pocx getpeerinfo | grep -E '"addr"|"subver"'
Check Block Height
# Manual run
bitcoin-cli -testnet getblockcount
# Systemd
sudo -u bitcoin bitcoin-cli -datadir=/var/lib/bitcoin-pocx/.bitcoin-pocx getblockcount
View Logs
# Manual run
tail -f ~/.bitcoin-pocx/testnet/debug.log
# Systemd
sudo journalctl -u bitcoind -f
# or
sudo tail -f /var/lib/bitcoin-pocx/.bitcoin-pocx/testnet/debug.log
Useful Commands
For manual runs (as your user):
| Command | Description |
|---|---|
bitcoin-cli -testnet stop | Stop the node |
bitcoin-cli -testnet getblockcount | Current block height |
bitcoin-cli -testnet getconnectioncount | Number of peers |
bitcoin-cli -testnet getnetworkinfo | Network information |
bitcoin-cli -testnet getmempoolinfo | Mempool status |
For systemd service:
# Prefix with: sudo -u bitcoin bitcoin-cli -datadir=/var/lib/bitcoin-pocx/.bitcoin-pocx
# Example:
sudo -u bitcoin bitcoin-cli -datadir=/var/lib/bitcoin-pocx/.bitcoin-pocx getblockcount
You’re Done!
Your node is now supporting the Bitcoin-PoCX network by:
- Validating transactions and blocks
- Relaying data to other nodes
- Contributing to network decentralization
Next Steps
Want to start mining? See:
- Solo Miner Guide - Mine directly to your wallet
- Pool Miner Guide - Mine through a pool