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

IPNS resolution: V2-only records #39

Closed
lidel opened this issue Jul 14, 2023 · 4 comments
Closed

IPNS resolution: V2-only records #39

lidel opened this issue Jul 14, 2023 · 4 comments

Comments

@lidel
Copy link
Collaborator

lidel commented Jul 14, 2023

Writing this down, as there is a lot of confusion in ecosystem around this atm, the goal of this issue is to be useful reference while we clean this up.

There are two ways of getting a signed IPNS record over HTTP:

  • GET /ipns/{id} with ?format=ipns-record or Accept: application/vnd.ipfs.ipns-record to trustless gateway that supports IPIP-0379: Delegated IPNS HTTP API
    • This is something this project MUST support out of the box
  • GET /routing/v1/ipns/{id} to HTTP routing service that implements IPIP-0351: IPNS Signed Records Response Format on HTTP Gateways
    • This is something we MAY add in the future, once ecosystem figures out how to make HTTP first-class citizen, and how to have HTTP endpoints announced in places like IPNI and DHT
    • We most likely will expose a "public good" HTTP/DNS endpoint that acts as a caching proxy for IPNI/DHT but details tbd (bifrost-infra#2142)

For the record, there is also legacy Kubo RPC:

@lidel
Copy link
Collaborator Author

lidel commented Jul 14, 2023

@John-LittleBearLabs iirc ipfs-chromium currently uses the Kubo RPC? Or did we switch to application/vnd.ipfs.ipns-record on gateways? (it was not supported when this project started, but it is now, at least at ipfs.io one)

@John-LittleBearLabs
Copy link
Collaborator

Kubo RPC? Or did we switch to application/vnd.ipfs.ipns-record on gateways? (it was not supported when this project started, but it is now, at least at ipfs.io one)

The latter: ipns/{id}?format=ipns-record

There was a short time at the beginning of the project where it was understood this was coming, but wasn't yet released. At that early phase this simply wasn't trustless for IPNS URLs - was just forwarding them as-is to a Kubo gateway.

@lidel
Copy link
Collaborator Author

lidel commented Jul 17, 2023

Ack, in that case I think we are mostly done, only remainign thign around IPNS is to ensure wait for ipfs/specs#376 and then revisit this issue to make sure we interpret both V1+V2 and V2-only records as valid.

@John-LittleBearLabs John-LittleBearLabs changed the title IPNS resolution IPNS resolution: V2-only records Sep 13, 2023
@lidel
Copy link
Collaborator Author

lidel commented Sep 14, 2023

Update: IPIP-428 landed, it includes IPNS Records that can act as test vectors (both positive and negative): https://specs.ipfs.tech/ipips/ipip-0428/#test-fixtures

I think for this project, tldr is making sure we implement the updated "Record Verification" section at https://specs.ipfs.tech/ipns/ipns-record/#record-verification + do the right thing for the mentioned test vectors.

John-LittleBearLabs added a commit that referenced this issue Nov 6, 2023
John-LittleBearLabs added a commit that referenced this issue Nov 8, 2023
# This is the 1st commit message:

Fixes #39

# This is the commit message #2:

covg

# This is the commit message #3:

groundwork
John-LittleBearLabs added a commit that referenced this issue Nov 8, 2023
John-LittleBearLabs added a commit that referenced this issue Nov 15, 2023
# This is the 1st commit message:

Fixes #39

# This is the commit message #2:

covg

# This is the commit message #3:

groundwork
John-LittleBearLabs added a commit that referenced this issue Nov 15, 2023
Made some requestors.
John-LittleBearLabs added a commit that referenced this issue Nov 15, 2023
Made some requestors.
PoolRequestor now retries.
Tweaks necessary.
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

No branches or pull requests

2 participants