[][src]Module finality_grandpa::bitfield

Bitfields and tools for handling equivocations.

This is primarily a bitfield for tracking equivocating voters. It is necessary because there is a need to track vote-weight of equivocation on the vote-graph but to avoid double-counting.

We count equivocating voters as voting for everything. This makes any further equivocations redundant with the first.

Bitfields are either blank or live, with two bits per equivocator. The first is for equivocations in prevote messages and the second for those in precommits.

Bitfields on regular vote-nodes will tend to be live, but the equivocating bitfield will be mostly empty.

Structs

Context

Context data for bitfields, shared among all live bitfield instances. (only usable under std environment.)

LiveBitfield

Live bitfield instance.

Enums

Bitfield

Bitfield for tracking voters who have equivocated.

Error

Errors that can occur when using the equivocation weighting tools.