4 ms·
proof of concept code for making secure connections between 2 peers by knowing only each other's public keys. (no servers or IP knowledge involved, featuring NA
by danoctavian 11y ago
proof of concept code for making secure connections between 2 peers by knowing only each other's public keys. (no servers or IP knowledge involved, featuring NAT penetration).
uses the bittorrent DHT. code is hacky, written for fun.
As opposed to Bleep and Tox, it works right now with no extra protocol or network.
- xyzzy123 11y agoThe idea of piggybacking on bittorrent DHT network is great :) Just out of interest, do you know of any other systems that do that?
- danoctavian 11y agoWell BitTorrent's own project Bleep uses the Bittorrent network as well. Their protocol is more complex however. Their goals are to hide who is talking who, from entities that might just be scraping the DHT. With bluntly, you can tell who is talking to who, by looking at what peers advertised on the rendezvous node. Because they have control over the bittorrent protocol, they can go ahead and make changes to it that make NAT penetration easier (a 3rd party peer with a public address acts as a facilitator for putting 2 peers behind NAT in contact) or they can allow for arbitrary data to be stored in the DHT.
- buovjaga 11y agoRetroshare uses Bittorrent DHT http://retroshare.sourceforge.net/ http://retroshare.sourceforge.net/
- rndmind 11y agoRetroshare is fantastic!
- rakoo 11y agoI do the same in rakoshare (https://github.com/rakoo/rakoshare https://github.com/rakoo/rakoshare). Humans exchange a well-known id, from which a rendez-vous id is derived. This rendez-vous id is used for all interested peers to meet and exchange ips and ports. After that, it's the job of every one to try to connect to the other side. Sadly, if there's a NAT on each side, it's not enough...
- rndmind 11y agoretroshare uses DHT It also uses PGP keys to facilitate encryption, authenticity, and a comprehensive web of trust
- __john 11y ago>no servers or IP knowledge involved when you say this you're not talking about bittorrent-dht's bootstrap nodes right[1]? [1]https://github.com/feross/bittorrent-dht/blob/497d1e08f5bc06b903b32750353175dbb2dc646a/client.js#L23-L27 https://github.com/feross/bittorrent-dht/blob/497d1e08f5bc06...
- danoctavian 11y agoThat's a good point. You still need those. I don't believe there's any way around it whenever you're using a decentralized network like the DHT, you need to somehow "get into" the network, so you need to know someone from it.
- sliken 11y agoSure, but there's numerous ways to get DHT peers. Sure there's those 3 bootstrap peers, but there's also trackers that give you peers, peer exchanges, and torrents that point to trackers. Running pretty much any torrent client that has ever been on a torrent before is likely to find you additional DHT peers even if all the bootstrap hosts are down.