Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I'm confused - their p2p model forms a chain with each node only using 2 peers? Isn't that really fragile?


The chain is effectively ordering the nodes by public key, with the head of the line being the highest public keys and the tail of the line being the lowest ones. Nodes bootstrap by looking for their keyspace neighbours and building paths to them, which intermediate nodes will track in their routing tables, so at each hop, you effectively route “towards” a public key based on the known paths.


I’m confused. Is this designed to provide anonymity? If not, why not send messages directly to the target’s IP address rather than go through a bunch of hops?


So that you don't need n connections to communicate with n servers, which won't scale past a few thousand servers (probably even less if you also consider that the idea is have phones run the p2p server on mobile data connections).


This is not designed to provide anonymity. You don’t send messages directly to the target’s IP because they are likely not to be directly routable - eg they could be only contactable via Bluetooth Low Energy, or an adhoc wifi segment, with no clearnet IP routing connecting them to the ‘net. So you use pinecone to route instead.


there are two topologies - one is a global spanning tree, similar to yggdrasil. but then the chain (or snake) simply orders the nodes which are close on the spanning tree numerically based on their public key, and routes via them even if the spanning tree topology changes. So you’re basically swapping between the two topos based on what works best.

(This is based on word of mouth tho so I may have it totally wrong :)


That is still fragile.


It’s not just that each node has two routing table entries - there are more routes available than just the keyspace neighbours. There are also plenty of transitive paths from other nodes seeking out their keyspace neighbours, and routes to the spanning tree root and ancestors that you learn effectively for free. It is actually surprisingly robust in the testing we have performed so far (some simulation, some with real world devices).


Is it self-stabilising?


Yes. If nodes disappear then the next bootstrap packets, which currently run at a set interval, will find the next nearest keyspace neighbours and then sending setup packets will allow the network to build new paths. Similarly, the spanning tree also recovers by creating parent-child relationships using functioning paths.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: