Home

precommits

Precommits are a type of validator message used in some Byzantine fault-tolerant (BFT) consensus protocols, notably Tendermint. A precommit expresses a validator’s readiness to commit a proposed block to the blockchain, serving as a key step toward finality.

In these protocols, consensus proceeds through rounds with distinct voting stages. After a block proposal and

Precommits help prevent forks by requiring broad agreement before a block can be committed. They are part

If no block attains the required precommit quorum within a round, the protocol can repeat rounds or

See also: Byzantine fault tolerance, Tendermint, PBFT, finality, consensus protocol.

an
initial
voting
phase
(often
called
prevote),
validators
may
send
a
precommit
for
a
specific
block
at
a
given
height
if
certain
conditions
are
met,
such
as
having
observed
a
valid
proposal
and
being
locked
on
that
block.
A
block
gains
finality
when
it
receives
a
supermajority
of
precommits,
meaning
more
than
two-thirds
of
voting
power
have
expressed
commitment
for
that
block.
Once
this
threshold
is
reached,
the
block
is
considered
finalized
and
the
chain
can
advance
to
the
next
height.
of
a
locking
mechanism:
if
a
validator
is
locked
on
a
block,
it
will
only
switch
to
a
different
candidate
block
if
certain
safety
conditions
are
satisfied,
which
reinforces
consistency
across
honest
nodes.
switch
locks,
potentially
with
new
proposals.
While
the
precommit
stage
is
central
to
finality
in
Tendermint-like
systems,
other
BFT
protocols
use
conceptually
similar
stages
with
different
terminology,
such
as
prepare
and
commit
messages
in
PBFT.