Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Highlights
Query Rate Limiting
Added pkdns arguments to support rate limiting dns queries by IP address. This reduces the attack surface on the forward DNS and the DHT.
Queries to the DHT are now rate limited by default.
Simplified Publish Command
BREAKING:
pkdns-cli publish
only publishes the pkarr.zone once. The parameter--once
has been removed. Use crontab to continuously publish the zone.Improved TTL Caching
Pkarr zones are now cached dynamically depending on the configured TTL of the zone. Before, zones would only be cached for 60s. Use the new pkdns argument to configure min/max ttl values. Set the max to 0 for quick dev iterations.
publickey command
Derive a public key from a seed with
pkdns-cli publickey
.Use $ttl variable in pkarr.zone
Use the
$ttl
variable in the pkarr.zone to define cache times. You can also define ttls over individual records. Use the standarddns zone format to set ttls.
Example:
In this case, the default ttl is 300 (5min). subdomain has a custom ttl of 86400 (1 day).
Detailed Changes
BREAKING: simplify publish command by @SeverinAlexB in BREAKING: simplify publish command #54
feat: publickey cli command by @SeverinAlexB in feat: publickey cli command #47
feat: use $ttl as a variable in the zonefile by @SeverinAlexB in feat: use $ttl as a variable in the zonefile #48
feat: Rate limiting by @SeverinAlexB in Feat: Rate limiting #42
feat: Improved TTL Caching by @SeverinAlexB in feat: Improved TTL Caching #34
fix: Deadlocks freezing the whole server after two DHT calls by @SeverinAlexB in fix: Deadlocks freezing the whole server after two DHT calls #51
fix: disappearing pkd after cache expires by @SeverinAlexB in fix: disappearing pkd after cache expires #50
fix: improved forward dns server error handling. Prevent panic by @SeverinAlexB in fix: improved forward dns server error handling. Prevent panic #43
fix: Delayed dht resolution when updating values by @SeverinAlexB in fix: bad dht resolution when updating values #44
fix: respect RUST_LOG in env + advanced logging doc by @SeverinAlexB in fix: respect RUST_LOG in env + advanced logging doc #31
chore: pkarr 2.2.1 by @SeverinAlexB in chore: pkarr 2.2.1 #53
chore: reduce default min-ttl to 60s by @SeverinAlexB in chore: reduce min-ttl to 60s #45
chore: format code, remove warnings by @SeverinAlexB in chore: format code, remove warnings #55
chore: Copy any-dns code into this project by @SeverinAlexB in chore: Copy any-dns code into this project #41
Full Changelog: v0.5.4...v0.6.0-rc.4