How To Deploy A Zilliqa Node

How To Deploy A Zilliqa Node
How to Deploy a Zilliqua Node

Whether you're a developer, investor, or simply interested in exploring the potential of the Zilliqa network, setting up a Zilliqa node is rewarding. In this tutorial, we'll guide you through the step-by-step process of deploying your own Zilliqa node and contributing to the network's performance and security.

What is a Zilliqa Node?

A Zilliqa node is a computer that runs the Zilliqa software and participates in the Zilliqa blockchain network. There are numerous types of nodes, including:

  • Seed nodes
  • Lookup nodes
  • Shard nodes
  • Directory Service (DS) nodes
  • Staked Seed Nodes (SSNs)

Seed nodes (Zilliqa fullnodes) bootstrap new nodes to the network. They maintain a list of all the other nodes in the network and provide this information to new nodes.

Lookup nodes store the entire history of the Zilliqa blockchain and provide data to other nodes. They do not participate in consensus, but they are essential for the network to function properly.

Shard nodes validate transactions and blocks within their respective shards. They must stake a minimum amount of ZIL tokens to be eligible to become shard nodes.

Directory Service (DS) nodes aggregate micro blocks from different shards and form the Transaction Block, creating the DS Block at the start of each directory service epoch. Like shard nodes, DS nodes are rewarded with $ZIL at the end of every directory service epoch. The collection of DS nodes is known as the DS committee.

Staked Seed Nodes (SSNs) are a type of seed node operated by staking partners. They provide additional security and stability to the Zilliqa network.

Zilliqa nodes are essential for the security and stability of the Zilliqa network. They help to ensure that transactions are processed accurately and that the network is resistant to attacks.

Zilliqa Node Requirements

  • Operating system: Zilliqa nodes can run on most x64 Linux systems. The minimum recommended operating system is Ubuntu 18.04.5.
  • RAM: The minimum recommended amount of RAM is 8 GB, but you may need more if you plan on running a lot of applications on your node or if you want to improve the performance of your node.
  • CPU: The minimum recommended CPU is a recent dual-core processor with a clock speed of at least 2.2 GHz. Examples of suitable processors include the Intel Xeon (Skylake) series.
  • Storage: You will need some storage space to store the Zilliqa blockchain. The minimum recommended amount of storage space is 500 GB.
  • Bandwidth: You will need a reliable internet connection with a minimum download and upload bandwidth of 100 MB/s.
  • Public static IP address: Zilliqa nodes require a public static IP address. This means that the IP address of your node cannot be shared with any other devices or services.

Note: Those requirements are only relevant at the writing time. You're encouraged to check out Zilliqa Developer Portal for the latest updates.

How to Deploy a Zilliqa Node: Seed Node Setup

Our guide is focused on setting up a seed node on the Zilliqa network. We suggest that you check Zilliqa Developer Portal to get the latest updates on the requirements and installation.

Operating a Zilliqa seed node will require whitelisting. Currently, whitelisting is granted on a case-by-case basis, often for reasons like supporting exchange infrastructure.

Step 1: Download Zilliqa-rosetta

Download the latest release of Zilliqa-rosetta from: https://github.com/Zilliqa/zilliqa-rosetta/releases

Step 2: Build Zilliqa-rosetta Docker Image

Build the Zilliqa-rosetta Docker image from the Zilliqa and Scilla source code using the following command:

sh ./build_docker.sh

If you need to build Zilliqa-rosetta with specific versions of Zilliqa and Scilla, you can use the following Docker build command:

docker

build \--build-arg ROSETTA_COMMIT_OR_TAG=<ROSETTA_TAG>

\--build-arg SCILLA_COMMIT_OR_TAG=<SCILLA_TAG>

\--build-arg COMMIT_OR_TAG=<ZILLIQA_TAG>

\-t rosetta:1.0 .

Please note that compiling Zilliqa and Scilla might take longer than expected.

Step 3: Create config.yaml

Create a config.yaml file for Zilliqa-rosetta. Sample configuration files for testnet and mainnet are provided.

Step 4: Generate Key Pair for Whitelisting

If you are using the public key whitelisting method and need to generate a key pair, follow these steps:

  1. Create a directory named secrets.
  2. Run the following Docker command to generate a key pair:shellCopy codedocker run --rm \ --env GENKEYPAIR="true" \ rosetta:1.0 > secrets/mykey.txt Make sure to inform the Zilliqa team of your public key for whitelisting purposes.

Step 5: Running Zilliqa-rosetta

Run Zilliqa-rosetta using the following Docker command:

docker run -d \

--env BLOCKCHAIN_NETWORK="<NETWORK_TO_USE>" \

--env IP_ADDRESS="<SEED_NODE_HOST_IP>" \

--env MULTIPLIER_SYNC="<Y_or_N>" \

--env SEED_PRIVATE_KEY="<SEED_PRIVATE_KEY>" \

--env TESTNET_NAME="<NAME_OF_THE_TESTNET>" \

--env BUCKET_NAME="<NAME_OF_THE_PERSISTENCE_BUCKET>" \

-v $(pwd)/secrets/mykey.txt:/run/zilliqa/mykey.txt \

-p 4201:4201 -p 4301:4301 -p 4501:4501 -p 33133:33133 -p 8080:8080 \ --name rosetta rosetta:1.0

Variable Descriptions:

  • NETWORK_TO_USE: Choose between testnet or mainnet.
  • SEED_NODE_HOST_IP: Public IP for the Zilliqa seed node.
  • SEED_PRIVATE_KEY: Private key of the whitelisted keypair (optional).
  • NAME_OF_THE_TESTNET: Refer to network meta.
  • NAME_OF_THE_PERSISTENCE_BUCKET: Refer to network meta.

Maintenance: Restarting Zilliqa Rosetta

To restart Zilliqa Rosetta, use the following Docker commands:

docker stop <container name> docker start <container name>

With this guide, you can successfully set up and manage a Zilliqa seed node with Rosetta integration. Remember to provide the necessary information for whitelisting and ensure your configurations are up to date.

Read more