bolt Valebyte VPS from $4/mo — NVMe, 60s deploy.

Get a VPS arrow_forward

Your own full Bitcoin node on a VPS: installing bitcoind

calendar_month June 28, 2026 schedule 18 min read visibility 33 views
person
Valebyte Team
Your own full Bitcoin node on a VPS: installing bitcoind
Setting up your own Bitcoin full node (`bitcoind`) on a VPS provides maximum security, privacy, and complete independence from third-party services, while requiring a VPS with sufficient NVMe disk space (from 600 GB for a full node, or 10-20 GB for a pruned node) and a stable internet connection. Running your own Bitcoin node is not just a technical task; it's a contribution to network decentralization and a guarantee that you will always verify transactions according to your own rules, without intermediaries. In this article, we will detail how to configure a `bitcoin node vps`, what resources will be needed, and how to ensure its stable operation.

Why Do You Need Your Own Bitcoin Full Node?

Running your own Bitcoin Full Node is a fundamental step for any serious participant in the Bitcoin ecosystem. Many users rely on third-party services, such as online wallets or light clients, which use other people's nodes to verify transactions and the blockchain state. However, this comes with certain risks and compromises.

Security and Privacy: Your Bitcoin Node as a Guarantor

When you use a light client or a third-party wallet, you are essentially trusting them to verify Bitcoin's rules. You cannot be 100% sure that they are not trying to deceive you, for example, by showing a fake balance or confirming an invalid transaction. Your own `bitcoin full node` downloads the entire Bitcoin blockchain (from the first block to the last), independently verifies every transaction and every block for compliance with all protocol rules. This means that you:
  • Verify everything yourself: You become an independent arbiter who checks all network rules yourself. No one can deceive you by showing invalid data.
  • Enhance privacy: Your balance and transaction requests are not sent to third parties. You connect directly to the Bitcoin network, and only your node knows which addresses and transactions you are interested in. This significantly reduces the risk of your activity being tracked.
  • Protect against censorship: If light client providers start censoring transactions or blocking access to the network, your full node will remain fully functional as it interacts directly with the decentralized network.

Network Support and Decentralization

Every `bitcoin node on vps` running contributes to the stability and decentralization of the Bitcoin network. The more independent full nodes operating worldwide, the harder it is for malicious actors or governments to attack or control the network. Your node:
  • Verifies and propagates transactions: It receives new transactions, checks their validity, and relays them to other nodes and miners.
  • Verifies and propagates blocks: Similarly, it receives new blocks, checks them for compliance with consensus rules, and relays them further.
  • Strengthens consensus: Your node votes for protocol rules by refusing to accept blocks or transactions that violate these rules. This is critically important for maintaining Bitcoin's integrity.
  • Ensures availability: Each full node acts as an access point to the blockchain for other nodes and light clients, increasing the network's overall resilience to failures.
Essentially, running your own Bitcoin node on a VPS is an act of sovereignty and responsibility that strengthens the entire network.

What are the Requirements for a Bitcoin Full Node on a VPS?

Running a `bitcoin node vps` requires certain resources, primarily a significant amount of disk space. However, modern versions of `bitcoind` offer flexible options to optimize resource consumption.

Disk Space: From 600 GB to Terabytes

The most critical requirement for a `bitcoin full node` is disk space. The full size of the Bitcoin blockchain (excluding transaction indexing) as of mid-2024 is approximately 600 GB and continues to grow by about 50-100 GB per year.
  • Full Node Mode: To store the entire blockchain history, you will need a minimum of 600-700 GB. It is recommended to have some buffer, so a VPS with an 800 GB to 1 TB disk will be an optimal choice. It is highly desirable to use NVMe disks, as they provide high read/write speeds, which is critical for fast initial synchronization and request processing. HDDs or slow SSDs will significantly slow down the process.
  • Pruned Node Mode: If you cannot allocate such a large amount of disk space, `bitcoind` offers a "pruning" mode. In this mode, the node stores only the last N gigabytes of the blockchain (e.g., 10-20 GB), and deletes older blocks, while still retaining all block headers and the ability for full verification. For a pruned node, just 10-20 GB of disk space is sufficient, but it still needs to download and verify the entire blockchain at least once. This is an ideal option for those who want to maintain `their own Bitcoin node` with minimal storage costs, while still retaining full verification.
It is important to remember that even for a pruned node, initial synchronization will require temporary storage of the entire blockchain, so disk speed still plays a role.

CPU, RAM, and Bandwidth

In addition to disk space, other VPS resources are also important for the stable operation of a `bitcoin node on vps`.
  • Processor (CPU): `bitcoind` is not overly demanding on the CPU during normal operation. However, during initial synchronization, when the node verifies millions of transactions and blocks, the CPU can be loaded to 100%. A minimum of 2 cores (vCPU) with a frequency of 2.0 GHz or higher is recommended. For faster synchronization or if you plan to actively use the RPC interface, 4 vCPUs would be preferable.
  • Random Access Memory (RAM): For stable operation of `bitcoind` in full node mode, a minimum of 4 GB RAM is recommended. In pruned node mode, 2 GB RAM is sufficient, but 4 GB will provide more comfort. Most of the RAM is used for caching blockchain data, which speeds up access and reduces disk load.
  • Network Bandwidth: A Bitcoin Full Node actively exchanges data with other nodes. During initial synchronization, up to 600-700 GB of data may be downloaded. After synchronization, daily traffic ranges from 200 MB to 1 GB (depending on network activity). Therefore, a VPS with unlimited traffic or a very large monthly limit (from 1 TB/month) and a stable connection of at least 100 Mbps is required. Port 8333 must be open for incoming and outgoing connections.
When choosing a VPS, always opt for a reliable provider offering a stable connection and quality hardware, such as Valebyte.com.

Looking for a reliable server for your projects?

VPS from $10/month and dedicated servers from $9/month with NVMe, DDoS protection, and 24/7 support.

View offers →

Choosing the Optimal VPS for a Bitcoin Node: Specifications and Prices

Choosing the right VPS for a `bitcoin node vps` depends on your goals and budget. Below is a table with recommended configurations and approximate prices. Note that prices may vary depending on the provider, data center location, and current promotions. Valebyte.com offers competitive rates with NVMe disks and stable connections.
Node Type CPU (vCPU) RAM (GB) Disk (NVMe) Traffic Bandwidth Approx. Price/Month
Pruned Node (basic) 2 2 20-50 GB 1-2 TB 100 Mbps $5 - $10
Pruned Node (optimal) 2-4 4 50-100 GB 2-4 TB 200 Mbps $10 - $20
Full Node (basic) 2-4 4 800 GB Unlimited 200 Mbps $30 - $50
Full Node (optimal) 4-6 8 1-2 TB Unlimited 500 Mbps - 1 Gbps $50 - $100+
For most users who want to run `their own Bitcoin node` and support the network, an optimal solution would be a VPS with 4 vCPUs, 4-8 GB RAM, and an 800 GB - 1 TB NVMe disk, or a more budget-friendly pruned node option with 2-4 vCPUs, 4 GB RAM, and a 50 GB NVMe disk. The choice of an NVMe disk is critically important for performance, especially during initial synchronization. It is also worth noting the option to pay for a VPS with Bitcoin or other cryptocurrency, which provides additional anonymity and convenience. You can learn more about how to buy a VPS with cryptocurrency in our blog.
rocket_launch Quick pick

Need a dedicated server?

Compare prices from top providers. Configure and order in minutes.

Browse dedicated servers arrow_forward

Step-by-Step Installation of bitcoind on a VPS: Preparation and Compilation

Installing `bitcoind` on a VPS typically involves several stages: preparing the operating system, downloading the source code, and compiling it. We will use Ubuntu Server 22.04 LTS as an example, but the steps will be similar for other Debian-like systems.

Operating System Preparation

Before you begin, make sure your VPS is updated and the necessary dependencies are installed.

sudo apt update
sudo apt upgrade -y
sudo apt install -y build-essential libtool autotools-dev automake pkg-config libssl-dev libevent-dev libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev libminiupnpc-dev libzmq3-dev libsqlite3-dev
sudo apt install -y libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qt5-default libprotobuf-dev protobuf-compiler libqrencode-dev
To ensure maximum security and stability, it is recommended to create a separate user for running `bitcoind` instead of using `root`.

sudo adduser bitcoin
sudo usermod -aG sudo bitcoin
su - bitcoin
Subsequent commands will be executed as the `bitcoin` user.

Downloading and Compiling bitcoind

Now we will download the Bitcoin Core source code from the official GitHub repository, compile it, and install it. It is recommended to download the latest stable version.

# Navigate to the bitcoin user's home directory
cd ~

# Download the source code (replace with the actual version)
wget https://bitcoincore.org/bin/bitcoin-core-26.0/bitcoin-26.0.tar.gz

# Verify the signature (optional, but recommended for security)
# You will need GPG and the public keys of Bitcoin Core developers.
# wget https://bitcoincore.org/bin/bitcoin-core-26.0/SHA256SUMS
# wget https://bitcoincore.org/bin/bitcoin-core-26.0/SHA256SUMS.asc
# gpg --keyserver hkps://keys.openpgp.org --recv-keys 01EA5486DE18A882D4C2684590C8019E36C2E964
# gpg --verify SHA256SUMS.asc SHA256SUMS
# sha256sum --ignore-missing --check SHA256SUMS

# Extract the archive
tar -xvf bitcoin-26.0.tar.gz
cd bitcoin-26.0/

# Configure the build. --disable-wallet if you don't plan to use the built-in wallet, to save resources.
# --disable-gui disables the compilation of the graphical interface, which is not needed on a VPS.
./autogen.sh
./configure --disable-wallet --disable-gui

# Compile. This can take a significant amount of time (from 30 minutes to several hours) depending on your VPS's CPU power.
make -j$(nproc)

# Install the compiled files
sudo make install
After successful installation, the `bitcoind` and `bitcoin-cli` executables will be available on your system.

Configuring bitcoind: Configuration File and Operating Modes

After installing `bitcoind`, you need to create and configure the `bitcoin.conf` file, which controls the behavior of your `bitcoin node on vps`.

bitcoind.conf Basics

The `bitcoin.conf` configuration file does not exist by default. It needs to be created in the Bitcoin data directory. For the `bitcoin` user, this will be `~/.bitcoin/bitcoin.conf`.

mkdir -p ~/.bitcoin
nano ~/.bitcoin/bitcoin.conf
Example of a basic `bitcoin.conf`:

# Core settings
server=1
daemon=1
rpcuser=your_rpc_username
rpcpassword=your_strong_rpc_password

# Network settings
# Opens port 8333 for incoming connections, which is important for network support.
# If you have an external firewall, make sure port 8333 is open.
listen=1
# bind=0.0.0.0 # If you have multiple IP addresses and want to bind to a specific one
# maxconnections=8 # Maximum number of incoming/outgoing connections (default 125)

# Performance and logging
dbcache=1024 # Database cache size in MB. Recommended 1/4 - 1/2 of RAM.
# debuglogfile=debug.log # Path to the log file
# logtimestamps=1 # Add timestamps to logs
# printtoconsole=0 # Output logs to console (0=off, 1=on)

# RPC settings (remote control)
rpcallowip=127.0.0.1 # Allow RPC connections only from localhost.
# If you plan to use RPC from another IP address, add it: rpcallowip=192.168.1.0/24 or rpcallowip=your_rpc_ip
rpcbind=127.0.0.1 # Bind the RPC server to this IP address.

# For test networks (if not mainnet)
# testnet=1
# regtest=1
Be sure to replace `your_rpc_username` and `your_strong_rpc_password` with unique, strong values. These credentials will be used to interact with your node via `bitcoin-cli`.

Pruned Node Mode: Saving Space

If disk space is limited, you can configure your `bitcoin full node` in pruned mode. This will allow your node to verify the entire blockchain but store only a portion of it. To activate pruned mode, add the following line to `bitcoin.conf`:

prune=550 # Store the last 550 MB of the blockchain. Minimum value is 550.
You can increase this value, for example, to `prune=20000` (20 GB), if you want to store more history. Remember that the node will still download and verify the entire blockchain before it starts deleting old blocks. This process can take several days or even weeks depending on your VPS's speed, but once completed, your `bitcoin node on vps` will only occupy the specified disk space.

Starting and Synchronizing Your Bitcoin Node

After configuring the configuration file, you are ready to start `bitcoind` and begin blockchain synchronization.

First Launch and Monitoring

Start `bitcoind` in the background:

bitcoind -daemon
If you did not use the `-daemon` flag, `bitcoind` will start in the current console. To exit the console without stopping the process, you can use `screen` or `tmux`. To check the status of your `bitcoin node vps`, use `bitcoin-cli`:

bitcoin-cli getblockchaininfo
This command will show the current synchronization status, including `blocks` (how many blocks have been downloaded) and `headers` (how many block headers are known). Until `blocks` reaches `headers` and `initialblockdownload` becomes `false`, your node is in the process of synchronizing. Example of output (partial):

{
  "chain": "main",
  "blocks": 847000,
  "headers": 847000,
  "bestblockhash": "0000000000000000000...",
  "difficulty": 83132711718919.26,
  "time": 1718000000,
  "mediantime": 1717999999,
  "verificationprogress": 0.9999999999999999,
  "initialblockdownload": false,
  "chainwork": "0000000000000000000000000000000000000000000000000000000000000000",
  "size_on_disk": 600000000000,
  "pruned": false,
  "softforks": { ... },
  "warnings": ""
}
When `initialblockdownload` becomes `false` and `blocks` equals `headers`, your `bitcoin full node` is fully synchronized and ready for operation. To stop `bitcoind`:

bitcoin-cli stop

Accelerating Blockchain Indexing

Initial blockchain synchronization is the most resource-intensive stage. It can take anywhere from a few hours to several days, depending on your internet speed, CPU, and most importantly, the speed of your NVMe disk. Here are some tips for acceleration:
  • High-performance NVMe disk: As mentioned, this is critically important. The faster the disk, the faster `bitcoind` can read and write blockchain data.
  • Increase dbcache: In `bitcoin.conf`, increase the `dbcache` value. For example, `dbcache=4096` (4 GB) or `dbcache=8192` (8 GB), if your VPS has enough RAM. This will allow `bitcoind` to keep more data in RAM, reducing disk access.
  • Stable internet connection: High bandwidth and low latency will help download initial blocks faster.
  • Using `assumevalid`: For very fast synchronizations, you can use the `assumevalid` parameter in `bitcoin.conf`. It allows `bitcoind` to skip full signature and script verification for blocks up to a certain hash, assuming they have already been verified by the majority of the network. However, this reduces your level of independent verification and is not recommended for those who want maximum security. For most users, it is better to wait for full verification.
Remember that patience is a key factor when first launching a `bitcoin full node`.
rocket_launch Quick pick

Need a dedicated server?

Compare prices from top providers. Configure and order in minutes.

Browse dedicated servers arrow_forward

RPC Interface and Bitcoin Node Security

The RPC (Remote Procedure Call) interface allows you to interact with `bitcoind` programmatically, sending commands and receiving data. This is a powerful tool, but its use requires special attention to security.

RPC Access and Protection

By default, `bitcoind` is configured so that the RPC interface is only accessible from `localhost` (127.0.0.1). This ensures maximum security, as only processes running on the same VPS can connect to it. In `bitcoin.conf`, you set `rpcuser` and `rpcpassword`. These credentials are required for authentication when using `bitcoin-cli` or when connecting from other applications. Example of using `bitcoin-cli` with explicit credentials (if they are not in `bitcoin.conf` or you want to override them):

bitcoin-cli -rpcuser=your_rpc_username -rpcpassword=your_strong_rpc_password getinfo
If you need to access RPC from outside the VPS (e.g., from your home computer to manage the node), this requires additional steps and comes with increased risks. It is highly NOT recommended to open the RPC port (default 8332) for public access! If you still decide to do so, use the following security measures:
  • Restrict `rpcallowip`: In `bitcoin.conf`, specify a specific IP address or range of IP addresses from which connections are allowed.
    
    rpcallowip=your_home_ip_address
    # or for a local network
    # rpcallowip=192.168.1.0/24
            
  • Use SSH tunneling: This is the most secure way to remotely access RPC. You create an encrypted tunnel between your local computer and the VPS, and all RPC requests pass through this tunnel.
    
    ssh -L 8332:127.0.0.1:8332 bitcoin@your_vps_ip
            
    After this, you will be able to access `bitcoind` on the VPS via `localhost:8332` on your local computer.
  • Use a firewall: Configure the VPS firewall (e.g., UFW) to restrict access to the RPC port.

VPS Protection and Firewall

In addition to RPC protection, you need to ensure the overall security of your VPS.
  • Firewall (UFW): Install and configure a firewall to allow only necessary ports.
    
    sudo apt install ufw -y
    sudo ufw default deny incoming
    sudo ufw default allow outgoing
    sudo ufw allow ssh # Allow SSH (port 22 by default)
    sudo ufw allow 8333/tcp # Allow incoming connections for Bitcoin P2P
    # If you are using RPC remotely (highly not recommended without an SSH tunnel):
    # sudo ufw allow from your_rpc_ip to any port 8332
    sudo ufw enable
    sudo ufw status
            
    Make sure you allow the SSH port before enabling UFW, otherwise you might lose access to your VPS.
  • System Updates: Regularly update the operating system and all installed packages.
    
    sudo apt update && sudo apt upgrade -y
            
  • Strong Passwords and SSH Keys: Use strong, unique passwords for all users and, if possible, configure SSH key authentication, disabling password login.
  • Regular Backups: Although blockchain data can be recovered, if you use the built-in wallet or store other important data on the VPS, make regular backups.
Remember that your `bitcoin node vps` is not only your tool but also part of the critical infrastructure of the Bitcoin network.

Maintaining and Updating Your Node: Recommendations for Your Bitcoin Node

After successful installation and synchronization, `your Bitcoin node` requires periodic maintenance. This ensures its stable operation, security, and relevance in the network.
  1. Regular Bitcoin Core Updates: Bitcoin Core developers constantly release new versions that include performance improvements, bug fixes, new functions, and, most importantly, security updates. It is recommended to update your node to the latest stable version as soon as it is released. The update process usually includes:
    • Stopping the current `bitcoind`:
      bitcoin-cli stop
    • Downloading the new version of the source code or binary files.
    • Compiling and installing the new version (if you compiled from source).
    • Starting the new `bitcoind`.
    • Checking the synchronization status.
    This will help your `bitcoin full node` stay up-to-date and maintain best security practices.
  2. VPS Resource Monitoring: Keep an eye on CPU, RAM, disk space, and network traffic usage on your VPS. Tools like `htop`, `df -h`, `iotop`, `vnstat` will help you with this.
    • If the disk starts to fill up (especially if you are not using pruned mode), you may need to increase its size or switch to pruned mode.
    • High CPU or RAM usage may indicate problems or that your VPS is not powerful enough for the current load.
    Many VPS providers, including Valebyte.com, offer monitoring panels that simplify this process.
  3. Log Management: `bitcoind` generates logs that can be useful for debugging. These logs can take up space. Use `logrotate` to automatically rotate and compress logs so they don't consume too much disk space.
    
    sudo nano /etc/logrotate.d/bitcoin
            
    Add the following content:
    
    /home/bitcoin/.bitcoin/debug.log {
        weekly
        rotate 4
        compress
        delaycompress
        missingok
        notifempty
        create 0640 bitcoin bitcoin
    }
            
    This will rotate logs weekly, keep the last 4 archives, and compress them.
  4. Backup (if using a wallet): If you are using the built-in `bitcoind` wallet (which is not recommended for storing large amounts), regularly back up the `wallet.dat` file. If you are using the node only for verification and RPC, blockchain backup is not required, as it can always be downloaded again.
  5. Connecting to Other Nodes: Your `bitcoin node on vps` should have enough connections to other nodes for efficient operation. You can check the number of connections with the `bitcoin-cli getconnectioncount` command. If the number of connections is low (less than 8-10), check your firewall settings and make sure port 8333 is open. If you encounter a low number of connections, you might want to consider how to set up a crypto node on a VPS taking into account network specifics.
  6. Using `systemd` for Service Management: For more reliable startup and management of `bitcoind`, it is recommended to configure it as a `systemd` service. This will allow `bitcoind` to automatically start when the VPS boots and restart in case of failures.
    
    sudo nano /etc/systemd/system/bitcoind.service
            
    Content of the `bitcoind.service` file:
    
    [Unit]
    Description=Bitcoin daemon
    After=network.target
    
    [Service]
    ExecStart=/usr/local/bin/bitcoind -daemon -conf=/home/bitcoin/.bitcoin/bitcoin.conf -datadir=/home/bitcoin/.bitcoin
    # Or, if you don't want to use -daemon, but want the process to remain active
    # ExecStart=/usr/local/bin/bitcoind -conf=/home/bitcoin/.bitcoin/bitcoin.conf -datadir=/home/bitcoin/.bitcoin
    # ExecStop=/usr/local/bin/bitcoin-cli -conf=/home/bitcoin/.bitcoin/bitcoin.conf -datadir=/home/bitcoin/.bitcoin stop
    User=bitcoin
    Group=bitcoin
    Type=forking # Change to 'simple' if you are not using -daemon
    PIDFile=/home/bitcoin/.bitcoin/bitcoin.pid
    Restart=on-failure
    TimeoutStopSec=600
    
    [Install]
    WantedBy=multi-user.target
            
    Then:
    
    sudo systemctl enable bitcoind.service
    sudo systemctl start bitcoind.service
    sudo systemctl status bitcoind.service
            
    This will significantly simplify the management of your `bitcoin node vps`.

Conclusion

Running your own Bitcoin full node on a VPS is a powerful tool for ensuring personal financial sovereignty and active participation in the decentralized network. For optimal `bitcoin node vps` operation, it is recommended to choose plans with NVMe disks from 800 GB (or 50 GB for a pruned node), 4 GB RAM, and a stable internet connection. Regular `bitcoind` updates and proper VPS protection using a firewall and SSH tunneling are critically important for maintaining the security and efficiency of `your Bitcoin node`.

Ready to choose a server?

VPS and dedicated servers in 72+ countries with instant activation and full root access.

Get started now →
support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.