Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IPIP-484: Opt-in Filtering on Routing V1 HTTP API #484

Merged
merged 25 commits into from
Oct 29, 2024

Conversation

2color
Copy link
Member

@2color 2color commented Sep 6, 2024

No description provided.

@2color 2color requested a review from a team as a code owner September 6, 2024 10:46
@2color 2color force-pushed the feat/routing-v1-protocols-param branch from 4ebd8ed to f9a6e76 Compare September 6, 2024 10:47
src/ipips/ipip-0484.md Outdated Show resolved Hide resolved
src/ipips/ipip-0484.md Outdated Show resolved Hide resolved
src/ipips/ipip-0484.md Outdated Show resolved Hide resolved
src/ipips/ipip-0484.md Show resolved Hide resolved
src/ipips/ipip-0484.md Outdated Show resolved Hide resolved
src/ipips/ipip-0484.md Outdated Show resolved Hide resolved
src/ipips/ipip-0484.md Outdated Show resolved Hide resolved
@lidel lidel changed the title Delegated Routing V1 Support for Querying Specific Network Transport and Transfer Protocols IPIP-484: Delegated Routing V1 Support for Querying Specific Network Transport and Transfer Protocols Sep 6, 2024
src/ipips/ipip-0484.md Outdated Show resolved Hide resolved
src/ipips/ipip-0484.md Outdated Show resolved Hide resolved
@2color 2color requested a review from masih September 11, 2024 20:56
Copy link
Member

@masih masih left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall I for one welcome this. Thank you for putting this one together @2color 🙏

In therms of filter extensibility, my vote would be to start with the simplest most demanded one and expand later. In that pile, I can think of a more compact filtering using multicodec codes, bitfields, etc. all of which can be postponed for later.

src/ipips/ipip-0484.md Outdated Show resolved Hide resolved
@2color
Copy link
Member Author

2color commented Sep 12, 2024

In that pile, I can think of a more compact filtering using multicodec codes, bitfields, etc. all of which can be postponed for later.

Thanks, good to have these optimisation suggestions on the record here.

My take is that there are diminishing returns for these:

  • multicodec codecs would be smaller, at the cost of reducing human debug-ability
  • bitfields would require assigning explicit bits for each protocol. This breaks the ability to treat filter values as opaque (to allows future evolution without regressions), because it requires assigning new bits as protocols are added.

@masih
Copy link
Member

masih commented Sep 12, 2024

there are diminishing returns for these

The context for a more compact filtering suggestion on my part (which we should definitely ignore for now because of the "O"-word) is that I envision a world where these APIs would mostly be called by machines - not humans.

@2color
Copy link
Member Author

2color commented Sep 12, 2024

Open question: should we also add this to the GET /routing/v1/peers/PeerID endpoint?

2color added a commit to ipfs/boxo that referenced this pull request Sep 12, 2024
Copy link
Member

@SgtPooki SgtPooki left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm definitely in favor of this one, and it looks good as a starting point.

src/ipips/ipip-0484.md Outdated Show resolved Hide resolved
Copy link

@gammazero gammazero left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

see question

src/ipips/ipip-0484.md Outdated Show resolved Hide resolved
src/ipips/ipip-0484.md Outdated Show resolved Hide resolved
src/ipips/ipip-0484.md Outdated Show resolved Hide resolved
2color and others added 2 commits September 25, 2024 16:11
Co-authored-by: Marcin Rataj <[email protected]>
Co-authored-by: Marcin Rataj <[email protected]>
@2color
Copy link
Member Author

2color commented Sep 27, 2024

@lidel Is there anything left to address before merging?

@lidel lidel changed the title IPIP-484: Delegated Routing V1 Support for Querying Specific Network Transport and Transfer Protocols IPIP-484: Opt-in Provider and Peer Filtering on Routing V1 HTTP API Sep 27, 2024
Copy link
Member

@lidel lidel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@2color I think we are happy with this spec and unlikely to change any further (boxo implementation got merged: ipfs/boxo#671).

The next steps here:

  • Update this PR to add "Request Query Parameters" sections to /providers and /peers endpoint docs at https://specs.ipfs.tech/routing/http-routing-v1/ (src/routing/http-routing-v1.md), and document the newly added parameters there.
  • Ship both client and server, to ensure spec truly works end-to-end and we've identified all the gaps
    • release and deploy server (someguy at https://delegated-ipfs.dev/)
    • release helia; it should be asking only for actionable peers when running in browser context.
  • Merge this PR (The specs / IPIP always land last, allowing community to engage over long window of time)

src/ipips/ipip-0484.md Outdated Show resolved Hide resolved
src/ipips/ipip-0484.md Outdated Show resolved Hide resolved
src/ipips/ipip-0484.md Outdated Show resolved Hide resolved
src/ipips/ipip-0484.md Outdated Show resolved Hide resolved
src/ipips/ipip-0484.md Outdated Show resolved Hide resolved
src/ipips/ipip-0484.md Outdated Show resolved Hide resolved
2color and others added 2 commits September 27, 2024 14:45
@2color
Copy link
Member Author

2color commented Sep 27, 2024

release helia query for action

What do you by that?

@lidel
Copy link
Member

lidel commented Sep 27, 2024

Ah, it cut-off, I meant helia should be asking only for actionable peers (unknown, or known to work in browser) when running in browser context.

removed duplicated content, adjusted examples to follow closer real
world examples of what we do today
@lidel lidel changed the title IPIP-484: Opt-in Provider and Peer Filtering on Routing V1 HTTP API IPIP-484: Opt-in Filtering on Routing V1 HTTP API Oct 29, 2024
Copy link
Member

@lidel lidel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you all for fleshing this out @2color.
No concerns were raised since September, applied final ratification edits, ok to be merged.
We can refine this in follow-up IPIP if necessary.

For anyone reading this in the future, initial reference implementation(s) shipped in:

Feel free to refer to this IPIP using permalinks

@lidel lidel merged commit 12517ce into main Oct 29, 2024
4 checks passed
@lidel lidel deleted the feat/routing-v1-protocols-param branch October 29, 2024 23:20
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.

5 participants