Skip to content

docs(adr): 0103 — nfx and nutflix-pear meet over iroh; the desktop app runs a thin iroh helper (Proposed) - #9

Closed
SovereignTechnology wants to merge 1 commit into
mainfrom
docs/adr-0103-iroh
Closed

SovereignTechnology wants to merge 1 commit into
mainfrom
docs/adr-0103-iroh

Conversation

@SovereignTechnology

Copy link
Copy Markdown
Owner

Proposed; needs sovtech's acceptance. Docs only.

ADR 0101 §4 said to revisit the plan once spike S5′ failed, and this records what follows.

§1, the course (sovtech's decision of 2026-10-25):

  • nfx and nutflix-pear meet over iroh (NFX-06).
  • nutflix-pear speaks iroh as well, beside HyperDHT. It stays a Pear app: the Pear runtime, its pear:// address, NFX-12 between its own peers.
  • nfx does not speak HyperDHT, so ADR 0101's nfx-side HyperDHT work is dropped. nfx-proto already skips hyperdht endpoints, as NFX-03 §4 requires.

§2, the mechanism (proposed):

  • A thin Rust iroh helper, in nutflix-pear's own repository, built on n0's iroh 1.x and iroh-blobs 0.103. It is not nfxd, because nutflix-pear stays written from the specs alone.
  • Supervised by the Bare worker: spawned with bare-subprocess, framed messages over stdio, no listening socket.
  • It only moves bytes: iroh connections, blobs by BLAKE3, and nfx/pay/1 passed through.
  • The worker keeps the rest: NFX-05 parsing, every sha256 check before use, the NFX file store, beacons, NFX-07 and every money decision stay in JS.
  • Packaging: a prebuilds/<platform>-<arch>/ package like bare-sidecar, so the native-module inventory and ADR 0017's staging see it. pear:// drives keep its executable bit.

Rejected:

  • @number0/iroh: no iroh-blobs, and byte arrays as Array<number>.
  • WASM: relay only, and unverified in Bare.

Deferred: an in-process Rust addon, until bare-rust (0.0.x) is proven.

§3, the order:

  1. A spike in nutflix-pear first, in CI: the helper on linux-x64, both directions against nfxd, the NAT matrix S5′ used, with its size measured.
  2. The other targets.
  3. Then the slices and the exit run's cross pairs over iroh.

Also in this PR:

  • ADR 0101's Status gains a pointer to this record.
  • docs/README.md gains this record's row.

Merge

Squash, locally as sovtech, once accepted. On acceptance the Status line becomes "Accepted".

…p runs a thin iroh helper (Proposed)

Revisits ADR 0101 §4 after spike S5′ failed. The course is sovtech's decision of 2026-10-25:
nutflix-pear speaks iroh as well, beside HyperDHT, and stays a Pear app; nfx does not speak
HyperDHT. The mechanism, a thin Rust iroh helper spawned by the Bare worker and packaged like
bare-sidecar, with every check and money decision left in the worker, awaits acceptance.
SovereignTechnology added a commit that referenced this pull request Oct 27, 2026
…p runs a thin iroh helper (#9)

Accepted 2026-10-27. ADR 0101 §4 required a revisit once spike S5′ failed; this records it.

- §1, the course (sovtech, 2026-10-25): nfx and nutflix-pear meet over iroh (NFX-06).
  nutflix-pear speaks iroh beside HyperDHT and stays a Pear app; nfx does not speak HyperDHT,
  so ADR 0101's nfx-side HyperDHT work is dropped.
- §2, the mechanism (accepted 2026-10-27): a thin Rust iroh helper in nutflix-pear's own
  repository (iroh 1.x, iroh-blobs 0.103.x), not nfxd; spawned by the Bare worker with
  bare-subprocess, framed messages over stdio, no listening socket; it only moves bytes, and
  NFX-05 parsing, every sha256 check, the file store, beacons, NFX-07 and every money decision
  stay in JS; packaged per platform like bare-sidecar. Rejected: @number0/iroh, WASM. Deferred:
  an in-process Rust addon until bare-rust is proven.
- §3, the order: a spike in nutflix-pear's CI first (linux-x64, both directions against nfxd,
  S5′'s NAT matrix, size measured), then the other targets, then the slices.
- ADR 0101's Status points to this record; docs/README.md gains its row.
@SovereignTechnology

Copy link
Copy Markdown
Owner Author

Squash-merged as 29019d2 (accepted by sovtech 2026-10-27).

@SovereignTechnology
SovereignTechnology deleted the docs/adr-0103-iroh branch October 27, 2026 17:09
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