celestiaorg / celestia-app

Celestia consensus node
https://celestiaorg.github.io/celestia-app/
Apache License 2.0
341 stars 279 forks source link

Add a `ACCEPT` or `REJECT` field to MsgSignalVersion #3545

Closed rootulp closed 3 months ago

rootulp commented 3 months ago

Context

See finding 4 of Informal Systems findings.

Problem

If a validator signals for v3 but that signal comes one block after an upgrade to v3, then the signal may be ambiguous for the next upgrade. When we're tallying v4 votes, it isn't possible to tell if that validator meant to vote for v3 (as a veto of v4) or just hasn't gotten around to upgrading to v4 yet.

Proposal

Add a field to MsgSignalVersion with two possible values:ACCEPT and REJECT

evan-forbes commented 3 months ago

to document a note from a sync convo, one possible solution to this would be to simply document that voting for the current app version means the same thing as not signaling.

rootulp commented 3 months ago

We just discussed this and decided to not implement ACCEPT or REJECT because these fields won't be used for tallying so they seem redundant.

Communication of whether a validator supports a particular version should happen out-of-protocol via forums ideally before the network starts signaling for it.