Skip to content

rpc-capabilities: cherry-pick integrity + consensus code to main (unblocks bench 083) - #1194

Merged
Flotapponnier merged 1 commit into
mainfrom
chore/cherry-rpc-cap-integrity-main
Jul 16, 2026
Merged

rpc-capabilities: cherry-pick integrity + consensus code to main (unblocks bench 083)#1194
Flotapponnier merged 1 commit into
mainfrom
chore/cherry-rpc-cap-integrity-main

Conversation

@Flotapponnier

Copy link
Copy Markdown
Collaborator

Why

Bench 083 rpc-reliability shipped to dev via #1170 but its Railway harness image is built from main, and main was missing the 754 lines of integrity/consensus code. Result: /benchmarks/rpc-reliability renders empty on prod because Prom has zero rpc_integrity_check_total, rpc_hash_mismatch_total and rpc_consensus_lag_blocks series.

What

Pulls only harnesses/rpc-capabilities/ from dev to main. No spec YAML, no site code, no other harness.

  • integrity.go (new, 304 lines): rotating eth_getLogs + eth_getBalance fixed-vector checks every 5 minutes per chain
  • consensus.go (new, 154 lines): cross-provider tip tracking and hash quorum mismatch counter
  • consensus_test.go (new, 144 lines): quorum resolution edge cases
  • probe.go, config.go, archive.go, metrics.go, main.go: label wiring, StartIntegrityLoop bootstrap, integrity metric registration

After merge

Railway auto-rebuilds the rpc-capabilities service in all 3 regions. Metrics start publishing on first tick. Bench needs 24h of samples to hit expected_n=40.

Test plan

  • go build ./cmd/script/ passes
  • go test ./cmd/script/ passes (consensus test suite)
  • After Railway rebuild, verify rpc_integrity_check_total exists via Prom UI
  • Wait 24h, verify staging-openchainbench.vercel.app/benchmarks/rpc-reliability sample size > 40

… Railway)

Cherry-picks the integrity/consensus code path from #1170 to main so
Railway rebuilds the rpc-capabilities image and starts emitting
rpc_integrity_check_total, rpc_hash_mismatch_total and
rpc_consensus_lag_blocks. Bench 083 rpc-reliability reads these; on
main today the metrics do not exist so the leaderboard is empty.

Includes:
  * integrity.go: rotating eth_getLogs + eth_getBalance vector checks
  * consensus.go: cross-provider tip tracking + hash quorum mismatches
  * config, probe, archive, metrics: wiring + label updates
  * consensus_test.go: quorum resolution tests

Building rpc-capabilities and running its tests passes on this branch.
@Flotapponnier
Flotapponnier merged commit 6b97091 into main Jul 16, 2026
1 check failed
@Flotapponnier
Flotapponnier deleted the chore/cherry-rpc-cap-integrity-main branch July 16, 2026 10:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant