Skip to content

Use promises in the ExecutionSequencer interface. Implement it over RPC#4264

Open
pmikolajczyk41 wants to merge 51 commits intomasterfrom
pmikolajczyk/nit-4062-execution-sequencer
Open

Use promises in the ExecutionSequencer interface. Implement it over RPC#4264
pmikolajczyk41 wants to merge 51 commits intomasterfrom
pmikolajczyk/nit-4062-execution-sequencer

Conversation

@pmikolajczyk41
Copy link
Copy Markdown
Member

@pmikolajczyk41 pmikolajczyk41 commented Jan 21, 2026

Prerequisite for NIT-4062, similar to what #4186 was before #4233.

  1. Make ExecutionSequencer interface methods return promises.
  2. Support this interface in both RPC server and client (by a delegation mechanism)

What is left in terms of NIT-4062 is actual using the RPC components if configured so.


part of NIT-4062

@pmikolajczyk41 pmikolajczyk41 marked this pull request as ready for review January 21, 2026 10:47
@codecov
Copy link
Copy Markdown

codecov Bot commented Jan 21, 2026

Codecov Report

❌ Patch coverage is 30.24691% with 113 lines in your changes missing coverage. Please review.
✅ Project coverage is 34.43%. Comparing base (ef87792) to head (a5243ee).

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #4264      +/-   ##
==========================================
- Coverage   34.54%   34.43%   -0.12%     
==========================================
  Files         497      498       +1     
  Lines       58813    58872      +59     
==========================================
- Hits        20318    20271      -47     
- Misses      34887    34984      +97     
- Partials     3608     3617       +9     

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jan 21, 2026

❌ 13 Tests Failed:

Tests completed Failed Passed Skipped
4474 13 4461 0
View the top 3 failed tests by shortest run time
TestPruningDBSizeReduction
Stack Traces | 0.000s run time
=== RUN   TestPruningDBSizeReduction
--- FAIL: TestPruningDBSizeReduction (0.00s)
TestRedisProduceComplex/one_producer,_all_consumers_are_active
Stack Traces | 1.330s run time
... [CONTENT TRUNCATED: Keeping last 20 lines]
�[36mDEBUG�[0m[03-18|11:55:55.404] consumer: xdel                           �[36mcid�[0m=ae41a580-02d2-41da-af64-e63c971eed09 �[36mmessageId�[0m=1773834954287-14
�[36mDEBUG�[0m[03-18|11:55:55.404] consumer: xack                           �[36mcid�[0m=d3194281-65e8-4b5f-ab74-c0f5670cc108 �[36mmessageId�[0m=1773834954288-1
�[36mDEBUG�[0m[03-18|11:55:55.404] consumer: xdel                           �[36mcid�[0m=2b0f2780-a08b-4cce-b8fb-daa3e6604b3c �[36mmessageId�[0m=1773834954287-12
�[36mDEBUG�[0m[03-18|11:55:55.404] consumer: xack                           �[36mcid�[0m=84a16a67-ef1e-486a-a713-59db2639e473 �[36mmessageId�[0m=1773834954288-2
�[36mDEBUG�[0m[03-18|11:55:55.404] Redis stream consuming                   �[36mconsumer_id�[0m=d0af8557-a76a-44d5-94c6-1c0d32d61c22 �[36mmessage_id�[0m=1773834954288-3
�[36mDEBUG�[0m[03-18|11:55:55.405] consumer: setting result                 �[36mcid�[0m=d0af8557-a76a-44d5-94c6-1c0d32d61c22 �[36mmsgIdInStream�[0m=1773834954288-3  �[36mresultKeyInRedis�[0m=result-key:stream:a510764d-0000-4ef7-9853-6bbd540a6b8f.1773834954288-3
�[36mDEBUG�[0m[03-18|11:55:55.404] Redis stream consuming                   �[36mconsumer_id�[0m=46cf16a8-66a5-4a83-a859-7dd539fc4579 �[36mmessage_id�[0m=1773834954288-4
�[36mDEBUG�[0m[03-18|11:55:55.405] consumer: setting result                 �[36mcid�[0m=46cf16a8-66a5-4a83-a859-7dd539fc4579 �[36mmsgIdInStream�[0m=1773834954288-4  �[36mresultKeyInRedis�[0m=result-key:stream:a510764d-0000-4ef7-9853-6bbd540a6b8f.1773834954288-4
�[36mDEBUG�[0m[03-18|11:55:55.405] consumer: xdel                           �[36mcid�[0m=aafad919-497c-442a-b82b-5051b0f8e50a �[36mmessageId�[0m=1773834954287-13
�[36mDEBUG�[0m[03-18|11:55:55.405] consumer: xdel                           �[36mcid�[0m=d3194281-65e8-4b5f-ab74-c0f5670cc108 �[36mmessageId�[0m=1773834954288-1
�[36mDEBUG�[0m[03-18|11:55:55.405] consumer: xack                           �[36mcid�[0m=d0af8557-a76a-44d5-94c6-1c0d32d61c22 �[36mmessageId�[0m=1773834954288-3
�[36mDEBUG�[0m[03-18|11:55:55.406] consumer: xack                           �[36mcid�[0m=46cf16a8-66a5-4a83-a859-7dd539fc4579 �[36mmessageId�[0m=1773834954288-4
�[36mDEBUG�[0m[03-18|11:55:55.406] consumer: xdel                           �[36mcid�[0m=84a16a67-ef1e-486a-a713-59db2639e473 �[36mmessageId�[0m=1773834954288-2
�[36mDEBUG�[0m[03-18|11:55:55.408] consumer: xdel                           �[36mcid�[0m=46cf16a8-66a5-4a83-a859-7dd539fc4579 �[36mmessageId�[0m=1773834954288-4
�[36mDEBUG�[0m[03-18|11:55:55.408] consumer: xdel                           �[36mcid�[0m=d0af8557-a76a-44d5-94c6-1c0d32d61c22 �[36mmessageId�[0m=1773834954288-3
�[36mDEBUG�[0m[03-18|11:55:55.419] checkResponses                           �[36mresponded�[0m=39 �[36merrored�[0m=0 �[36mchecked�[0m=100
�[36mDEBUG�[0m[03-18|11:55:55.425] redis producer: check responses starting
�[36mDEBUG�[0m[03-18|11:55:55.489] checkResponses                           �[36mresponded�[0m=61 �[36merrored�[0m=0 �[36mchecked�[0m=61
�[36mDEBUG�[0m[03-18|11:55:55.559] Error destroying a stream group          �[36merror�[0m="dial tcp 127.0.0.1:42055: connect: connection refused"
--- FAIL: TestRedisProduceComplex/one_producer,_all_consumers_are_active (1.33s)
TestSequencerInboxReader
Stack Traces | 3.630s run time
... [CONTENT TRUNCATED: Keeping last 20 lines]
DEBUG[03-18|12:03:14.335] Journaled pathdb diff layer              root=1e4666..690b6e parent=ea65f9..627cb0 id=112                block=111
DEBUG[03-18|12:03:14.335] Journaled pathdb diff layer              root=0fbed0..6675fc parent=1e4666..690b6e id=113                block=112
DEBUG[03-18|12:03:14.335] Journaled pathdb diff layer              root=8294d7..b041ce parent=0fbed0..6675fc id=114                block=113
DEBUG[03-18|12:03:14.335] Journaled pathdb diff layer              root=16dec7..3e2fd7 parent=8294d7..b041ce id=115                block=114
DEBUG[03-18|12:03:14.335] Journaled pathdb diff layer              root=2a83a0..38b958 parent=16dec7..3e2fd7 id=116                block=115
DEBUG[03-18|12:03:14.335] Journaled pathdb diff layer              root=0ce79e..36db51 parent=2a83a0..38b958 id=117                block=116
DEBUG[03-18|12:03:14.335] Journaled pathdb diff layer              root=eaff42..a6f99a parent=0ce79e..36db51 id=118                block=117
DEBUG[03-18|12:03:14.335] Journaled pathdb diff layer              root=8f035c..9b9b17 parent=eaff42..a6f99a id=119                block=118
DEBUG[03-18|12:03:14.335] Journaled pathdb diff layer              root=ae2fce..695f64 parent=8f035c..9b9b17 id=120                block=119
DEBUG[03-18|12:03:14.335] Journaled pathdb diff layer              root=29ac32..f16502 parent=ae2fce..695f64 id=121                block=120
DEBUG[03-18|12:03:14.335] Journaled pathdb diff layer              root=5caf47..234120 parent=29ac32..f16502 id=122                block=121
DEBUG[03-18|12:03:14.335] Journaled pathdb diff layer              root=ff0c38..533e25 parent=5caf47..234120 id=123                block=122
DEBUG[03-18|12:03:14.335] Journaled pathdb diff layer              root=85c4ae..2f4ba0 parent=ff0c38..533e25 id=124                block=123
DEBUG[03-18|12:03:14.336] Journaled pathdb diff layer              root=fbfe5e..b45654 parent=85c4ae..2f4ba0 id=125                block=124
DEBUG[03-18|12:03:14.336] Journaled pathdb diff layer              root=5f7f59..b1be04 parent=fbfe5e..b45654 id=126                block=125
DEBUG[03-18|12:03:14.336] Journaled pathdb diff layer              root=bb6395..e98a71 parent=5f7f59..b1be04 id=127                block=126
INFO [03-18|12:03:14.336] Persisted dirty state to disk            size=590.39KiB elapsed=4.342ms
INFO [03-18|12:03:14.336] Blockchain stopped
TRACE[03-18|12:03:14.336] P2P networking is spinning down
--- FAIL: TestSequencerInboxReader (3.63s)

📣 Thoughts on this report? Let Codecov know! | Powered by Codecov

Copy link
Copy Markdown
Contributor

@diegoximenes diegoximenes left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lets do this after #3111 is merged

@pmikolajczyk41 pmikolajczyk41 changed the title Use promises in the ExecutionSequencer interface. Implement it over RPC [WAITING FOR #3111] Use promises in the ExecutionSequencer interface. Implement it over RPC Jan 27, 2026
Copy link
Copy Markdown
Contributor

@diegoximenes diegoximenes left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It will be easier to test those changes if CreateConsensusNode and config validation is also updated in this PR, to take into consideration that Consensus can communicate with Execution over RPC.

Comment thread arbnode/delayed_sequencer.go Outdated
Comment thread arbnode/seq_coordinator.go
Comment thread arbnode/seq_coordinator.go
Comment thread arbnode/seq_coordinator.go Outdated
@pmikolajczyk41 pmikolajczyk41 changed the base branch from master to interface_nil_checking February 24, 2026 10:07
@pmikolajczyk41 pmikolajczyk41 changed the base branch from interface_nil_checking to master February 26, 2026 08:56
@pmikolajczyk41 pmikolajczyk41 force-pushed the pmikolajczyk/nit-4062-execution-sequencer branch from 2075f6f to 9346d48 Compare February 26, 2026 10:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants