diff --git a/zk/stages/stage_batches.go b/zk/stages/stage_batches.go index d6ca3d966c7..5a6e5f7ddc2 100644 --- a/zk/stages/stage_batches.go +++ b/zk/stages/stage_batches.go @@ -19,6 +19,7 @@ import ( "github.com/ledgerwatch/erigon/zk/hermez_db" txtype "github.com/ledgerwatch/erigon/zk/tx" + "github.com/ledgerwatch/erigon/core/rawdb" "github.com/ledgerwatch/log/v3" ) @@ -91,6 +92,11 @@ func SpawnStageBatches( return fmt.Errorf("save stage progress error: %v", err) } + highestVerifiedBatch, err := sync_stages.GetStageProgress(tx, sync_stages.L1VerificationsBatchNo) + if err != nil { + return fmt.Errorf("could not retrieve l1 verifications batch no progress") + } + startSyncTime := time.Now() errChan := make(chan error) @@ -191,6 +197,11 @@ func SpawnStageBatches( } highestSeenBatchNo = l2Block.BatchNumber + // store our finalized state if this batch matches the highest verified batch number on the L1 + if l2Block.BatchNumber == highestVerifiedBatch { + rawdb.WriteForkchoiceFinalized(tx, l2Block.L2Blockhash) + } + if lastHash != emptyHash { l2Block.ParentHash = lastHash } else {