I do not understand how the proposal mechanism illutstrated here works.
A proposal mechanism is a mechanism that proposes hashes, which the rest of the machinery with PREPARE and COMMIT messages then tries to finalize. The mechanism may well be faulty at times; it’s the job of the slashing conditions to ensure that even if the proposal mechanism is faulty, there are no safety failures and the protocol can finalize something once the proposal mechanism stops being faulty.
From the above quote it seems that the proposal mechanism propose an hash before than the validators send PREPARE and COMMIT messages.
How are block proposals made in Casper? is the best answer that I can find on stackexchange but I think that is related to another algorithm.
Here some doubts that I have:
- How the validator that proposes the hash is chosen?
- What happens if the validator is offline?
- Must the validator use a message like
COMMITto propose an hash? Something like
[PROPOSE, epoch, HASH, epoch_source]
- There are slashing conditions for the proposer?
- Must a validator send
PREPAREmessages only for proposed hash?
- The proposed messages are included in the state?