Skip to content

Commit 41b2fc0

Browse files
Revert "Merge pull request #3866 from OffchainLabs/cherrypick-3853PR" (#3897)
This reverts commit 2fe5b83, reversing changes made to 4227717.
1 parent 8130a55 commit 41b2fc0

File tree

14 files changed

+88
-214
lines changed

14 files changed

+88
-214
lines changed

arbnode/batch_poster.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ type BatchPoster struct {
9797
l1Reader *headerreader.HeaderReader
9898
inbox *InboxTracker
9999
streamer *TransactionStreamer
100-
arbOSVersionGetter execution.ArbOSVersionGetter
100+
arbOSVersionGetter execution.ExecutionBatchPoster
101101
config BatchPosterConfigFetcher
102102
seqInbox *bridgegen.SequencerInbox
103103
syncMonitor *SyncMonitor
@@ -323,7 +323,7 @@ type BatchPosterOpts struct {
323323
L1Reader *headerreader.HeaderReader
324324
Inbox *InboxTracker
325325
Streamer *TransactionStreamer
326-
VersionGetter execution.ArbOSVersionGetter
326+
VersionGetter execution.ExecutionBatchPoster
327327
SyncMonitor *SyncMonitor
328328
Config BatchPosterConfigFetcher
329329
DeployInfo *chaininfo.RollupAddresses
@@ -1367,7 +1367,7 @@ func (b *BatchPoster) MaybePostSequencerBatch(ctx context.Context) (bool, error)
13671367
var use4844 bool
13681368
config := b.config()
13691369
if config.Post4844Blobs && b.dapWriter == nil && latestHeader.ExcessBlobGas != nil && latestHeader.BlobGasUsed != nil {
1370-
arbOSVersion, err := b.arbOSVersionGetter.ArbOSVersionForMessageIndex(arbutil.MessageIndex(arbmath.SaturatingUSub(uint64(batchPosition.MessageCount), 1))).Await(ctx)
1370+
arbOSVersion, err := b.arbOSVersionGetter.ArbOSVersionForMessageIndex(arbutil.MessageIndex(arbmath.SaturatingUSub(uint64(batchPosition.MessageCount), 1)))
13711371
if err != nil {
13721372
return false, err
13731373
}

arbnode/inbox_test.go

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -120,10 +120,6 @@ func (w *execClientWrapper) BlockNumberToMessageIndex(blockNum uint64) container
120120
return containers.NewReadyPromise(w.ExecutionEngine.BlockNumberToMessageIndex(blockNum))
121121
}
122122

123-
func (w *execClientWrapper) ArbOSVersionForMessageIndex(msgIdx arbutil.MessageIndex) containers.PromiseInterface[uint64] {
124-
return w.ExecutionEngine.ArbOSVersionForMessageIndex(msgIdx)
125-
}
126-
127123
func (w *execClientWrapper) StopAndWait() {
128124
}
129125

arbnode/inbox_tracker.go

Lines changed: 3 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -274,7 +274,7 @@ func (t *InboxTracker) FindInboxBatchContainingMessage(pos arbutil.MessageIndex)
274274
}
275275
}
276276

277-
func (t *InboxTracker) PopulateFeedBacklog(ctx context.Context, broadcastServer *broadcaster.Broadcaster) error {
277+
func (t *InboxTracker) PopulateFeedBacklog(broadcastServer *broadcaster.Broadcaster) error {
278278
batchCount, err := t.GetBatchCount()
279279
if err != nil {
280280
return fmt.Errorf("error getting batch count: %w", err)
@@ -290,11 +290,6 @@ func (t *InboxTracker) PopulateFeedBacklog(ctx context.Context, broadcastServer
290290
return fmt.Errorf("error getting batch %v message count: %w", batchIndex, err)
291291
}
292292
}
293-
294-
if t.txStreamer == nil {
295-
return errors.New("txStreamer is nil")
296-
}
297-
298293
messageCount, err := t.txStreamer.GetMessageCount()
299294
if err != nil {
300295
return fmt.Errorf("error getting tx streamer message count: %w", err)
@@ -314,22 +309,10 @@ func (t *InboxTracker) PopulateFeedBacklog(ctx context.Context, broadcastServer
314309

315310
blockMetadata, err := t.txStreamer.BlockMetadataAtMessageIndex(seqNum)
316311
if err != nil {
317-
log.Warn("error getting blockMetadata byte array from tx streamer", "err", err)
318-
}
319-
320-
arbOSVersion, err := t.txStreamer.exec.ArbOSVersionForMessageIndex(seqNum).Await(ctx)
321-
if err != nil {
322-
log.Warn("error getting ArbOS version for message %v: %w", seqNum, err)
323-
}
324-
325-
messageWithInfo := arbostypes.MessageWithMetadataAndBlockInfo{
326-
MessageWithMeta: *message,
327-
BlockHash: blockHash,
328-
BlockMetadata: blockMetadata,
329-
ArbOSVersion: arbOSVersion,
312+
log.Warn("Error getting blockMetadata byte array from tx streamer", "err", err)
330313
}
331314

332-
feedMessage, err := broadcastServer.NewBroadcastFeedMessage(messageWithInfo, seqNum)
315+
feedMessage, err := broadcastServer.NewBroadcastFeedMessage(*message, seqNum, blockHash, blockMetadata)
333316
if err != nil {
334317
return fmt.Errorf("error creating broadcast feed message %v: %w", seqNum, err)
335318
}

arbnode/node.go

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -923,7 +923,7 @@ func getBatchPoster(
923923
l1Reader *headerreader.HeaderReader,
924924
inboxTracker *InboxTracker,
925925
txStreamer *TransactionStreamer,
926-
arbOSVersionGetter execution.ArbOSVersionGetter,
926+
exec execution.ExecutionBatchPoster,
927927
arbDb ethdb.Database,
928928
syncMonitor *SyncMonitor,
929929
deployInfo *chaininfo.RollupAddresses,
@@ -933,8 +933,8 @@ func getBatchPoster(
933933
) (*BatchPoster, error) {
934934
var batchPoster *BatchPoster
935935
if config.BatchPoster.Enable {
936-
if arbOSVersionGetter == nil {
937-
return nil, errors.New("batch poster requires ArbOS version getter")
936+
if exec == nil {
937+
return nil, errors.New("batch poster requires an execution batch poster")
938938
}
939939

940940
if txOptsBatchPoster == nil && config.BatchPoster.DataPoster.ExternalSigner.URL == "" {
@@ -949,7 +949,7 @@ func getBatchPoster(
949949
L1Reader: l1Reader,
950950
Inbox: inboxTracker,
951951
Streamer: txStreamer,
952-
VersionGetter: arbOSVersionGetter,
952+
VersionGetter: exec,
953953
SyncMonitor: syncMonitor,
954954
Config: func() *BatchPosterConfig { return &configFetcher.Get().BatchPoster },
955955
DeployInfo: deployInfo,
@@ -1056,7 +1056,7 @@ func createNodeImpl(
10561056
executionClient execution.ExecutionClient,
10571057
executionSequencer execution.ExecutionSequencer,
10581058
executionRecorder execution.ExecutionRecorder,
1059-
arbOSVersionGetter execution.ArbOSVersionGetter,
1059+
executionBatchPoster execution.ExecutionBatchPoster,
10601060
arbDb ethdb.Database,
10611061
configFetcher ConfigFetcher,
10621062
l2Config *params.ChainConfig,
@@ -1153,7 +1153,7 @@ func createNodeImpl(
11531153
return nil, err
11541154
}
11551155

1156-
batchPoster, err := getBatchPoster(ctx, config, configFetcher, txOptsBatchPoster, dapWriter, l1Reader, inboxTracker, txStreamer, arbOSVersionGetter, arbDb, syncMonitor, deployInfo, parentChainID, dapReaders, stakerAddr)
1156+
batchPoster, err := getBatchPoster(ctx, config, configFetcher, txOptsBatchPoster, dapWriter, l1Reader, inboxTracker, txStreamer, executionBatchPoster, arbDb, syncMonitor, deployInfo, parentChainID, dapReaders, stakerAddr)
11571157
if err != nil {
11581158
return nil, err
11591159
}
@@ -1308,7 +1308,7 @@ func CreateNodeFullExecutionClient(
13081308
executionClient execution.ExecutionClient,
13091309
executionSequencer execution.ExecutionSequencer,
13101310
executionRecorder execution.ExecutionRecorder,
1311-
arbOSVersionGetter execution.ArbOSVersionGetter,
1311+
executionBatchPoster execution.ExecutionBatchPoster,
13121312
arbDb ethdb.Database,
13131313
configFetcher ConfigFetcher,
13141314
l2Config *params.ChainConfig,
@@ -1322,10 +1322,10 @@ func CreateNodeFullExecutionClient(
13221322
blobReader daprovider.BlobReader,
13231323
latestWasmModuleRoot common.Hash,
13241324
) (*Node, error) {
1325-
if (executionClient == nil) || (executionSequencer == nil) || (executionRecorder == nil) || (arbOSVersionGetter == nil) {
1326-
return nil, errors.New("execution client, sequencer, recorder, and ArbOS version getter must be non-nil")
1325+
if (executionClient == nil) || (executionSequencer == nil) || (executionRecorder == nil) || (executionBatchPoster == nil) {
1326+
return nil, errors.New("execution client, sequencer, recorder, and batch poster must be non-nil")
13271327
}
1328-
currentNode, err := createNodeImpl(ctx, stack, executionClient, executionSequencer, executionRecorder, arbOSVersionGetter, arbDb, configFetcher, l2Config, l1client, deployInfo, txOptsValidator, txOptsBatchPoster, dataSigner, fatalErrChan, parentChainID, blobReader, latestWasmModuleRoot)
1328+
currentNode, err := createNodeImpl(ctx, stack, executionClient, executionSequencer, executionRecorder, executionBatchPoster, arbDb, configFetcher, l2Config, l1client, deployInfo, txOptsValidator, txOptsBatchPoster, dataSigner, fatalErrChan, parentChainID, blobReader, latestWasmModuleRoot)
13291329
if err != nil {
13301330
return nil, err
13311331
}
@@ -1386,7 +1386,7 @@ func (n *Node) Start(ctx context.Context) error {
13861386
if n.InboxTracker != nil && n.BroadcastServer != nil {
13871387
// Even if the sequencer coordinator will populate this backlog,
13881388
// we want to make sure it's populated before any clients connect.
1389-
err = n.InboxTracker.PopulateFeedBacklog(ctx, n.BroadcastServer)
1389+
err = n.InboxTracker.PopulateFeedBacklog(n.BroadcastServer)
13901390
if err != nil {
13911391
return fmt.Errorf("error populating feed backlog on startup: %w", err)
13921392
}
@@ -1556,8 +1556,8 @@ func (n *Node) GetBatchParentChainBlock(seqNum uint64) containers.PromiseInterfa
15561556
return containers.NewReadyPromise(n.InboxTracker.GetBatchParentChainBlock(seqNum))
15571557
}
15581558

1559-
func (n *Node) WriteMessageFromSequencer(pos arbutil.MessageIndex, msgWithInfo arbostypes.MessageWithMetadataAndBlockInfo) containers.PromiseInterface[struct{}] {
1560-
err := n.TxStreamer.WriteMessageFromSequencer(pos, msgWithInfo)
1559+
func (n *Node) WriteMessageFromSequencer(pos arbutil.MessageIndex, msgWithMeta arbostypes.MessageWithMetadata, msgResult execution.MessageResult, blockMetadata common.BlockMetadata) containers.PromiseInterface[struct{}] {
1560+
err := n.TxStreamer.WriteMessageFromSequencer(pos, msgWithMeta, msgResult, blockMetadata)
15611561
return containers.NewReadyPromise(struct{}{}, err)
15621562
}
15631563

arbnode/transaction_streamer.go

Lines changed: 20 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -401,18 +401,9 @@ func (s *TransactionStreamer) addMessagesAndReorg(batch ethdb.Batch, msgIdxOfFir
401401

402402
messagesWithComputedBlockHash := make([]arbostypes.MessageWithMetadataAndBlockInfo, 0, len(messagesResults))
403403
for i := 0; i < len(messagesResults); i++ {
404-
// #nosec G115 -- message index arithmetic is safe within valid range
405-
msgIdx := msgIdxOfFirstMsgToAdd + arbutil.MessageIndex(i)
406-
arbOSVersion, err := s.exec.ArbOSVersionForMessageIndex(msgIdx).Await(s.GetContext())
407-
if err != nil {
408-
log.Warn("error getting arbOS version for message", "msgIdx", msgIdx, "err", err)
409-
}
410-
411404
messagesWithComputedBlockHash = append(messagesWithComputedBlockHash, arbostypes.MessageWithMetadataAndBlockInfo{
412405
MessageWithMeta: newMessages[i].MessageWithMeta,
413406
BlockHash: &messagesResults[i].BlockHash,
414-
BlockMetadata: nil,
415-
ArbOSVersion: arbOSVersion,
416407
})
417408
}
418409
s.broadcastMessages(messagesWithComputedBlockHash, msgIdxOfFirstMsgToAdd)
@@ -534,16 +525,10 @@ func (s *TransactionStreamer) getMessageWithMetadataAndBlockInfo(msgIdx arbutil.
534525
return nil, err
535526
}
536527

537-
arbOSVersion, err := s.exec.ArbOSVersionForMessageIndex(msgIdx).Await(s.GetContext())
538-
if err != nil {
539-
log.Warn("Failed to get ArbOS version for message", "msgIdx", msgIdx, "err", err)
540-
}
541-
542528
msgWithBlockInfo := arbostypes.MessageWithMetadataAndBlockInfo{
543529
MessageWithMeta: *msg,
544530
BlockHash: blockHash,
545531
BlockMetadata: blockMetadata,
546-
ArbOSVersion: arbOSVersion,
547532
}
548533
return &msgWithBlockInfo, nil
549534
}
@@ -625,7 +610,6 @@ func (s *TransactionStreamer) AddBroadcastMessages(feedMessages []*message.Broad
625610
MessageWithMeta: feedMessage.Message,
626611
BlockHash: feedMessage.BlockHash,
627612
BlockMetadata: feedMessage.BlockMetadata,
628-
ArbOSVersion: feedMessage.ArbOSVersion,
629613
}
630614
messages = append(messages, msgWithBlockInfo)
631615
expectedMsgIdx++
@@ -752,9 +736,6 @@ func (s *TransactionStreamer) AddMessagesAndEndBatch(firstMsgIdx arbutil.Message
752736
for _, message := range messages {
753737
messagesWithBlockInfo = append(messagesWithBlockInfo, arbostypes.MessageWithMetadataAndBlockInfo{
754738
MessageWithMeta: message,
755-
BlockHash: nil,
756-
BlockMetadata: nil,
757-
ArbOSVersion: 0,
758739
})
759740
}
760741

@@ -1051,7 +1032,9 @@ func (s *TransactionStreamer) ExpectChosenSequencer() error {
10511032

10521033
func (s *TransactionStreamer) WriteMessageFromSequencer(
10531034
msgIdx arbutil.MessageIndex,
1054-
msgWithInfo arbostypes.MessageWithMetadataAndBlockInfo,
1035+
msgWithMeta arbostypes.MessageWithMetadata,
1036+
msgResult execution.MessageResult,
1037+
blockMetadata common.BlockMetadata,
10551038
) error {
10561039
if err := s.ExpectChosenSequencer(); err != nil {
10571040
return err
@@ -1118,18 +1101,24 @@ func (s *TransactionStreamer) WriteMessageFromSequencer(
11181101
}
11191102

11201103
if s.coordinator != nil {
1121-
if err := s.coordinator.SequencingMessage(msgIdx, &msgWithInfo.MessageWithMeta, msgWithInfo.BlockMetadata); err != nil {
1104+
if err := s.coordinator.SequencingMessage(msgIdx, &msgWithMeta, blockMetadata); err != nil {
11221105
return err
11231106
}
11241107
}
11251108

1126-
if err := s.writeMessages(msgIdx, []arbostypes.MessageWithMetadataAndBlockInfo{msgWithInfo}, nil); err != nil {
1109+
msgWithBlockInfo := arbostypes.MessageWithMetadataAndBlockInfo{
1110+
MessageWithMeta: msgWithMeta,
1111+
BlockHash: &msgResult.BlockHash,
1112+
BlockMetadata: blockMetadata,
1113+
}
1114+
1115+
if err := s.writeMessages(msgIdx, []arbostypes.MessageWithMetadataAndBlockInfo{msgWithBlockInfo}, nil); err != nil {
11271116
return err
11281117
}
11291118
if s.trackBlockMetadataFrom == 0 || msgIdx < s.trackBlockMetadataFrom {
1130-
msgWithInfo.BlockMetadata = nil
1119+
msgWithBlockInfo.BlockMetadata = nil
11311120
}
1132-
s.broadcastMessages([]arbostypes.MessageWithMetadataAndBlockInfo{msgWithInfo}, msgIdx)
1121+
s.broadcastMessages([]arbostypes.MessageWithMetadataAndBlockInfo{msgWithBlockInfo}, msgIdx)
11331122

11341123
return nil
11351124
}
@@ -1147,7 +1136,7 @@ func (s *TransactionStreamer) PopulateFeedBacklog() error {
11471136
if s.broadcastServer == nil || s.inboxReader == nil {
11481137
return nil
11491138
}
1150-
return s.inboxReader.tracker.PopulateFeedBacklog(s.GetContext(), s.broadcastServer)
1139+
return s.inboxReader.tracker.PopulateFeedBacklog(s.broadcastServer)
11511140
}
11521141

11531142
func (s *TransactionStreamer) writeMessage(msgIdx arbutil.MessageIndex, msg arbostypes.MessageWithMetadataAndBlockInfo, batch ethdb.Batch) error {
@@ -1411,7 +1400,12 @@ func (s *TransactionStreamer) ExecuteNextMsg(ctx context.Context) bool {
14111400
return false
14121401
}
14131402

1414-
s.broadcastMessages([]arbostypes.MessageWithMetadataAndBlockInfo{*msgAndBlockInfo}, msgIdxToExecute)
1403+
msgWithBlockInfo := arbostypes.MessageWithMetadataAndBlockInfo{
1404+
MessageWithMeta: msgAndBlockInfo.MessageWithMeta,
1405+
BlockHash: &msgResult.BlockHash,
1406+
BlockMetadata: msgAndBlockInfo.BlockMetadata,
1407+
}
1408+
s.broadcastMessages([]arbostypes.MessageWithMetadataAndBlockInfo{msgWithBlockInfo}, msgIdxToExecute)
14151409

14161410
return msgIdxToExecute+1 <= consensusHeadMsgIdx
14171411
}

arbos/arbostypes/messagewithmeta.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,10 @@ type MessageWithMetadata struct {
1919
DelayedMessagesRead uint64 `json:"delayedMessagesRead"`
2020
}
2121

22-
// lint:require-exhaustive-initialization
2322
type MessageWithMetadataAndBlockInfo struct {
2423
MessageWithMeta MessageWithMetadata
2524
BlockHash *common.Hash
2625
BlockMetadata common.BlockMetadata
27-
ArbOSVersion uint64
2826
}
2927

3028
var EmptyTestMessageWithMetadata = MessageWithMetadata{

broadcastclient/broadcastclient_test.go

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -52,15 +52,6 @@ func TestReceiveMessages(t *testing.T) {
5252
})
5353
}
5454

55-
func testMessage() arbostypes.MessageWithMetadataAndBlockInfo {
56-
return arbostypes.MessageWithMetadataAndBlockInfo{
57-
MessageWithMeta: arbostypes.TestMessageWithMetadataAndRequestId,
58-
BlockHash: nil,
59-
BlockMetadata: nil,
60-
ArbOSVersion: 0,
61-
}
62-
}
63-
6455
func testReceiveMessages(t *testing.T, clientCompression bool, serverCompression bool, serverRequire bool, expectNoMessagesReceived bool) {
6556
t.Parallel()
6657
ctx, cancel := context.WithCancel(context.Background())
@@ -102,7 +93,7 @@ func testReceiveMessages(t *testing.T, clientCompression bool, serverCompression
10293
go func() {
10394
for i := 0; i < messageCount; i++ {
10495
// #nosec G115
105-
Require(t, b.BroadcastSingle(testMessage(), arbutil.MessageIndex(i)))
96+
Require(t, b.BroadcastSingle(arbostypes.TestMessageWithMetadataAndRequestId, arbutil.MessageIndex(i), nil, nil))
10697
}
10798
}()
10899

@@ -159,7 +150,7 @@ func TestInvalidSignature(t *testing.T) {
159150
go func() {
160151
for i := 0; i < messageCount; i++ {
161152
// #nosec G115
162-
Require(t, b.BroadcastSingle(testMessage(), arbutil.MessageIndex(i)))
153+
Require(t, b.BroadcastSingle(arbostypes.TestMessageWithMetadataAndRequestId, arbutil.MessageIndex(i), nil, nil))
163154
}
164155
}()
165156

@@ -322,7 +313,7 @@ func TestServerClientDisconnect(t *testing.T) {
322313
broadcastClient.Start(ctx)
323314

324315
t.Log("broadcasting seq 0 message")
325-
Require(t, b.BroadcastSingle(testMessage(), 0))
316+
Require(t, b.BroadcastSingle(arbostypes.EmptyTestMessageWithMetadata, 0, nil, nil))
326317

327318
// Wait for client to receive batch to ensure it is connected
328319
timer := time.NewTimer(5 * time.Second)
@@ -394,7 +385,7 @@ func TestBroadcastClientConfirmedMessage(t *testing.T) {
394385
broadcastClient.Start(ctx)
395386

396387
t.Log("broadcasting seq 0 message")
397-
Require(t, b.BroadcastSingle(testMessage(), 0))
388+
Require(t, b.BroadcastSingle(arbostypes.EmptyTestMessageWithMetadata, 0, nil, nil))
398389

399390
// Wait for client to receive batch to ensure it is connected
400391
timer := time.NewTimer(5 * time.Second)
@@ -736,8 +727,8 @@ func TestBroadcasterSendsCachedMessagesOnClientConnect(t *testing.T) {
736727
Require(t, b.Start(ctx))
737728
defer b.StopAndWait()
738729

739-
Require(t, b.BroadcastSingle(testMessage(), 0))
740-
Require(t, b.BroadcastSingle(testMessage(), 1))
730+
Require(t, b.BroadcastSingle(arbostypes.EmptyTestMessageWithMetadata, 0, nil, nil))
731+
Require(t, b.BroadcastSingle(arbostypes.EmptyTestMessageWithMetadata, 1, nil, nil))
741732

742733
var wg sync.WaitGroup
743734
for i := 0; i < 2; i++ {

0 commit comments

Comments
 (0)