Skip to content
This repository has been archived by the owner on Dec 18, 2023. It is now read-only.

IPNS resolution support #82

Open
b5 opened this issue Nov 9, 2022 · 2 comments
Open

IPNS resolution support #82

b5 opened this issue Nov 9, 2022 · 2 comments

Comments

@b5
Copy link
Member

b5 commented Nov 9, 2022

Discussed in n0-computer/iroh#226

@SionoiS has put some work into implementing IPNS in rust already: https://github.com/Defluencer/rust-defluencer/tree/develop/ipns-records

Update
This is only about IPNS resolution

@RangerMauve
Copy link

If I may, I've got some suggestions from pain points I've had in using IPNS.

  • Cache records as aggressively as possible
  • Even if a record expires, try keeping it locally while checking the network so you can at least serve something (useful for publishers going offline if it's naively configured p2p nodes)
  • Pubsub is nice to have to get fast updates, might lead to issues if you don't prune which pubsub topics over time especially for a gateway scenario
  • When publishing consider upping the TTL so that peers can be offline for longer
  • Have code that will republish (unexpired) records to the network can be useful when a user does a publish and then goes offline for a while
  • When doing lookups, the current DHT method slows stuff down a lot, so it might be good to either reduce the number of nodes you do the read from or race with pubsub and take it first.
  • When doing a publish the DHT also ends up being a bottleneck, it might be useful to have DHT publishing be done asynchronously of a name.publish call similar to how uploading data to IPFS lets the republishing to the DHT happen async of the file upload itself. Might be good to block on pubsub though since that's more immediate
  • This effort might be a good time to start talking to folks about delegated IPLD publishes so that users can use a UCAN or something similar to allow another public key to publish a record on their behalf. This is important for the case of IPNS pinning services that can keep records alive when a user doesn't go online for longer than a record's TTL. (also for multi-device updates to a key)

Not sure if any of this is actionable, but some of it could be relevant.

@dignifiedquire dignifiedquire changed the title IPNS support IPNS resolution support Nov 30, 2022
@dignifiedquire
Copy link
Contributor

Ref n0-computer/iroh#539

@dignifiedquire dignifiedquire transferred this issue from n0-computer/iroh Feb 17, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants