-
-
Notifications
You must be signed in to change notification settings - Fork 3k
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
feat: Routing.Type=auto (DHT+IPNI) #9475
Conversation
682c21e
to
57b98fe
Compare
This changes the default routing to to be implicit DHT+IPNI Full context: #9422 (comment)
Based on feedback from #9475
57b98fe
to
e65885a
Compare
Defaulting to cid.contact breaks private networks feature – leaking private CIDs to public HTTP endpoint, and/or learning about providers which are useless due to the lack of shared key. I will add a check that tries to swithc to dht-only, and if that fails refuses to start with |
15fd9b1
to
753b3da
Compare
Resolved, ready for final review @BigLep @guseggert |
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.
Good stuff - thanks @lidel !
Co-authored-by: Steve Loeppky <[email protected]>
IPNI enabled by default made tests fail due to false-negative: Kubo was able to find provider for "foo" "bar" thanks to IPNI. This ensures data is unique enough to have no providers.
TLDR
Kubo will now use DHT and IPNI at cid.contact at the same time.
This PR results in faster lookup times from IPNI for most use cases on average, while still maintaining the resiliency of DHT.
I've been running this for a while and end users should see a positive change in the time it takes to load DNSLink websites, or lookup a provider for a CID.
Closes #9454 Closes #9422
Details
Routing.Type
from user config (it is not implicit)Routing.Type
fromdht
toauto
Routing.Type=auto
to ask DHT and IPNI at cid.contact in parallelFull context: #9422 (comment)
TODO before merge
Timeout
andIgnoreError
for DHT and IPNI routersRouting.Type="dht"
and removeRouting.Type
to switch users to the new default)