Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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
refactor: adding CheckForMisbehaviour to 07-tendermint client #1163
refactor: adding CheckForMisbehaviour to 07-tendermint client #1163
Changes from 7 commits
dd3da0a
700d1c1
24e6102
b21571b
10a6771
c37dfc9
5ab8b76
2870baf
c9eb327
60f6d25
6bcaaf2
3999b7b
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we can just return true here. I think this should be done in
VerifyClientMessage
. If the type isMisbehaviour
it should be considered invalid if it isn't evidence of misbehaviourThere was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Okay, I get you! So if the type is indeed
Misbehaviour
then it should be validated as such inVerifyClientMessage
andCheckForMisbehaviour
can just directly return true for that type. SoCheckForMisbehaviour
should only check for time monotonicity ofHeader
types as well as the previous consensus state checks, correct?I can go ahead and remove this code and the tests for
Misbehaviour
types.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
correct! Does this API still make sense? It does seem kinda odd that developers need to know how these functions are used. But at the same time, I guess the perspective is "this is misbehaviour, thus I return true" and "this is a header, does it happen to be evidence of misbehaviour?"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I do agree, at first I thought it was slightly odd, it does require some thinking and prior knowledge that
VerifyClientMessage
should be called beforehand. But I guess it is a matter of perspective!My only concern is that someone would use
CheckForMisbehaviour
with a malformedMisbehaviour
type and freeze a client by mistake. But in reality I'm not sure how likely that is to happen, and the new APIs certainly make for cleaner code and an easier flow to reason about.