Skip to content

Commit 1c35241

Browse files
authored
Merge branch 'main' into dependabot/github_actions/amannn/action-semantic-pull-request-6.1.1
2 parents 299155a + 69e259e commit 1c35241

16 files changed

Lines changed: 425 additions & 45 deletions

File tree

.github/linters/mlc_config.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"aliveStatusCodes": [0, 200, 202, 206, 403, 501, 999],
2+
"aliveStatusCodes": [0, 200, 202, 206, 403, 429, 501, 999],
33
"replacementPatterns": [
44
{
55
"pattern": "\" %}",

.github/workflows/lint.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212
runs-on: ubuntu-latest
1313

1414
steps:
15-
- uses: actions/checkout@v4
15+
- uses: actions/checkout@v6
1616

1717
- name: Run Markdown link check
1818
uses: gaurav-nelson/github-action-markdown-link-check@v1
@@ -25,7 +25,7 @@ jobs:
2525
runs-on: ubuntu-latest
2626

2727
steps:
28-
- uses: actions/checkout@v4
28+
- uses: actions/checkout@v6
2929
with:
3030
fetch-depth: 0 # Required to fetch version
3131

.github/workflows/pull-request.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ jobs:
2020
runs-on: ubuntu-latest
2121

2222
steps:
23-
- uses: actions/checkout@v4
23+
- uses: actions/checkout@v6
2424

2525
- uses: amannn/action-semantic-pull-request@v6.1.1
2626
env:

SUMMARY.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,13 @@
99
* [(Alternative) Install with Docker](docs/setup-and-configure/docker.md)
1010
* [Configure cheqd node](docs/setup-and-configure/configure-cheqd-node.md)
1111
* [Configure cosmovisor](docs/setup-and-configure/cosmovisor-configuration.md)
12+
* [Configure State Sync](docs/setup-and-configure/set-up-state-sync.md)
1213
* [Command Line usage](docs/cheqd-cli/README.md)
1314
* [Manage keys](docs/cheqd-cli/cheqd-cli-key-management.md)
1415
* [Manage accounts](docs/cheqd-cli/cheqd-cli-accounts.md)
1516
* [Manage a node](docs/cheqd-cli/cheqd-cli-node-management.md)
1617
* [Make transactions](docs/cheqd-cli/cheqd-cli-token-transactions.md)
18+
* [Draft governance proposals](docs/cheqd-cli/cheqd-cli-gov-proposals-types.md)
1719
* [Use fee abstraction](docs/cheqd-cli/cheqd-cli-fee-abstraction.md)
1820

1921
## 🏦 Validator Guides
@@ -25,6 +27,7 @@
2527
* [Unjailing a jailed validator](docs/validator-guide/unjail.md)
2628
* [Move validator to a different machine](docs/validator-guide/move-validator.md)
2729
* [Backup and restore node keys with Hashicorp Vault](docs/validator-guide/backup-and-restore.md)
30+
* [Re-enable pruning and recovering node db](docs/validator-guide/reenable-pruning.md)
2831
* [Network-wide Software Upgrades](docs/upgrades/README.md)
2932
* [Upgrade Guides](docs/upgrades/upgrade-guides/README.md)
3033
* [Upgrade to v0.6.x](docs/upgrades/upgrade-guides/v0.6-upgrade.md)

architecture/adr-list/adr-005-genesis-parameters.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ Genesis consists of Tendermint consensus engine parameters and Cosmos app-specif
2222

2323
## Tendermint consensus parameters
2424

25-
Tendermint requires [genesis parameters](https://docs.cometbft.com/v0.34/core/using-cometbft#genesis) to be defined for basic consensus conditions on any Cosmos network.
25+
Tendermint requires [genesis parameters](https://docs.cometbft.com/v0.38/core/using-cometbft#genesis) to be defined for basic consensus conditions on any Cosmos network.
2626

2727
### Block parameters
2828

@@ -185,4 +185,4 @@ The parameters above were agreed separate the cheqd mainnet and testnet paramete
185185
## References
186186

187187
* [List of Cosmos modules](https://docs.cosmos.network/main/modules)
188-
* [Tendermint genesis parameters](https://docs.cometbft.com/v0.34/core/using-cometbft#genesis)
188+
* [Tendermint genesis parameters](https://docs.cometbft.com/v0.38/core/using-cometbft#genesis)

docs/build-and-networks/docker-build.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ These advanced instructions are intended for developers who want to build their
1313
1. Docker Engine v20.10.x and above (use `docker -v` to check)
1414
2. Docker Compose v2.3.x and above (use `docker compose version` to check)
1515

16-
Our Docker Compose files [use Compose v2 syntax](https://docs.docker.com/compose/compose-v2/). The primary difference in usage is that Docker Compose's new implementation uses `docker compose` commands (with a space), rather than the legacy `docker-compose` although they are supposed to be drop-in replacements for each other.
16+
Our Docker Compose files [use Compose v2 syntax](https://docs.docker.com/reference/compose-file/). The primary difference in usage is that Docker Compose's new implementation uses `docker compose` commands (with a space), rather than the legacy `docker-compose` although they are supposed to be drop-in replacements for each other.
1717

1818
### Special guidance for Mac OS running on Apple silicon (M-series chips)
1919

Lines changed: 157 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,157 @@
1+
# Using cheqd Cosmos CLI for submitting governance proposals
2+
3+
From Cosmos SDk v0.50+ versions the `gov` module provides a draft json file for all types of proposals. These json files can be generated using the `draft-proposal` subcommand present within the `gov` module.
4+
5+
```bash
6+
cheqd-noded tx gov draft-proposal
7+
Use the arrow keys to navigate: ↓ ↑ → ←
8+
? Select proposal type:
9+
▸ text
10+
community-pool-spend
11+
software-upgrade
12+
cancel-software-upgrade
13+
other
14+
```
15+
16+
It provides an interactive interface and provides a json output using user submitted information. The json file can be submitted on chain for voting using the following command:
17+
18+
```bash
19+
cheqd-noded tx gov submit-proposal [path/to/proposal.json]
20+
--from <key-name> \
21+
--chain-id cheqd-mainnet-1 \
22+
--gas auto \
23+
--gas-adjustment 1.4 \
24+
--gas-prices 5000ncheq
25+
```
26+
27+
## Examples of `proposal.json` for a few commonly submitted proposal types
28+
29+
### 1) Text proposals
30+
31+
```bash
32+
{
33+
"metadata": "ipfs://CID",
34+
"deposit": "8000000000000ncheq",
35+
"title": "<proposal_title>",
36+
"summary": "<proposal_description>",
37+
"expedited": false
38+
}
39+
```
40+
41+
The main parameters here are:
42+
43+
- `proposal_title` - name of the proposal.
44+
- `proposal_description` - proposal description; limited to 255 characters; you can use json markdown to provide links.
45+
46+
### 2) Community Pool Spend
47+
48+
```bash
49+
{
50+
"messages": [
51+
{
52+
"@type": "/cosmos.distribution.v1beta1.MsgCommunityPoolSpend",
53+
"authority": "cheqd10d07y265gmmuvt4z0w9aw880jnsr700j5ql9az",
54+
"recipient": "<recipient_address>",
55+
"amount": [
56+
{
57+
"denom": "ncheq",
58+
"amount": "<amount>"
59+
}
60+
]
61+
}
62+
],
63+
"metadata": "ipfs://CID",
64+
"deposit": "8000000000000ncheq",
65+
"title": "<proposal_title>",
66+
"summary": "<proposal_description>",
67+
"expedited": false
68+
}
69+
```
70+
71+
The main parameters here are:
72+
73+
- `proposal_title` - name of the proposal.
74+
- `proposal_description` - proposal description; limited to 255 characters; you can use json markdown to provide links.
75+
- `recipient_address`- cheqd address to which the community pool tokens should be sent.
76+
- `amount` - amount of tokens to be sent to the recipient address.
77+
78+
### 3) Software upgrade
79+
80+
```json
81+
{
82+
"messages": [
83+
{
84+
"@type": "/cosmos.upgrade.v1beta1.MsgSoftwareUpgrade",
85+
"authority": "cheqd10d07y265gmmuvt4z0w9aw880jnsr700j5ql9az",
86+
"plan": {
87+
"name": "<proposal_name>",
88+
"time": "0001-01-01T00:00:00Z",
89+
"height": "<upgrade_height>",
90+
"info": "<upgrade_info>",
91+
"upgraded_client_state": null
92+
}
93+
}
94+
],
95+
"metadata": "ipfs://CID",
96+
"deposit": "8000000000000ncheq",
97+
"title": "<proposal_title>",
98+
"summary": "<proposal_description>",
99+
"expedited": false
100+
}
101+
```
102+
103+
The main parameters here are:
104+
105+
- `proposal_title` - name of the proposal.
106+
- `proposal_name` - name of proposal which will be used in `UpgradeHandler` in the new application,
107+
- `proposal_description` - proposal description; limited to 255 characters; you can use json markdown to provide links.
108+
- `upgrade_height` - height when upgrade process will be triggered. Keep in mind that this needs to be after voting period has ended.
109+
- `upgrade_info` - link to the upgrade info file, containing new binaries. Needs to contain sha256 checksum. See example - `https://raw.githubusercontent.com/cheqd/cheqd-node/refs/heads/main/networks/mainnet/upgrades/upgrade-v3.json?checksum=sha256:5989f7d5bca686598c315eb74e8eb507d7f9f417d71008a31a6b828c48ce45eb`
110+
- `operator_alias` - alias of a key which will be used for signing proposal.
111+
- `<chain_id>` - identifier of chain which will be used while creating the blockchain.
112+
113+
### 4) IBC Recover Client
114+
115+
```bash
116+
{
117+
"messages": [
118+
{
119+
"@type": "/ibc.core.client.v1.MsgRecoverClient",
120+
"subject_client_id": "<expired_client-id>",
121+
"substitute_client_id": "<new_client-id>",
122+
"signer": "prop_submitter_address>"
123+
}
124+
],
125+
"metadata": "ipfs://CID",
126+
"deposit": "8000000000000ncheq",
127+
"title": "<proposal_title>",
128+
"summary": "<proposal_description>",
129+
"expedited": false
130+
}
131+
```
132+
133+
The main parameters here are:
134+
135+
- `proposal_title` - name of the proposal.
136+
- `proposal_description` - proposal description; limited to 255 characters; you can use json markdown to provide links.
137+
- `expired_client_id` - IBC client id of the expired connection.
138+
- `new_client_id` - IBC client id of the replacement connection.
139+
- `prop_submitter_address` - Cheqd address of the user who will submit the proposal.
140+
141+
## Expedited Proposals
142+
143+
Cosmos SDK v0.50+ also added support for **expedited proposals**. Expedited proposals have shorter a voting period and a higher tally threshold by default. If an expedited proposal fails to meet the threshold within the shorter voting period, it is then automatically converted to a regular proposal and restarts voting under regular voting conditions.
144+
145+
### Submitting expedited proposals
146+
147+
Any and all proposals can be submitted as expedited proposals by switching the `expedited` field to `true` in proposal.json file. Eg;-
148+
149+
```bash
150+
{
151+
"metadata": "ipfs://CID",
152+
"deposit": "8000000000000ncheq",
153+
"title": "<proposal_title>",
154+
"summary": "<proposal_description>",
155+
"expedited": true
156+
}
157+
```

docs/setup-and-configure/README.md

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ Alternatively, if you want to manage network upgrades manually, you can also opt
1616
>
1717
> This document specifies the CPU/RAM requirements, firewall ports, and operating system requirements for running cheqd-node.
1818
19-
The interactive installer is written in **Python 3** and is designed to work on **Ubuntu Linux 20.04 LTS** systems. The script has been written to work pre-installed Python 3.x libraries generally available on Ubuntu 20.04.
19+
The interactive installer is written in **Python 3** and is designed to work on **Ubuntu Linux 24.04 LTS** systems. The script has been written to work pre-installed Python 3.x libraries generally available on Ubuntu 24.04.
2020

2121
### Software installed by installer
2222

@@ -81,13 +81,13 @@ All the questions specify the default answer/value for that question in square (
8181
Binary release version to install, automatically fetched from Github. The first release displayed in the list will always be the latest stable version. Other versions displayed below it are pre-release/beta versions.
8282

8383
```text
84-
Latest stable cheqd-noded release version is Name: v1.3.0
84+
Latest stable cheqd-noded release version is Name: v4.1.4
8585
List of cheqd-noded releases:
86-
1. v1.3.0
87-
2. v1.4.0-develop.1
88-
3. v1.3.1-develop.1
89-
4. v1.3.0-develop.3
90-
5. v1.3.0-develop.2
86+
1. v4.1.4
87+
2. v4.1.4-develop.1
88+
3. v4.1.3
89+
4. v4.1.3-develop.1
90+
5. v4.1.2
9191
Choose list option number above to select version of cheqd-node to install [default: 1]:
9292
```
9393

@@ -112,6 +112,7 @@ The next few questions are used to configure Cosmovisor-related options. Read [a
112112
1. `Install cheqd-noded using Cosmovisor? (yes/no) [default: yes]`: Use Cosmovisor to run node
113113
2. `Do you want Cosmovisor to automatically download binaries for scheduled upgrades? (yes/no) [default: yes]`: By default, Cosmovisor will attempt to automatically download new binaries that have passed [software upgrade proposals voted on the network](../upgrades/README.md). You can choose to do this manually if you want more control.
114114
3. `Do you want Cosmovisor to automatically restart after an upgrade? (yes/no) [default: yes]`: By default, Cosmovisor will automatically restart the node after an [upgrade height](../upgrades/README.md) is reached and an upgrade carried out.
115+
4. `Do you want to overwrite existing configuration (or create a new one) for cosmovisor, with the values you provided? (yes/no) [default: yes]`: By default, Cosmovisor will create `config.toml` file under `/home/cheqd/.cheqdnode/cosmovisor`, with values you provided previously. However, the environment variables set in `systemd` file will take precedence over this file, unless you modify the file and pass `--config` flag to cosmovisor.
115116

116117
You can also choose `no` to installing with Cosmovisor on the first question, in which case a standalone binary installation is carried out.
117118

@@ -131,7 +132,18 @@ See more details about `app.toml` and `config.toml` configuration parameters on
131132
7. `Specify log level (trace|debug|info|warn|error|fatal|panic) [default: error]:`: The default log level of `error` is generally recommended for normal operation. You may temporarily need to change to more verbose logging levels if trying to diagnose issues if the node isn't behaving correctly.
132133
8. `Specify log format (json|plain) [default: json]:`: JSON log format allows parsing log files more easily if there's an issue with your node, hence it's set as the default.
133134

134-
#### 6. Choose whether to restore from snapshot
135+
#### 6. Choose whether to init from State Sync
136+
137+
In case you don't need full (or significant) blockchain history, you can start your initialize your node via State Sync:
138+
139+
> [INFO]: State sync rapidly bootstraps a node without downloading full snapshot and uses less storage. You can still choose snapshot (slower, much larger storage) if you decline state sync.
140+
141+
`Initialize chain via State Sync? (yes/no) [default: yes]:`
142+
This will massively reduce your node operational costs, as required disk space in this case is less than 10GB.
143+
Installer will update `config.toml` file with RPC endpoints to fetch state sync snapshots from, trusted height and trusted block hash.
144+
It will also enable state sync, so after starting the `cheqd-cosmovisor service`, the node will start discovering snapshots, restoring them and start catching up with the network.
145+
146+
If you skip this step, you will be asked if you want to proceed with state DB snapshot restoration.
135147

136148
When setting up a new node, you typically need to download all past blocks on the network, including any upgrades that were done along the way with the specific binary releases those upgrades went through.
137149

docs/setup-and-configure/docker.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ Docker-based installations are useful when running non-validator (observer) node
1515
1. Docker Engine v20.10.x and above (use `docker -v` to check)
1616
2. Docker Compose v2.3.x and above (use `docker compose version` to check)
1717

18-
Our Docker Compose files [use Compose v2 syntax](https://docs.docker.com/compose/compose-v2/). The primary difference in usage is that Docker Compose's new implementation uses `docker compose` commands (with a space), rather than the legacy `docker-compose` although they are supposed to be drop-in replacements for each other.
18+
Our Docker Compose files [use Compose v2 syntax](https://docs.docker.com/reference/compose-file/). The primary difference in usage is that Docker Compose's new implementation uses `docker compose` commands (with a space), rather than the legacy `docker-compose` although they are supposed to be drop-in replacements for each other.
1919

2020
### Special guidance for Mac OS running on Apple silicon (M-series chips)
2121

docs/setup-and-configure/requirements.md

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,20 @@ For most nodes, the RAM/vCPU requirements are relatively static and do not chang
1212

1313
It is recommended to **mount disk storage for blockchain data as an expandable volume/partition separate from your root partition**. This allows you mount the node data/configuration path on `/home` (for example) and increase the storage if necessary *independent* of the root `/` partition since hosting providers typically force an increase in CPU/RAM specifications to grow the root partition.
1414

15-
Extended information on [recommended hardware requirements is available in Tendermint documentation](https://docs.cometbft.com/main/explanation/core/running-in-production#hardware). The figures below have been updated from the default Tendermint recommendations to account for current cheqd network chain size, real-world usage accounting for requests nodes need to handle, etc.
15+
Extended information on [recommended hardware requirements is available in Tendermint documentation](https://docs.cometbft.com/v0.38/core/running-in-production#hardware). The figures below have been updated from the default Tendermint recommendations to account for current cheqd network chain size, real-world usage accounting for requests nodes need to handle, etc.
1616

1717
### Recommended hardware specifications
1818

1919
* 4-8 GB RAM (2 GB RAM minimum)
2020
* x64 2.0 GHz 2-4 vCPU or equivalent (x64 1.4 GHz 1 vCPU or equivalent minimum)
21-
* 650 GB SSD (500 GB minimum)
21+
22+
#### Storage requirements
23+
24+
Storage requirements may vary, depending on your specific needs:
25+
26+
* If you need more historic data and you plan to initialize your node by using state DB snapshot, you will need at least 625 GB of SSD storage.
27+
* If you don't need specific historic data, you can use state sync to initialize your node. In this case, your node will start with less than 1GB of disk space consume, but it will keep to grow with time. It's recommended to provide at least 10GB of SSD.
28+
* In case you need full chain history and you want to run an archive node, you will need 2.7 TB of disk storage. For obtaining full chain history snapshot, reach out to our team on Discord.
2229

2330
> ⚠️ **Storage requirements for the blockchain grows with time**. Therefore, these minimum storage figures are expected to increase over time. Read our validator guide for "pruning" settings to optimise storage consumed.
2431
@@ -53,13 +60,13 @@ The P2P port is used for peer-to-peer communication between nodes. This port is
5360
* Outbound TCP connections must be allowed on *all* ports to *any* IP address range.
5461
* The default P2P port can be changed in `$HOME/.cheqdnode/config/config.toml`.
5562

56-
Further details on [how P2P settings work is defined in Tendermint documentation](https://docs.cometbft.com/main/explanation/core/running-in-production#p2p).
63+
Further details on [how P2P settings work is defined in Tendermint documentation](https://docs.cometbft.com/v0.38/core/running-in-production#p2p).
5764

5865
### RPC port
5966

6067
The RPC port is intended to be used by client applications as well as the cheqd-node CLI. Your RPC port **must** be active and available on localhost to be able to use the CLI. It is up to a node operator whether they want to expose the RPC port to public internet.
6168

62-
The [RPC endpoints for a node](https://docs.cometbft.com/main/explanation/core/rpc) provide REST, JSONRPC over HTTP, and JSONRPC over WebSockets. These API endpoints can provide useful information for node operators, such as healthchecks, network information, validator information etc.
69+
The [RPC endpoints for a node](https://docs.cometbft.com/v0.38/core/rpc) provide REST, JSONRPC over HTTP, and JSONRPC over WebSockets. These API endpoints can provide useful information for node operators, such as healthchecks, network information, validator information etc.
6370

6471
* By default, the RPC port is set to `26657`
6572
* Inbound and outbound TCP connections should be allowed from destinations desired by the node operator. The default is to allow this from any IPv4 address range.
@@ -75,7 +82,7 @@ In addition to the P2P/RPC ports above, you need to allow the following ports in
7582

7683
### Sentry nodes (optional)
7784

78-
Tendermint allows more complex setups in production, where the ingress/egress to a validator node is [proxied behind a "sentry" node](https://docs.cometbft.com/main/explanation/core/validators).
85+
Tendermint allows more complex setups in production, where the ingress/egress to a validator node is [proxied behind a "sentry" node](https://docs.cometbft.com/v0.38/core/validators).
7986

8087
While this setup is not compulsory, node operators with higher stakes or a need to have more robust network security may consider setting up a sentry-validator node architecture.
8188

@@ -87,5 +94,5 @@ If you're not running a validator node, or if you want more advanced control on
8794

8895
## Further information
8996

90-
* Tendermint documentation has [best practices for running a Cosmos node in production](https://docs.cometbft.com/main/explanation/core/running-in-production).
97+
* Tendermint documentation has [best practices for running a Cosmos node in production](https://docs.cometbft.com/v0.38/core/running-in-production).
9198
* [Сosmovisor could be used for automatic upgrades](https://docs.cosmos.network/main/tooling/cosmovisor); however in our testing so far this method has not been reliable and is therefore currently not recommended.

0 commit comments

Comments
 (0)