File tree Expand file tree Collapse file tree 1 file changed +26
-1
lines changed Expand file tree Collapse file tree 1 file changed +26
-1
lines changed Original file line number Diff line number Diff line change @@ -89,8 +89,33 @@ func (ls *LedgerState) handleEventBlockfetch(evt event.Event) {
8989 }
9090}
9191
92- //nolint:unparam
9392func (ls * LedgerState ) handleEventChainsyncRollback (e ChainsyncEvent ) error {
93+ tip , err := ls .chainTip (nil )
94+ if err != nil {
95+ return err
96+ }
97+ // Lookup block number for rollback point
98+ tmpBlock , err := database .BlockByPoint (ls .db , e .Point )
99+ if err != nil {
100+ return err
101+ }
102+ // Delete any rolled-back blocks
103+ for i := tip .BlockNumber ; i > tmpBlock .Number ; i -- {
104+ txn := ls .db .BlobTxn (true )
105+ err := txn .Do (func (txn * database.Txn ) error {
106+ tmpBlock , err := database .BlockByNumberTxn (txn , i )
107+ if err != nil {
108+ return err
109+ }
110+ if err := database .BlockDeleteTxn (txn , tmpBlock ); err != nil {
111+ return err
112+ }
113+ return nil
114+ })
115+ if err != nil {
116+ return err
117+ }
118+ }
94119 // Generate event
95120 ls .config .EventBus .Publish (
96121 ChainUpdateEventType ,
You can’t perform that action at this time.
0 commit comments