You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Users should be able to tell whether nodes are able to communicate before opening a Head (i.e. spending ADAs to post transactions on-chain)
What
Make the networking stack detect when incompatible versions are used between nodes.
Incompatible version means
messages are not understood by next/previous version (does not round trip)
a new message had been added, which is ignored by older versions (= additions are also breaking)
Scope:
When a hydra-node realizes it is on a different version than a peer, it logs an error and an API server output PeerProtocolVersionMismatch is produced analogous to PeerDisconnected.
The hydra-tui displays this as an error and has the mismatching peer listed with a red color.
A hydra-node only supports a single network protocol version.
Improve our ouroboros-network stack to using a versioned handshake protocol with a description of which versions of the Hydra off-chain protocol are supported by each party will allow the hydra-node to fail earlier and provide better information to operators on the reasons why the hydra head cannot operate.
Alternative (unlikely feasible):
Switch to another network stack that provides a similar version-ed messaging mechanism
The text was updated successfully, but these errors were encountered:
ghost
added
💭 idea
An idea or feature request
network
ux
Related to user experience
L2
Affect off-chain part of the Head protocol/network
and removed
💭 idea
An idea or feature request
labels
Aug 4, 2023
To make this testable, we should not follow the wrong path of how the Connectivity messages are wired in here:
As the version mismatch is depending on a non-configurable version, this would become impossible to test from an end-to-end integration point and no other test suite includes Hydra.Node.Run (where the Connectivity messages are wired right now)
Instead, we should bite the bullet of changing the NetworkInput to the HeadLogic layer to also these "control messages" and handle their mapping to ServerOutput in the HeadLogic (or a wrapping NodeLogic - they have nothing to do with the head state)
Why
Users should be able to tell whether nodes are able to communicate before opening a Head (i.e. spending ADAs to post transactions on-chain)
What
Make the networking stack detect when incompatible versions are used between nodes.
Incompatible version means
Scope:
hydra-node
realizes it is on a different version than a peer, it logs an error and an API server outputPeerProtocolVersionMismatch
is produced analogous toPeerDisconnected
.hydra-tui
displays this as an error and has the mismatching peer listed with a red color.hydra-node
only supports a single network protocol version.How
Also related to #1080
ouroboros-network
stack to using a versioned handshake protocol with a description of which versions of the Hydra off-chain protocol are supported by each party will allow the hydra-node to fail earlier and provide better information to operators on the reasons why the hydra head cannot operate.Alternative (unlikely feasible):
The text was updated successfully, but these errors were encountered: