Multi Node

Pre-requisite Readings

Automated Localnet with Docker

Build & Start

To build start a 4 node testnet run:

make localnet-start

This command creates a 4-node network using the realio-network/node Docker image. The ports for each node are found in this table:

Node ID
P2P Port
Tendermint RPC Port
REST/ Ethereum JSON-RPC Port
WebSocket Port

realionetworknode0

26656

26657

8545

8546

realionetworknode1

26659

26660

8547

8548

realionetworknode2

26661

26662

8549

8550

realionetworknode3

26663

26664

8551

8552

To update the binary, just rebuild it and restart the nodes

make localnet-start

The command above command will run containers in the background using Docker compose. You will see the network being created:

...
Network realio-network_localnet  Created 
Container realionetworknode1     Started
Container realionetworknode2     Started
Container realionetworknode3     Started
Container realionetworknode4     Started

Stop Localnet

Once you are done, execute:

Configuration

The make localnet-start creates files for a 4-node testnet in ./build by calling the realio-networkd testnet command. This outputs a handful of files in the ./build directory:

Each ./build/nodeN directory is mounted to the /realio-network directory in each container.

Logging

In order to see the logs of a particular node you can use the following command:

The logs for the daemon will look like:

Whereas the logs for the REST & RPC server would look like:

Interact with the Localnet

Ethereum JSON-RPC & Websocket Ports

To interact with the testnet via WebSockets or RPC/API, you will send your request to the corresponding ports:

EVM JSON-RPC
Eth Websocket

8545

8546

You can send a curl command such as:

Keys & Accounts

To interact with realio-networkd and start querying state or creating txs, you use the realio-network directory of any given node as your home, for example:

Now that accounts exists, you may create new accounts and send those accounts funds!

Special Binaries

If you have multiple binaries with different names, you can specify which one to run with the BINARY environment variable. The path of the binary is relative to the attached volume. For example:

Last updated