See also: yggdrasil/cjdns/hyperbora that also provide p2p routing in a mesh network (without DHT), but also map public keys to an unused chunk of IPv6.<p>IPFS p2p is more similar to that project, with a DHT, though I am not sure about encryption.<p>To me, this is the future. I wish we had a set of APIs to allow connecting to a public key instead of an IP adress... however that requires reinventing most of the network stack (subnets, etc). That could be a base for IPv7. As a bonus, this could run on top of IPv4 or IPv6.<p>Creating ephemeral, E2EE addresses has a lot of nice properties: you can roam with the same address (making it easy to move a server around, even behind cellular internet). Browsers could use a different key for each site. Sites could use that as a session identifier to authenticate against.
Hey all, I’m the author of spork. Just want to give credit to the Hypercore Protocol team as they’re responsible for 99% of this tool. They’re going to be speaking at NodeConf on Wednesday so check that out if you’re interested [1]<p>1. <a href="https://www.nodeconfremote.com/#workshops/how-to-build-p2p-applications-for-fun-and-profit" rel="nofollow">https://www.nodeconfremote.com/#workshops/how-to-build-p2p-a...</a>
> Spork is all about creating forward and reverse proxies between traditional sockets and p2p sockets.<p>> Sockets are identified by a public key and connect using a Distributed Hash Table (DHT). Connections are end-to-end encrypted using the NOISE framework.<p>Okay, sounds like pretty neat. Is anyone aware of whether Spork is undergoing any sort of formal review?<p>NOISE appears to be popular and well-reviewed, but Spork uses noise-peer, a two-contributor project. Spork itself is one-contributor.<p>So...neat sounding, but I'm not using it for anything remotely sensitive until it sees more eyeballs. Hopefully a bunch of HNers can help with that.
This is similar to p2p streams in IPFS. We've been using these in Peergos for 3 years now via the p2p http proxy in IPFS (which we contributed). It is a glorious model. The client, in our case Peergos, sends normal http requests to a localhost proxy URL that includes the target public key and voila! We wrote it up after developing it here: <a href="https://peergos.org/posts/dev-update" rel="nofollow">https://peergos.org/posts/dev-update</a><p>The underlying streams use TLS 1.3 as the transport encryption.<p>And we've just written a super minimal ipfs replacement (for ourselves) which includes this: <a href="https://github.com/peergos/ipfs-nucleus/" rel="nofollow">https://github.com/peergos/ipfs-nucleus/</a>
One question that always comes up for me with DHT backed systems is resistance to DOS attacks. Making any P2P system resistant to DOS/DDOS is brutally difficult, but DHTs have always seemed especially vulnerable to a sophisticated attacker. A hybrid sybil/DDOS attack seems like it could down the network easily.<p>The Internet is a dark forest. Anything that gets popular will be attacked. The fact that it does not have a single owner may reduce the chances of ransom as a motive, but it doesn't reduce the chances of all attacker profiles including just "griefing."
Looks cool and simple to use, now can someone please explain to me why this matters?<p>What centralized system does Spork remedy? It bypasses DNS? Is there any sort of discovery and/or replication and/or redundancy?
This is good but, in terms of requiring special software on both sides, it is no better than tor which allows you to expose a service even behind NAT.<p>Anyone knows a similar service which do not needs special software on the client side?
I'm confused how the client/local proxy finds the rest of the distributed hash table to do its lookup in. Are there some fixed conventional internet addresses it can start from or something?