VIPER

Viper Node Setup Guide

Welcome to the Viper Node Setup Guide! This comprehensive walkthrough will assist you in configuring your server to run a Viper node, enabling you to participate in the network.

Hardware Requirements

4 CPUs (or vCPUs)
8 GB RAM
100 GB Disk

Prerequisites

  • Configure your DNS if you have a domain.

Login with SSH

replace mynode.vipernet.xyz with your own DNS name or IP address

Set Hostname

  1. Open the /etc/hostname file with the nano editor:

  1. Change the localhost value to your Hostname, e.g., mynode.vipernet.xyz

  2. Save the file and exit the editor (press Ctrl+O, Enter, Ctrl+X).

  3. Reboot the server:

Create New User

  1. Create a new user named viper and add it to the sudo group:

  1. Switch to the new user:

Install Dependencies

Viper Setup

  1. Create a directory for the Vipernet network:

  1. Clone the Vipernet binaries repository:

  1. Copy the binary to /usr/local/bin/viper (replace $YOUR_ARCH_TYPE_BINARY with the actual file name, e.g., viper_linux_amd64):

Viper Configuration

  1. Create a new account:

  1. Create a validator (replace address with the address obtained from the previous command):

  1. Fund your account by requesting test tokens from the #🤑|req-tokens channel at Viper Network Discord server and wait till the tx gets included in the block (It may take a couple of mintues for the amount to reflect)

  2. Update the Tendermint configuration:

  1. Generate chains (enter the chain ID and the URLof the non-native chain node when prompted):

Enter the ID of the Viper network:

Enter the URL of the network identifier.

Enter y if you want to add non-native chains (Enter "n" for now)

For Non-Native Chains:

  • When prompted, enter the chain ID. This is a unique identifier for the blockchain network you want to service through the Viper node. For example, if you want to service the Ethereum network, you would enter the chain ID of Etherereum.

  • Next, when prompted, enter the URL of the non-native chain node you wish to service through the Viper node. This should be the RPC endpoint of the blockchain node you want to connect to.

  • Repeat steps 2 and 3 for each additional non-native chain you want to service through the Viper node.

  • Once you have entered all the required chain IDs and URLs, the command will generate the necessary configuration files for those chains within the Viper node.

  1. Generate the geozone (enter the geo ID when prompted):

  1. Change to the ~/.viper/config directory:

  1. Download the genesis file:

Increase ulimit

Create Systemd Service

  1. Create a systemd service file for the Vipernet node:

  1. Copy and paste the following content into the file:

  1. Save the file and exit the editor (press Ctrl+O, Enter, Ctrl+X).

  2. Reload the systemd daemon:

  1. Enable and start the viper.service service:

SSL Configuration

  1. Obtain an SSL certificate using Certbot (replace $HOSTNAME with your actual hostname):

Nginx Configuration

  1. Open the Nginx configuration file:

  1. Copy and paste the following content into the file (replace $HOSTNAME with your actual hostname):

  1. Save the file and exit the editor (press Ctrl+O, Enter, Ctrl+X).

  2. Stop the Nginx service:

  1. Remove the default Nginx configuration:

  1. Create a symbolic link to the new Vipernet configuration:

  1. Start the Nginx service:

UFW Configuration

  1. Enable UFW:

  1. Deny incoming traffic by default:

  1. Allow SSH:

  1. Allow HTTP:

  1. Allow HTTPS:

  1. Allow Vipernet-specific port (8081):

  1. Allow Vipernet-specific port (26656):

Stake

Stake your validator (replace addr, amount, chainIDs(comma seperated; for, e.g., 0001,0002,0003) and https://hostname:443 with your own values). When staking, you need to specify the amount in the smallest unit of VIPR, which is uVIPR. 1 VIPR is equal to 1,000,000 uVIPR. The minimum stake amount required is 10,000 VIPR, but it's recommended to stake around 11,000 VIPR.

Note: Replace hostname with your actual hostname

Last updated