Skip to content

Commit fd525a4

Browse files
authored
feat(notebooks): add block propagation by size analysis with regional breakdown (#50)
Adds a new notebook analyzing block propagation timing relative to block size, with regional breakdown from two data sources. ### New notebook: Block propagation by size (`09-block-propagation-size`) Analyzes how block size affects propagation timing, comparing MEV vs local blocks with corrected timing that isolates network propagation from block building overhead. **Key visualizations:** - Size distribution by builder type (histogram) - Compression ratio analysis - MEV timing breakdown (building vs network time) - Corrected first seen by size bucket (box plots) - Regional propagation comparison (Sentries vs Contributoor) - Regional CDF faceted by size bucket and builder type (4×2 grid) - Propagation spread analysis - Anomaly detection (z-score, residuals) ### Regional data sources | Source | Description | Node count | |--------|-------------|------------| | **Sentries** | EthPandaOps libp2p gossipsub monitoring | ~50-100 | | **Contributoor** | Community beacon API event collection | ~875 | Both sources provide per-region (EU, NA, AS, OC) timing data, enabling comparison of propagation patterns across geographic regions and infrastructure types. ### New query modules | File | Description | |------|-------------| | `queries/block_propagation_by_size.py` | Main propagation query + Sentries regional query | | `queries/block_propagation_contributoor.py` | Contributoor regional query | ### Infrastructure changes - **Multi-database ClickHouse support** in `scripts/fetch_data.py` - New `get_client(database)` function routes queries to appropriate host - Per-query database selection via `database` field in pipeline.yaml - **CI workflow updates** in `.github/workflows/sync.yml` - Added `CONTRIBUTOOR_CLICKHOUSE_*` environment variables for Contributoor queries
1 parent 52058c7 commit fd525a4

6 files changed

Lines changed: 1904 additions & 13 deletions

File tree

.github/workflows/sync.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,10 @@ jobs:
125125
CLICKHOUSE_PORT: ${{ secrets.CLICKHOUSE_PORT }}
126126
CLICKHOUSE_USER: ${{ secrets.CLICKHOUSE_USER }}
127127
CLICKHOUSE_PASSWORD: ${{ secrets.CLICKHOUSE_PASSWORD }}
128+
CONTRIBUTOOR_CLICKHOUSE_HOST: ${{ secrets.CONTRIBUTOOR_CLICKHOUSE_HOST }}
129+
CONTRIBUTOOR_CLICKHOUSE_PORT: ${{ secrets.CONTRIBUTOOR_CLICKHOUSE_PORT }}
130+
CONTRIBUTOOR_CLICKHOUSE_USER: ${{ secrets.CONTRIBUTOOR_CLICKHOUSE_USER }}
131+
CONTRIBUTOOR_CLICKHOUSE_PASSWORD: ${{ secrets.CONTRIBUTOOR_CLICKHOUSE_PASSWORD }}
128132
run: just fetch all ${{ env.FORCE_RENDER }}
129133

130134
# ============================================

0 commit comments

Comments
 (0)