File tree Expand file tree Collapse file tree 1 file changed +23
-1
lines changed
core/src/consensus/tendermint Expand file tree Collapse file tree 1 file changed +23
-1
lines changed Original file line number Diff line number Diff line change @@ -1103,6 +1103,23 @@ impl Worker {
11031103 }
11041104
11051105 fn proposal_generated ( & mut self , sealed_block : & SealedBlock ) {
1106+ let proposal_height = sealed_block. header ( ) . number ( ) ;
1107+ let proposal_seal = sealed_block. header ( ) . seal ( ) ;
1108+ let proposal_view = TendermintSealView :: new ( proposal_seal)
1109+ . consensus_view ( )
1110+ . expect ( "Generated proposal should have a valid seal" ) ;
1111+ if proposal_height < self . height || ( proposal_height == self . height && proposal_view != self . view ) {
1112+ ctrace ! (
1113+ ENGINE ,
1114+ "Proposal is generated on the height {} and view {}. Current height is {} and view is {}" ,
1115+ proposal_height,
1116+ proposal_view,
1117+ self . height,
1118+ self . view,
1119+ ) ;
1120+ return
1121+ }
1122+
11061123 let header = sealed_block. header ( ) ;
11071124 let hash = header. hash ( ) ;
11081125 let parent_hash = header. parent_hash ( ) ;
@@ -1117,7 +1134,12 @@ impl Worker {
11171134 parent_hash, expected_parent_hash
11181135 ) ;
11191136 } else {
1120- panic ! ( "Block is generated at unexpected step {:?}" , self . step) ;
1137+ ctrace ! (
1138+ ENGINE ,
1139+ "Proposal is generated after step is changed. Expected step is ProposeWaitBlockGeneration but current step is {:?}" ,
1140+ self . step,
1141+ ) ;
1142+ return
11211143 }
11221144 let prev_proposer_idx = self . block_proposer_idx ( * parent_hash) . expect ( "Prev block must exists" ) ;
11231145
You can’t perform that action at this time.
0 commit comments