📡 TMKMS for Remote Signing

TMKMS (Tendermint Key Management System) is a key management system used in blockchain-based ecosystems like Cosmos. The primary purpose of TMKMS is to provide secure storage and management of cryptographic keys, which are used by validators to sign blocks in decentralized networks.

Update the system

sudo apt update && sudo apt upgrade -y

Install Rust and the necessary libraries

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env
sudo apt install build-essential pkg-config libssl-dev -y

Install TMKMS

git clone https://github.com/iqlusioninc/tmkms.git $HOME/tmkms
cd $HOME/tmkms
git checkout v0.15.0
 
cargo build --release --features=softsign 
cargo install tmkms --features=softsign

Check the TMKMS version

tmkms version

Initialize TMKMS

mkdir -p $HOME/.tmkms/<chain-id>
tmkms init $HOME/.tmkms/<chain-id>

The command will create the necessary configuration files and keys, and you will receive output similar to the following:

Import the validator key

If you need to use an existing validator key, copy its file to the TMKMS server. Make sure the file is in the correct location:

Import the key into TMKMS

After a successful import, it is recommended to delete the original file for security:

Configuring the validator

On the validator side, open the necessary port for remote connection. For example, if the validator uses port 26658, edit the configuration file config.toml (or the equivalent file for your network):

Configuring TMKMS

On the TMKMS server, edit the tmkms.toml configuration file that was created during the initialization stage. Open it for editing:

Example of a minimal configuration for the network:

Сreate a service

Starting TMKMS

Check the service status

Check the logs

Configuring the firewall

Configuring the firewall for the validator server:

Configuring the firewall for the TMKMS server:

Now your TMKMS is configured and ready to work with remote signing in the blockchain network.

Last updated