XDC Private (Quorum Fork)
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 |
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
git clone https://github.com/xdcorg/XDC01-docker-Nnodes.git
sudo ./install_docker.sh
sudo docker pull xdcorg/quorum:v2.1.0
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
.- 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.
sudo docker exec -it PROJECT_NAME_STATIC_NODES_node_1_1 geth attach /qdata/dd/geth.ipc
sudo docker-compose -p <PROJECT_NAME_STATIC_NODE> down
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)
cd dynamic-node
sudo docker-compose -p <PROJECT_NAME_DYNAMIC_NODE> up -d
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
Join our Telegram Developer Group to ask us questions or raise issues in our Github. We would love to help.