You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The above is the error message. It seems that the signature of precommit is invalid.
The above error message is printed by this code.
According to my analysis, for a full gaiad node, when it get a precommit which votes nil, then the BlockID is shown as follows:
This precommit can pass the verification of a full node, but fail in lcd verification. The key difference is that the block hash is empty array from lcd view while it is nil pointer from full node view. A full node view gets precommits vote by p2p gossip, and a lcd node gets precommits by calling rpc and unmarshal with amino.
I have very little knowledge about amino. So I can't figure out the root reason. However, if we direactly assgin nil to blockID hash in lcd, then the signature verification will be passed.
Please refer to this repository to reproduce this issue.
The text was updated successfully, but these errors were encountered:
I encountered some failures in lcd proof verification when a precommit set contains nil precommit.
The above is the error message. It seems that the signature of precommit is invalid.
The above error message is printed by this code.
According to my analysis, for a full gaiad node, when it get a precommit which votes nil, then the BlockID is shown as follows:
However, for a lcd node, when it get a precommit which votes nil, then the BlockID is shown as follows:
This precommit can pass the verification of a full node, but fail in lcd verification. The key difference is that the block hash is empty array from lcd view while it is nil pointer from full node view. A full node view gets precommits vote by p2p gossip, and a lcd node gets precommits by calling rpc and unmarshal with amino.
I have very little knowledge about amino. So I can't figure out the root reason. However, if we direactly assgin nil to blockID hash in lcd, then the signature verification will be passed.
Please refer to this repository to reproduce this issue.
The text was updated successfully, but these errors were encountered: