https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm
Dijkstra's algo can be used for path-finding in a p2p network, which comes handy when relaying information as a unicast (between 2 peers) or multicast (between 3 peers). Instead of relying on the very unreliable geographical data (lat/long) their devices can provide, their network latency values can used instead.
Requirements:
- Clients should determine the latency of their direct peers periodically.
- Clients should be able to relay the messages in a forward and backward manner
- Client should be able to group the messages
- Encoding of messages
Considerations:
- Network overhead: Every size(x) if a message sent linearly grows by the number of hops (y) required to reach the receiver.
- Message switching requirements: https://www.techopedia.com/definition/20681/message-switching
- Round-trip delay time: https://en.wikipedia.org/wiki/Latency_(engineering)#Packet-switched_networks
Sample use case:
- Verifying a query / resource
- Establishing a WebRTC connection