Skip to content

EL: optional second IPC socket so consensus eth_call is not starved by public RPC #457

Description

@MitkoTschimev

Problem

Public HTTP/WS and arc-consensus share one Reth EthApi, so they share one eth_call semaphore (--rpc.max-blocking-io-requests, default 256).

When client eth_call fills that queue, consensus get_signing_validator_set waits, then ETH_DEFAULT_TIMEOUT (1s) kills the CL. A second IPC path on the same EthApi does not help: the semaphore is per API, not per socket.

Proposal

Add --consensus-ipcpath. When set, execution opens a second jsonrpsee IPC on its own EthApi (16 blocking-io permits) and serves eth_* plus reth_subscribePersistedBlock there. Consensus points --eth-socket at that path. The Engine API on --auth-ipc.path is unchanged.

Leave the flag unset and consensus keeps using --ipcpath. Default behavior does not change.

A reference implementation is on the closed pull request #456 (closed by the contribution gate before review). I will resubmit it with Closes: #<this issue> only after assignment.

Request

Please assign this issue to me so I can open that pull request under the contribution policy.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    tracked internallyThis issue is already tracked internally by the Arc team.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions