Skip to content

fix(arweave-scheduler): consume completed local prefills (marker-aware, local-only) - #9

Open
xylophonez wants to merge 1 commit into
candidate/fast-arweave-scheduler-1from
fix/scheduler-consume-local-prefills
Open

xylophonez wants to merge 1 commit into
candidate/fast-arweave-scheduler-1from
fix/scheduler-consume-local-prefills

Conversation

@xylophonez

Copy link
Copy Markdown
Owner

Summary

Adds an opt-in, marker-aware, local-only consumption path to the Arweave scheduler sync, so a node that has pre-populated a block range into its local store (via ~copycat@1.0 headers mode) indexes from that local data and never falls back to a remote fetch for a covered range.

Behaviour

  • Opt-in. Gated by a scheduler-prefilled read policy; unset, behaviour is unchanged.
  • Marker-gated. Block, transaction, and process-spawn header reads consult the local copycat block alias first. A miss after a committed per-block completion marker is a definite state ("intentionally not held"), not a trigger to reach remote — the remote fallback becomes unreachable for a marked range.
  • Fail-closed. Missing or corrupt prefetched data fails closed rather than silently escaping to a gateway; a completion marker is only trusted because the copycat producer wrote it under fail-closed semantics.

Dependencies (for review)

  • Base branch is candidate/fast-arweave-scheduler-1 — the dev_arweave_scheduler_sync device does not exist on edge yet, so this necessarily stacks on that candidate work.
  • Runtime-depends on the copycat headers-mode + fail-closed completion change (fork PR for dev_copycat_arweave), which is what makes a completion marker a trustworthy guarantee. This scheduler change is only safe on top of that.

Scope

Single file: src/preloaded/process/dev_arweave_scheduler_sync.erl. No core/store/HTTP changes.

Motivation

Enables a resource-constrained node (e.g. a phone) to bootstrap its scheduler from a locally-verified, native-peer-fed block cache with a hard no-remote-escape guarantee, instead of racing public gateways per transaction.

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