Closed nazar-pc closed 6 years ago
Underlying framework for DHT will likely be generic and implemented as standalone project https://github.com/nazar-pc/es-dht, while @detox/dht
will use it to implement domain-specific version.
Initial implementation based on ES-DHT released as https://github.com/Detox/dht/releases/tag/0.15.0
We've started from WebTorrent DHT, which in turn is based on Mainline DHT. This allowed us to prove that such a system can work in browser.
But besides some legacy unnecessary stuff it is also not robust and not resistant to attacks and we need to design an alternative specification and then implementation specifically for Detox project.
Few major issues we need to resolve:
We already use public keys instead of arbitrarily selectable IDs, which is the first right step. Now we need to borrow from other papers or implementations or invent ourselves some kinds of crypto quizzes that regular nodes will be able to solve, but will be hard enough for an attacker to handle.
Few more specific thoughts:
This could increase barrier for joining the network as well as being an active part of the network.
Also comparing to Mainline DHT we'll need to reduce number of methods and only allow mutable keypair/signature-based keys for data stored in DHT (also hard and/or soft size limit should be reevaluated, Mainline DHT uses 1000 bytes) limit.
Useful links: