|
| 1 | +# The Fossil Record — Attestation Archaeology Visualizer |
| 2 | + |
| 3 | +**Bounty #2311 · 75 RTC** |
| 4 | + |
| 5 | +Interactive D3.js visualization of RustChain attestation history, rendered as geological strata. |
| 6 | + |
| 7 | +## Features |
| 8 | + |
| 9 | +- **Stacked Area Chart** — architecture layers ordered by age (68K deepest, x86 on top) |
| 10 | +- **Streamgraph Mode** — centered flow view for temporal dynamics |
| 11 | +- **Normalized Mode** — percentage-based to see market share shifts |
| 12 | +- **Interactive Tooltips** — hover any layer for miner count, epoch, RTC earned, share % |
| 13 | +- **Architecture Color Coding** — 11 families from amber (68K) to pale grey (x86) |
| 14 | +- **Epoch Settlement Markers** — vertical dashed lines every 25 epochs |
| 15 | +- **First Appearance Markers** — shows when each architecture joined the network |
| 16 | +- **Responsive** — works on desktop and mobile |
| 17 | +- **No Backend Required** — static HTML + D3.js, deployable at `rustchain.org/fossils` |
| 18 | + |
| 19 | +## Architecture Color Map |
| 20 | + |
| 21 | +| Architecture | Color | Depth | |
| 22 | +|---|---|---| |
| 23 | +| 68K | Dark Amber | Deepest | |
| 24 | +| G3 | Warm Gold | | |
| 25 | +| G4 (PowerPC) | Copper | | |
| 26 | +| G5 (PowerPC) | Bronze | | |
| 27 | +| SPARC | Crimson | | |
| 28 | +| MIPS | Jade | | |
| 29 | +| POWER8 | Deep Blue | | |
| 30 | +| ARM | Saddle Brown | | |
| 31 | +| Apple Silicon | Silver | | |
| 32 | +| Modern x86 | Pale Grey | | |
| 33 | +| Virtual Machine | Dark Grey | Surface | |
| 34 | + |
| 35 | +## Deployment |
| 36 | + |
| 37 | +Copy `index.html` to `rustchain.org/fossils/`: |
| 38 | + |
| 39 | +```bash |
| 40 | +cp web/fossils/index.html /var/www/rustchain/fossils/index.html |
| 41 | +``` |
| 42 | + |
| 43 | +No build step, no dependencies beyond D3.js (loaded from CDN). |
| 44 | + |
| 45 | +## Production Integration |
| 46 | + |
| 47 | +The demo uses generated data. To connect to live RustChain data: |
| 48 | + |
| 49 | +1. Replace `generateData()` with a fetch to the attestation API |
| 50 | +2. API endpoint: `GET /api/attestations/history?group_by=arch&bucket=epoch` |
| 51 | +3. Expected format: `[{epoch, 68k, g4, g5, sparc, mips, power8, arm, apple_silicon, x86, vm, totalRTC}]` |
| 52 | + |
| 53 | +## Tech Stack |
| 54 | + |
| 55 | +- D3.js v7 (CDN) |
| 56 | +- Vanilla JS, no framework |
| 57 | +- CSS custom properties for theming |
| 58 | +- Vintage terminal aesthetic matching rustchain.org |
0 commit comments