A Bitcoin full node downloads 600+ GB during initial sync and uses 200+ GB/month ongoing. This guide covers exact bandwidth requirements by connection type, how to manage upload costs, and whether pruning helps.
A Bitcoin full node independently validates every transaction and block against the Bitcoin rules. You don't have to trust Coinbase or any other service about your balance — your node checks for itself.
Running a node on a cloud server is the simplest path: no dedicated hardware, accessible from anywhere, and no space requirement in your home.
Why Run a Node?
Verification: Your wallet queries your own node instead of third parties. You verify your balance directly, not through someone else's data.
Privacy: Blockchain queries reveal which addresses you care about. When you use someone else's node, they see your addresses. Your own node sees only your own traffic.
Network health: Every node strengthens the network. Nodes enforce the consensus rules — a higher node count makes it harder for any party to push through a protocol change without widespread adoption.
Lightning Network: If you run a Lightning node (LND, CLN), it needs a Bitcoin full node underneath it. Your own node means your Lightning node is fully independent.
Cloud Server Requirements (2026)
Bitcoin's blockchain is now over 600 GB and growing. Requirements:
| Component | Minimum | Recommended |
|---|---|---|
| RAM | 2 GB | 4 GB |
| CPU | 2 vCPUs | 4 vCPUs |
| Storage | 700 GB SSD | 1 TB SSD |
| Bandwidth | 500 GB/month | 1 TB/month |
| OS | Ubuntu 22.04 | Ubuntu 24.04 |
Storage is the main cost driver. SSDs are required — hard drives are too slow for the initial block download.
Recommended Cloud Providers
| Provider | 4 GB RAM / 2 vCPU / 800 GB SSD | Notes |
|---|---|---|
| Hetzner (Germany) | ~€15/month | Best price, fast SSDs, European servers |
| DigitalOcean | ~$48/month | Easy UI, good bandwidth |
| Vultr | ~$40/month | Worldwide locations |
| Linode (Akamai) | ~$48/month | Good reliability |
| AWS Lightsail | ~$40/month | Easy billing integration |
Hetzner is the price winner by a large margin. The main downside: European server location increases latency for US users slightly, which rarely matters for a node.
Note: Some cloud providers restrict high-bandwidth Bitcoin traffic on residential/shared plans. Check terms before committing. Hetzner and Vultr are known to be Bitcoin-friendly.
Step-by-Step Setup Guide
1. Create Your Server
Deploy Ubuntu 24.04 LTS on your chosen provider. Choose a 4 GB RAM instance with at least 800 GB SSD storage.
During setup:
- Add your SSH public key for authentication
- Disable password authentication
- Note your server's public IP address
2. Initial Server Configuration
# SSH into your new server
ssh root@YOUR_SERVER_IP
# Update system packages
apt update && apt upgrade -y
# Create non-root user
adduser bitcoin
usermod -aG sudo bitcoin
# Switch to bitcoin user for everything below
su - bitcoin
3. Install Bitcoin Core
# Download latest Bitcoin Core (check bitcoincore.org for current version)
wget https://bitcoincore.org/bin/bitcoin-core-27.1/bitcoin-27.1-x86_64-linux-gnu.tar.gz
# Download and verify signatures
wget https://bitcoincore.org/bin/bitcoin-core-27.1/SHA256SUMS
wget https://bitcoincore.org/bin/bitcoin-core-27.1/SHA256SUMS.asc
# Verify the checksum
sha256sum --check SHA256SUMS --ignore-missing
# Extract and install
tar -xzf bitcoin-27.1-x86_64-linux-gnu.tar.gz
sudo install -m 0755 -o root -g root -t /usr/local/bin bitcoin-27.1/bin/*
Always verify the download signatures. Never run binaries you haven't verified.
4. Configure Bitcoin
mkdir ~/.bitcoin
cat > ~/.bitcoin/bitcoin.conf << EOF
# Enable server mode (required for RPC)
server=1
daemon=1
# Reduce memory usage
dbcache=512
# Limit connections
maxconnections=40
# Enable RPC (for your wallet or Lightning node to connect)
rpcallowip=127.0.0.1
rpcbind=127.0.0.1
rpcuser=bitcoinrpc
rpcpassword=CHANGE_THIS_TO_STRONG_PASSWORD
# Transaction index (needed for Lightning and some wallets)
txindex=1
# Enable pruning (optional - see section below)
# prune=10000
EOF
5. Set Up systemd Service
sudo cat > /etc/systemd/system/bitcoind.service << EOF
[Unit]
Description=Bitcoin daemon
After=network.target
[Service]
User=bitcoin
Group=bitcoin
Type=forking
PIDFile=/home/bitcoin/.bitcoin/bitcoind.pid
ExecStart=/usr/local/bin/bitcoind -pid=/home/bitcoin/.bitcoin/bitcoind.pid
ExecStop=/usr/local/bin/bitcoin-cli stop
Restart=always
RestartSec=30
TimeoutStartSec=infinity
TimeoutStopSec=600
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl enable bitcoind
sudo systemctl start bitcoind
6. Monitor Initial Block Download
# Watch sync progress
watch bitcoin-cli getblockchaininfo
# Or just check progress
bitcoin-cli getblockchaininfo | grep -E "blocks|headers|verificationprogress"
Initial sync takes 1-3 days on a fast server. During this time, your node downloads and verifies every block since 2009.
Pruning: Cut Storage by 90%
If you don't need the full blockchain history, enable pruning to reduce storage from 600 GB to ~10 GB.
In bitcoin.conf:
prune=10000
This keeps only the last 10 GB of blockchain data (about 10,000 MB), discarding older block data after validation.
What you lose with pruning:
- Cannot scan historical transactions for old addresses
- Cannot serve historical blocks to other nodes (you become a non-archival node)
What you keep:
- Full verification of all new transactions
- Complete UTXO set (all unspent outputs)
- All Lightning Network functionality
For most users, pruning is acceptable. For serious infrastructure, run an unpruned node.
Securing Your Node
# Configure UFW firewall
sudo apt install ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
# Allow SSH
sudo ufw allow 22/tcp
# Allow Bitcoin P2P (required for node connectivity)
sudo ufw allow 8333/tcp
# Enable firewall
sudo ufw enable
# Do NOT open RPC port (8332) to the internet
# RPC should only be accessible locally or through SSH tunnel
Important: Never expose Bitcoin RPC to the internet. The RPC interface controls your node and any wallet associated with it.
Connecting Your Wallet
To connect your wallet to your node securely:
Electrum (using SSH tunnel):
# On your local machine, create SSH tunnel
ssh -L 50001:localhost:50001 bitcoin@YOUR_SERVER_IP
Then configure Electrum to use localhost:50001 as the server.
Bitcoin Core wallet: Already uses your node by default if running on the same machine.
BTCPay Server: Self-hosted payment processor that uses your full node — install on the same server.
Monthly Cost vs. Running at Home
| Approach | Setup Cost | Monthly Cost | Tradeoffs |
|---|---|---|---|
| Cloud VPS (Hetzner) | $0 | ~€15 | Always on, no hardware, less sovereign |
| Raspberry Pi 4 + SSD | ~$150 | ~$3 electricity | Fully sovereign, home bandwidth usage |
| Dedicated mini PC (NUC) | ~$300 | ~$10 electricity | Fastest, most capable |
| myNode / Umbrel box | $350-500 | ~$8 electricity | Easy UI, purpose-built |
Cloud is the cheapest to start and requires no hardware knowledge. Home hardware is more sovereign (your Bitcoin node, on your hardware, on your network) but requires the initial investment.
Frequently Asked Questions
Do I earn anything from running a Bitcoin node? No. Bitcoin full nodes do not earn block rewards or transaction fees. Only miners earn these. Running a node supports the network but provides no direct financial reward.
Can I run a Lightning node on the same server? Yes. LND or Core Lightning can run alongside Bitcoin Core on the same VPS. You need the full node, not pruned, for Lightning to work optimally.
Is my node IP address public?
Yes. When your node connects to peers, your IP address is visible on the network. Use Tor if you want to obscure it: add proxy=127.0.0.1:9050 and onlynet=onion to bitcoin.conf with Tor installed.
What happens if my server goes down? Bitcoin Core resumes from where it stopped on restart. No funds are at risk from downtime — only functionality is interrupted.
How much bandwidth does a Bitcoin node use? A typical node uses 200-500 GB per month. Most VPS plans include 1-5 TB per month, so bandwidth is rarely an issue.
Bottom Line
A cloud Bitcoin node costs €15-40/month, takes 2 hours to set up, and runs indefinitely without maintenance. You get full transaction verification, better wallet privacy, and independence from third-party services.
For anyone serious about Bitcoin self-sovereignty, running your own node is the logical next step after hardware wallet self-custody.
Set it up once. It runs forever.