Node Operators
User Manual for Node Operators
Introduction
Welcome to Supra! This manual will guide you through the process of setting up and operating a node on our blockchain network for our inaugural Pre-Testnet. Our system leverages Docker for ease of deployment and a Chrome extension wallet for managing your test tokens.
Release Notes
Updated node key structure which is not backward compatible. Keys need to be re-generated.
Migrated from PersyDB to RocksDB
Introduce native logging and auto log rotation
New mTLS connection layer between Validator-RPC nodes
Prerequisites
Ensure you are a member of our Supra Discord Testnet Communication Channel
Ask the Supra team in Discord channel to grant read access to the Validator node image repository.
Install Docker Engine or Docker Desktop on your machine using the following https://docs.docker.com/engine/install/.
You might need to follow the post installation steps (https://docs.docker.com/engine/install/linux-postinstall/#manage-docker-as-a-non-root-user) too.
Install Google Cloud CLI (gcloud CLI) using this https://cloud.google.com/sdk/docs/install#linux.
Install wget, shasum and jq.
Run the following commands to authorize gcloud and Docker to pull the image from the image repository:
gcloud auth login
gcloud auth configure-docker asia-docker.pkg.dev
Hardware Requirements:
Cores: 16 to 32
RAM: 64G
CPU: Intel(R) Xeon(R) Platinum CPU @ 2.8GHz speed or higher
Architecture: x86/64
Disk Type: SSD
Minimum Disk Size: 2TB
Network Bandwidth: 1Gbps
Clearing up residue:
If you are an existing node operator and/or have already created your keys with docker image v2.0.0.rc1, please run the following commands to stop all the old containers and clear up the old db files, old log files, and old docker images. Otherwise, you can directly move to step 1.
NOTE: Please back up the smr_private_key.pem and smr_public_key.json files before proceeding
Step 1: Download the Docker Image
Open your command-line interface (CLI) on any Terminal application.
Run the following command to download the latest Docker image:
NOTE: If you are not authorized to download the image, you may get the following error. Please ask the Supra team to grant read access to the image repository.
Step 2: Start the container and create and/or activate Keys
Start the node
After downloading the Docker image, start the Docker container with the latest image using the following command:
IMPORTANT NOTE: If you have already created the keypair with v2.0.0.rc1 docker image and have uploaded the keys to the supra-nodeops-data repository, please make sure that the same smr_private_key.pem and smr_public_key.json files are located under the [Local Full Path To store configs] path and skip to the Keypair Activation (Step 2.3) below:
Key pair Generation
Create a new key pair using the following command:
Create a strong password, then confirm the password to encrypt the secret key.
The generated key-pair information (smr_private_key.pem and smr_public_key.json) will be located on your local machine under the [Local Full Path To store configs] path
Uploading keys to Supra’s supra-nodeops-data repository:
Create a branch in supra-nodeops-data repo with your team name.
Create a folder under round_3 release with [teamname_your_node_public_ip]
e.g. supra_35.102.53.124
Paste your [Local Full Path To store configs]/smr_public_key.json inside that folder.
Push the public key in the remote origin branch on the supra-nodeops-data repo.
Please create a PR and notify Supra’s team to merge your PR.
Once all the operators have provided their details, Supra’s team will then be able to generate the `dkgs_definition.json` and provide it to you for step 4 completion.
NOTE: You can refer to the sample folder in the supra-nodeops-data repository.
NOTE: Please create a backup of your private keys and secure them according to best practices.
Key pair Activation
List the key pair (for your reference) using the following command:
Activate the key pair using the following command:
Step 3: Add smr_settings.toml
Open any preferred editor
Copy the following content to the file
update <YOUR_PUBLIC_IP> with respective public-ip information of your node
Save it with the file name as smr_settings.toml
store it in your [Local Path to Store Configs], which will be mounted on SUPRA_HOME to the Docker container in Step 2.
NOTE: The `smr_settings.toml` file is also present in the supra-nodeops-data repository for reference.
Step 4: Setup DKGs configuration
You can download script prepare_dkgs_defiinition.sh by running the below command, and save the script in the current working directory (although location doesn’t matter), which will be used to dump the dkgs_definition.json file and have it copied into the specified docker container.
Ensure you’ve installed prerequisites `wget`, `shasum` and `jq` as per your OS distributions.
Run the script to dump and copy the dkgs_definition.json into your container.
During the script's execution, you will be asked to specify the docker container name to which the dkgs_definition.json will be injected.
An example output for a successful run:
Step 5: Node Monitoring and logging configuration.
Prerequisites:
Each node-operator’s mail should be invited into the Grafana Dashboard. If not, please request the Supra team to add your respective email to grant access to your dashboard.
For Centos/Amazon Linux:
Download the script with the following command.
Change permission for the script file to be executable using the below command.
For Ubuntu/Debian Linux:
Change permission for the script file to be executable using the below command.
Change permission for the script file to be executable using the below command.
Run the script file with sudo privileges. Please use the file name according to your Linux Distribution. While running the script, you may be prompted to enter the log path. Please enter the whole log path as a value, which is [Local Full Path To store configs]/validator_logs/supra.log. After that, provide an email to which you want dashboard access.
An example output for a successful run:
This script will configure the Promtail agent and node_exported agent to push logs and metrics to the newly created dashboard on https://monitoring.services.supra.com/ for the respective node operators.
Once it runs successfully, please provide url or folderUid received in the output as shown in the above example and inform the Supra team’s Operations member through the Supra Testnet Communication Channel, so that we can grant you the corresponding role in Grafana to visualize your logs dashboard and Node metrics. NOTE: Until now, you have successfully configured your node. Please proceed to below step to join the supra network.
Step 6: Start your node to join the supra network
Watch for instructions on Supra Testnet Communication Channel to know when to start your validator node.
When instructed, start your node using the command below in your terminal:
NOTE: If you receive any errors while starting the node, please share log files and history files with our team over the Supra Testnet Communication Channel. The files are located under the [Local Full Path To store configs]
Step 7: Identifying Successful Onboarding
Please make sure the following keywords are present in the logs. You can use a text editor or a command line tool to search the logs.
Consensus check:
If present, this indicates that your node has successfully joined the network and is moving along with the consensus rounds.
Block production check:
This indicates that your node is producing blocks along with the network and has successfully onboarded.
Step 8: Install the Chrome Extension Wallet
Obtain the extension from a Supra team member.
Extract the extension package
Open Chrome->Settings->Extensions
Click “Load Unpacked" (top-left corner)
Select the folder where the extension has been unpacked
Step 9: Create a Wallet Address
Open the installed Chrome extension.
Follow the instructions to create a new wallet.
Write down and securely store the mnemonic phrase provided. This phrase is essential for recovering your wallet down the road.
Step 10: Collect Test Tokens from the DevNet Faucet
Wallet Interface:
Select SUPRA network from the list of the networks in the wallet.
Click on the Collect button to collect tokens.
Swagger Interface:
Access our Faucet API documentation via the following link: https://rpc-devnet.supraoracles.com/docs/#/Wallet/faucet
Experiment with the API endpoint by inputting your wallet address and requesting tokens.
To keep track of your wallet balance, refer to the Balance API Documentation found here: https://rpc-devnet.supraoracles.com/docs/#/Accounts/balance.
Troubleshooting and Support
If you encounter any issues, please feel free to contact us on our Discord channel.
Conclusion
Thank you for participating as a node operator in the Supra ecosystem. We sincerely appreciate your contribution to the strength and security of our network.
Last updated