in PBFT, every view (roughly equivalent to an epoch) is assigned a single validator, and that validator is free to propose whatever they want.
Minimal Slashing Conditions
Vitalik Buterin
17511

I’m not sure to understand how the proposal mechanism work. So I’m not sure that the following questions make sense.

1. How the validator that proposes the hash is chosen?

2. What happens if the validator is offline?

3. Must the validator propose a hash with a message like `PREPARE` and `COMMIT`? Something like `[PROPOSE, epoch, HASH, epoch_source]`

4. There are slashing conditions for the proposer?

5. Must a validator send `PREPARE` messages only for proposed hash?

6. The proposed messages are included in the state?

Show your support

Clapping shows how much you appreciated Filippo Merli’s story.