mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-10 14:03:46 +00:00
fix(rollup-verifier): delete committed batch meta when reverting a batch (#1000)
* fix(rollup-verifier): delete committed batch metadata when reverting a batch * chore: auto version bump [bot] * remove a comment --------- Co-authored-by: colinlyguo <colinlyguo@users.noreply.github.com>
This commit is contained in:
parent
233a6adc15
commit
03f3b2b60d
4 changed files with 24 additions and 2 deletions
|
|
@ -208,3 +208,11 @@ func ReadCommittedBatchMeta(db ethdb.Reader, batchIndex uint64) *CommittedBatchM
|
||||||
}
|
}
|
||||||
return cbm
|
return cbm
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// DeleteCommittedBatchMeta removes the block ranges of all chunks associated with a specific batch from the database.
|
||||||
|
// Note: Only non-finalized batches can be reverted.
|
||||||
|
func DeleteCommittedBatchMeta(db ethdb.KeyValueWriter, batchIndex uint64) {
|
||||||
|
if err := db.Delete(committedBatchMetaKey(batchIndex)); err != nil {
|
||||||
|
log.Crit("failed to delete committed batch metadata", "batch index", batchIndex, "err", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -211,7 +211,7 @@ func TestBatchChunkRanges(t *testing.T) {
|
||||||
DeleteBatchChunkRanges(db, uint64(len(chunks)+1))
|
DeleteBatchChunkRanges(db, uint64(len(chunks)+1))
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestWriteReadCommittedBatchMeta(t *testing.T) {
|
func TestWriteReadDeleteCommittedBatchMeta(t *testing.T) {
|
||||||
db := NewMemoryDatabase()
|
db := NewMemoryDatabase()
|
||||||
|
|
||||||
testCases := []struct {
|
testCases := []struct {
|
||||||
|
|
@ -261,6 +261,19 @@ func TestWriteReadCommittedBatchMeta(t *testing.T) {
|
||||||
if got := ReadCommittedBatchMeta(db, 256); got != nil {
|
if got := ReadCommittedBatchMeta(db, 256); got != nil {
|
||||||
t.Fatalf("Expected nil for non-existing value, got %+v", got)
|
t.Fatalf("Expected nil for non-existing value, got %+v", got)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// delete: revert batch
|
||||||
|
for _, tc := range testCases {
|
||||||
|
DeleteCommittedBatchMeta(db, tc.batchIndex)
|
||||||
|
|
||||||
|
readChunkRange := ReadCommittedBatchMeta(db, tc.batchIndex)
|
||||||
|
if readChunkRange != nil {
|
||||||
|
t.Fatal("Committed batch metadata was not deleted", "batch index", tc.batchIndex)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// delete non-existing value: ensure the delete operation handles non-existing values without errors.
|
||||||
|
DeleteCommittedBatchMeta(db, 256)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestOverwriteCommittedBatchMeta(t *testing.T) {
|
func TestOverwriteCommittedBatchMeta(t *testing.T) {
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ import (
|
||||||
const (
|
const (
|
||||||
VersionMajor = 5 // Major version component of the current release
|
VersionMajor = 5 // Major version component of the current release
|
||||||
VersionMinor = 6 // Minor version component of the current release
|
VersionMinor = 6 // Minor version component of the current release
|
||||||
VersionPatch = 4 // Patch version component of the current release
|
VersionPatch = 5 // Patch version component of the current release
|
||||||
VersionMeta = "mainnet" // Version metadata to append to the version string
|
VersionMeta = "mainnet" // Version metadata to append to the version string
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -219,6 +219,7 @@ func (s *RollupSyncService) parseAndUpdateRollupEventLogs(logs []types.Log, endB
|
||||||
batchIndex := event.BatchIndex.Uint64()
|
batchIndex := event.BatchIndex.Uint64()
|
||||||
log.Trace("found new RevertBatch event", "batch index", batchIndex)
|
log.Trace("found new RevertBatch event", "batch index", batchIndex)
|
||||||
|
|
||||||
|
rawdb.DeleteCommittedBatchMeta(s.db, batchIndex)
|
||||||
rawdb.DeleteBatchChunkRanges(s.db, batchIndex)
|
rawdb.DeleteBatchChunkRanges(s.db, batchIndex)
|
||||||
|
|
||||||
case s.l1FinalizeBatchEventSignature:
|
case s.l1FinalizeBatchEventSignature:
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue