I like the ability to remove keys. I understand the theoretical reason for append-only keyservers, but in practice it just turns people off from using them. No one wants to look at their entries from 2005 from when they screwed up while learning about subkeys, or their defunct 2008 entry which they never could revoke because they lost the revocation certificate (all examples purely fictional).<p>In any case, a keyservers job is not even to be some kind of source of trust, so all that really should matter is that it has a user's most up-to-date keys on it. Validating a key should come from web-of-trust or some secure second channel verification method (like listing your key ID on a TLS-enabled website).
I'm not fluent in modern JS, but I think the level of callbacks nesting makes it hard to see what else/catch belong to what if/then, especially: <a href="https://github.com/tdjsnelling/dat-keyserver/blob/12fa3e8389a6f90d312e1e664006df4d8391ecd5/index.js#L288-L369" rel="nofollow">https://github.com/tdjsnelling/dat-keyserver/blob/12fa3e8389...</a><p>You could try splitting this big function into smaller functions to reduce the length of the code largest callbacks.<p>It also makes commits harder to read. eg. for <a href="https://github.com/tdjsnelling/dat-keyserver/commit/12fa3e8389a6f90d312e1e664006df4d8391ecd5" rel="nofollow">https://github.com/tdjsnelling/dat-keyserver/commit/12fa3e83...</a> a reader can't see easily what changed in the function, as every line's indentation was changed. (And the commit message does not explain what the bug was)
I'm concerned about the key-removal functionality. The website (<a href="https://keys.tdjs.tech" rel="nofollow">https://keys.tdjs.tech</a>) reads: "Enter a message clearsigned with the key you wish to remove (message content is not important)"<p>My understanding of this is that anyone with a copy of anything you've ever signed can revoke your key. I hope I'm misunderstanding.
Project looks definitely interesting. Too bad the code looks like callback-hell from 10 years ago: <a href="https://github.com/tdjsnelling/dat-keyserver/commit/12fa3e8389a6f90d312e1e664006df4d8391ecd5" rel="nofollow">https://github.com/tdjsnelling/dat-keyserver/commit/12fa3e83...</a><p>Still, an interesting alternative for people who consider <a href="https://keys.openpgp.org" rel="nofollow">https://keys.openpgp.org</a> too radical.