Skip to content

Networking

Loong edited this page May 21, 2020 · 6 revisions

Work in progress!

Hyperdrive exposes a simple networking interface that must be implemented by the user. It assumes that broadcasting a message to the network will eventually result in all network participants seeing the message. However, it does not assume that the latency of this broadcast is known. This is important, because is no way to know how much work happens between Hyperdrive initiating a broadcast and the broadcast actually happening.

It is explicitly worth noting that in practice not all messages need to exhibit this property, and it is impossible to implement this when nodes are offline for extended periods of time (without using expensive resynchronisation mechanisms). However, Hyperdrive does require that all commitments to base blocks will eventually be seen. This is much easier to guarantee, since these blocks occur much less frequently. Internally, Hyperdrive implements its own resynchronisation mechanisms to assist with the delivery of other messages where required.

Clone this wiki locally