Skip to content

privval: consensus should tell the privval whether to sign vote extensions #3642

@cason

Description

@cason

Inspired by #3570 and similar issues reported regarding the behavior of the private validator (privval) when signing vote messages from v0.38.x.

Currently, the private validator receives from consensus the information of whether vote extensions are enabled or not. It is up to the private validator implementation to validate the semantics of vote extensions, thus to sign or reject the vote and the extension.

More precisely, the private validator is expected to:

  1. Do not accept and sign extensions for Prevote votes
  2. Do not accept and sign extensions for Precommit votes for nil
  3. Produce a signature for a vote extensions for a Precommit for a value that is not nil, even if the vote extension is empty

We probably should simplify the logic at the private validator side and tell it explicitly whether to expect and sign the extension present in the vote.

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingprivval

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions