Installation

Prerequisites

Programs and applications

curl: You will need curl for fetching the external IP and interacting with various web services. Ensure every team member has it installed and configured properly on their local systems.

git: Essential for version control and collaboration, git allows the team to clone necessary repositories and manage code changes effectively. Make sure all team members have git installed and are familiar with its basic commands.

text editor: Your choice of Vim, Nano, or whatever you are used to using as you will need to make updates to file.

Permissions

Each team member will need sudo privileges to install system packages and perform various secure operations on their machines. This is crucial for maintaining the security and integrity of your development environment.

Each member must have an SSH key set up and linked to their GitHub account for secure repository access. This is essential for cloning private repositories and contributing to your projects securely.

If the team needs to access our private Git repository, please ensure each member has their SSH private key configured correctly. This involves generating an SSH key if they haven't already, adding it to their GitHub account, and ensuring it's accessible to their SSH agent.

If necessary, we can organize a session to assist anyone who hasn't set up their SSH keys or is unfamiliar with the process. It's crucial that everyone can access our repositories without any issues.

Network

Public static IP

Open Ports:

22: SSH (Secure Shell) protocol 26656: Cosmos app CometBFT gossiping port for consensus 26657: Cosmos app CometBFT RPC port 9090: Cosmos app gRPC port 5051: TSS-ECDSA P2P port 5052: TSS-EDDSA P2P port 5053: TSS app EDDSA (Solana chain signer) gossiping port 8081: TSS-ECDSA info address 8082: TSS-ECDSA info address 7070: Cosmos validator management on genesis node port

Initial setup:

Download scripts from the Github repository to your server using any convenient method. git clone git@github.com:kima-finance/kima-external-validator.git

Prepare the scripts:

Make the files executable with: sudo chmod +x setup-validator.sh sudo chmod +x update-config.sh sudo chmod +x run-validator.sh

Prepare the environment:

cd into the validator directory.

Create a new empty .env file: Use the touch command to create a new empty file named .env.

Copy

`touch .env`

Copy the contents of .env.template to .env:

If .env already exists, this will overwrite it, so be sure you want to do this.

Copy

`cp .env.template .env`

Edit the .env file with your preferred text editor to add the path to your SSH key:

Copy

`SSH_PRIVATE_KEY_PATH="/home/yourusername/.ssh/id_rsa"`

Replace /home/yourusername/.ssh/id_rsa with the actual path to your SSH key. Save and exit

Add the blockchain networks configuration

Also in the .env file, you will need to add configuration details for each blockchain network you intend to connect with. This includes RPC and WSS endpoints, for example:

Copy

`ETH_RPC_HOST="https://mainnet.infura.io/v3/YOUR_INFURA_API_KEY"`
`ETH_WSS_HOST="wss://sepolia.infura.io/ws/v3/ YOUR_INFURA_API_KEY"`

Replace "https://mainnet.infura.io/v3/YOUR_INFURA_API_KEY" and "https://bsc-dataseed1.binance.org" with the actual network URLs and your API keys or relevant connection details. Again, save your changes and exit your text editor.

For Testnet API keys, you can consider services like Alchemy, QuickNode, and Ankr as alternatives to Infura, providing support for various chains including Ethereum, Polygon, AVAX, BSC, Arbitrum, Optimism, Solana, and Tron.

See the for details of how to acquire testnet API keys and network urls from these services.

Additionally, each blockchain's official documentation may offer public testnet endpoints or other API services suitable for development and testing purposes. Note that these may change, so always make sure you are consulting the latest version of the documentation

Remember, these are templates, and you might need to adjust paths, keys, and configuration details based on your specific environment and requirements.

Execute the first script:

Run: ./setup-validator.sh <validator-node-name>

This script installs all necessary components and starts the software installation process.

After successful installation, the status will look like this:

Your node will now synchronise with the blockchain network. This might take some time. Monitor the progress:

Copy

watch -n 1 'kimad status | jq .SyncInfo'

You should see something like this:

Once synchronization is complete, your screen should look like this:

Execute the second script:

This is the final step. Run: ./run-validator.sh

This will complete the validation node setup. Upon successful completion, you will become a validator for the Kima Network blockchain.

Last updated