-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Conversation
@vasco-santos it's great to see you moving ahead with this work It looks like the code only gets a single IPNS value from the DHT, whereas in the go version it retrieves multiple versions of the IPNS value (I believe the default is 16). The go version provides a streaming API. Do you plan to support streaming in JS? |
hey @dirkmc So the stream was added recently to We should add support for it in Just other detail, we currently do the |
@vasco-santos I agree about the streaming interface, it can wait until a later version. The reason I bring it up is because in the go version of IPNS, retrieving those 16 records takes so long that it almost always times out, so IPNS is painfully slow. I added an option to retrieve less than 16 records to mitigate this problem, but the real solution is streaming. I think a lot of people were turned away from IPNS and even IPFS because of IPNS slowness so it would be great to get ahead of the issue as soon as possible |
7f51f8b
to
a2ccc0a
Compare
84cee67
to
c513b6e
Compare
95804d1
to
02071b1
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks good. Interop tests for ipns are also passing. Ci failures there are unrelated to the ipns tests.
79ddf2a
to
cf0bbb7
Compare
@vasco-santos would you mind rebasing this now that the IPNS over pubsub work is merged? 🙏 |
eb7c50c
to
5f8fbd3
Compare
712e3cf
to
6551fcc
Compare
6551fcc
to
0d4e18a
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you please also look at
js-ipfs/src/core/ipns/publisher.js
Line 79 in 83b8e9b
(cb) => embedPublicKeyRecord ? this._publishPublicKey(keys.routingPubKey, publicKey, peerId, cb) : cb() |
I think it is currently the wrong way round, but we should always publish it for the time being until there's no more go-ipfs nodes that require it.
W00t 🎉 |
Here is an initial implementation of
IPNS over DHT
. Until the dht is enabled by default injs-ipfs
we need to use the--enable-dht-experiment
experimental flag, or it will only use the local repo as datastore.Needs:
js-libp2p
release with libp2p/js-libp2p#288Unblocks: