Skip to content

fix(download): apply the self-exclusion to the forwarded ask, and observe the A->B->C round trip - #266

Closed
MichaelTaylor3d wants to merge 2 commits into
mainfrom
loop/3128-recursive-discovery
Closed

fix(download): apply the self-exclusion to the forwarded ask, and observe the A->B->C round trip#266
MichaelTaylor3d wants to merge 2 commits into
mainfrom
loop/3128-recursive-discovery

Conversation

@MichaelTaylor3d

Copy link
Copy Markdown
Contributor

DO NOT MERGE — draft, gate round not yet run.

What

Fixes#261 — the forwarded half of
NodeContent::locate_holders does not apply the self-exclusion the SPEC states without
qualification, and adds the observed A->B->C round trip for
https://github.com/DIG-Network/dig_ecosystem/issues/3128.

Work in progress.

MichaelTaylor3dand others added 2 commits August 20, 2026 07:32
… ask
`SPEC.md` §19.3 states without qualification that NO source — DHT or pool — can ever
offer self. The DHT leg honoured it twice over (a `SelfExcludingLocator` wrapper AND a
second hand-written filter inside `NodeContent::find_providers`); the FORWARDED leg
added by #258 honoured it not at all, so a peer's answer naming this node reached the
merged provider set and cost the requestor a self-dial.
The rule now has ONE implementation — `retain_excluding_self` — and it is applied at the
MERGE point in `locate_holders`, which is where it covers every source the answer draws
from rather than only the ones a reader thought to wrap. The two prior copies now call it.
Closes#261
Refs DIG-Network/dig_ecosystem#3128
Co-Authored-By: Claude <noreply@anthropic.com>
@MichaelTaylor3d

Copy link
Copy Markdown
ContributorAuthor

Superseded by #289, which consolidated the recursive ask onto `dig_sex::discovery`.

Both halves of this branch were accounted for rather than discarded:

Nothing from this branch was lost.

Sign up for freeto 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.

The forwarded ask does not self-exclude — SPEC states no source can ever offer self, and one of two paths honours it

1 participant

@MichaelTaylor3d