You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Added
Archive leg groundwork: a captive stellar-core replay source
(internal/source/captive) serving bounded history-archive ranges with
the unified event semantics RPC serves (EMIT_CLASSIC_EVENTS +
BACKFILL_STELLAR_ASSET_EVENTS), plus boot configuration
(STELLAR_CORE_BINARY, HISTORY_ARCHIVE_URLS, CAPTIVE_STORAGE_PATH)
validated at startup.
Gap healer: with the archive leg enabled, recorded below-retention gaps
are walked downward in atomic 2000-ledger chunks replayed from the
archives, with a heal watermark on the gap row and the clamped backfill
frontiers lowered (and un-clamped) in the same transaction, so declared
coverage grows exactly as fast as healed data lands. Before the first
heal the captive replay must prove itself byte-equivalent to the RPC
on a checkpoint-aligned range both can serve, after normalizing the two
parts of the meta that are unstable run to run even on identical core
builds (both proven live): diagnostic events are stripped, and
ledger-entry-change units are canonically ordered within each
operation. A divergent replay disables healing
(sierpe_archive_equivalence_failures_total, alertable) instead of
filling gaps with unverified data. /status
reports the leg as archive: off|unverified|verified|equivalence_failed,
and heals progress through sierpe_gaps_healed_total and sierpe_healed_ledgers_total.
-full image variant (Dockerfile.full, linux/amd64): the appliance
plus stellar-core, with STELLAR_CORE_BINARY pre-set — deploy it and
registrations reach below RPC retention out of the box. The slim image
stays multi-arch and distroless for archive-less deployments.
Deployment guidance in docs/DEPLOY.md.