-
Notifications
You must be signed in to change notification settings - Fork 140
feat: ipns libp2p fetch #906
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
base: main
Are you sure you want to change the base?
Conversation
|
Does a lookup function need to be registered with |
|
I'm considering checking the current subscribers for the topic directly before the fetch call. The check would see if we are still pubsub peered with the peerId that is being queried with the fetch call. If not then cancel the fetch and return. This would reduce the possibility of opening a new connection instead of just a new stream. |
|
Triage:
|
The existing functionality breaks assumptions of the { cache: boolean } option of ipns.resolve
The PubSubRouting.get method now only adds topics to watch which allows
users to listen for updates to those keys.
This solution is better than using libp2p/fetch to query each pubsub
peer on each get call.
|
I've made some changes to PubSubRouting.
Usage: const pubsubRouter = pubsub(components)
pubsubRouter.addEventListener('record-update', ({ publicKey, record }) => console.log(`New record for ${publicKey}`))
const names = ipns(components, { routers: [pubsubRouter] })
// init PubSubRouting for names of interest
await names.resolve(ipnsKey) |
Title
feat: ipns libp2p fetch
Description
Adds
@libp2p/fetchfunctionality to the pubsub router ofhelia/ipns.The pubsub router will libp2p/fetch the latest local record from new pubsub peers if libp2p.services.fetch is found.
https://specs.ipfs.tech/ipns/ipns-pubsub-router/#layering-persistence-onto-libp2p-pubsub
Closes #893
Notes & open questions
Should
getmethod of the pubsub router wait for a few peers to be queries with fetch, or should the router emit an event when it finds a newer record?Change checklist