XDC Private (Quorum Fork)

Prerequisites

Operating System: Ubuntu 20.04 64-bit or higher.

Tools: Docker, Docker Compose

Hardware:

Hardware

Minimum

Desired

CPU

2

4

Memory

4 GB

8 GB

Storage

300 GB

500 GB

Network Ports:

The following network ports need to be open for the nodes to communicate:

Port

Type

Definition

21001-2100*

TCP/UDP

GETH

22001-2200*

TCP

RPC

23001-2300*

TCP

RAFT

9001-900*

TCP

Constellation

*auto-increment depending on the number of nodes

Setup

Clone repository

git clone https://github.com/xdcorg/XDC01-docker-Nnodes.git 

Step 1: Install Docker & Docker-compose

sudo ./install_docker.sh

Step 2: Pull image from Docker Hub

sudo docker pull xdcorg/quorum:v2.1.0

Step: 3 Launch the setup script

cd static-nodes
sudo ./setup.sh

Enter the number of nodes, private IP of the host machine, and unique docker subnet. You can view the private IP of your machine using ipconfig.

To check the private IP address on Ubuntu GUI:

  • Open the Activities overview and start typing Network.

  • Click on Network to open the panel.

  • Choose the connection, Wi-Fi or Wired, from the left pane.

  • The IP address for a wired connection will be displayed on the right.

  • Click the settings button to see the IP address for the wireless Network in the Details panel.

Accessing console

sudo docker exec -it PROJECT_NAME_STATIC_NODES_node_1_1 geth attach /qdata/dd/geth.ipc

Stopping the network

sudo docker-compose -p <PROJECT_NAME_STATIC_NODE> down

Adding a new node to the existing network

Install docker and pull image on the new host machine as done earlier in Steps 1 and 2.

cd dynamic-node
sudo ./setup.sh

Enter public IP of the new host machine (in case of local setup, private IP assigned by router). Enter the node number (e.g., if you have three nodes up with the initial setup, then the node number here would be 4).

Copy enodeID from enode-url.json, then attach to Geth console of any running node and execute.

raft.addPeer(enodeID)

Start the new node

cd dynamic-node
sudo docker-compose -p <PROJECT_NAME_DYNAMIC_NODE> up -d

Upgrade network

Pull a newer version of the image from the docker hub.

sudo docker pull xdcorg/quorum:v2.x.x

Stop containers running the old version.

sudo docker-compose -p <PROJECT_NAME_STATIC/DYNAMIC_NODE> down

Update docker-compose.yml to use a new image (specify quorum: TAG_NAME as argument).

sudo ./update_quorum.sh quorum:v2.x.x

Run new version.

sudo docker-compose -p <PROJECT_NAME_STATIC/DYNAMIC_NODE> up -d

Contact Us

Join our Telegram Developer Group to ask us questions or raise issues in our Github. We would love to help.

Last updated