mirror of
https://github.com/serai-dex/serai.git
synced 2025-12-08 04:09:23 +00:00
add missing prevotes (#590)
* add missing prevotes * remove the TODO * add missing current step checks --------- Co-authored-by: akildemir <aeg_asd@hotmail.com>
This commit is contained in:
@@ -708,9 +708,17 @@ impl<N: Network + 'static> TendermintMachine<N> {
|
|||||||
if let Data::Proposal(_, block) = &msg.data {
|
if let Data::Proposal(_, block) = &msg.data {
|
||||||
match self.network.validate(block).await {
|
match self.network.validate(block).await {
|
||||||
Ok(()) => {}
|
Ok(()) => {}
|
||||||
Err(BlockError::Temporal) => return Err(TendermintError::Temporal),
|
Err(BlockError::Temporal) => {
|
||||||
|
if self.block.round().step == Step::Propose {
|
||||||
|
self.broadcast(Data::Prevote(None));
|
||||||
|
}
|
||||||
|
Err(TendermintError::Temporal)?;
|
||||||
|
}
|
||||||
Err(BlockError::Fatal) => {
|
Err(BlockError::Fatal) => {
|
||||||
log::warn!(target: "tendermint", "validator proposed a fatally invalid block");
|
log::warn!(target: "tendermint", "validator proposed a fatally invalid block");
|
||||||
|
if self.block.round().step == Step::Propose {
|
||||||
|
self.broadcast(Data::Prevote(None));
|
||||||
|
}
|
||||||
self
|
self
|
||||||
.slash(
|
.slash(
|
||||||
msg.sender,
|
msg.sender,
|
||||||
@@ -729,6 +737,9 @@ impl<N: Network + 'static> TendermintMachine<N> {
|
|||||||
target: "tendermint",
|
target: "tendermint",
|
||||||
"proposed proposed with a syntactically invalid valid round",
|
"proposed proposed with a syntactically invalid valid round",
|
||||||
);
|
);
|
||||||
|
if self.block.round().step == Step::Propose {
|
||||||
|
self.broadcast(Data::Prevote(None));
|
||||||
|
}
|
||||||
self
|
self
|
||||||
.slash(msg.sender, SlashEvent::WithEvidence(Evidence::InvalidValidRound(msg.encode())))
|
.slash(msg.sender, SlashEvent::WithEvidence(Evidence::InvalidValidRound(msg.encode())))
|
||||||
.await;
|
.await;
|
||||||
|
|||||||
Reference in New Issue
Block a user