Skip to content

Handshake Negotiation Bug #705

@karknu

Description

@karknu

When pallas acts as a responder and the remote side sends a handshake offer with InitiatorOnly=False pallas will refuse the connection and emit a "handshake version not accepted".

The correct behavior is for pallas to accept the handshake but respond with an AcceptVersion message with InitiatorOnly=True. The end result is a simplex mux bearer where pallas only runs the responder side of the miniprotocols and the remote end only runs the initiator miniprotocols.

From the network protocol spec: "diffusion mode SHOULD be initiator only if and only if any side proposes the initiator-only mode (i.e. the logical disjunction operator);", see https://ouroboros-network.cardano.intersectmbo.org/pdfs/network-spec/network-spec.pdf

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions