Skip to content

feat: configure RPC server timeouts - #25243

Merged
alexghr merged 1 commit into
merge-train/spartanfrom
stack/feat-configure-rpc-server-timeouts
Aug 17, 2026
Merged

feat: configure RPC server timeouts#25243
alexghr merged 1 commit into
merge-train/spartanfrom
stack/feat-configure-rpc-server-timeouts

Conversation

@alexghr

@alexghr alexghr commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

Fwd port of #25242

@spalladino spalladino left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

TIL headers timeout was a thing

@alexghr
alexghr merged commit e74e363 into merge-train/spartan Aug 17, 2026
10 checks passed
@alexghr
alexghr deleted the stack/feat-configure-rpc-server-timeouts branch August 17, 2026 09:17
spalladino added a commit that referenced this pull request Aug 18, 2026
Forward-ports the fixes merged into `merge-train/spartan-v5` over the
last two weeks onto the `next` line. One commit per original PR, each
carrying a `cherry picked from` trailer.

## Ported

- #25177 — fix(p2p): fail node startup when p2p service fails to start
- #25183 — feat(p2p): warn periodically while node has zero connected
peers
- #25202 — fix: spurious insufficient-funds rejection when simulating L1
calls
- #25207 — fix(validator): remove duplicate time-sensitive validation of
block proposals
- #25222 — refactor(p2p): brand ingress-validated proposals with a
ValidatedProposal type
- #25229 — fix: checkpoint block-shape and block-count validation gaps
- #25206 — fix: block stream sync can resolve against a pass that
predates it
- #25185 — feat(p2p): gate slashing, proposing, health, and sendTx on
p2p connectivity
- #25176 — fix: poll getLogs instead of eth_newFilter for L1 event
watchers

Commits are ordered as they merged into the v5 line, since several build
on each other (#25177#25183#25185 and #25207#25222#25229).

## Not ported

- #25148 (gossip tx validation stalls behind tx pool finalization) —
already on this line via #25189, which covers the same ground. The
cherry-pick came out empty.
- #25155 (standard-contracts historical artifacts in release image) —
the whitelist entry is already present in
`release-image/Dockerfile.dockerignore`.

## Conflict resolutions worth a look

Four commits conflicted; all others applied clean.

- **`ethereum/src/l1_tx_utils/l1_tx_utils.ts`** (#25202) — the rename
#25202 called out in its own description: `getGasPrice` is
`getFeesPerGas` on this line. Took the fix's side (fee fields dropped
from the simulated call), so the local `feesPerGas` read is gone along
with them.
- **`archiver/src/modules/data_store_updater.ts`** (#25229) — the v5
version of this method also passes `maxBlocksPerCheckpoint:
MAX_CAPACITY_BLOCKS_PER_CHECKPOINT` on the ingest path, which is a
separate v5-only change that has not been ported. Only #25229's actual
change is taken here: the shared `validateOpts` object plus
`allowEmptyNonFirstBlocks: true`. Ingest on this line therefore still
validates against the attestable limit; raising it to the capacity limit
is a separate port.
- **`ethereum/src/contracts/slashing_proposer.ts`** (#25176) —
`listenToVoteCast` carries a `voteIndex` argument on this line (from
#25068), which the v5 version predates. Combined both: the new
`watchContractEvent` polling mechanism with the `voteIndex` callback
argument retained.
- **Import blocks** (#25185) — `safe_json_rpc_server.test.ts` keeps
`import http` as a value import, since #25243 added a runtime
`http.createServer()` call to that file.
`stdlib/src/interfaces/p2p.test.ts` takes only `P2PConnectivity`; the
`TxHash` / `GetTxByHashOptions` imports on the v5 side belong to v5-only
API methods and would be unused here.

## Verification

`yarn build` produces a byte-identical error set to
`origin/merge-train/spartan` built in the same working tree (46 errors,
all from stale cross-line generated artifacts locally — Noir circuit
artifacts, verification-key lengths, `withWallet` on contract types). No
new compile errors from the port.

Unit tests for every package with a hand-resolved conflict pass:
`stdlib` (52), `ethereum` (61), `foundation` (47), `slasher` (140),
`validator-client` (39). Two suites
(`archiver/data_store_updater.test.ts`,
`sequencer-client/checkpoint_proposal_job.test.ts`) fail to *load* in
this working tree on stale cross-line artifacts; the archiver one was
confirmed to fail identically with the base version of the file, so CI
is the first real run for those two.

Labeled `ci-no-squash` to preserve one commit per ported PR.
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