Skip to content

Validator ordering: unexpose or make explicit? #3073

@kevlubkcm

Description

@kevlubkcm

Hi all,

Not sure if this has been discussed before, maybe over Slack?

The ordering of validators and the index of each validator is exposed in a few places (eg the /consensus_state endpoint and in Vote events).

So the current implementation details of validators as an ordered list is quite important.

For example, to maintain a valid ValidatorSet by following ValidatorSetUpdates events, we need to be aware that new validators are always added to the end of the list in the order of the validator_updates array and validators are deleted by shifting all validators after the deleted one down.

The name ValidatorSet implies that ordering is not important, but this is not true right now.

It seems to me that validator ordering is not critical to tendermint consensus. Maybe the best solution is to remove areas that expose it? Otherwise, update the docs to codify what the details are/should be (and maybe rename ValidatorSet to ValidatorList.

Metadata

Metadata

Assignees

Labels

C:consensusComponent: ConsensusC:docsComponent: DocumentationT:questionType: Question

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions