oxen-io / lokinet

Lokinet is an anonymous, decentralized and IP based overlay network for the internet.
https://lokinet.org/
GNU General Public License v3.0
1.71k stars 221 forks source link

remove libunbound in favor of getdns #2156

Closed majestrate closed 1 year ago

majestrate commented 1 year ago

libunbound is a very annoying dependancy that is deeply irritating to use as it has a very under exposed api that ends up being too black box for what we are doing.

i want to replace all our usage of it with https://github.com/getdnsapi/getdns

majestrate commented 1 year ago

pros:

cons:

jagerman commented 1 year ago

Huge con: does not support DNS request caching. We had that omission in lokinet once upon a time, and it was a miserable experience.

jagerman commented 1 year ago

One more: still requires libunbound for recursive queries, and doesn't support libunbound (and thus recursive queries) on windows.

majestrate commented 1 year ago

we dont do recursive queries we only act as a stub resolver right now.

i dont think lokinet should cache any dns that really is out of scope as we arent a dns resolver but more like a dns mitm filter to intercept queries for .loki and .snode

majestrate commented 1 year ago

we still would need to bundle a dns cache next to lokinet but it really shouldnt be inside lokinet imo.

majestrate commented 1 year ago

ideally i'd like to have lokinet not do any bare dns queries to upstream by default (or ever if we can help it). eventually i'd like to proxy dnscrypt traffic to a resolver via whatever .snode they happen to have paths to (having a sensible default upstream that users can override of course) but really we shouldn't be doing bare queries at all and libunbound doesn't have a very sane api for doing that. i also deeply despise libunbound as it has been the bane of my dev workflow making windows port work. i really just want it to be gone.

majestrate commented 1 year ago

we'll do this later maybe. not this year.