@@ -2083,13 +2083,21 @@ func (e *Epoch) proposeBlock(block VerifiedBlock) error {
20832083
20842084 // Write record to WAL before broadcasting it, so that
20852085 // if we crash during broadcasting, we know what we sent.
2086-
20872086 rawBlock , err := block .Bytes ()
20882087 if err != nil {
20892088 e .Logger .Error ("Failed serializing block" , zap .Error (err ))
20902089 return err
20912090 }
20922091
2092+ vote , err := e .voteOnBlock (block )
2093+ if err != nil {
2094+ return err
2095+ }
2096+
2097+ if ! e .storeProposal (block ) {
2098+ return errors .New ("failed to store block proposed by me" )
2099+ }
2100+
20932101 record := BlockRecord (block .BlockHeader (), rawBlock )
20942102 if err := e .WAL .Append (record ); err != nil {
20952103 e .Logger .Error ("Failed appending block to WAL" , zap .Error (err ))
@@ -2100,22 +2108,13 @@ func (e *Epoch) proposeBlock(block VerifiedBlock) error {
21002108 zap .Int ("size" , len (rawBlock )),
21012109 zap .Stringer ("digest" , md .Digest ))
21022110
2103- vote , err := e .voteOnBlock (block )
2104- if err != nil {
2105- return err
2106- }
2107-
21082111 proposal := & Message {
21092112 VerifiedBlockMessage : & VerifiedBlockMessage {
21102113 VerifiedBlock : block ,
21112114 Vote : vote ,
21122115 },
21132116 }
21142117
2115- if ! e .storeProposal (block ) {
2116- return errors .New ("failed to store block proposed by me" )
2117- }
2118-
21192118 e .Comm .Broadcast (proposal )
21202119 e .Logger .Debug ("Proposal broadcast" ,
21212120 zap .Uint64 ("round" , md .Round ),
0 commit comments