Skip to main content

Join Network

We are now ready to join our Metagraph and/or Hypergraph network.


Our example will join the testnet 2.0 network.


Log into your node

From your local system, log into your cloud instance's terminal as nodeadmin using your Apple terminal, Window's PuTTY, or your terminal application of choice.


You can remind yourself how to access your VPS here for Macintosh or Windows.

Update your node

Bring our Node up to date

sudo apt -y update && sudo apt -y upgrade

You will be prompted for your nodeadmin password.


Your screen will not react and your password will not show as you type.
Reminder: [...] in the output command examples means that there is a bunch of output that has been redacted to eliminate confusion.

[sudo] password for nodeadmin:

Start the Join Process


We have created our VPS, installed out dependencies, installed out Tessellation binaries, setup our user, created our p12 file, and our service file.

We will send a request to the Source node to join the cluster, through a curl POST request.


The current example will help us to join the Constellation Network Tessellation TestNet if you are going to join a different metagraphs or Hypergraph network, you will need to obtain the proper node id and ip address, and substitute them into the commands below

Supply your P12 passphrase


We do not want to have our p12 passphrase added to a static plain text file. Our p12 file is our private key file that stores valuable information. If the passphrase is exposed, you can have access to the MainNet, metagraph, TestNet, etc. compromised, including access to wallets. This is a bad idea.


In previous steps, we started our node service. This service will not properly start without your p12 passphrase. The command below may not be necessary; however, we will enter it again to be thorough

Instead, we will create a temporary environment variable prior to joining the network. The export we do below will only survive the current working session, and it will be lost after we log out.

export CL_PASSWORD="place_your_passphrase_here"

Join the network


We are using 9000,9001, and 9002 for layer0 in this example; as well as, 9010,9011, and 9012.


The IP ADDRESS and NODE ID used below are examples only. You will need to use an actual Node IP and NodeId alive and in Ready state on the network. Next our command to join is:


curl -X POST -H 'Content-type: application/json' -d '{ "id": "abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123ab", "ip": "", "p2pPort": 9001 }'


curl -X POST -H 'Content-type: application/json' -d '{ "id": "abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123ab", "ip": "", "p2pPort": 9011 }'

We should now be joined to the network. Lets check to see if we are connected by Checking our Peers.

Open your browser on your local computer.


We need to replace <ip_address_of_your_instance> with your Cluster's Load Balancer, Edge Gateway or Existing Node on the network. This may result in using port 80 or 443 as well.



You will see a list of lines with id, ip, publicPort, p2pPort, session, state.

The content is not important, what is important is that you see at least 1 entry display in your local browser window.


The "id" fields in this example are randomly made up improperly formatted id fields used for the purpose of example only.


Optional: review your logs

cat /var/tessellation/logs/app.log

You should see somewhere towards the end of the log file a line which contains:

Received state=Ready{ }

In the event that you would like to participate in multiple metagraphs, you can issue the join separately for each metagraph process you have running on the Node.