> would direct connections require the sender and receiver to be online at the same time?
Could always use 'indirect' connections to store-and-forward, and only relying on the central server when absolutely necessary.
You do risk some lost messages when you underestimate failures, but the same thing applies to any central store-and-forward facility.
Early Kazaa depended on some nodes becoming supernodes. Supposedly initial Skype was decentralized like this (particular to get around NATs), until it became exclusively client-server.
Could always use 'indirect' connections to store-and-forward, and only relying on the central server when absolutely necessary.
You do risk some lost messages when you underestimate failures, but the same thing applies to any central store-and-forward facility.
Early Kazaa depended on some nodes becoming supernodes. Supposedly initial Skype was decentralized like this (particular to get around NATs), until it became exclusively client-server.