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

rfc: ipni for indexing w3c stored data #15

Merged
merged 7 commits into from
Mar 27, 2024
Merged

rfc: ipni for indexing w3c stored data #15

merged 7 commits into from
Mar 27, 2024

Conversation

gammazero
Copy link
Contributor

@gammazero gammazero commented Mar 15, 2024

HTML View

Describes the ipni/offer capability and how data is indexed and retrieved without relying on centralized services.

Describes the ipni/offer capability and how data is indexed and retrieved without relying on centralized services.

This is necessary for the write-anywhere initiative.

Depends on storacha/specs#85
@gammazero gammazero marked this pull request as draft March 15, 2024 19:24
rfc/ipni-w3c.md Outdated Show resolved Hide resolved
rfc/ipni-w3c.md Outdated Show resolved Hide resolved
rfc/ipni-w3c.md Outdated Show resolved Hide resolved
rfc/ipni-w3c.md Outdated Show resolved Hide resolved
Copy link
Member

@hannahhoward hannahhoward left a comment

Choose a reason for hiding this comment

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

My main ask off the bat is to align with #13, which says location claims don't get made on the client.

rfc/ipni-w3c.md Outdated Show resolved Hide resolved
rfc/ipni-w3c.md Outdated Show resolved Hide resolved
rfc/ipni-w3c.md Outdated Show resolved Hide resolved
rfc/ipni-w3c.md Outdated Show resolved Hide resolved
rfc/ipni-w3c.md Outdated Show resolved Hide resolved
rfc/ipni-w3c.md Outdated Show resolved Hide resolved
rfc/ipni-w3c.md Outdated Show resolved Hide resolved
rfc/ipni-w3c.md Outdated Show resolved Hide resolved
rfc/ipni-w3c.md Outdated Show resolved Hide resolved
rfc/ipni-w3c.md Outdated Show resolved Hide resolved
rfc/ipni-w3c.md Outdated Show resolved Hide resolved
rfc/ipni-w3c.md Show resolved Hide resolved
rfc/ipni-w3c.md Outdated Show resolved Hide resolved
rfc/ipni-w3c.md Outdated Show resolved Hide resolved
rfc/ipni-w3c.md Outdated

The ipni/offer is optional, and if not invoked, then the user's data is not indexed.

If opting-in to IPNI indexing, the CAR file and the CARx-index are created by the client. The client may choose which multihashes they want indexed and specify this in the ipni/offer request.
Copy link
Contributor

Choose a reason for hiding this comment

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

Like we do in w3filecoin protocol, we should consider here having a ipni/accept capability. Offer invocation asks the service to do X, service responds saying I got it and soon I will solve this for you, and by the way, here is the CID of the invocation I am working on. Then user can query for the receipt, which will be done when service ends.

A simplified version may exist when we UCAN1.0 + UCAN Invocation Spec, but I think this is the only way for it to land before that cc @Gozala

Copy link
Contributor Author

Choose a reason for hiding this comment

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

If user wants to publish to IPNI, they invoke ipni/offer request:

  • Get blob status to check data is stored and get claims bundle CID
  • Invoke ipni/offer with the claims bundle CID associated with the stored data to index
  • User gets back a receipt that contains the advertisement ID
  • Can be done once at anytime during stored data lifetime

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Once the advertisement CID is returned, then the advertisement has been published to IPNI. I don't think there is a need to make this async. The async part is waiting for IPNI to index the advertisement. That is not something we control, so the client will just have to query IPNI if they want to see when their stuff gets indexed.

Copy link
Member

@hannahhoward hannahhoward left a comment

Choose a reason for hiding this comment

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

It seems like there is still a small bit of tightening on alignment about location claims, but I think we're basically there. I'm LGTM at this point.

rfc/ipni-w3c.md Outdated Show resolved Hide resolved
rfc/ipni-w3c.md Outdated Show resolved Hide resolved
Copy link
Contributor

@Gozala Gozala left a comment

Choose a reason for hiding this comment

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

Looks pretty good, I did provide bunch of comments and suggestions, but I'll let it up to you what you want to incorporate and what to ignore.

I think this is probably already very detailed for the RFC and probably good idea to merge and iterate on details in the specs (probably can copy & paste this there too).

I'm still wondering if decoupling content claims from location claims might be a good idea that would allow client querying IPNI to choose which location claim to follow independent from which partition claim to follow.

Other thought I had is that it would a good idea if claim bundle CID was not affected by who made those claims that is issuer, audience, and subject. That way multiple users indexing same data would arrive to same claims bundle as opposed to different ones. That would probably require a lot more thinking how to represent index though, but perhaps it is not a bad idea never the less.

rfc/ipni-w3c.md Outdated Show resolved Hide resolved
rfc/ipni-w3c.md Outdated Show resolved Hide resolved
rfc/ipni-w3c.md Outdated Show resolved Hide resolved
rfc/ipni-w3c.md Outdated Show resolved Hide resolved
rfc/ipni-w3c.md Show resolved Hide resolved
rfc/ipni-w3c.md Outdated Show resolved Hide resolved
rfc/ipni-w3c.md Show resolved Hide resolved
rfc/ipni-w3c.md Outdated Show resolved Hide resolved
rfc/ipni-w3c.md Outdated Show resolved Hide resolved
rfc/ipni-w3c.md Show resolved Hide resolved
@gammazero gammazero requested a review from Gozala March 25, 2024 21:19
@gammazero gammazero marked this pull request as ready for review March 26, 2024 16:01
@gammazero gammazero merged commit 234292a into main Mar 27, 2024
@gammazero gammazero deleted the ipni-rfc branch March 27, 2024 04:49
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.

4 participants