Skip to content

Separate Handshaker from proxy.AppConns #2436

@ebuchman

Description

@ebuchman

Currently we pass the Handshaker into the proxy.AppConns and let it handle the handshake with the app on proxyApp.OnStart.

This isn't necessary and just hides the result of the Handshake inside the proxy app. Since the app will return its version during the handshake (see ADR-016), we need access to the result of the Handshake.

This was realized while working in #2160 and was added to the ADR-016 in #2435

Ultimately, the Handshake should probably return a full State. This would eliminate the need to reload the state after the handshake like we currently do in eg. https://github.com/tendermint/tendermint/blob/v0.24.0/node/node.go#L201

This will require some refactoring of the handshake logic, and will probably intersect with #1029.

We might also consider moving the handshake logic from consensus to state as it's not immediately clear it needs to be in consensus.

Metadata

Metadata

Assignees

No one assigned

    Labels

    C:abciComponent: Application Blockchain InterfaceC:consensusComponent: ConsensusC:syncComponent: Fast Sync, State Sync

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions