Skip to content

Commit d158e81

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

1 file changed

Lines changed: 31 additions & 0 deletions

File tree

modules/network/README.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# Evolve Network Module (beta)
2+
3+
> Experimental attester networking module. Beta quality, simplified for validating the single-attester flow — expect rapid iteration and breaking changes.
4+
5+
This Cosmos SDK module prototypes the Evolve attester workflow. It keeps lightweight state about the attester set, tracks attestations per block, and emits checkpoint events so downstream components can reason about soft confirmations. The implementation is intentionally narrow: it only supports one active attester and omits many safety checks required for production.
6+
7+
## Responsibilities
8+
- Register gRPC and message servers that expose three transactions: `MsgJoinAttesterSet`, `MsgLeaveAttesterSet`, and `MsgAttest`.
9+
- Maintain attester membership (`keeper.SetAttesterSetMember`) and the index map used to build bitmaps (`keeper.BuildValidatorIndexMap`).
10+
- Store per-height attestation bitmaps and raw signatures, deriving quorum and soft-confirmation status in `Keeper.EndBlocker`.
11+
- Track epoch participation bitmaps and prune/eject placeholders for future validator governance.
12+
- Surface query and genesis helpers so the attester CLI can discover participation state.
13+
14+
## Workflow Overview
15+
1. An operator submits `MsgJoinAttesterSet`. The module stores the attester’s consensus public key and adds the address to the attester key set.
16+
2. For each block of interest, the attester submits `MsgAttest` containing a signed vote payload. The keeper records the signature, flips the appropriate bit in the attestation bitmap, and updates voted power.
17+
3. The end blocker evaluates quorum. When the single attester’s vote is present, the block is marked “soft confirmed” and a `checkpoint` event is emitted with validator and commit hashes.
18+
4. Epoch accounting updates participation bitmaps and rebuilds the index map so subsequent votes use consistent positions.
19+
20+
## Current Limitations
21+
- Only one attester is supported end-to-end. Additional attesters will collide in the bitmap logic; multi-attester support is planned but not yet implemented.
22+
- Vote signatures are stored but not verified. Payload parsing and signature checks will land in a later milestone.
23+
- Ejection, pruning, and alternate sign modes are placeholders to keep the prototype minimal.
24+
- Parameter defaults (epoch length = 1, checkpoint-only sign mode) are tuned for local testing rather than production networks.
25+
26+
## Genesis & Queries
27+
- `InitGenesis` seeds module parameters, the attester set, and any persisted bitmaps. If a height is flagged as soft-confirmed, it is re-emitted during init.
28+
- `ExportGenesis` walks the collections-backed store and exports the same structs for chain state syncing.
29+
- The autogenerated gRPC query service wraps keeper helpers so tooling can inspect attesters, bitmaps, and params.
30+
31+
Feedback is welcome. Treat this module as beta software meant to validate the single-attester design, and expect functionality to evolve quickly.

0 commit comments

Comments
 (0)