RFC Index
GasHammer’s design is specified in 13 RFCs. These live in the rfcs/ directory and serve as the authoritative specification for each subsystem. When the implementation diverges from an RFC, the RFC is updated first.
| RFC | Title | Scope |
|---|---|---|
| RFC-0001 | Nitro Integration Surface | Wire protocols, RPC methods, feed format, L1 contracts, precompiles |
| RFC-0002 | Technology Stack | Language (Rust), runtime (tokio), dependencies, build system |
| RFC-0003 | Hive Control Plane | REST API, gRPC service, edge registry, run orchestration |
| RFC-0004 | Edge Runtime | Tx pipeline, feed correlator, heartbeat, shutdown |
| RFC-0005 | Workload Engine | Gas-first modeling, templates, account pool, PRNG |
| RFC-0006 | Telemetry Pipeline | Event model, ring buffer, gRPC transport, Parquet storage |
| RFC-0007 | Correctness Oracle | Invariant framework, verdicts, evidence, live and post-run checks |
| RFC-0008 | Fault Injection | Adapter trait, netem, iptables, timeline, safety rails |
| RFC-0009 | Reporting Engine | Latency analysis, capacity envelope, regression detection |
| RFC-0010 | Scenario Definition Language | YAML schema, phases, templates, faults, oracle config |
| RFC-0011 | DNA & Provenance | Binary canary, HTTP headers, calldata magic, error codes |
| RFC-0012 | Documentation Engine | Source parser, mdBook generation, coverage metrics |
| RFC-0013 | E2E Testing | Testcontainers, Nitro devnet, lifecycle tests, test contracts |
Reading Order
For a new contributor, the recommended reading order is:
- RFC-0002 (Technology Stack) — understand the foundational choices.
- RFC-0001 (Nitro Integration Surface) — understand what GasHammer talks to.
- RFC-0003 and RFC-0004 (Hive + Edge) — understand the distributed architecture.
- RFC-0005 (Workload Engine) — understand gas-first modeling.
- RFC-0011 (DNA & Provenance) — understand the attribution markers.
- Remaining RFCs as needed for the subsystem you are working on.
RFC Conventions
- RFCs are numbered sequentially:
RFC-NNNN. - Each RFC has: title, status, author, date, and numbered sections.
- Section references use
§notation: “RFC-0008 §3.2”. - RFCs are living documents — update them when the implementation evolves.
- If a design decision is significant and not covered by an existing RFC, write a new one.