OffshoreVps
Tutorials8 اکتبر 20267 min readBy the OffshoreVps team

How to Run a Bitcoin Node on a VPS

Run Bitcoin Core on a VPS: disk, RAM and bandwidth needs, verifying the download, a pruned or full config, a systemd service and firewall rules.

Running your own Bitcoin node means you verify the blockchain yourself instead of trusting someone else's server. A VPS is a good home for one because it is always online and has a fast connection. The main requirement is disk space.

Terminal window on a VPS showing the commands used for running a Bitcoin node, starting with “cd /tmp”
The kind of commands you will run on your server in this guide.

What you need

  • Disk. A full node stores the whole chain, which is well over 600 GB and still growing. Check the current size before choosing a plan. A pruned node keeps only recent blocks and can run on a much smaller disk.
  • RAM. 4 GB is enough for a node that only validates. 8 GB or more makes the first sync faster.
  • CPU. The first sync is CPU-heavy. Two or more cores help.
  • Bandwidth. A full node uploads and downloads hundreds of GB a month. Pick a plan with a generous allowance. Our larger VPS plans have unlimited transfer on a 1 or 2 Gbps port.

Step 1: prepare the server

Start from a fresh Ubuntu or Debian VPS and follow how to secure a new VPS. Create a regular user for Bitcoin and do not run the node as root.

Step 2: download Bitcoin Core

Download the official release from bitcoincore.org and always verify the signature and checksum before running it. The release page explains how to check them.

cd /tmp
wget https://bitcoincore.org/bin/bitcoin-core-VERSION/bitcoin-VERSION-x86_64-linux-gnu.tar.gz
tar xzf bitcoin-VERSION-x86_64-linux-gnu.tar.gz
sudo install -m 0755 bitcoin-VERSION/bin/* /usr/local/bin/

Replace VERSION with the release you verified.

The steps of this guide in order: 1. What you need; 2. prepare the server; 3. download Bitcoin Core; 4. configure; 5. run it as a service; 6. Firewall
The steps in this guide, in order.

Step 3: configure

Create ~/.bitcoin/bitcoin.conf:

server=1
daemon=1
txindex=0
# For a smaller disk, prune to about 20 GB (value in MB):
# prune=20000
dbcache=2048

Use prune only if you do not need the full history. A pruned node still fully validates new blocks.

Step 4: run it as a service

Create a systemd unit so the node starts at boot and restarts on failure, then run sudo systemctl enable --now bitcoind. Check progress with bitcoin-cli getblockchaininfo. The first sync takes from several hours to a few days, depending on your hardware.

Firewall

To help the network, allow inbound port 8333. If you only want a private node for your own wallet, you can leave it closed and only make outgoing connections. Never expose the RPC port (8332) to the internet.

Frequently asked questions

How much disk does a Bitcoin node need?

A full node needs roughly 700 GB or more and growing. A pruned node can run in around 20 to 50 GB but cannot serve old blocks to others.

Can I run a Bitcoin node on a VPS?

Yes, if the plan has enough disk, RAM and unmetered or high bandwidth. Initial sync can take hours to days.

Is a pruned node a real node?

Yes. It validates every block and transaction, then discards old block data to save disk.