Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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

PurposeSupport network decentralization
Setup time~15-20 minutes
Sync timeSeveral hours
Disk space50GB+ (SSD recommended)
WalletNot required (disabled)

Prerequisites

System Requirements

ResourceMinimumRecommended
OSLinux (64-bit)Ubuntu 22.04+, Debian 12+, Fedora 38+
Disk50 GB100+ GB (SSD)
RAM2 GB4+ GB
NetworkBroadbandStable, low latency

Network Ports

NetworkPort
Mainnet8333
Testnet18333

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 .cookie file 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.

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):

CommandDescription
bitcoin-cli -testnet stopStop the node
bitcoin-cli -testnet getblockcountCurrent block height
bitcoin-cli -testnet getconnectioncountNumber of peers
bitcoin-cli -testnet getnetworkinfoNetwork information
bitcoin-cli -testnet getmempoolinfoMempool 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: