feat(bench-001): add GMGN as a provider (Solana-only) + sync harness - #168
Merged
Conversation
GMGN's WebSocket pushes Solana chain-tip events (channel=chain_stat, gk='s', rs=ms:slot) sub-second. Adds it as the 4th provider on the head-lag bench. YAML: - New provider entry; queries deliberately omit chain= so per-tab filters auto-hide GMGN on Base/BNB and surface it on All/Solana. - Methodology + cardinality lines updated. Harness sync (matches private mobula-api/miniapps/aggregator-head-lag): - gmgn_monitor.go: chromedp cf_clearance mint + utls HelloChrome_120 ClientHello (h1-only ALPN) + WS subscribe + slot-event parser. - Dockerfile: chromium + minimal X/font libs for chromedp. - go.mod: utls + chromedp deps. - log_buffer.go, config.go, main.go: GMGN_PROXY env + startup banner + goroutine launch. Validated: bun run validate, typecheck, spec tests all green.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Ships GMGN as the 4th provider on the head-lag bench. Bench-001 already has Mobula, Codex, GeckoTerminal — GMGN clocks ~115 ms head-lag p50 across the 3 regions (validated in mobula-api/miniapps/aggregator-head-lag deploy).
YAML changes (
benchmarks/aggregator-head-lag.yml)gmgnprovider entry with tag "WebSocket feed (Solana only)".chain=. lib/spec.tsinjectLabelswill addchain=base/chain=bnbon those tabs → Prom returns empty →tryLoadLiveskips the provider → GMGN auto-hidden on non-Solana tabs. "All chains" + "Solana" tabs show the provider.Harness sync (
harnesses/aggregator-head-lag/)The OCB public harness was stale vs the deployed mobula-api/miniapps version. Re-syncs:
gmgn_monitor.go(new): chromedp cf_clearance mint → utlsHelloChrome_120ClientHello with ALPN forced tohttp/1.1→ WS subscribechain_stat→ parsegk="s"rs/sc fields → emithead_lag_seconds{aggregator="gmgn",chain="solana"}.Dockerfile: chromium + minimal X/font libs (~200 MB image bump, idle whenGMGN_ENABLED!=true).go.mod/go.sum: utls + chromedp/fetch deps.config.go,main.go,log_buffer.gosynced with the private dir..gitignoreextended to drop the local./scriptbuild artifact.Validated locally:
bun run validate,bun run typecheck, spec tests all green; harnessgo build ./cmd/scriptclean.