Enterprise Ethereum networks built on Quorum often require integrating nodes from different environments. This guide provides a clear, step-by-step approach for connecting an external Quorum node to an existing Quorum network, enabling hybrid or multi-cloud blockchain setups.
Prerequisites for Adding an External Node
Before starting, make sure you have the following:
- An existing Quorum network running.
- Administrative access to the network and the external node.
- The external node must be running a compatible Quorum implementation.
- Necessary network permissions to modify node settings.
Step-by-Step Guide to Adding an External Node
Step 1: Access Your Network Dashboard
Navigate to your blockchain management console. Locate the Quorum network you want to expand and select the Add Node option. If you don’t have an existing network, you’ll need to create one first.
Step 2: Register the External Node
A dialog box will appear prompting you to enter node details:
- Provide a descriptive name for the new node.
- Select the External Node option.
- Click Create to register the node.
Once created, the node will appear in your node list with a status indicating it’s pending configuration.
Step 3: Configure the External Node
Click on the new node’s name to access its Configuration Page. Here, you will find the necessary parameters and details required to configure the external node instance.
Step 4: Gather Required Node Information
On the external node’s host machine, collect the following connection details:
- IP: The public IP address of the Quorum node and its transaction manager.
- TMPort: The service port of the node’s transaction manager.
- P2pPort: The P2P communication port for the Quorum node.
- TMPub: The public key used by the transaction manager.
- NodePub: The public key of the Quorum node.
- WSPort (Optional): The Websocket service port.
- RpcPort (Optional): The RPC service port.
Step 5: Input Connection Details
Return to the Configuration Page in your dashboard. Click the Edit button, input all the gathered information accurately, and submit the form.
Step 6: Add as a Consensus Node (Optional)
If the node should participate in block validation, you must manually add it to the consensus group. This typically involves connecting to an existing consensus node and using its RPC API to propose the new node as a validator.
Important Note on Network Updates
The configuration information displayed on your dashboard will update automatically whenever there are changes to the network. However, you are responsible for manually applying these updates to your external node's local configuration files. Failure to synchronize these settings can lead to connection loss or consensus failures.
👉 Explore more strategies for node synchronization
How to Set Up an External Test Node
For testing and development purposes, you can quickly set up a Quorum node on an Ubuntu system using the following method.
Note: This setup is not recommended for production environments due to security and performance considerations.
Step 1: Install Docker and Docker-Compose
Update your system and install the necessary containerization tools using the terminal:
sudo apt update && sudo apt install docker.io
sudo curl -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && sudo chmod 755 /usr/local/bin/docker-composeStep 2: Install and Initialize the Quorum Node
Download and execute the automated installation bootstrap script:
wget https://baas-sdk.oss-cn-hangzhou.aliyuncs.com/bootstrap-1.0.0.sh -O bootstrap.sh && chmod 755 bootstrap.sh && ./bootstrap.shDuring execution, the script will prompt you to input the configuration parameters obtained from your network’s Configuration Page. Paste the values into the corresponding fields.
Step 3: Manage Your Test Node (Optional Commands)
Use the bootstrap script to control your node:
- Check node status and info:
./bootstrap.sh info - Update node configuration:
./bootstrap.sh update - Start the node:
./bootstrap.sh up - Stop the node:
./bootstrap.sh down
Frequently Asked Questions
Q: What is the main benefit of adding an external Quorum node?
A: Adding external nodes allows organizations to create a hybrid blockchain architecture, integrating on-premise systems, other cloud providers, or partner nodes into a single, cohesive Quorum network without being locked into a single vendor.
Q: Can an external node become a consensus node?
A: Yes, but it requires manual intervention. An administrator must use the RPC interface of an existing consensus node to formally propose and vote the external node into the validator set, ensuring network integrity.
Q: Why do I need to manually update the external node's configuration?
A: The external node operates outside the primary managed service environment. While the central dashboard reflects network changes, the external node has no automated mechanism to receive these updates, making manual synchronization necessary to maintain connectivity and consensus.
Q: Are the ports like RpcPort and WSPort mandatory?
A: No, they are optional. The RPC port is needed if you intend to interact with the node directly via RPC calls, and the Websocket port is required for real-time event listening. For a basic peer-to-peer node, only the essential ports (P2pPort, TMPort) are strictly required.
Q: Is this process specific to a single cloud provider?
A: No, the general principles of adding an external node to a Quorum network are universal. The steps involve gathering connection details and configuring the node to join the network's peer-to-peer layer, which is consistent across most implementations.
Q: What is the most common point of failure when adding an external node?
A: The most common issues are network-related, such as firewall rules blocking the necessary P2P or transaction manager ports, or inaccuracies in the entered public keys and IP addresses. Double-checking all values is crucial.