mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-27 15:16:43 +00:00
fix(verifier,l1follower): update da-codec to latest version (#1143)
* update da-codec to latest version * fix nodes db * chore: auto version bump [bot] * fix comment * fix L1 block number * fix comment * fix error trigger * adjust comment --------- Co-authored-by: jonastheis <jonastheis@users.noreply.github.com>
This commit is contained in:
parent
974cfcd726
commit
aec0089271
4 changed files with 23 additions and 4 deletions
2
go.mod
2
go.mod
|
|
@ -51,7 +51,7 @@ require (
|
|||
github.com/prometheus/tsdb v0.7.1
|
||||
github.com/rjeczalik/notify v0.9.1
|
||||
github.com/rs/cors v1.7.0
|
||||
github.com/scroll-tech/da-codec v0.1.3-0.20250226072559-f8a8d3898f54
|
||||
github.com/scroll-tech/da-codec v0.1.3-0.20250313120912-344f2d5e33e1
|
||||
github.com/scroll-tech/zktrie v0.8.4
|
||||
github.com/shirou/gopsutil v3.21.11+incompatible
|
||||
github.com/sourcegraph/conc v0.3.0
|
||||
|
|
|
|||
4
go.sum
4
go.sum
|
|
@ -396,8 +396,8 @@ github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncj
|
|||
github.com/rs/cors v1.7.0 h1:+88SsELBHx5r+hZ8TCkggzSstaWNbDvThkVK8H6f9ik=
|
||||
github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU=
|
||||
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
|
||||
github.com/scroll-tech/da-codec v0.1.3-0.20250226072559-f8a8d3898f54 h1:qVpsVu1J91opTn6HYeuzWcBRVhQmPR8g05i+PlOjlI4=
|
||||
github.com/scroll-tech/da-codec v0.1.3-0.20250226072559-f8a8d3898f54/go.mod h1:xECEHZLVzbdUn+tNbRJhRIjLGTOTmnFQuTgUTeVLX58=
|
||||
github.com/scroll-tech/da-codec v0.1.3-0.20250313120912-344f2d5e33e1 h1:Dhd58LE1D+dnoxpgLVeQBMF9uweL/fhQfZHWtWSiOlE=
|
||||
github.com/scroll-tech/da-codec v0.1.3-0.20250313120912-344f2d5e33e1/go.mod h1:yhTS9OVC0xQGhg7DN5iV5KZJvnSIlFWAxDdp+6jxQtY=
|
||||
github.com/scroll-tech/zktrie v0.8.4 h1:UagmnZ4Z3ITCk+aUq9NQZJNAwnWl4gSxsLb2Nl7IgRE=
|
||||
github.com/scroll-tech/zktrie v0.8.4/go.mod h1:XvNo7vAk8yxNyTjBDj5WIiFzYW4bx/gJ78+NK6Zn6Uk=
|
||||
github.com/segmentio/kafka-go v0.1.0/go.mod h1:X6itGqS9L4jDletMsxZ7Dz+JFWxM6JHfPOCvTvk+EJo=
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ import (
|
|||
const (
|
||||
VersionMajor = 5 // Major version component of the current release
|
||||
VersionMinor = 8 // Minor version component of the current release
|
||||
VersionPatch = 24 // Patch version component of the current release
|
||||
VersionPatch = 25 // Patch version component of the current release
|
||||
VersionMeta = "mainnet" // Version metadata to append to the version string
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import (
|
|||
"errors"
|
||||
"fmt"
|
||||
"os"
|
||||
"strings"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
|
|
@ -42,6 +43,8 @@ const (
|
|||
defaultLogInterval = 5 * time.Minute
|
||||
)
|
||||
|
||||
var ErrShouldResetSyncHeight = errors.New("ErrShouldResetSyncHeight")
|
||||
|
||||
// RollupSyncService collects ScrollChain batch commit/revert/finalize events and stores metadata into db.
|
||||
type RollupSyncService struct {
|
||||
ctx context.Context
|
||||
|
|
@ -205,6 +208,12 @@ func (s *RollupSyncService) fetchRollupEvents() error {
|
|||
}
|
||||
|
||||
if err = s.updateRollupEvents(daEntries); err != nil {
|
||||
if errors.Is(err, ErrShouldResetSyncHeight) {
|
||||
log.Warn("Resetting sync height to L1 block 7892668 to fix L1 message queue hash calculation")
|
||||
s.callDataBlobSource.SetL1Height(7892668)
|
||||
|
||||
return nil
|
||||
}
|
||||
// Reset the L1 height to the previous value to retry fetching the same data.
|
||||
s.callDataBlobSource.SetL1Height(prevL1Height)
|
||||
return fmt.Errorf("failed to parse and update rollup event logs: %w", err)
|
||||
|
|
@ -535,6 +544,16 @@ func validateBatch(batchIndex uint64, event *l1.FinalizeBatchEvent, parentFinali
|
|||
|
||||
daBatch, err := codec.NewDABatch(batch)
|
||||
if err != nil {
|
||||
// This is hotfix for the L1 message hash mismatch issue which lead to wrong committedBatchMeta.PostL1MessageQueueHash hashes.
|
||||
// These in turn lead to a wrongly computed batch hash locally. This happened after upgrading to EuclidV2
|
||||
// where da-codec was not updated to the latest version in l2geth.
|
||||
// If the error message due to mismatching PostL1MessageQueueHash contains the same hash as the hardcoded one,
|
||||
// this means the node ran into this issue.
|
||||
// We need to reset the sync height to 1 block before the L1 block in which the last batch in CodecV6 was committed.
|
||||
// The node will overwrite the wrongly computed message queue hashes.
|
||||
if strings.Contains(err.Error(), "0xaa16faf2a1685fe1d7e0f2810b1a0e98c2841aef96596d10456a6d0f00000000") {
|
||||
return 0, nil, ErrShouldResetSyncHeight
|
||||
}
|
||||
return 0, nil, fmt.Errorf("failed to create DA batch, batch index: %v, codec version: %v, err: %w", batchIndex, codecVersion, err)
|
||||
}
|
||||
localBatchHash := daBatch.Hash()
|
||||
|
|
|
|||
Loading…
Reference in a new issue