You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: attester/README.md
+6Lines changed: 6 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,6 +5,7 @@
5
5
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.
6
6
7
7
## What it does
8
+
8
9
- Configures the Cosmos SDK Bech32 prefixes required by the target chain.
9
10
- Derives an operator account key from a mnemonic and loads the validator consensus key from the local `priv_validator_key.json`.
10
11
- 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
13
14
- Retries failed submissions a few times and keeps catching up when the attester falls behind.
14
15
15
16
## Prerequisites
17
+
16
18
- An Evolve node exposing RPC on `tcp://HOST:PORT` and REST API on `http://HOST:PORT`.
17
19
- Access to the validator home directory so the attester can read `config/priv_validator_key.json` and `data/priv_validator_state.json`.
18
20
- A funded Cosmos SDK account mnemonic that will cover the attestation fees.
19
21
- The chain ID and Bech32 prefixes used by your deployment.
20
22
21
23
## Running the attester
24
+
22
25
Build with Go 1.22+:
23
26
24
27
```bash
@@ -39,18 +42,21 @@ Run it against your node (adjust the sample values):
39
42
```
40
43
41
44
### Important flags
45
+
42
46
-`--home` – validator home directory containing the CometBFT private validator files.
43
47
-`--mnemonic` – Cosmos SDK mnemonic for the operator account that pays fees.
44
48
-`--bech32-account-prefix` and friends – override if your chain does not use the defaults (`gm`, `gmvaloper`, etc.).
45
49
-`--node` / `--api-addr` – RPC and REST endpoints used for account queries and block data.
46
50
47
51
## Operational notes
52
+
48
53
- 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`).
49
54
- Sequence numbers are cached in memory. Restarting the process while transactions are pending can still produce sequence mismatches.
50
55
- 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.
51
56
- Logging is verbose by default to aid debugging. Remove `--verbose` once the setup is stable.
52
57
53
58
## Limitations and future work
59
+
54
60
- No automatic key rotation or secure storage – mnemonic and consensus keys must be provided manually.
55
61
- No persistence of attestation state across restarts beyond what the chain tracks.
56
62
- Lacks production monitoring hooks, metrics, and alerting.
0 commit comments