Rates Engine v0.5.0-rc.78
Pre-release
Pre-release
·
523 commits
to main
since this release
[v0.5.0-rc.78] — 2026-05-26
Added
soroban_eventsraw-event landing zone (ADR-0029). Every
Soroban contract event the dispatcher routes is now also
captured to a newsoroban_eventshypertable as a raw row
(contract_id + topics-as-XDR + body-as-XDR + op_args-as-XDR
when applicable, plus a decodedtopic_0_symfor the common
Symbol/String case). Additive — existing per-source decoders
(trades, blend_auctions, etc.) continue to write their
domain-specific tables unchanged. Unblocks: future per-source
decoder backfills (Blend money-market, CCTP+Rozo, Comet/
Phoenix/Soroswap gaps, plus every protocol we add ever) are
nowINSERT … SELECT FROM soroban_eventsSQL queries rather
than MinIO walks. New backfill mode:
ratesengine-ops backfill -source soroban-events -from N -to M
populates the table for historical ranges without per-source
decoding overhead. Compression after 7 days, segment-by
contract_id. Initial estimated volume ~100-400 GB across the
full Soroban era.
Fixed
- fd-2 wrap drain-on-exit (#62a / regression in rc.77). The
rc.77SilenceSDKChecksumWarningswrap (the actual fix for the
SDK checksum WARN flood that the rc.72 env-var fix never
achieved) silenced the noise for long-running daemons but
dropped output entirely for short-lived processes — a
consequence of the consumer goroutine reading from the pipe in
the background, never given a chance to drain before
os.Exit()killed it. Manifest:ratesengine-ops backfill -dry-runprinted only the first line then ate the rest;
ratesengine-ops backfillerrors printed nothing —
diagnosable only by binary-rollback to rc.76. The wrap now
returns aflush func()that dup2's the saved real-stderr
back onto fd 2, closes the pipe writer, and waits on the
consumer's WaitGroup. main() incmd/ratesengine-indexerand
cmd/ratesengine-opsis now a thinos.Exit(realMain())
shim — defers (includingdefer flush()) run inside realMain
before main calls os.Exit with the returned code, so even
error paths drain the pipe.