Ethereum: Why Bitcoin Does Not Respect RPCbind for Testnet
When it comes to running Ethereum, two of the most important tools are bitcoin.conf
(the configuration file) and rpcbind
(a daemon that provides remote access to the test network). However, we’ve noticed a peculiar issue with the rpcbind
service on our test network, causing bitcoind
(Ethereum’s command-line interface) to disregard changes made to the bitcoin.conf
file.
In this article, we’ll delve into why this might be happening and explore possible solutions.
The Issue: Testnet RPC Configuration Disregard
When you’re testing Ethereum on your local machine or a virtual environment, you often need to configure rpcbind
with specific settings, such as the port number for the test network (8333 in this case). However, when you make changes to the bitcoin.conf
file, the changes are not reflected in the rpcbind
configuration.
To illustrate this, let’s examine what happens if we edit the bitcoin.conf
file:

Edit bitcoin.conf with a text editor
nano /etc/bitcoin.conf
[net]
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.conf
nano /etc/bitcoin.conf
[net]
httpHost = "127.0.0.1"
port = 8333
rpcbind = "10.18.0.1:8332"
As expected, the rpcbind
setting has been updated to reflect the changes we made in bitcoin.conf
.
Why Does Bitcoin Not Respect RPC Configuration?
So, why doesn’t bitcoind
respect these changes when updating bitcoin.conf
? The issue lies with how netstat
(the command-line interface for net and network configuration) handles remote connections.
When you run netstat -natp
, it shows the listening TCP sockets. However, the rpcbind
service is not actually a listening socket; it’s a daemon that runs in the background, monitoring incoming connections.
The rpcbind
setting in bitcoin.conf
refers to the address and port number for this daemon, which is currently set to listen on 10.18.0.1 (localhost). The issue arises because when we update the bitcoin.conf
file, the rpcbind
settings are not actually applied to the actual netstat
process.
To fix this problem, you need to start rpcbind
manually before updating your configuration files:
sudo systemctl start rpcbind
Additionally, make sure that bitcoind
is configured to listen on a different address and port than the default 10.18.0.1
. You can do this by modifying the bitcoin.conf
file as follows:
[net]
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 your bitcoin.conf
file without seeing any issues with the rpcbind
settings.
In conclusion, this issue is due to how netstat
handles remote connections, which can cause bitcoind
to disregard updates made to its configuration files. By understanding what’s happening and taking a few simple steps to resolve the problem, you should be able to run Ethereum smoothly on your local machine or virtual environment.