Skip to content

Handshake Negotiation Bug #705

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Fields

Priority

None yet

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions