Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,26 +1,37 @@
package driver
package metered

import (
"context"
"time"

"github.com/ethereum-optimism/optimism/op-node/rollup/derive"
"github.com/ethereum-optimism/optimism/op-service/eth"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/core/types"

"github.com/ethereum-optimism/optimism/op-service/eth"
)

type L1FetcherMetrics interface {
RecordL1RequestTime(method string, duration time.Duration)
}

type L1Fetcher interface {
L1BlockRefByLabel(ctx context.Context, label eth.BlockLabel) (eth.L1BlockRef, error)
L1BlockRefByNumber(context.Context, uint64) (eth.L1BlockRef, error)
L1BlockRefByHash(context.Context, common.Hash) (eth.L1BlockRef, error)
InfoByHash(ctx context.Context, hash common.Hash) (eth.BlockInfo, error)
FetchReceipts(ctx context.Context, blockHash common.Hash) (eth.BlockInfo, types.Receipts, error)
InfoAndTxsByHash(ctx context.Context, hash common.Hash) (eth.BlockInfo, types.Transactions, error)
}

type MeteredL1Fetcher struct {
inner derive.L1Fetcher
inner L1Fetcher
metrics L1FetcherMetrics
now func() time.Time
}

func NewMeteredL1Fetcher(inner derive.L1Fetcher, metrics L1FetcherMetrics) *MeteredL1Fetcher {
var _ L1Fetcher = (*MeteredL1Fetcher)(nil)

func NewMeteredL1Fetcher(inner L1Fetcher, metrics L1FetcherMetrics) *MeteredL1Fetcher {
return &MeteredL1Fetcher{
inner: inner,
metrics: metrics,
Expand Down Expand Up @@ -57,8 +68,6 @@ func (m *MeteredL1Fetcher) FetchReceipts(ctx context.Context, blockHash common.H
return m.inner.FetchReceipts(ctx, blockHash)
}

var _ derive.L1Fetcher = (*MeteredL1Fetcher)(nil)

func (m *MeteredL1Fetcher) recordTime(method string) func() {
start := m.now()
return func() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,19 @@
package driver
package metered

import (
"context"
"errors"
"testing"
"time"

"github.com/ethereum-optimism/optimism/op-service/eth"
"github.com/ethereum-optimism/optimism/op-service/testutils"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/core/types"
"github.com/stretchr/testify/mock"
"github.com/stretchr/testify/require"

"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/core/types"

"github.com/ethereum-optimism/optimism/op-service/eth"
"github.com/ethereum-optimism/optimism/op-service/testutils"
)

func TestDurationRecorded(t *testing.T) {
Expand Down
5 changes: 3 additions & 2 deletions op-node/rollup/driver/driver.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import (
"github.com/ethereum/go-ethereum/log"

altda "github.com/ethereum-optimism/optimism/op-alt-da"
"github.com/ethereum-optimism/optimism/op-node/metrics/metered"
"github.com/ethereum-optimism/optimism/op-node/rollup"
"github.com/ethereum-optimism/optimism/op-node/rollup/async"
"github.com/ethereum-optimism/optimism/op-node/rollup/attributes"
Expand Down Expand Up @@ -53,7 +54,7 @@ type Metrics interface {
RecordL1ReorgDepth(d uint64)

engine.Metrics
L1FetcherMetrics
metered.L1FetcherMetrics
event.Metrics
sequencing.Metrics
}
Expand Down Expand Up @@ -185,7 +186,7 @@ func NewDriver(
l1Tracker := status.NewL1Tracker(l1)
sys.Register("l1-blocks", l1Tracker, opts)

l1 = NewMeteredL1Fetcher(l1Tracker, metrics)
l1 = metered.NewMeteredL1Fetcher(l1Tracker, metrics)
verifConfDepth := confdepth.NewConfDepth(driverCfg.VerifierConfDepth, statusTracker.L1Head, l1)

ec := engine.NewEngineController(l2, log, metrics, cfg, syncCfg,
Expand Down