-
Notifications
You must be signed in to change notification settings - Fork 231
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
commit_sig absent blockID fails validation (if validator address is present) #246
Comments
Here's a passing test to show the issue:
Validator address should not be empty and timestamp should be null or omitted. |
Note that while the ADR clearly states the val addr should be included as you say, the go implementation currently does this: So either a decisions was made to deviate from the ADR on purpose and the ADR wasn't updated or the go implementation behaves accidentally as it does (which the rust impl followed). |
Seems like a good point to raise on the next Tendermint call. |
Closing in favor of #260. |
Bug description
ADR-025 decision states:
But the current Rust implementation of commit_sig defines a validate function that fails with error if the BlockID is "FlagAbsent" and a validator address is present.
Although the neccessity of the validator address is questioned in several places, the current decision is to include it in CommitSigs. So, the Rust implementation should follow that.
Proposed solution
Rewrite the CommitSig in a simpler form (possibly as an enum) and abstract away the serialization and type validation. (I'm planning to give an example of that soon.)
Short term fix: remove the check in the
validate
function.The text was updated successfully, but these errors were encountered: