Add Network and nodes
Guide to adding a blockchain network to your application
Summary
To build a blockchain application, the first step is setting up a blockchain network. You can either deploy a permissioned network such as Hyperledger Besu or Quorum, or connect to an existing L1 or L2 public network like Ethereum, Polygon PoS, Hedera, Polygon zkEVM, Avalanche, Arbitrum, or Optimism. Both mainnet and testnet versions are available for public networks.
When creating an application on SettleMint, you will be prompted to select a network type and assign it a name. For permissioned networks, you control the entire network infrastructure, including validator nodes. A first validating node is automatically deployed along with your permissioned network. For public networks, the validators are already established by the network's consensus participants, and SettleMint will deploy an archive node that connects to the chosen public network.
In SettleMint-managed (SaaS) mode, you will need to choose between a shared or dedicated cluster for deployment. You can also select a cloud provider and a data center of your choice. Additionally, you will have the option to select from small, medium, or large resource packs, which can be scaled up or down later as needed.
For permissioned networks, you can configure network settings and customize the genesis file before deployment. For most use cases, keeping the default settings is recommended. After deployment, your network manager and first node will be fully operational within minutes.
To enhance reliability in permissioned networks, you should add more nodes for fault tolerance. The best practice is to deploy four validator nodes and two non-validator nodes to ensure Byzantine fault tolerance. For public networks, you might want to deploy additional archive or full nodes to improve reliability of your connection to the network.
Once your network and nodes are running, adding a load balancer will help distribute network traffic efficiently and improve performance. You can then access the Insights tab to integrate monitoring tools. For permissioned networks, you can add Blockscout blockchain explorer to track transactions and network activity. If you are using public networks, you can use their publicly available blockchain explorers instead.
Prerequisites
Before setting up a blockchain network, you need to have an application created in your workspace. Applications provide the organizational context for all your blockchain resources including networks, nodes, and development tools. If you haven't created an application yet, follow our create application guide first.
1. Add a blockchain network
For EVM Chains, SettleMint offers Hyperledger Besu and Quorum for permissioned networks and a bunch of public networks to choose from. For the list of supported networks please refer - supported networks
You can perform the same action via the SettleMint SDK CLI as well -
First ensure you're authenticated:
settlemint login
Create a blockchain network:
settlemint platform create blockchain-network besu <network-name> \
--node-name <node-name>
# Get information about the command and all available options
settlemint platform create blockchain-network besu --help
Navigate to application
Go to the application containing your network.
Add network
Click Add blockchain network to open a form.
Configure network
- Select the protocol of your choice and click Continue.
- Choose a network name and a node name.
- Configure your deployment settings and network parameters.
- Click Confirm to add the network.
import { createSettleMintClient } from '@settlemint/sdk-js';
const client = createSettleMintClient({
accessToken: 'your_access_token',
instance: 'https://console.settlemint.com'
});
// Create network
const createNetwork = async () => {
const result = await client.blockchainNetwork.create({
applicationUniqueName: "your-app",
name: "my-network",
nodeName: "validator-1",
consensusAlgorithm: "BESU_QBFT",
provider: "GKE", // GKE, EKS, AKS
region: "EUROPE"
});
console.log('Network created:', result);
};
// List networks
const listNetworks = async () => {
const networks = await client.blockchainNetwork.list("your-app");
console.log('Networks:', networks);
};
// Get network details
const getNetwork = async () => {
const network = await client.blockchainNetwork.read("network-unique-name");
console.log('Network details:', network);
};
// Restart network
const restartNetwork = async () => {
await client.blockchainNetwork.restart("network-unique-name");
};
Get your access token from the Platform UI under User Settings → API Tokens.
While deploying a network, you can tune various parameters to optimize performance and execution. The Chain ID serves as a unique identifier for your blockchain network, ensuring proper differentiation from others. The Seconds per block setting controls the block time interval, impacting transaction finality speed. Gas price defines the transaction cost per unit of gas, influencing network fees, while the Gas limit determines the maximum gas allowed per block, affecting computational capacity.
The EVM stack size configures the stack depth for smart contract execution, and the Contract size limit sets the maximum contract code size to manage deployment constraints. Adjusting these settings allows for greater scalability, efficiency, and cost control based on your specific use case. For EVM Chains, SettleMint allows you to set key genesis file paramters for a custom network configuration.
Manage a network
Network management can be done via SettleMint SDK CLI using these commands -
# List networks
settlemint platform list blockchain-networks --application <app-name>
# Get network details
settlemint platform read blockchain-network <network-name>
# Restart network
settlemint platform restart blockchain-network <network-name>
Navigate to your network and click Manage network to see available actions:
- View network details and status
- Monitor network health
- Restart network operations
// List networks
await client.blockchainNetwork.list("your-app");
// Get network details
await client.blockchainNetwork.read("network-unique-name");
// Restart network
await client.blockchainNetwork.restart("network-unique-name");
When we deploy a network, first node is automatically deployed with it and is a validator node. Once you have deployed a permissioned network or joined a public network, you can add more nodes to it.
2. Add blockchain nodes
To see and add nodes, please click on Blockchain Nodes tile on the dashboard or use the Blockchain Nodes link in the left menu.
We recommend the following number of nodes for each envrionment:
Blockchain Network | Node Type | Minimum Nodes for Fault Tolerance |
---|---|---|
Hyperledger Besu | Validator Nodes | 4 (Byzantine Fault Tolerant BFT) |
Hyperledger Besu | Non-Validator Nodes | 2 (for redundancy) |
GoQuorum | Validator Nodes | 4 (Istanbul BFT) |
GoQuorum | Non-Validator Nodes | 2 (for redundancy) |
Nodes can also be added using SettleMint SDK CLI using the following commands-
Navigate to application
Go to the application containing your network.
Access nodes
Click Blockchain nodes in the left navigation.
Configure node
- Click Add a blockchain node.
- Select the blockchain network to add this node to.
- Choose a node name and node type (Validator/Non-Validator).
- Configure deployment settings.
- Click Confirm.
First ensure you're authenticated:
settlemint login
Create a blockchain node:
settlemint platform create blockchain-node besu <node-name> \
--blockchain-network <network-name> \
--node-type <VALIDATOR|NON_VALIDATOR> \
--provider <provider> \
--region <region>
# Get help
settlemint platform create blockchain-node --help
import { createSettleMintClient } from '@settlemint/sdk-js';
const client = createSettleMintClient({
accessToken: 'your_access_token',
instance: 'https://console.settlemint.com'
});
const createNode = async () => {
const result = await client.blockchainNode.create({
applicationUniqueName: "your-application",
blockchainNetworkUniqueName: "your-network",
name: "my-node",
nodeType: "VALIDATOR",
provider: "provider",
region: "region"
});
console.log('Node created:', result);
};
Get your access token from the Platform UI in left menu bar > Access Tokens.
Manage node
You can view node details and status, can monitor node health, pause and restart, or upgrade the node via the SDK CLI or the Platform UI.
Navigate to your node and click Manage node to see available actions:
- View node details and status
- Monitor node health
- Restart node operations
# List nodes
settlemint platform list services --application <application-name>
# Restart node
settlemint platform restart blockchain-node <node-name>
// List nodes
await client.blockchainNode.list("your-application");
// Get node details
await client.blockchainNode.read("node-unique-name");
// Restart node
await client.blockchainNode.restart("node-unique-name");
All operations require appropriate permissions in your workspace.
3. Add load balancer
To add a load balancer, navigate to the Blockchain nodes section in the SettleMint platform and select your deployed network. Click "Add load balancer", choose the region, provider, and desired resource configuration. Once deployed, the load balancer helps distribute traffic efficiently, improving network reliability and performance.
When selecting nodes to connect to the load balancer, ensure you include at least two non-validator nodes for optimal redundancy. The load balancer can be configured to route requests to specific nodes based on workload distribution, ensuring high availability and fault tolerance in your blockchain network.
4. Add blockchain explorer
To add blockscout blockchain explorer for EVM based permissioned networks, navigate to Insights via the left menu or the dashboard tile. For public networks, you may use publicly available blockchain explorers for the respective network.
For public networks, please use the following blockchain explorers
Network | Mainnet Explorer | Testnet Explorer |
---|---|---|
Ethereum | Etherscan | Sepolia / Holesky |
Avalanche | SnowTrace | Fuji |
Hedera Hashgraph | HashScan | HashScan Testnet |
Polygon PoS | PolygonScan | Amoy |
Polygon zkEVM | zkEVM Explorer | zkEVM Testnet |
Optimism | Optimistic Etherscan | Optimism Goerli |
Arbitrum | Arbiscan | Arbitrum Goerli |
Congratulations!
You have succesfully built the blockchain infrastructure layer for you application. From here you can proceed for creating or setting up private keys for transaction signer and user wallets.