So, I met Gordon, the core dht developer for Storj two weekends ago at LibrePlanet. He’s a very nice individual and has seemingly revamped Storj development since his joining last November. I had honestly dropped out of keeping up with Storj for quite some time but the infrastructure behind what he’s been working on for them is quite interesting so I’d thought I’d share it here.
So it’s all based off his library called “kadtools” https://github.com/kadtools/kad
It’s pluggable use lets Storj integrate their design on top.
I asked him to give some differences with mainline dht which he outlined:
- Nodes IDs are ECDSA pubkey hash
- RPC messages are signed and verified
- Message format is JSON-RPC
- Transport protocol is HTTPS (might sound nutty, but happy to chat
about why it’s not)
- File transfer uses WebSockets instead of UTP/LEDBAT
- Distributed pub/sub system on top of Kademlia
- Key/Value items in DHT must be content-addressable
- NAT traversal uses UPnP and HTTP tunneling instead of STUN/TURN
Seems like similar goals to webtorrent with perhaps some distinct differences I’m not aware of yet. If y’all have questions or a discussion forms around this, I’ll invite him to respond, etc.