I've been researching the pastry DHT for a personal project and I really like it but the routing has me confused.
The routing is done using prefix routing and uses leafsets for close nodes ( IE nodes with a common prefix with the local node ) and a routeset for more distant nodes.
Now my confusion comes from the following: The DHT is bootstrapped with 5 nodes. The server that functions as a bootstrapper adds every joined node to it's routeset and gives this to every node that joins the DHT afterwards.
So if prefix A joins, the bootstrapper adds it to it's routeset. If prefix F joins after A it will receive the routeset from the bootstrapper which contains A.
What if A needs to Route to F? It will never know of it's existence because the spec does not specify the copying of routing tables between nodes only the leafsets.
This is a small example and i hope it is clear. Is it possible to have a routing gap in pastry?
Kind regards