Skip to content

Commit

Permalink
Avoid resetForkID in trustedNode
Browse files Browse the repository at this point in the history
  • Loading branch information
ARR552 committed Aug 23, 2023
1 parent f8da613 commit 2458269
Showing 1 changed file with 17 additions and 15 deletions.
32 changes: 17 additions & 15 deletions synchronizer/synchronizer.go
Original file line number Diff line number Diff line change
Expand Up @@ -680,12 +680,9 @@ func (s *ClientSynchronizer) checkTrustedState(batch state.Batch, tBatch *state.

if reorgReasons.Len() > 0 {
reason := reorgReasons.String()
log.Warnf("Trusted Reorg detected for Batch Number: %d. Reasons: %s", tBatch.BatchNumber, reason)
log.Warnf("Missmatch in trusted state detected for Batch Number: %d. Reasons: %s", tBatch.BatchNumber, reason)
if s.isTrustedSequencer {
for {
log.Error("TRUSTED REORG DETECTED! Batch: ", batch.BatchNumber)
time.Sleep(5 * time.Second) //nolint:gomnd
}
s.halt(s.ctx, fmt.Errorf("TRUSTED REORG DETECTED! Batch: %d", batch.BatchNumber))
}
// Store trusted reorg register
tr := state.TrustedReorg{
Expand Down Expand Up @@ -752,16 +749,21 @@ func (s *ClientSynchronizer) processForkID(forkID etherman.ForkID, blockNumber u
return nil
}

//Reset DB
err = s.state.ResetForkID(s.ctx, forkID.BatchNumber+1, forkID.ForkID, forkID.Version, dbTx)
if err != nil {
log.Error("error resetting the state. Error: ", err)
rollbackErr := dbTx.Rollback(s.ctx)
if rollbackErr != nil {
log.Errorf("error rolling back state to store block. BlockNumber: %d, rollbackErr: %s, error : %v", blockNumber, rollbackErr.Error(), err)
return rollbackErr
if !s.isTrustedSequencer {
log.Info("ForkID received in the permissionless node that affects to a batch from the past")
//Reset DB only if permissionless node
err = s.state.ResetForkID(s.ctx, forkID.BatchNumber+1, forkID.ForkID, forkID.Version, dbTx)
if err != nil {
log.Error("error resetting the state. Error: ", err)
rollbackErr := dbTx.Rollback(s.ctx)
if rollbackErr != nil {
log.Errorf("error rolling back state to store block. BlockNumber: %d, rollbackErr: %s, error : %v", blockNumber, rollbackErr.Error(), err)
return rollbackErr
}
return err
}
return err
} else {
log.Warnf("forkID received for a batch from the past in the trustedNode! Skipping reset forkID. ForkID: %+v.", fID)
}

// Add new forkID to the state
Expand Down Expand Up @@ -937,7 +939,7 @@ func (s *ClientSynchronizer) processSequenceBatches(sequencedBatches []etherman.

// Reset trusted state
previousBatchNumber := batch.BatchNumber - 1
log.Warnf("Trusted reorg detected, discarding batches until batchNum %d", previousBatchNumber)
log.Warnf("Missmatch in trusted state detected, discarding batches until batchNum %d", previousBatchNumber)
err = s.state.ResetTrustedState(s.ctx, previousBatchNumber, dbTx) // This method has to reset the forced batches deleting the batchNumber for higher batchNumbers
if err != nil {
log.Errorf("error resetting trusted state. BatchNumber: %d, BlockNumber: %d, error: %v", batch.BatchNumber, blockNumber, err)
Expand Down

0 comments on commit 2458269

Please sign in to comment.