diff --git a/simplex/epoch.go b/simplex/epoch.go index 569f33ae..c1c48a19 100644 --- a/simplex/epoch.go +++ b/simplex/epoch.go @@ -166,7 +166,7 @@ func (e *Epoch) HandleMessage(msg *common.Message, from common.NodeID) error { } _, known := e.validatorsToPKs[string(from)] - if !known { + if !known || e.isEpochSealed() { e.Logger.Debug("Received message from a non-validator node", zap.Stringer("nodeID", from)) switch { case msg.ReplicationRequest != nil && e.ReplicationEnabled: @@ -1466,6 +1466,7 @@ func (e *Epoch) indexFinalizations(startRound uint64) error { } func (e *Epoch) indexFinalization(block common.VerifiedBlock, finalization common.Finalization) error { + // index only if the epoch is not sealed if err := e.Storage.Index(e.finishCtx, block, finalization); err != nil { return err } @@ -1473,6 +1474,7 @@ func (e *Epoch) indexFinalization(block common.VerifiedBlock, finalization commo zap.Uint64("round", finalization.Finalization.Round), zap.Uint64("sequence", finalization.Finalization.Seq), zap.Stringer("digest", finalization.Finalization.Digest)) + e.lastBlock = &common.VerifiedFinalizedBlock{ VerifiedBlock: block, Finalization: finalization,