Skip to main content

Network Management

This guide covers creating, managing, and monitoring blockchain networks in ChainLaunch.

Overview

ChainLaunch supports two main blockchain platforms:

  • Hyperledger Fabric - Permissioned consortium blockchains with channels and chaincodes
  • Hyperledger Besu - Ethereum-compatible networks with smart contracts

Networks are managed through platform-specific endpoints: /networks/fabric and /networks/besu. There is no generic /networks endpoint.

Network Lifecycle

Created → Initialized → Running → Stopped → Deleted

Network States

StateDescriptionActions Available
CreatedNetwork genesis generated, nodes not yet deployedDeploy nodes, configure, delete
RunningNodes are operational and producing blocksMonitor, add/remove nodes
StoppedNodes have been shut downStart nodes, delete, backup
ErrorNetwork has encountered issuesView logs, restart nodes, diagnose

Creating Networks

Hyperledger Fabric Networks

Fabric networks are consortium blockchains with organizations, peers, orderers, and channels.

Key Components:

  • Organizations - Business entities with admin certificates
  • Orderers - Consensus nodes (Raft)
  • Peers - Endorsers, committers, state database maintainers
  • Channels - Isolated ledgers with specific members (a Fabric network in ChainLaunch represents a channel)

Create via UI:

  1. Go to Networks → Create Network
  2. Select Fabric
  3. Configure organizations, peers, and orderers
  4. Set channel policies
  5. Click Create

Via API:

curl -X POST http://localhost:8100/api/v1/networks/fabric \
-u admin:password \
-H "Content-Type: application/json" \
-d '{
"name": "fabric-network",
"channelName": "mychannel"
}'

Hyperledger Besu Networks

Besu networks are Ethereum-compatible with validators, bootnodes, and smart contracts.

Key Components:

  • Validators - Consensus participants
  • Bootnodes - Peer discovery nodes
  • Consensus - IBFT 2.0, QBFT, Clique
  • Smart Contracts - EVM-based applications

Create via UI:

  1. Go to Networks → Create Network
  2. Select Besu
  3. Choose consensus mechanism
  4. Configure genesis parameters
  5. Click Create

Via API:

curl -X POST http://localhost:8100/api/v1/networks/besu \
-u admin:password \
-H "Content-Type: application/json" \
-d '{
"name": "besu-network"
}'

See Create a Besu Network for detailed steps.

Importing Networks

Import existing networks without recreating them:

Import Fabric Network:

curl -X POST http://localhost:8100/api/v1/networks/fabric/import \
-u admin:password \
-H "Content-Type: application/json" \
-d '{
"name": "imported-fabric-network"
}'

Import Besu Network:

curl -X POST http://localhost:8100/api/v1/networks/besu/import \
-u admin:password \
-H "Content-Type: application/json" \
-d '{
"name": "imported-besu-network"
}'

Managing Nodes

Add Nodes to Fabric Network

Via API:

curl -X POST http://localhost:8100/api/v1/networks/fabric/1/nodes \
-u admin:password \
-H "Content-Type: application/json" \
-d '{
"name": "peer-0",
"nodeType": "FABRIC_PEER"
}'

Start/Stop Nodes

Node lifecycle is managed per-node, not per-network.

Start a node:

curl -X POST http://localhost:8100/api/v1/nodes/1/start \
-u admin:password

Stop a node:

curl -X POST http://localhost:8100/api/v1/nodes/1/stop \
-u admin:password

Restart a node:

curl -X POST http://localhost:8100/api/v1/nodes/1/restart \
-u admin:password

Remove Nodes

curl -X DELETE http://localhost:8100/api/v1/nodes/1 \
-u admin:password

Monitoring Networks

View Network Status

Via UI:

  1. Go to Networks
  2. Select network to view status
  3. View node count, block height, peer connections

Via API (Fabric):

curl -u admin:password http://localhost:8100/api/v1/networks/fabric/1

Via API (Besu):

curl -u admin:password http://localhost:8100/api/v1/networks/besu/1

View Network Map

See a visual map of network topology:

Fabric:

curl -u admin:password http://localhost:8100/api/v1/networks/fabric/1/map

Besu:

curl -u admin:password http://localhost:8100/api/v1/networks/besu/1/map

View Node Logs

Stream logs via WebSocket:

# WebSocket connection
ws://localhost:8100/api/v1/nodes/1/logs

View Node Events

curl -u admin:password http://localhost:8100/api/v1/nodes/1/events

Fabric-Specific Management

Manage Organizations

Create organization:

curl -X POST http://localhost:8100/api/v1/organizations \
-u admin:password \
-H "Content-Type: application/json" \
-d '{
"name": "org1",
"mspId": "Org1MSP"
}'

Join Peers and Orderers to Channels

In ChainLaunch, a Fabric network represents a channel. Join peers and orderers to the network's channel:

Join peer to channel:

curl -X POST http://localhost:8100/api/v1/networks/fabric/1/peers/1/join \
-u admin:password

Join orderer to channel:

curl -X POST http://localhost:8100/api/v1/networks/fabric/1/orderers/1/join \
-u admin:password

Set Anchor Peers

curl -X POST http://localhost:8100/api/v1/networks/fabric/1/anchor-peers \
-u admin:password \
-H "Content-Type: application/json" \
-d '{}'

View Channel Info

Get channel configuration:

curl -u admin:password http://localhost:8100/api/v1/networks/fabric/1/channel-config

Get network info:

curl -u admin:password http://localhost:8100/api/v1/networks/fabric/1/info

Browse Blocks and Transactions

List blocks:

curl -u admin:password http://localhost:8100/api/v1/networks/fabric/1/blocks

Get specific block:

curl -u admin:password http://localhost:8100/api/v1/networks/fabric/1/blocks/5

Get transaction:

curl -u admin:password http://localhost:8100/api/v1/networks/fabric/1/transactions/txid123

Deploy Chaincodes

See Deploy Chaincode for detailed steps.

Besu-Specific Management

View Besu Network Nodes

curl -u admin:password http://localhost:8100/api/v1/networks/besu/1/nodes

Deploy Smart Contracts

curl -X POST http://localhost:8100/api/v1/sc/besu/deploy \
-u admin:password \
-H "Content-Type: application/json" \
-d '{}'

Backup & Recovery

Create a Backup

curl -X POST http://localhost:8100/api/v1/backups \
-u admin:password \
-H "Content-Type: application/json" \
-d '{
"targetId": 1,
"nodeId": 1
}'

Restore Network

See Backup & Recovery for detailed steps.

Troubleshooting

Network Not Producing Blocks

  1. Check all nodes are running
  2. Verify network connectivity between nodes
  3. Check node logs for errors
  4. Verify consensus parameters (especially for Besu IBFT)

See Troubleshooting Guide for more solutions.

Best Practices

1. Use Descriptive Names

GOOD: production-fabric-network, dev-besu-testnet
BAD: network1, network2

2. Version Your Networks

GOOD: fabric-v2.5-prod, besu-clique-v1.10
BAD: fabric-latest, besu-main

3. Monitor Regularly

  • Check node health daily
  • Review metrics weekly
  • Archive audit logs monthly
  • Test backups quarterly

4. Plan Capacity

  • Estimate storage: ~100MB per 1000 blocks for Fabric
  • Monitor CPU/memory per node
  • Plan for network growth

5. Document Configuration

  • Keep genesis files in version control
  • Document channel policies
  • Document validator set changes
  • Maintain runbooks for operations

See Also