Skip to content

Conversation

ganeshvanahalli
Copy link
Contributor

This PR adds a new endpoint to arb namespace called arb_getMinRequiredNitroVersion that returns three strings corresponding to the --node.version-alerter-server.* config options as stated below, rpc can be enabled by

--node.version-alerter-server.enable:                         <enable the rpc endpoint>
--node.version-alerter-server.min-required-nitro-by-version:  <minimum required version of the nitro node software, eg: "v3.7.4">
--node.version-alerter-server.min-required-nitro-by-date:     <minimum required version of the nitro node software by date, eg: "2025-09-19T17:49:46-06:00">
--node.version-alerter-server.upgrade-deadline:               <deadline to upgrade the nitro node software, eg: "2025-09-19T17:49:46-06:00">

Subsequently on the client side a node can connect to such an endpoint via --version-alerter.* config options

--version-alerter.enable:                   <enable the rpc endpoint>
--version-alerter.connection.*:             <rpc client config>
--version-alerter.upgrade-grace-period:     <represents grace period up until the upgrade deadline received from arb_getMinRequiredNitroVersion, determines escalation of messages regarding node software upgrade>
--version-alerter.ping-interval:            <duration between successive pings to the endpoint>

the node gets the data from arb_getMinRequiredNitroVersion endpoint -> checks if it is below the required minimum version by number or by date -> if yes, then logs the upgrade message at appropriate level ->

If now + upgrade-grace-period < upgrade-deadline ----- "INFO"
If now + upgrade-grace-period > upgrade-deadline && now < upgrade-deadline ----- "WARN"
If now > upgrade-grace-period ----- "ERROR"

Testing Done

TestNitroNodeVersionAlerter system test has been added testing multiple scenarios and verified that logs are as expected.

Resolves NIT-3441

Copy link

github-actions bot commented Oct 9, 2025

❌ 2 Tests Failed:

Tests completed Failed Passed Skipped
2142 2 2140 0
View the top 2 failed tests by shortest run time
TestVersion40
Stack Traces | 5.400s run time
... [CONTENT TRUNCATED: Keeping last 20 lines]
INFO [10-17|13:14:53.664] Writing cached state to disk             block=1   hash=dcbe84..31fe08 root=d45d64..4e7811
INFO [10-17|13:14:53.664] Imported new potential chain segment     number=11   hash=e3aef6..4872f0 blocks=1  txs=1  mgas=1.405  elapsed=1.997ms      mgasps=703.362  triediffs=34.62KiB   triedirty=0.00B
INFO [10-17|13:14:53.664] Persisted trie from memory database      nodes=23   flushnodes=0 size=3.61KiB   flushsize=0.00B time="181.258µs"  flushtime=0s gcnodes=0 gcsize=0.00B gctime="1.492µs"   livenodes=0    livesize=0.00B
INFO [10-17|13:14:53.664] Writing cached state to disk             block=1   hash=dcbe84..31fe08 root=d45d64..4e7811
INFO [10-17|13:14:53.664] Persisted trie from memory database      nodes=0    flushnodes=0 size=0.00B     flushsize=0.00B time="1.623µs"    flushtime=0s gcnodes=0 gcsize=0.00B gctime=0s          livenodes=0    livesize=0.00B
INFO [10-17|13:14:53.664] Writing snapshot state to disk           root=28fb26..40a768
INFO [10-17|13:14:53.664] Persisted trie from memory database      nodes=0    flushnodes=0 size=0.00B     flushsize=0.00B time=711ns        flushtime=0s gcnodes=0 gcsize=0.00B gctime=0s          livenodes=0    livesize=0.00B
INFO [10-17|13:14:53.664] Submitted transaction                    hash=0xa25180b462effcf7109300551269227eedd74ccf724ef9d1f6d73ad2f1493c49 from=0xb386a74Dcab67b66F8AC07B4f08365d37495Dd23 nonce=631  recipient=0x06dBAc2631582181f13d1E4A3a3de9293E199c88 value=0
INFO [10-17|13:14:53.664] Chain head was updated                   number=11   hash=e3aef6..4872f0 root=a3962a..07ddaa elapsed="198.45µs"
INFO [10-17|13:14:53.665] DataPoster sent transaction              nonce=631  hash=a25180..493c49 feeCap=500,000,080    tipCap=50,000,000    blobFeeCap=&lt;nil&gt; gas=154,442
INFO [10-17|13:14:53.665] Blockchain stopped
INFO [10-17|13:14:53.665] BatchPoster: batch sent                  sequenceNumber=632 from=3622 to=3623 prevDelayed=610 currentDelayed=610 totalSegments=3  numBlobs=0
INFO [10-17|13:14:53.665] Starting work on payload                 id=0x03ccf6c86daec9a3
INFO [10-17|13:14:53.667] Submitted transaction                    hash=0xc02dc611ff661ec4dd00e51bdd171637b4d98eb5e870a527a80213e628bd0987 from=0xaF24Ca6c2831f4d4F629418b50C227DF0885613A nonce=3015 recipient=0x0C709F340F0BB2e361229e345B7e26999d0969Ab value=1
INFO [10-17|13:14:53.667] Updated payload                          id=0x03ccf6c86daec9a3 number=664  hash=8bde20..a98b14 txs=1  withdrawals=0 gas=142,147    fees=7.10735e-06    root=8ec861..5b700e elapsed=1.702ms
INFO [10-17|13:14:53.668] Stopping work on payload                 id=0x03ccf6c86daec9a3 reason=delivery
INFO [10-17|13:14:53.669] InboxTracker                             sequencerBatchCount=632 messageCount=3622 l1Block=663  l1Timestamp=2025-10-17T13:14:53+0000
INFO [10-17|13:14:53.669] Imported new potential chain segment     number=664  hash=8bde20..a98b14 blocks=1  txs=1  mgas=0.142  elapsed=1.912ms      mgasps=74.342   triediffs=1.45MiB    triedirty=542.26KiB
INFO [10-17|13:14:53.670] Chain head was updated                   number=664  hash=8bde20..a98b14 root=8ec861..5b700e elapsed="99.416µs"
--- FAIL: TestVersion40 (5.40s)
TestTimeboostExpressLaneTransactionHandling
Stack Traces | 24.180s run time
... [CONTENT TRUNCATED: Keeping last 20 lines]
DEBUG[10-17|13:12:42.455] Dereferenced trie from memory database   nodes=17  size=3.29KiB   time="39.183µs"  gcnodes=587  gcsize=109.67KiB  gctime=1.529226ms  livenodes=225   livesize=45.38KiB
DEBUG[10-17|13:12:42.455] Dereferenced trie from memory database   nodes=16  size=3.22KiB   time="56.345µs"  gcnodes=603  gcsize=112.89KiB  gctime=1.58541ms   livenodes=209   livesize=42.16KiB
DEBUG[10-17|13:12:42.455] Dereferenced trie from memory database   nodes=16  size=3.22KiB   time="38.992µs"  gcnodes=619  gcsize=116.12KiB  gctime=1.624262ms  livenodes=193   livesize=38.94KiB
DEBUG[10-17|13:12:42.455] Dereferenced trie from memory database   nodes=15  size=3.08KiB   time="36.739µs"  gcnodes=634  gcsize=119.20KiB  gctime=1.660871ms  livenodes=178   livesize=35.86KiB
DEBUG[10-17|13:12:42.455] Dereferenced trie from memory database   nodes=16  size=3.21KiB   time="36.538µs"  gcnodes=650  gcsize=122.41KiB  gctime=1.697289ms  livenodes=162   livesize=32.65KiB
DEBUG[10-17|13:12:42.456] Dereferenced trie from memory database   nodes=16  size=3.21KiB   time="33.553µs"  gcnodes=666  gcsize=125.61KiB  gctime=1.730692ms  livenodes=146   livesize=29.44KiB
DEBUG[10-17|13:12:42.456] Dereferenced trie from memory database   nodes=16  size=3.21KiB   time="34.605µs"  gcnodes=682  gcsize=128.82KiB  gctime=1.765177ms  livenodes=130   livesize=26.23KiB
DEBUG[10-17|13:12:42.456] Dereferenced trie from memory database   nodes=15  size=3.11KiB   time="35.076µs"  gcnodes=697  gcsize=131.93KiB  gctime=1.800082ms  livenodes=115   livesize=23.12KiB
DEBUG[10-17|13:12:42.456] Dereferenced trie from memory database   nodes=16  size=3.32KiB   time="33.643µs"  gcnodes=713  gcsize=135.25KiB  gctime=1.833585ms  livenodes=99    livesize=19.80KiB
DEBUG[10-17|13:12:42.456] Dereferenced trie from memory database   nodes=16  size=3.25KiB   time="31.98µs"   gcnodes=729  gcsize=138.50KiB  gctime=1.865415ms  livenodes=83    livesize=16.55KiB
DEBUG[10-17|13:12:42.456] Dereferenced trie from memory database   nodes=16  size=3.24KiB   time="40.284µs"  gcnodes=745  gcsize=141.74KiB  gctime=1.905559ms  livenodes=67    livesize=13.31KiB
DEBUG[10-17|13:12:42.456] Dereferenced trie from memory database   nodes=17  size=3.35KiB   time="36.849µs"  gcnodes=762  gcsize=145.10KiB  gctime=1.942278ms  livenodes=50    livesize=9.96KiB
DEBUG[10-17|13:12:42.456] Dereferenced trie from memory database   nodes=18  size=3.45KiB   time="36.097µs"  gcnodes=780  gcsize=148.55KiB  gctime=1.978255ms  livenodes=32    livesize=6.51KiB
DEBUG[10-17|13:12:42.456] Dereferenced trie from memory database   nodes=16  size=3.25KiB   time="58.068µs"  gcnodes=796  gcsize=151.80KiB  gctime=2.036193ms  livenodes=16    livesize=3.25KiB
DEBUG[10-17|13:12:42.456] Dereferenced trie from memory database   nodes=16  size=3.25KiB   time="43.731µs"  gcnodes=812  gcsize=155.05KiB  gctime=2.079804ms  livenodes=0     livesize=0.00B
DEBUG[10-17|13:12:42.456] Dereferenced trie from memory database   nodes=0   size=0.00B     time=190ns       gcnodes=812  gcsize=155.05KiB  gctime=2.079905ms  livenodes=0     livesize=0.00B
DEBUG[10-17|13:12:42.456] Dereferenced trie from memory database   nodes=0   size=0.00B     time=131ns       gcnodes=812  gcsize=155.05KiB  gctime=2.079955ms  livenodes=0     livesize=0.00B
INFO [10-17|13:12:42.457] Blockchain stopped
TRACE[10-17|13:12:42.459] P2P networking is spinning down
--- FAIL: TestTimeboostExpressLaneTransactionHandling (24.18s)

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

@amsanghi amsanghi assigned tsahee and unassigned amsanghi Oct 17, 2025
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.

3 participants