Skip to content

This contains useful scripts for maintaining a Cosmos SDK based node setup. The utilities provided have an own versioning system so that those who make use of this could always pull the latest modules of interest without needing to incorporate the entire repository.

License

Notifications You must be signed in to change notification settings

zenodeapp/cosmos-utils

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

72 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cosmos Utilities

This contains useful scripts for maintaining a Cosmos SDK based node setup. The utilities provided have an own versioning system so that those who make use of this could always pull the latest modules or jump onto different versions if they wish to do so.

This has been written by ZENODE and is licensed under the MIT-license (see LICENSE).

Note

If you wish to incorporate this into your own repository, see: .install/README.md.

/backup

This script creates a backup for the current node-setup, if one existed.

sh backup/create.sh [backup_dir_path]

[backup_dir_path] is optional (defaults: to a directory in the $HOME folder with a unique name based on the system's current time).

/fetch

This script fetches the (most recent) seeds and peers for the chain-id configured in the _variables.sh file and adds it to the seeds and persistent_peers fields in the config.toml file residing in the node's directory.

sh fetch/peers.sh

This script fetches the (most recent) rpc_servers (state sync) for the chain-id configured in the _variables.sh file and adds it to the rpc_servers field in the config.toml file residing in the node's directory.

sh fetch/rpcs.sh

This script fetches the (most recent) genesis.json file for the chain-id configured in the _variables.sh file and places it inside of the /config-folder residing in the node's directory.

sh fetch/state.sh

/info

This script will print out your peer-id: node-id@ip-address:port. This is useful for sharing your node with others so that they can add you as a persistent peer.

Bear in mind that the port being echo'd is extracted from the config.toml-file. So if you start the node on a different port without explicitly stating this in the config.toml-file, then the outputted port may not represent the actual port this node uses.

sh info/my-peer.sh

Add a --local flag to echo a local IP address, instead of your (public) external address.

/key

This script creates a new key (or prompts to overwrite one if the alias already exists).

sh key/create.sh <key_alias>

This script imports an existing key using the provided private Ethereum key.

sh key/import.sh <key_alias> <private_eth_key>

/service

This script installs the daemon as a service, which will automatically start the node whenever the device reboots. See the $SERVICE_DIR and $SERVICE_FILE variables in _variables.sh to see which service gets installed.

sh service/install.sh

This script uninstalls the daemon as a service. See the $SERVICE_FILE variable in _variables.sh to see which service gets uninstalled.

sh service/uninstall.sh

/tools

Caution

Only use this if the network your node is connected to supports state-sync!

This tool recalibrates your state-sync configurations to a more recent height. WARNING: this wipes your entire data folder, but will backup and restore the priv_validator_state.json file. It uses the script(s) from the restate-sync repository (v1.0.1). If in doubt whether this is safe, you could always check the repository to see how it works.

sh tools/restate-sync.sh [height_interval] [rpc_server_1] [rpc_server_2]

[height_interval] is optional (default: 2000). This means it will set the trust_height to: latest_height - height_interval (rounded to nearest multiple of height_interval).

[rpc_server_1] is optional (default: first rpc server configured in your config.toml file). If there is no rpc server configured, the script will abort.

[rpc_server_2] is optional (default: rpc_server_1).

Note

Leaving the <rpc_server>-arguments empty will leave the rpc_servers field in your config.toml untouched.

This script is useful if you quickly want to replace the ports in the client.toml, config.toml and app.toml files. It uses the script(s) from the port-shifter repository (v1.0.1). If in doubt whether this is safe, you could always check the repository to see how it works.

sh tools/port-shifter.sh <port_increment_value>

<port_increment_value> is how much you would like to increment the value of the ports based on the default port values.


— ZEN

Copyright (c) 2024 ZENODE

About

This contains useful scripts for maintaining a Cosmos SDK based node setup. The utilities provided have an own versioning system so that those who make use of this could always pull the latest modules of interest without needing to incorporate the entire repository.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages