Skip to content

Commit 0b04da3

Browse files
committed
wip
1 parent 830ae45 commit 0b04da3

29 files changed

Lines changed: 242 additions & 120 deletions

apps/evm/cmd/rollback.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ func NewRollbackCmd() *cobra.Command {
7070
}
7171

7272
// rollback ev-node goheader state
73-
headerStore, err := goheaderstore.NewStore[*types.SignedHeader](
73+
headerStore, err := goheaderstore.NewStore[*types.SignedHeaderWithDAHint](
7474
evolveDB,
7575
goheaderstore.WithStorePrefix("headerSync"),
7676
goheaderstore.WithMetrics(),

apps/testapp/cmd/rollback.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ func NewRollbackCmd() *cobra.Command {
7676
}
7777

7878
// rollback ev-node goheader state
79-
headerStore, err := goheaderstore.NewStore[*types.SignedHeader](
79+
headerStore, err := goheaderstore.NewStore[*types.SignedHeaderWithDAHint](
8080
evolveDB,
8181
goheaderstore.WithStorePrefix("headerSync"),
8282
goheaderstore.WithMetrics(),

block/components.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ func NewSyncComponents(
132132
store store.Store,
133133
exec coreexecutor.Executor,
134134
da coreda.DA,
135-
headerStore common.Broadcaster[*types.SignedHeader],
135+
headerStore common.Broadcaster[*types.SignedHeaderWithDAHint],
136136
dataStore common.Broadcaster[*types.Data],
137137
logger zerolog.Logger,
138138
metrics *Metrics,
@@ -165,7 +165,7 @@ func NewSyncComponents(
165165
)
166166

167167
// Create submitter for sync nodes (no signer, only DA inclusion processing)
168-
daSubmitter := submitting.NewDASubmitter(daClient, config, genesis, blockOpts, metrics, logger)
168+
daSubmitter := submitting.NewDASubmitter(daClient, config, genesis, blockOpts, metrics, logger, nil) // todo (Alex): use a noop
169169
submitter := submitting.NewSubmitter(
170170
store,
171171
exec,
@@ -198,7 +198,7 @@ func NewAggregatorComponents(
198198
sequencer coresequencer.Sequencer,
199199
da coreda.DA,
200200
signer signer.Signer,
201-
headerBroadcaster common.Broadcaster[*types.SignedHeader],
201+
headerBroadcaster common.Broadcaster[*types.SignedHeaderWithDAHint],
202202
dataBroadcaster common.Broadcaster[*types.Data],
203203
logger zerolog.Logger,
204204
metrics *Metrics,
@@ -247,7 +247,7 @@ func NewAggregatorComponents(
247247

248248
// Create DA client and submitter for aggregator nodes (with signer for submission)
249249
daClient := NewDAClient(da, config, logger)
250-
daSubmitter := submitting.NewDASubmitter(daClient, config, genesis, blockOpts, metrics, logger)
250+
daSubmitter := submitting.NewDASubmitter(daClient, config, genesis, blockOpts, metrics, logger, headerBroadcaster)
251251
submitter := submitting.NewSubmitter(
252252
store,
253253
exec,

block/internal/common/broadcaster_mock.go

Lines changed: 57 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

block/internal/common/event.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,7 @@ type DAHeightEvent struct {
2020
DaHeight uint64
2121
// Source indicates where this event originated from (DA or P2P)
2222
Source EventSource
23+
24+
// Optional DA height hint from P2P
25+
DaHeightHint uint64
2326
}

block/internal/common/expected_interfaces.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,5 @@ import (
1212
type Broadcaster[H header.Header[H]] interface {
1313
WriteToStoreAndBroadcast(ctx context.Context, payload H, opts ...pubsub.PubOpt) error
1414
Store() header.Store[H]
15+
XXX(ctx context.Context, headerOrData H) error
1516
}

block/internal/executing/executor.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ type Executor struct {
3737
metrics *common.Metrics
3838

3939
// Broadcasting
40-
headerBroadcaster common.Broadcaster[*types.SignedHeader]
40+
headerBroadcaster common.Broadcaster[*types.SignedHeaderWithDAHint]
4141
dataBroadcaster common.Broadcaster[*types.Data]
4242

4343
// Configuration
@@ -76,7 +76,7 @@ func NewExecutor(
7676
metrics *common.Metrics,
7777
config config.Config,
7878
genesis genesis.Genesis,
79-
headerBroadcaster common.Broadcaster[*types.SignedHeader],
79+
headerBroadcaster common.Broadcaster[*types.SignedHeaderWithDAHint],
8080
dataBroadcaster common.Broadcaster[*types.Data],
8181
logger zerolog.Logger,
8282
options common.BlockOptions,
@@ -420,7 +420,7 @@ func (e *Executor) produceBlock() error {
420420

421421
// broadcast header and data to P2P network
422422
g, ctx := errgroup.WithContext(e.ctx)
423-
g.Go(func() error { return e.headerBroadcaster.WriteToStoreAndBroadcast(ctx, header) })
423+
g.Go(func() error { return e.headerBroadcaster.WriteToStoreAndBroadcast(ctx, &types.SignedHeaderWithDAHint{SignedHeader: header}) })
424424
g.Go(func() error { return e.dataBroadcaster.WriteToStoreAndBroadcast(ctx, data) })
425425
if err := g.Wait(); err != nil {
426426
e.logger.Error().Err(err).Msg("failed to broadcast header and/data")

block/internal/executing/executor_lazy_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ func TestLazyMode_ProduceBlockLogic(t *testing.T) {
4747

4848
mockExec := testmocks.NewMockExecutor(t)
4949
mockSeq := testmocks.NewMockSequencer(t)
50-
hb := common.NewMockBroadcaster[*types.SignedHeader](t)
50+
hb := common.NewMockBroadcaster[*types.SignedHeaderWithDAHint](t)
5151
hb.EXPECT().WriteToStoreAndBroadcast(mock.Anything, mock.Anything).Return(nil).Maybe()
5252
db := common.NewMockBroadcaster[*types.Data](t)
5353
db.EXPECT().WriteToStoreAndBroadcast(mock.Anything, mock.Anything).Return(nil).Maybe()
@@ -157,7 +157,7 @@ func TestRegularMode_ProduceBlockLogic(t *testing.T) {
157157

158158
mockExec := testmocks.NewMockExecutor(t)
159159
mockSeq := testmocks.NewMockSequencer(t)
160-
hb := common.NewMockBroadcaster[*types.SignedHeader](t)
160+
hb := common.NewMockBroadcaster[*types.SignedHeaderWithDAHint](t)
161161
hb.EXPECT().WriteToStoreAndBroadcast(mock.Anything, mock.Anything).Return(nil).Maybe()
162162
db := common.NewMockBroadcaster[*types.Data](t)
163163
db.EXPECT().WriteToStoreAndBroadcast(mock.Anything, mock.Anything).Return(nil).Maybe()

block/internal/executing/executor_logic_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ func TestProduceBlock_EmptyBatch_SetsEmptyDataHash(t *testing.T) {
6969
mockSeq := testmocks.NewMockSequencer(t)
7070

7171
// Broadcasters are required by produceBlock; use generated mocks
72-
hb := common.NewMockBroadcaster[*types.SignedHeader](t)
72+
hb := common.NewMockBroadcaster[*types.SignedHeaderWithDAHint](t)
7373
hb.EXPECT().WriteToStoreAndBroadcast(mock.Anything, mock.Anything).Return(nil).Maybe()
7474
db := common.NewMockBroadcaster[*types.Data](t)
7575
db.EXPECT().WriteToStoreAndBroadcast(mock.Anything, mock.Anything).Return(nil).Maybe()
@@ -156,7 +156,7 @@ func TestPendingLimit_SkipsProduction(t *testing.T) {
156156

157157
mockExec := testmocks.NewMockExecutor(t)
158158
mockSeq := testmocks.NewMockSequencer(t)
159-
hb := common.NewMockBroadcaster[*types.SignedHeader](t)
159+
hb := common.NewMockBroadcaster[*types.SignedHeaderWithDAHint](t)
160160
hb.EXPECT().WriteToStoreAndBroadcast(mock.Anything, mock.Anything).Return(nil).Maybe()
161161
db := common.NewMockBroadcaster[*types.Data](t)
162162
db.EXPECT().WriteToStoreAndBroadcast(mock.Anything, mock.Anything).Return(nil).Maybe()

block/internal/executing/executor_restart_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ func TestExecutor_RestartUsesPendingHeader(t *testing.T) {
4747
// Create first executor instance
4848
mockExec1 := testmocks.NewMockExecutor(t)
4949
mockSeq1 := testmocks.NewMockSequencer(t)
50-
hb1 := common.NewMockBroadcaster[*types.SignedHeader](t)
50+
hb1 := common.NewMockBroadcaster[*types.SignedHeaderWithDAHint](t)
5151
hb1.EXPECT().WriteToStoreAndBroadcast(mock.Anything, mock.Anything).Return(nil).Maybe()
5252
db1 := common.NewMockBroadcaster[*types.Data](t)
5353
db1.EXPECT().WriteToStoreAndBroadcast(mock.Anything, mock.Anything).Return(nil).Maybe()
@@ -166,7 +166,7 @@ func TestExecutor_RestartUsesPendingHeader(t *testing.T) {
166166
// Create second executor instance (restart scenario)
167167
mockExec2 := testmocks.NewMockExecutor(t)
168168
mockSeq2 := testmocks.NewMockSequencer(t)
169-
hb2 := common.NewMockBroadcaster[*types.SignedHeader](t)
169+
hb2 := common.NewMockBroadcaster[*types.SignedHeaderWithDAHint](t)
170170
hb2.EXPECT().WriteToStoreAndBroadcast(mock.Anything, mock.Anything).Return(nil).Maybe()
171171
db2 := common.NewMockBroadcaster[*types.Data](t)
172172
db2.EXPECT().WriteToStoreAndBroadcast(mock.Anything, mock.Anything).Return(nil).Maybe()
@@ -264,7 +264,7 @@ func TestExecutor_RestartNoPendingHeader(t *testing.T) {
264264
// Create first executor and produce one block
265265
mockExec1 := testmocks.NewMockExecutor(t)
266266
mockSeq1 := testmocks.NewMockSequencer(t)
267-
hb1 := common.NewMockBroadcaster[*types.SignedHeader](t)
267+
hb1 := common.NewMockBroadcaster[*types.SignedHeaderWithDAHint](t)
268268
hb1.EXPECT().WriteToStoreAndBroadcast(mock.Anything, mock.Anything).Return(nil).Maybe()
269269
db1 := common.NewMockBroadcaster[*types.Data](t)
270270
db1.EXPECT().WriteToStoreAndBroadcast(mock.Anything, mock.Anything).Return(nil).Maybe()
@@ -316,7 +316,7 @@ func TestExecutor_RestartNoPendingHeader(t *testing.T) {
316316
// Create second executor (restart)
317317
mockExec2 := testmocks.NewMockExecutor(t)
318318
mockSeq2 := testmocks.NewMockSequencer(t)
319-
hb2 := common.NewMockBroadcaster[*types.SignedHeader](t)
319+
hb2 := common.NewMockBroadcaster[*types.SignedHeaderWithDAHint](t)
320320
hb2.EXPECT().WriteToStoreAndBroadcast(mock.Anything, mock.Anything).Return(nil).Maybe()
321321
db2 := common.NewMockBroadcaster[*types.Data](t)
322322
db2.EXPECT().WriteToStoreAndBroadcast(mock.Anything, mock.Anything).Return(nil).Maybe()

0 commit comments

Comments
 (0)