-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Description
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.