Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: implement misbehaviour detection #1121

Merged
merged 3 commits into from
Mar 14, 2023
Merged

Conversation

jtieri
Copy link
Member

@jtieri jtieri commented Mar 11, 2023

Misbehaviour detection was missing in the relayer, so it's been re-implemented such that on every MsgUpdateClient we compare the proposed consensus state to the trusted consensus state from the counterparty at the same height. If there is a deviation between the two a MsgSubmitMisbehaviour will be composed and broadcasted so that the light client is frozen.

Part of the goal here was to implement misbehaviour detection in a way that the code pieces involved are reusable, in the sense that they can be called from any ChainProvider implementation. Otherwise each ChainProvider implementation would need to implement their own detection logic for every supported light client. To achieve this we need to expose the BinaryCodec which is an SDK interface type, this is required in order to call UnmarshalClientMessage from ibc-go

Misbehaviour detection was missing in the relayer, so it's been re-implemented such that on every MsgUpdateClient we compare the proposed consensus state to the trusted consensus state from the counterparty at the same height. If there is a deviation between the two a MsgSubmitMisbehaviour will be composed and broadcasted so that the light client is frozen.
@jtieri
Copy link
Member Author

jtieri commented Mar 11, 2023

Closes #750

Copy link
Member

@agouin agouin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice work! Left a couple of questions and clean up suggestions.

@jtieri jtieri requested a review from agouin March 13, 2023 17:47
@jtieri jtieri requested a review from agouin March 13, 2023 21:14
Copy link
Member

@agouin agouin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚢

@jtieri jtieri merged commit 72d1ad2 into main Mar 14, 2023
@jtieri jtieri deleted the justin/feat-misbehaviour branch March 14, 2023 01:34
jonathanpberger added a commit to jonathanpberger/hermes that referenced this pull request Nov 4, 2023
Misbehavior detection was added to the go-relayer in cosmos/relayer#1121 on March 13, 2023.
romac pushed a commit to informalsystems/hermes that referenced this pull request Nov 8, 2023
Misbehavior detection was added to the go-relayer in cosmos/relayer#1121 on March 13, 2023.

Co-authored-by: Luca Joss <43531661+ljoss17@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants