@network-harness/core-discovery
v0.2.0
Published
Part of the network harness: @network-harness/core-discovery.
Readme
@network-harness/core-discovery
Claims ctx.discovery. Turns a need into candidate peers.
It verifies nothing and chooses nothing. Candidates carry identities, so a protocol can check one before trusting it, and the adapter verifies every envelope regardless -- which means a provider that lies can waste a protocol's time and cannot impersonate a peer. Judging a candidate is the protocol's job, not this component's.
An advertisement is an effect. advertise returns a disposer that withdraws
it from every provider that took it, and because the disposer belongs to the
calling extension's scope, disabling that extension withdraws it too -- so a
protocol ships without an "unadvertise on shutdown" path of its own.
A provider outage degrades to stale results, not to none. Each provider's last answer per need is mirrored locally; when one stops answering, the query returns what it last said and traces that it did. A peer that was there a minute ago is a better answer than silence, and the protocol decides what to make of it.
Presence is refreshed, not asserted once. A republish tick tells every provider this node is still here and repeats the live set, which is also how a provider that arrives while the node is running learns what it missed. A directory that never expired a node would keep offering peers that have been gone for weeks.
