Represents how a node currently participates in Consensus
.
enum ConsensusMode
Name |
Description |
---|---|
proposing |
We are normal participant in consensus and propose our position. |
observing |
We are observing peer positions, but not proposing our position. |
wrongLedger |
We have the wrong ledger and are attempting to acquire it. |
switchedLedger |
We switched ledgers since we started this consensus round but are now running on what we believe is the correct ledger. |
A node participates in consensus in varying modes, depending on how the node was configured by its operator and how well it stays in sync with the network during consensus.
proposing observing \ / \---> wrongLedger <---/ ^ | | v switchedLedger
We enter the round proposing or observing. If we detect we are working on the wrong prior ledger, we go to wrongLedger and attempt to acquire the right one. Once we acquire the right one, we go to the switchedLedger mode. It is possible we fall behind again and find there is a new better ledger, moving back and forth between wrongLedger and switchLedger as we attempt to catch up.
#include <ripple/consensus/ConsensusTypes.h>