{"id":22886609,"url":"https://github.com/zenodeapp/cosmos-utils","last_synced_at":"2026-05-16T17:13:39.625Z","repository":{"id":217271270,"uuid":"743391447","full_name":"zenodeapp/cosmos-utils","owner":"zenodeapp","description":"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.","archived":false,"fork":false,"pushed_at":"2024-01-23T11:19:30.000Z","size":92,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-31T18:47:49.832Z","etag":null,"topics":["blockchain","cometbft","cosmos-sdk","maintenance","node","tendermint","utilities","utils","validator","wrapper"],"latest_commit_sha":null,"homepage":"https://zenode.app","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zenodeapp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null},"funding":{"github":["zenodeapp"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":["https://zenode.app/support"]}},"created_at":"2024-01-15T06:11:12.000Z","updated_at":"2024-02-05T21:21:39.000Z","dependencies_parsed_at":"2024-01-23T12:42:29.567Z","dependency_job_id":null,"html_url":"https://github.com/zenodeapp/cosmos-utils","commit_stats":{"total_commits":70,"total_committers":1,"mean_commits":70.0,"dds":0.0,"last_synced_commit":"007c719b556d5234eb98b954db272b1c65f982a8"},"previous_names":["zenodeapp/cosmos-utils"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/zenodeapp/cosmos-utils","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zenodeapp%2Fcosmos-utils","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zenodeapp%2Fcosmos-utils/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zenodeapp%2Fcosmos-utils/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zenodeapp%2Fcosmos-utils/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zenodeapp","download_url":"https://codeload.github.com/zenodeapp/cosmos-utils/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zenodeapp%2Fcosmos-utils/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33111506,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-16T04:41:52.686Z","status":"ssl_error","status_checked_at":"2026-05-16T04:41:52.009Z","response_time":115,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blockchain","cometbft","cosmos-sdk","maintenance","node","tendermint","utilities","utils","validator","wrapper"],"created_at":"2024-12-13T20:19:29.509Z","updated_at":"2026-05-16T17:13:39.610Z","avatar_url":"https://github.com/zenodeapp.png","language":"Shell","funding_links":["https://github.com/sponsors/zenodeapp","https://zenode.app/support"],"categories":[],"sub_categories":[],"readme":"# Cosmos Utilities\n\nThis 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.\n\nThis has been written by ZENODE and is licensed under the MIT-license (see [LICENSE](./LICENSE)).\n\n\u003e [!NOTE]\n\u003e If you wish to incorporate this into your own repository, see: [.install/README.md](./.install/README.md).\n\n## /backup\n\n### [create.sh](./backup/create.sh)\n\nThis script creates a backup for the current node-setup, if one existed.\n\n```\nsh backup/create.sh [backup_dir_path]\n```\n\n\u003e _[backup_dir_path]_ is optional (defaults: to a directory in the $HOME folder with a _unique_ name based on the system's current time).\n\n## /fetch\n\n### [peers.sh](./fetch/peers.sh)\n\nThis script fetches the (most recent) seeds and peers for the chain-id configured in the [\\_variables.sh](./_variables.sh) file and adds it to the `seeds` and `persistent_peers` fields in the config.toml file residing in the node's directory.\n\n```\nsh fetch/peers.sh\n```\n\n### [rpcs.sh](./fetch/rpcs.sh)\n\nThis script fetches the (most recent) rpc_servers (state sync) for the chain-id configured in the [\\_variables.sh](./_variables.sh) file and adds it to the `rpc_servers` field in the config.toml file residing in the node's directory.\n\n```\nsh fetch/rpcs.sh\n```\n\n### [state.sh](./fetch/state.sh)\n\nThis script fetches the (most recent) `genesis.json` file for the chain-id configured in the [\\_variables.sh](./_variables.sh) file and places it inside of the /config-folder residing in the node's directory.\n\n```\nsh fetch/state.sh\n```\n\n## /info\n\n### [my-peer.sh](./info/my-peer.sh)\n\nThis 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.\n\nBear 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.\n\n```\nsh info/my-peer.sh\n```\n\n\u003e Add a --local flag to echo a local IP address, instead of your (public) external address.\n\n## /key\n\n### [create.sh](./key/create.sh)\n\nThis script creates a _new_ key (or prompts to overwrite one if the _alias_ already exists).\n\n```\nsh key/create.sh \u003ckey_alias\u003e\n```\n\n### [import.sh](./key/import.sh)\n\nThis script imports an _existing_ key using the provided _private Ethereum key_.\n\n```\nsh key/import.sh \u003ckey_alias\u003e \u003cprivate_eth_key\u003e\n```\n\n## /service\n\n### [install.sh](./service/install.sh)\n\nThis 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](./_variables.sh) to see which service gets installed.\n\n```\nsh service/install.sh\n```\n\n### [uninstall.sh](./service/uninstall.sh)\n\nThis script uninstalls the daemon as a service. See the `$SERVICE_FILE` variable in [\\_variables.sh](./_variables.sh) to see which service gets uninstalled.\n\n```\nsh service/uninstall.sh\n```\n\n## /tools\n\n### [restate-sync.sh](./tools/restate-sync.sh)\n\n\u003e [!CAUTION]\n\u003e Only use this if the network your node is connected to supports state-sync!\n\nThis 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`](https://github.com/zenodeapp/restate-sync/tree/v1.0.1) repository (`v1.0.1`). If in doubt whether this is safe, you could always check the repository to see how it works.\n\n```\nsh tools/restate-sync.sh [height_interval] [rpc_server_1] [rpc_server_2]\n```\n\n\u003e [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).\n\u003e\n\u003e [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.\n\u003e\n\u003e [rpc_server_2] is optional (default: rpc_server_1).\n\n\u003e [!NOTE]\n\u003e Leaving the _\u003crpc_server\u003e_-arguments empty will leave the rpc_servers field in your config.toml untouched.\n\n### [port-shifter.sh](./tools/port-shifter.sh)\n\nThis 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`](https://github.com/zenodeapp/port-shifter/tree/v1.0.1) repository (`v1.0.1`). If in doubt whether this is safe, you could always check the repository to see how it works.\n\n```\nsh tools/port-shifter.sh \u003cport_increment_value\u003e\n```\n\n\u003e \u003cport_increment_value\u003e is how much you would like to increment the value of the ports based on the default port values.\n\n\u003c/br\u003e\n\n\u003cp align=\"right\"\u003e— ZEN\u003c/p\u003e\n\u003cp align=\"right\"\u003eCopyright (c) 2024 ZENODE\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzenodeapp%2Fcosmos-utils","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzenodeapp%2Fcosmos-utils","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzenodeapp%2Fcosmos-utils/lists"}