Hardware FixRecommendedDevice not working? Your driver may be the problemCheck updates for common hardware issues.Fix DriversHalloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsSlow PC?RecommendedPC slow today? Run a repair scan before it gets worseResolve common Windows issues and optimize system performance.Scan Now×
FREEDOM251

Freedom251 › Blog › Bitcoin Core

How to Run a Bitcoin Core Node on a VPS: Storage, Bandwidth, Security, and Setup

By Freedom251 Team · · 11 min read

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Running Bitcoin Core on a VPS is practical if you size storage and bandwidth first, keep peer-to-peer traffic separate from private RPC, and operate the daemon as an unprivileged service. An unpruned node needs a plan with at least Bitcoin.org’s published 750 GB disk baseline plus growth and synchronization headroom; a pruned node can reduce the blockchain footprint to about 7 GB, but gives up historical data and several indexing and rescan features.

Decide what kind of node you need

A Bitcoin Core node independently downloads and validates the blockchain, maintains peer connections, and can provide local wallet or application access. On a VPS it normally runs headlessly as bitcoind, while bitcoin-cli sends administrative commands over the local RPC interface.

As an Amazon Associate I earn from qualifying purchases.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Choose storage mode before choosing a provider plan. Bitcoin.org’s current download guidance reports an initial synchronization of over 740 GB. Its requirements page recommends 750 GB of disk, 2 GB of RAM, about 500 MB per day of download traffic, and about 5 GB per day of upload traffic. Those figures change as the chain grows and are not a permanent capacity guarantee.

Mode Typical purpose Storage decision Important limitations
Unpruned Historical block queries, archival applications, transaction indexing, rescans, and serving old blocks Provision at least the published 750 GB baseline, with substantial headroom for database growth and synchronization working space Higher cost, longer initial validation, and greater disk and bandwidth exposure
Pruned Independent validation, current-chain access, wallet use, and ordinary peer service on a smaller VPS Bitcoin.org says pruning can reduce the steady-state blockchain footprint to about 7 GB; still reserve room for the operating system, logs, and growth Older raw blocks and undo data are discarded; incompatible with txindex, rescan, and importwallet

The reported 7 GB is a blockchain footprint, not a complete VPS size. A small root disk, full logs, swap pressure, or an unplanned reindex can still stop the service, so leave operational space and use a volume that can be expanded.

#1 Best Overall
CanaKit Raspberry Pi 5 Starter Kit PRO - Turbine Black (128GB Edition) (8GB RAM)
  • Includes Raspberry Pi 5 with 2.4Ghz 64-bit quad-core CPU (8GB RAM)
  • Includes 128GB Micro SD Card pre-loaded with 64-bit Raspberry Pi OS, USB MicroSD Card Reader
  • CanaKit Turbine Black Case for the Raspberry Pi 5
  • CanaKit Low Noise Bearing System Fan
  • Mega Heat Sink - Black Anodized

Budget bandwidth as carefully as disk

The one-time initial download is more than 740 GB. After synchronization, Bitcoin.org’s requirements page lists roughly 500 MB per day of download and 5 GB per day of upload as recommended planning figures. The full-node guide also warns that a high-speed node can upload 200 GB or more in a month. A provider that advertises a large disk but has a small monthly transfer allowance can therefore become expensive or be suspended.

  • Confirm whether the provider counts inbound, outbound, or both directions toward its quota.
  • Check the initial transfer allowance, recurring quota, overage price, and any automatic shutdown policy.
  • Ask whether inbound TCP 8333 is filtered and whether a public IPv4 address, IPv6 address, or documented exception is available.
  • Set alerts below the provider’s hard limit; do not wait for an overage email.

The full-node guide asks operators to keep a node available for at least six hours per day. Continuous uptime is better for peer usefulness and avoids repeated catch-up downloads.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Pick VPS specifications that match the workload

The published 2 GB RAM figure is a recommended minimum, not a performance target. More memory and CPU can shorten initial synchronization, but the cited Bitcoin.org pages do not specify a current VPS IOPS or CPU requirement. Favor predictable SSD or NVMe storage because validation repeatedly reads and writes database files.

VPS characteristic What to require Why it matters
Disk capacity Unpruned: at least 750 GB plus growth and working room. Pruned: a small expandable volume with several times the expected 7 GB chain footprint The chain grows, and synchronization needs temporary space beyond the current reported size
Disk performance SSD or NVMe-backed storage with documented expansion Initial validation is database-heavy; slow or burst-only disks can make the catch-up period much longer
Memory At least 2 GB RAM; add margin if the VPS also runs applications Prevents swapping during validation and leaves room for the OS and monitoring
Bandwidth Capacity for the one-time 740+ GB download and recurring upload, with clear overage terms Peer service can consume substantially more upload than download
Network reachability Public reachability or an explicit inbound-port exception for TCP 8333 Inbound peers improve the node’s usefulness to the network
Operations Snapshots, console recovery, volume expansion, monitoring, and a policy that permits Bitcoin nodes These features turn a failed disk, firewall mistake, or exhausted volume into a recoverable incident

Prepare the Linux VPS

Create a dedicated account and persistent data volume

  1. Deploy a current, supported Linux distribution and apply security updates before installing Bitcoin Core.
  2. Create a non-root service account, such as bitcoin, and administer the machine through a separate account with sudo. Use SSH keys; disable password authentication when you can do so without locking yourself out.
  3. Attach and mount the persistent data volume. Run df -h and verify the mount before downloading anything. Put the Bitcoin data directory on that volume, not on a small root partition.
  4. Record how to reach the provider’s emergency console. It is the recovery path if a firewall rule or full disk blocks SSH.

Set a baseline firewall policy

Allow only administration and the services you intentionally publish. The exact commands depend on your distribution and SSH port. With UFW, a typical starting point is:

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw allow 8333/tcp
sudo ufw enable

Apply the equivalent rule in the VPS provider’s security group or network firewall. A host rule alone does not open a provider-level block, and a provider rule alone does not protect the operating system. Check IPv4 and IPv6 separately.

Install Bitcoin Core without a desktop

Obtain and verify the release

Download the Linux release from Bitcoin.org’s official download page and select the architecture used by the VPS. When practical, verify the release signature and checksum before extraction; Bitcoin.org describes signature verification as an optional security step that protects against a tampered download. Avoid running an installer as root just to make the files available.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #2
CanaKit Raspberry Pi 5 Starter Kit PRO - Turbine Black (128GB Edition) (4GB RAM)
  • Includes Raspberry Pi 5 with 2.4Ghz 64-bit quad-core CPU (4GB RAM)
  • Includes 128GB Micro SD Card pre-loaded with 64-bit Raspberry Pi OS, USB MicroSD Card Reader
  • CanaKit Turbine Black Case for the Raspberry Pi 5
  • CanaKit Low Noise Bearing System Fan
  • CanaKit Mega Heat Sink - Black Anodized

The Bitcoin Core repository documents the Unix binaries bin/bitcoin-qt, bin/bitcoind, and bin/bitcoin. A headless VPS needs bitcoind and bitcoin-cli. Install them in a system path such as /usr/local/bin, or keep them in a directory readable and executable by the bitcoin account.

Create the configuration

For a pruned node, create /home/bitcoin/.bitcoin/bitcoin.conf (or the service account’s equivalent home directory) with:

server=1
daemon=1
prune=10000

prune=10000 requests a 10,000 MiB pruning target; the actual disk use is not exactly that number because indexes, metadata, and filesystem overhead remain. Omit the prune line for an unpruned node. Do not add txindex=1 to a pruned configuration: the official full-node guide says pruning is incompatible with txindex. Pruning also prevents the operations that require discarded history, including rescan and importwallet.

Set ownership and permissions so only the service account can read the directory and wallet files. Keep RPC credentials out of shell history and public repositories. Bitcoin Core’s local cookie authentication is preferable to exposing a static credential over the internet.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Start and stop the daemon

For a manual headless start, run:

bitcoind -daemon

Stop cleanly with:

bitcoin-cli stop

Do not rely on an interactive SSH session for production operation. A systemd unit can start the process after networking is ready and restart it after a crash. When systemd manages the foreground process, remove daemon=1 from the configuration or override it with -daemon=0. Adapt the paths if you installed elsewhere:

[Unit]
Description=Bitcoin Core node
After=network-online.target
Wants=network-online.target

[Service]
User=bitcoin
Group=bitcoin
Type=simple
ExecStart=/usr/local/bin/bitcoind -conf=/home/bitcoin/.bitcoin/bitcoin.conf -datadir=/home/bitcoin/.bitcoin -daemon=0
ExecStop=/usr/local/bin/bitcoin-cli -conf=/home/bitcoin/.bitcoin/bitcoin.conf -datadir=/home/bitcoin/.bitcoin stop
Restart=on-failure
RestartSec=10
TimeoutStopSec=300

[Install]
WantedBy=multi-user.target

Save it as a root-owned unit, then enable and start it:

Rank #3
CanaKit Raspberry Pi 5 Essentials Starter Kit (4GB RAM)
  • CanaKit Raspberry Pi 5 Essentials Starter Kit
sudo systemctl daemon-reload
sudo systemctl enable --now bitcoind
sudo systemctl status bitcoind

Keep the service account’s home and data directory writable by that account. A clean stop before a volume migration, snapshot, or shutdown reduces the chance of an interrupted database operation.

Open the peer-to-peer port correctly

Bitcoin.org states that inbound connections are needed to support the network and identifies TCP 8333 as Bitcoin’s port. On a VPS there is usually no home-router forwarding layer, but two firewalls still commonly exist: the provider security group and the Linux host firewall.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  1. Add an inbound TCP 8333 rule to the provider security group, restricted to the required address families and without opening unrelated ports.
  2. Add the matching host-firewall rule, as shown in the UFW example.
  3. Leave outbound peer traffic permitted; restrictive egress policies must allow Bitcoin Core’s peer connections and DNS or time services as required by your operating system.
  4. Do not expose RPC merely because P2P is public. Keep RPC on localhost or a private management network and allow only known management addresses if remote administration is essential.

After the process has started, inspect bitcoin-cli getnetworkinfo and the provider’s flow logs rather than assuming that an open rule produced inbound peers. A node can synchronize outbound-only, but accepting inbound peers makes it more useful to the network.

Monitor synchronization instead of trusting the process status

A running process is not proof that the node is current. Query the chain state:

bitcoin-cli getblockchaininfo

Pay attention to initialblockdownload, the current block height, verification progress, chain name, and whether pruning is reported. During initial synchronization, disk utilization, CPU, and network traffic can remain high for an extended period.

Compare the reported height with a trusted independent block-height source. The comparison is a sanity check, not a replacement for Bitcoin Core’s validation. Read the data-directory log when diagnosing stalls; for the default Linux location this is commonly ~/.bitcoin/debug.log. Under systemd, also use journalctl -u bitcoind.

Rank #4
CanaKit Raspberry Pi 5 16GB Starter Kit PRO - Turbine Black (128GB Edition) (16GB RAM)
  • Includes Raspberry Pi 5 16GB with 2.4Ghz 64-bit quad-core CPU (16GB RAM)
  • Includes 128GB Micro SD Card pre-loaded with 64-bit Raspberry Pi OS, USB MicroSD Card Reader
  • CanaKit Turbine Black Case for the Raspberry Pi 5
  • CanaKit Low Noise Bearing System Fan
  • Mega Heat Sink - Black Anodized

Set alerts for:

  • Free disk space and inode consumption, including the volume that holds the data directory
  • Memory pressure, swap activity, and sustained load
  • Daily and monthly ingress and egress against the provider quota
  • Service exits, repeated restarts, and failure to respond to local RPC
  • A synchronization height or verification progress that stops advancing

Pruning: what you keep and what you give up

Pruning validates the full chain while deleting older raw block and undo data after it is no longer needed for validation. It is therefore suitable when the goal is independent verification, current wallet operation, or serving recent chain data from a constrained VPS.

Use an unpruned node when an application needs historical raw blocks, a transaction index, rescans, wallet import operations, archival queries, or the ability to serve old blocks to peers. Do not buy a volume that exactly matches today’s reported chain size: synchronization and database growth require working room, and a future reindex can need additional temporary space.

Changing from pruned to unpruned is not a trivial toggle on a nearly full disk. Plan the larger volume first, stop cleanly, change the configuration, and allow Bitcoin Core to build the additional history. Conversely, enabling pruning removes data that later historical queries may require, so decide based on the application’s long-term needs.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Secure an internet-facing node

Separate privileges

Run bitcoind as the dedicated unprivileged bitcoin user. Keep SSH administration separate, limit sudo access, and ensure the service account cannot modify system binaries or firewall policy.

Protect administration and RPC

  • Use SSH keys and restrict SSH source addresses where practical.
  • Keep RPC bound to localhost or a private management network. Never publish unauthenticated RPC to the internet.
  • Allow only the P2P port and the administration path you actually use.
  • Patch the operating system and Bitcoin Core release on a planned schedule, with a rollback or console-recovery plan.

Protect wallet data

If the built-in wallet is enabled, encrypt it and make protected backups after wallet creation or passphrase changes. Anyone who obtains the wallet or an unprotected backup can steal its funds. Store backups separately from the VPS, restrict their permissions, and test restoration on a different system before relying on them.

Control failure and recovery risk

Bitcoin.org warns that bandwidth overages and attacks can affect node users. Use provider alerts, rate and quota monitoring, and a documented shutdown procedure. Stop Bitcoin Core before taking a filesystem snapshot or migrating the volume. A snapshot is not a substitute for a tested wallet backup or a copy of the configuration.

Best Value
CanaKit Raspberry Pi 5 Essentials Starter Kit (8GB RAM)
  • Includes Raspberry Pi 5 with 2.4Ghz 64-bit quad-core CPU (8GB RAM)
  • Includes 32GB EVO+ Micro SD Card pre-loaded with 64-bit Pi OS, USB MicroSD Card Reader
  • CanaKit Turbine Black Case for the Raspberry Pi 5
  • CanaKit 45W PD Power Supply for the Raspberry Pi 5
  • Display Cable - 6 foot (Supports up to 4K 60p)

Troubleshoot the problems that matter most

The disk fills during initial synchronization

Stop adding unrelated services, check df -h, and confirm the data directory is on the intended volume. If the node is meant to be unpruned, expand the volume before it reaches 100 percent. If historical data is not required, rebuild or reconfigure as a pruned node rather than deleting files manually; removing database files by hand can corrupt the chain state.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Synchronization is extremely slow

Check whether the VPS is swapping, whether storage latency is high, and whether the provider is throttling disk or network traffic. Keep the process running continuously rather than repeatedly stopping it. More CPU and RAM can shorten initial synchronization, but Bitcoin.org’s cited requirements do not provide a universal VPS performance target.

No inbound peers appear

Verify the provider security-group rule, the Linux firewall, the public address family, and the service’s listening state. Confirm that TCP 8333 is allowed on both IPv4 and IPv6 if you advertise both. Outbound synchronization can still work when inbound traffic is blocked, so use the network information and provider logs to distinguish a firewall problem from normal peer churn.

RPC commands fail

Run bitcoin-cli as the service account or point it at the correct data directory so it can read the authentication cookie. Check that the daemon is fully started and that local permissions allow access. If remote RPC is necessary, use a private network and explicit allow rules; do not solve a connectivity problem by binding RPC to every public interface.

Pruning blocks an application feature

Check whether the application needs txindex, historical raw blocks, rescan, or importwallet. Those needs require an unpruned design. Move to a larger expandable volume and rebuild with pruning disabled instead of trying to recover discarded history from the pruned node.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

A practical launch checklist

  • Choose pruned or unpruned operation from the application’s data requirements.
  • Provision SSD or NVMe storage, at least 2 GB RAM, and expansion headroom.
  • Budget the 740+ GB initial download and recurring upload, including the possibility of 200 GB or more per month on a high-speed connection.
  • Create a dedicated service account and mount the persistent volume before installation.
  • Download Bitcoin Core from the official source and verify its signature when feasible.
  • Configure server=1; use prune=10000 only when historical features are unnecessary.
  • Run the daemon under systemd, with clean start and stop behavior.
  • Open TCP 8333 in both the provider firewall and the host firewall if you want inbound peers.
  • Keep RPC private, patch the OS and Bitcoin Core, encrypt wallet data, and test backups.
  • Monitor synchronization, disk, memory, bandwidth, logs, and service health continuously.

The reliable VPS design is the one that leaves room for growth and failure: an expandable volume rather than a barely sufficient disk, a bandwidth plan that accounts for upload, a private RPC surface, and a service account that cannot administer the host. Pruning is an effective way to run a validation node on modest hardware, but it is a data-retention decision, not merely a storage setting.

Quick Recap

Bestseller No. 1
CanaKit Raspberry Pi 5 Starter Kit PRO - Turbine Black (128GB Edition) (8GB RAM)
CanaKit Raspberry Pi 5 Starter Kit PRO - Turbine Black (128GB Edition) (8GB RAM)
Includes Raspberry Pi 5 with 2.4Ghz 64-bit quad-core CPU (8GB RAM); CanaKit Turbine Black Case for the Raspberry Pi 5
$259.95
Bestseller No. 2
CanaKit Raspberry Pi 5 Starter Kit PRO - Turbine Black (128GB Edition) (4GB RAM)
CanaKit Raspberry Pi 5 Starter Kit PRO - Turbine Black (128GB Edition) (4GB RAM)
Includes Raspberry Pi 5 with 2.4Ghz 64-bit quad-core CPU (4GB RAM); CanaKit Turbine Black Case for the Raspberry Pi 5
$209.99
Bestseller No. 3
CanaKit Raspberry Pi 5 Essentials Starter Kit (4GB RAM)
CanaKit Raspberry Pi 5 Essentials Starter Kit (4GB RAM)
CanaKit Raspberry Pi 5 Essentials Starter Kit
$189.99
Bestseller No. 4
CanaKit Raspberry Pi 5 16GB Starter Kit PRO - Turbine Black (128GB Edition) (16GB RAM)
CanaKit Raspberry Pi 5 16GB Starter Kit PRO - Turbine Black (128GB Edition) (16GB RAM)
Includes Raspberry Pi 5 16GB with 2.4Ghz 64-bit quad-core CPU (16GB RAM); CanaKit Turbine Black Case for the Raspberry Pi 5
Bestseller No. 5
CanaKit Raspberry Pi 5 Essentials Starter Kit (8GB RAM)
CanaKit Raspberry Pi 5 Essentials Starter Kit (8GB RAM)
Includes Raspberry Pi 5 with 2.4Ghz 64-bit quad-core CPU (8GB RAM); Includes 32GB EVO+ Micro SD Card pre-loaded with 64-bit Pi OS, USB MicroSD Card Reader
$229.99

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Bitcoin CoreBitcoin nodeblockchainLinuxself-hostingUbuntuVPS

Leave a Reply

Your email address will not be published. Required fields are marked *

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Recommended PC Tool
Recommended PC Tool
Crashes, No Sound, or Screen Glitches?Free driver scan
Windows Errors? Fix Them Before They SpreadFree repair scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.