Skip to main content

Node Sharing (Pro)

ChainLaunch Pro Feature

Node sharing requires ChainLaunch Pro. Learn more about Pro features.

Node sharing lets two ChainLaunch instances exchange node information peer-to-peer, enabling multi-organization consortiums where each company runs their own ChainLaunch.

How It Works

  1. Instance A generates an invitation (a signed JWT token)
  2. Instance B accepts the invitation, establishing a trust link
  3. Both instances can now sync node metadata (IPs, ports, certificates)
  4. Nodes from Instance B appear as "external nodes" in Instance A, and vice versa

No blockchain data is shared — only the metadata needed to connect nodes across organizations.

Generate an Invitation

Both instances can see each other's nodes:

chainlaunch nodesharing generate-node-invitation --bidirectional

Output:

Invitation JWT: eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9...

One-Way

Only the accepting instance shares its nodes:

chainlaunch nodesharing generate-node-invitation

Accept an Invitation

On the other ChainLaunch instance:

chainlaunch nodesharing accept-node-invitation \
--invitation_jwt "eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9..."

This establishes the trust link between both instances.

Sync External Nodes

After accepting an invitation, sync the remote nodes:

chainlaunch nodesharing sync-external-nodes --peer_node_id "1"

External nodes now appear in the ChainLaunch UI under Nodes > External.

Using External Nodes in Networks

Once synced, external nodes can be used when creating networks:

  1. Go to Networks > Create Network
  2. When selecting nodes, external nodes appear alongside local ones
  3. Select both local and external nodes for your channel
  4. ChainLaunch handles the cross-instance communication

API Reference

Generate Invitation

curl -X POST http://localhost:8100/api/v1/nodesharing/invitations \
-H "Content-Type: application/json" \
-d '{"bidirectional": true}'

Accept Invitation

curl -X POST http://localhost:8100/api/v1/nodesharing/accept \
-H "Content-Type: application/json" \
-d '{"invitation_jwt": "eyJ..."}'

Sync Nodes

curl -X POST http://localhost:8100/api/v1/nodesharing/sync \
-H "Content-Type: application/json" \
-d '{"peer_node_id": 1}'

List Peers

curl http://localhost:8100/api/v1/nodesharing/peers | jq

Security

  • Invitations are signed JWTs with expiration
  • Communication between instances uses TLS
  • Each instance only shares node metadata (hostnames, ports, public certificates)
  • Private keys never leave their origin instance
  • Invitations can be revoked at any time

Next Steps