28 Jun 2021 · 3 min read

How to Run a Node on the Concordium Network

Disclaimer: The Industry Talk section features insights by crypto industry players and is not a part of the editorial content of Cryptonews.com.

Concordium

Enterprise blockchain platform Concordium is now live on mainnet, allowing anyone to participate in the network by running a node. Running a Concordium node means you’ll be able to receive blocks and transactions from other nodes. Nodes can also transmit data about blocks and transactions to other nodes on the network.

Running a Concordium node is a necessary precursor to becoming a baker on the network. So if you want to participate in block validation and earn block rewards, you’ll need to set up a node before you can get started. However, unlike becoming a baker, you don’t need a Concordium account before you can run a node.

To get started, you’ll need to install and run Docker. If you’re on Linux, then allow Docker to be run as a non-root user.

You’ll also need to download and extract the Concordium Node and Client software.

Setting Up Your Node

To start running the Concordium client and join the mainnet, first open the concordium-node executable file from the unzipped folder.

Mac users: the first time you open the tool, right-click the concordium-node binary and select Open. When a message appears that the software is from an unidentified developer, select Open again.

For Windows users: the first time you open the tool, double-click the concordium-node binary. When a message will appears that the software is from an unidentified developer, select More info → Run anyway.

You can consider using the --no-block-state-import option to speed up the boot process when restarting a node. The node will only download the updates to the Concordium blockchain that occurred while it was inactive.

Choose a name for your node, which will be displayed in the public dashboard.

If you’ve used the node setup tool before, it will ask if you want to delete the local node database before you begin. Selecting Yes will delete and subsequently recreate the information on the state of the Concordium blockchain that was saved on your computer. If you delete the local node database, it will take longer for the node to become synchronized with the Concordium network.

The tool will now download the Concordium Client image and load it into Docker. The Concordium mainnet client will launch and start providing logged information about node operations.

Viewing your node on the dashboard

Once you’re up and running with concordium-node you can see your node on the Network Dashboard. You can also query information about blocks, transactions, and accounts and also get an idea of how long it will take your node to catch up with the chain.

To do this, you can compare the node’s Length value, representing the number of blocks your node received, with the “Chain Len” value, which represents the number of blocks in the longest chain in the network, and is displayed at the top of the dashboard.

Enabling inbound connections

It may be that your node only enables outbound connections by default. For instance, if you’re running your node behind some kind of firewall, then other nodes will not be able to initiate a connection to your node. While this is fine and you’ll still be a network participant, it’s good for the ecosystem’s communication if two-way connections are enabled.

The concordium-node client default is to listen on port 8888, the peer-to-peer networking port, for inbound connections. You may need to forward an external port to 8888 on your router or open it in your firewall, or both, depending on your configuration.

The node listens on four ports. You can configure these when starting the node by running the appropriate command-line arguments. The node uses the ports as follows:

  • 8888, the port for peer-to-peer networking, which can be set with --listen-node-port
  • 10000, the gRPC port, which can be set with --listen-grpc-port

When changing the mappings above the docker container, the node must be stopped, reset, and started again. To stop the node, press CTRL+C and wait. The node will perform a clean shutdown.

To reset the container, either use concordium-node-reset-data or run docker rm concordium-client in a terminal.

To keep your node secure, your firewall should be configured so that only port 8888 allows public connections. Allowing public access to the other ports may put your node or accounts at risk and is not recommended.

Closing the window doesn’t shut down the client – it will keep running in the background in Docker. Use the concordium-node-stop command-line argument to shut down.