Skip to content

Commit 1ff68bf

Browse files
committed
feat: add README for Evolve Network Module (beta)
1 parent d158e81 commit 1ff68bf

1 file changed

Lines changed: 6 additions & 0 deletions

File tree

attester/README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
This command-line helper joins the attester set of an Evolve-based chain and streams attestations for new blocks. It is the first public beta of the attester workflow and intentionally omits a number of production-hardening features (automatic key management, batching, robust persistence, etc.). The goal is to unblock experimentation on top of the upcoming attester mode.
66

77
## What it does
8+
89
- Configures the Cosmos SDK Bech32 prefixes required by the target chain.
910
- Derives an operator account key from a mnemonic and loads the validator consensus key from the local `priv_validator_key.json`.
1011
- Submits a `MsgJoinAttesterSet` transaction so the validator's consensus key is registered as an attester.
@@ -13,12 +14,14 @@ This command-line helper joins the attester set of an Evolve-based chain and str
1314
- Retries failed submissions a few times and keeps catching up when the attester falls behind.
1415

1516
## Prerequisites
17+
1618
- An Evolve node exposing RPC on `tcp://HOST:PORT` and REST API on `http://HOST:PORT`.
1719
- Access to the validator home directory so the attester can read `config/priv_validator_key.json` and `data/priv_validator_state.json`.
1820
- A funded Cosmos SDK account mnemonic that will cover the attestation fees.
1921
- The chain ID and Bech32 prefixes used by your deployment.
2022

2123
## Running the attester
24+
2225
Build with Go 1.22+:
2326

2427
```bash
@@ -39,18 +42,21 @@ Run it against your node (adjust the sample values):
3942
```
4043

4144
### Important flags
45+
4246
- `--home` – validator home directory containing the CometBFT private validator files.
4347
- `--mnemonic` – Cosmos SDK mnemonic for the operator account that pays fees.
4448
- `--bech32-account-prefix` and friends – override if your chain does not use the defaults (`gm`, `gmvaloper`, etc.).
4549
- `--node` / `--api-addr` – RPC and REST endpoints used for account queries and block data.
4650

4751
## Operational notes
52+
4853
- The attester assumes the node accepts `MsgAttest` at every height. Current networks only process attestations at checkpoint heights (multiples of the epoch length); out-of-window submissions will be rejected with code 18 (`invalid request`).
4954
- Sequence numbers are cached in memory. Restarting the process while transactions are pending can still produce sequence mismatches.
5055
- HTTP polling currently drives block detection. There is no WebSocket subscription or backoff logic yet, so running it against remote nodes may require proxying/caching to avoid throttling.
5156
- Logging is verbose by default to aid debugging. Remove `--verbose` once the setup is stable.
5257

5358
## Limitations and future work
59+
5460
- No automatic key rotation or secure storage – mnemonic and consensus keys must be provided manually.
5561
- No persistence of attestation state across restarts beyond what the chain tracks.
5662
- Lacks production monitoring hooks, metrics, and alerting.

0 commit comments

Comments
 (0)