RNode supported network configuration

Background

The RNode software runs as a server on the RChain network.  The RNode communications software uses gRPC, which uses TLS to secure TCP connections between validators and read-only nodes. The RChain network is a peer to peer network. For a RNode server instance to properly communicate with the rest of the network, secure bi-directional communication must be possible. Validators must be able to send queries to each other and must be able to receive connections from other validators.

Supported Network Configuration

RChain communications software supports this network configuration.

RNode server → Router → Internet

The RNode server needs to be directly connected to the router.  The router needs to either support UPnP or have static NAT with port forwarding configured for ports 40400 - 40430.  If you wish to use a different set of ports, specify those at runtime with the --p option.

How Universal Plug and Play (UPnP) Works

RNode supports the UPnP protocol, commonly available on retail routers today. When RNode detects a UPnP gateway device, such as your wireless router, the node software will configure the router's firewall rules automatically. In many small business and home networks, this allows the user to run RNode as a validator without having to reconfigure their network.

Note - Node operators running Docker on Mac OS X will not be successful running RNode with UPnP. If you want to run with Docker on Mac OS X, you must configure static NAT and port forwarding manually. See "Routers without UPnP Support" below.

Routers without UPnP Support

If your router does not support UPnP, you will have to configure Static NAT and Port forwarding manually.

At a high level, you should:

  1. Assure the machine running RNode is connected to the router and turned on.
  2. Configure static NAT for the machine in the router configuration interface. 
  3. Configure port forwarding for ports 40400 - 40430

When configuration is complete, it should look something like this:

DeviceAllowed ApplicationsProtocolPort Number
My_RNode_serverRChaintcp40400-40430

Running Docker

Running RNode in Docker has additional network configuration requirements. You must. include explicit port mapping options in your run command with the --p option..  

Example run command:

Note - Node operators running Docker on Mac OS X will not be successful running RNode with UPnP. If you want to run with Docker on Mac OS X, you must configure static NAT and port forwarding manually. See "Routers without UPnP Support" below.

Successful Connection

Look in the console for connection confirmation.  Below is an example showing the run command through the confirmation of connection to the bootstrap node.

Error Messages

The RNode software automatically attempts to detect a UPnP gateway.  If you see the following message and are not able to connect to the bootstrap node, then you need to check that your network configuration is correct and your router supports UPnP.

RNode will make 5 attempts to connect to the bootstrap.  After the fifth attempt, RNode will exit.  If your RNode cannot connect, you will see the following message.