Ethereum: Why Bitcoin Is Not Respecting Testnet RPCbind
When it comes to running Ethereum, the two most important tools are bitcoin.conf (a configuration file) and rpcbind (a daemon that provides remote access to the testnet). However, we noticed an unusual issue with the rpcbind service on our testnet, causing bitcoind (the Ethereum command line interface) to ignore changes made to the bitcoin.conf file.
In this article, we will take a closer look at the possible causes of this and look at possible solutions.
Problem: Ignoring Testnet RPC configuration

When testing Ethereum on a local machine or in a virtual environment, it is often necessary to configure rpcbind with specific settings, such as the port number for the testnet (in this case 8333). However, changes made in the bitcoin.conf file are not reflected in the rpcbind configuration.
To illustrate this, let’s look at what happens if we edit the bitcoin.conf file:
Edit bitcoin.conf with a text editornano /etc/bitcoin.conf
[internet]
httpHost = "127.0.0.1"
port = 8333
rpcbind = "10.18.0.1:8332"
After making these changes, we can verify the updated configuration:
Check the rpcbind settings in bitcoin.confnano /etc/bitcoin.conf
[internet]
httpHost = "127.0.0.1"
port = 8333
rpcbind = "10.18.0.1:8332"
As expected, the configuration rpcbind has been updated to reflect the changes we made to bitcoin.conf.
Why doesn’t Bitcoin respect RPC configuration?
So why doesn’t bitcoind honor these changes when updating bitcoin.conf? The problem lies in the way netstat (the command line interface for networking and network configuration) handles remote connections.
When you run netstat -natp, you see listening TCP sockets. However, the rpcbind service is not actually a listening socket; it is a daemon that runs in the background and monitors incoming connections.
The rpcbind setting in bitcoin.conf refers to the address and port number of this daemon, which is currently set to listen on 10.18.0.1 (localhost). The problem occurs because after updating the bitcoin.conf file, the rpcbind settings are not actually applied to the actual netstat process.
To fix this issue, you need to run rpcbind manually before updating your configuration files:
sudo systemctl start rpcbind
Also make sure that bitcoind is configured to listen on a different address and port than the default 10.18.0.1. This can be done by modifying the bitcoin.conf file as follows:
[internet]
httpHost = "127.0.0.1:8080"
port = 8333
rpcbind = "10.0.0.2:8332"
Change to a different address and port
After making these changes, you should be able to update the bitcoin.conf file without any problems with the rpcbind settings.
In summary, this issue is due to the way netstat handles remote connections, which can cause bitcoind to ignore updates made to its configuration files. If you understand what’s going on and follow a few simple troubleshooting steps, you should be able to run Ethereum without any problems on your local machine or in a virtual environment.
