KonsorTech
  • Mainnet
    • 8ball
      • public_endpoint
      • State Sync
      • validator
    • Acre
      • public_endpoint
      • Snapshots
      • State Sync
      • validator
    • Arkhadian
      • public_endpoint
      • Snapshot
      • State Sync
      • validator
    • Atomone
      • public_endpoint
      • Snapshot
      • State Sync
      • validator
    • Aura
      • public_endpoint
      • Daily Snapshot (Every 12 Hours)
      • State Sync
      • validator
      • Aura Decentralization Maps
    • Bitcanna
      • Node Geographical Locations
      • public_endpoint
      • Daily Snapshot (Every 6 Hours)
      • State Sync
      • validator
      • Bitcanna Decentralization Maps
      • Upgrade
    • Blockx
      • Custom Explorers
      • public_endpoint
      • Snapshot
      • State Sync
      • validator
    • Bluzelle
      • public_endpoint
      • Snapshot
      • State Sync
    • Composable
      • validator
    • Crossfi
      • publilc_endpoint
      • Snapshot
      • State Sync
      • validator
    • Decentr
      • public_endpoint
      • State Sync
      • validator
    • Echelon
      • public_endpoint
      • State Sync
      • validator
    • Empower
      • public_endpoint
      • State Sync
      • validator
    • Entangle
      • public_endpoint
      • Snapshot
      • Statesync
      • validator
    • Gitopia
      • public_endpoint
      • Daily Snapshot (Every 6 Hours)
      • State Sync
      • validator
    • Gravity-Bridge
    • Haqq
      • Custom Explorers
      • Public Endpoint
      • Snapshot
      • State Sync
      • validator
    • Humans
      • Custom Explorers
      • public_endpoint
      • Snapshot
      • State Sync
      • validator
    • Irisnet
      • public_endpoint
      • Daily Snapshot
      • Statesync
      • validator
    • KYVE
      • public_endpoint
      • State Sync
      • validator
    • Lambda
      • public_endpoint
      • State Sync
      • validator
    • LumenX
      • public_endpoint
      • Daily Snapshot
      • State Sync
      • validator
    • How to Run Massa Node
    • Mises
      • public_endpoint
      • State Sync
      • validator
    • Mun
      • public_endpoint
      • Daily Snapshot (Every 12 Hours)
      • Statesync
      • validator
    • NEAR
      • How to update near mainnet node
    • Neutaro
      • public_endpoint
      • Snapshot
      • State Sync
      • validator
    • Nibiru
      • public_endpoint
      • State Sync
      • validator
    • Nolus
      • public_endpoint
      • Snapshot Every 6 Hourse
      • State Sync
      • validator
    • Odin-Freya
      • public_endpoint
      • State Sync
      • validator
    • Orai
      • Custom Explorers
      • Public Endpoint
      • Snapshot
      • State Sync
      • Update to ASA-2024-007 security patch For Non Docker Users and Non Cosmovisor
      • validator
    • Planq
      • public_endpoint
      • Daily Snapshot
      • State Sync
      • validator
      • Upgrade
        • v1.0.3
    • Pointnetwork
      • public_endpoint
      • Snapshot
      • State Sync
      • validator
    • Quicksilver
      • Custom Explorer
      • public_endpoint
      • Snapshot
      • State Sync
      • validator
    • Realio
      • public_endpoint
      • Daily Snapshot (Every 12 Hours)
      • State Sync
      • validator
    • Seda
      • Public Endpoints
      • Snapshot
      • State Sync
      • validator
    • Selfchain
      • Public Endpoints
      • Snapshot
      • State Sync
      • validator
    • Sge
      • Public Endpoint
      • Snapshot
      • Statesync
      • validator
    • Terp
      • public_endpoint
      • State Sync
      • validator
    • Umee
      • State Sync
    • Uptick
      • Public Endpoint
      • Daily Snapshot (Every 12 Hours)
      • State Sync
      • validator
      • Uptick Decentralization Maps
    • Vidulum
      • public_endpoint
      • State Sync
      • validator
  • Testnet
    • 0g
      • Public Endpoints
      • Snapshot
      • State Sync
      • validator
    • Airchains
      • Public Endpoints
      • Snapshot
      • State Sync
      • validator
    • Andromeda
      • public_endpoint
      • State Sync
      • validator
    • Arkeo
      • validator
    • Artela
      • public_endpoint
      • Snapshot
      • State Sync
      • validator
    • Atomone
      • public_endpoint
      • Snapshot
      • State Sync
      • validator
    • Aura
      • public_endpoint
      • State Sync
      • validator
    • Bitcanna
      • public_endpoint
      • Daily Snapshot (Every 6 Hours)
      • State Sync
      • validator
      • upgrade
    • Blockx
      • Custom Explorers
      • public_endpoint
      • State Sync
      • validator
    • Bonus-block
      • public_endpoint
      • State Sync
      • validator
    • Celestia
      • Usefull CLI guide for celestia light node
    • Coreum
      • public_endpoint
      • State Sync
    • Crossfi
      • public_endpoint
      • Snapshot
      • State Sync
      • validator
    • Defund
      • public_endpoint
      • State Sync
      • validator
    • Empeiria
      • Public Endpoints
      • Snapshot
      • State Sync
      • validator
    • Empower
      • public_endpoint
      • State Sync
      • validator
    • Entangle
      • public_endpoint
      • Snapshot
      • validator
    • Gitopia
      • public_endpoint
      • State Sync
      • validator
    • Haqq-network
      • public_endpoint
      • State Sync
      • validator
    • Hedge
      • public_endpoint
      • Snapshot
      • State Sync
      • validator
    • Humans
      • public_endpoint
      • Snapshot
      • State Sync
      • validator
      • Friction-Testnet
        • validator
        • Task
          • Mission-2
            • Restart
              • Restart 1 - Sun May 14 2023 5:03PM UTC
              • Restart 2 - Sun May 14 2023 5:43PM UTC
              • Restart 3 - Sun May 14 2023 6:52PM UTC
    • Hypersign
      • public_endpoint
      • Snapshot
      • State Sync
      • validator
    • Initia
      • Public Endpoints
      • Snapshot
      • State Sync
      • validator
    • MUN
      • public_endpoint
      • Snapshot
      • State Sync
      • validator
    • Mande
      • public_endpoint
      • State Sync
      • Introducing Mande Network’s Incentivized Testnet-2
    • Mantra
      • Custom Explorers
      • Public Endpoints
      • Snapshot
      • State Sync
      • validator
      • Mantra Testnet Decentralization Maps
    • Mars
      • public_endpoint
      • State Sync
      • validator
    • Namada
      • CLI for Namada
      • pre-genesis
      • public_enpoint
      • Snapshot
      • Upgrade Namada
    • Neutron
      • Tendermint_KMS
    • Nibiru
      • public_endpoint
      • State Sync
      • validator
    • Nolus
      • public_endpoint
      • Snapshot
      • State Sync
      • validator
      • Upgrade
    • Noria
      • public_endpoint
      • validator
    • Worker Installation
    • Ollo
      • public_endpoint
      • State Sync
    • Pryzm
      • Custom Explorer
      • How To Install & Run Pryzm Pricefeeder
      • Public Endpoint
      • Snapshot
      • State Sync
      • validator
    • Quicksilver
      • Custom Explorer
      • Public Endpoint
      • State Sync
      • validator
    • Realio
      • public_endpoint
      • State Sync
      • validator
    • Selfchain
      • Custom Explorers
      • public_endpoint
      • Snapshot
      • State Sync
      • validator
    • Sge
      • Public Endpoint
      • Statesync
      • validator
    • Side
      • public_endpoint
      • Snapshots
      • State Sync
      • validator
    • Swisstronik
      • public_endpoint
      • Snapshot
      • State Sync
      • validator
    • Symphony
      • Public Endpoints
      • Snapshot
      • State Sync
      • validator
    • Terra-goa
      • upgrade
    • TimpiTN
      • public_endpoint
      • validator
    • Union
      • public_endpoint
      • Snapshot
      • State Sync
      • validator
    • Uptick
      • public_endpoint
      • State Sync
      • validator
      • Automatic upgrade
    • Warden
      • public_endpoint
      • State Sync
      • validator
    • XRPLEVM
      • Public Endpoints
      • Snapshot
      • State Sync
      • validator
    • impact-protocol
    • q-blockchain
    • sui-guide
      • docker
    • Composable
      • Testnet-2
        • validator
      • Testnet-3
        • validator
Powered by GitBook
On this page
  • Neutron Create Validator High Availability with Tendermint KMS
  • Run Your Full Node and Create Validator First
  • Prerequisites
  • Install All Dependencies
  • Install & Setup TMKMS
  • Copy your validator keys from Your Node Server
  • import validator key into tmkms
  • Config tmkms to Neutron Testnet Chain ID
  • Create Service for TMKMS
  • Access and Modify Your Config Node and Validator
  • How To Check Result
  1. Testnet
  2. Neutron

Tendermint_KMS

PreviousNeutronNextNibiru

Last updated 2 years ago

Create Validator High Availability with Tendermint KMS

is Key Management System for Tendermint applications such as Cosmos Validators. This repository contains tmkms, a key management service intended to be deployed in conjunction with Tendermint applications (ideally on separate physical hosts) which provides the following:

  • High-availability access to validator signing keys

  • Double-signing prevention even in the event the validator process is compromised

  • Hardware security module storage for validator keys which can survive host compromise

So lets start to begin.

Prerequisites

We recommended you to run KMS service in a separate machine. Becasue this service work for just in case if your another validators down, you have a backup validator.

Hardware
Chunk-Only Producer Specification

OS

Linux Ubuntu 20.04

CPU Architectures

X86_64

Install All Dependencies

Rust

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env

GCC

sudo apt update -y
sudo apt install git build-essential ufw curl jq snapd -y

Libusb

apt install libusb-1.0-0-dev
export RUSTFLAGS=-Ctarget-feature=+aes,+ssse3

Install & Setup TMKMS

cd $HOME
git clone https://github.com/iqlusioninc/tmkms.git
cd $HOME/tmkms
cargo install tmkms --features=softsign
tmkms init config
tmkms softsign keygen ./config/secrets/secret_connection_key

Copy your validator keys from Your Node Server

rsync -Pavz root@(your_node_ip):~/.neutrond/config/priv_validator_key.json ~/tmkms/config/secrets

Change your_node_ip with your Node Public IP Address.

import validator key into tmkms

tmkms softsign import $HOME/tmkms/config/secrets/priv_validator_key.json $HOME/tmkms/config/secrets/priv_validator_key

Config tmkms to Neutron Testnet Chain ID

nano $HOME/tmkms/config/tmkms.toml
# Tendermint KMS configuration file

## Chain Configuration

### Cosmos Hub Network

[[chain]]
id = "quark-1"
key_format = { type = "cosmos-json", account_key_prefix = "neutronpub", consensus_key_prefix = "neutronvalconspub" }
state_file = "/root/tmkms/config/state/priv_validator_state.json"

## Signing Provider Configuration

### Software-based Signer Configuration

[[providers.softsign]]
chain_ids = ["quark-1"]
key_type = "consensus"
path = "/root/tmkms/config/secrets/priv_validator_key"

## Validator Configuration

[[validator]]
chain_id = "quark-1"
addr = "tcp://(your_node_ip):688" # your validator node ip and port
secret_key = "/root/tmkms/config/secrets/secret_connection_key"
protocol_version = "v0.34"
reconnect = true

Create Service for TMKMS

sudo tee /etc/systemd/system/tmkms.service > /dev/null <<EOF
[Unit]
Description=tmkms
After=network-online.target

[Service]
User=$USER
ExecStart=$(which tmkms) start -c $HOME/tmkms/config/tmkms.toml
Restart=on-failure
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF

Access and Modify Your Config Node and Validator

nano $HOME/.neutrond/config/config.toml

Add into config.toml

priv_validator_laddr = "tcp://0.0.0.0:688"

Comment or remark this

# Path to the JSON file containing the private key to use as a validator in the consensus protocol
# priv_validator_key_file = "config/priv_validator_key.json"

# Path to the JSON file containing the last sign state of a validator
# priv_validator_state_file = "data/priv_validator_state.json"

Restart Neutrond Services

systemctl restart neuntrond && sudo journalctl -u neuntrond -f -o cat

Go back to your KMS Server and start tmkms service

sudo systemctl daemon-reload
sudo systemctl enable tmkms
sudo systemctl restart tmkms && sudo journalctl -u tmkms -f -o cat

Congrats, You should now be signing blocks! If you cancel the TMKMS process, you will no longer sign blocks and will stop syncing. If you restart the TMKMS process, your validator node will continue to sync from where it left off.

How To Check Result

Check on Your Node Validator Server, if that showing your Address and Pubkey that Successfully

neutrond status 2>&1 | jq .ValidatorInfo

Check On Tendermint KMS Server, find and search this "state connected to validator successfully" after you start kms services

journalctl -u tmkms -f -o cat
Neutron
Terndermint KMS
Run Your Full Node and Create Validator First