From bc74bdf6cdc4d2aa08e19be16dd65e78feb86c80 Mon Sep 17 00:00:00 2001 From: KutluhanETH Date: Wed, 9 Sep 2026 13:46:32 +0000 Subject: [PATCH 1/3] docs: note public testnet RPC method differences The follow endpoints in running-an-arc-node.md are equivalent for sync, but not for application JSON-RPC (eth_getProof / eth_createAccessList). Add a compact capability matrix and guidance for unstable error codes. Addresses #371. --- docs/running-an-arc-node.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/docs/running-an-arc-node.md b/docs/running-an-arc-node.md index df392c5..31d1373 100644 --- a/docs/running-an-arc-node.md +++ b/docs/running-an-arc-node.md @@ -225,6 +225,23 @@ companion execution layer. The consensus layer operates in the **follow** mode. We provide three endpoints from which the node retrieves finalized blocks. +> **Public testnet RPC methods are not identical across providers.** The +> `--follow.endpoint` values above are interchangeable for **follow sync** +> (finalized blocks), but they do **not** all expose the same JSON-RPC method +> set for application clients. Measured against the public fleet (see #371): +> +> | Endpoint | `eth_getProof` | `eth_createAccessList` | +> |---|---|---| +> | `rpc.testnet.arc.io` | unsupported / unstable error codes | unsupported (`-32601`) | +> | `rpc.drpc.testnet.arc.io` | OK | OK | +> | `rpc.blockdaemon.testnet.arc.io` | OK | filtered (`-32003`; rejects whole batches) | +> +> Prefer `rpc.drpc.testnet.arc.io` when you need EIP-1186 proofs or access lists. +> Also, some hosts flip between `-32601` (method unsupported) and `-32014` +> (data unavailable) for the same `eth_getProof` call — treat capability probes +> as sticky only after a stable `-32601`, not after a single sample. + + ### Verify operation After starting both the consensus and execution layer, wait about 30 seconds. From 3d20924932d142f57fdfad30bf114b6ea718dc42 Mon Sep 17 00:00:00 2001 From: KutluhanETH Date: Wed, 9 Sep 2026 20:48:50 +0000 Subject: [PATCH 2/3] docs: tighten public RPC capability note from review Address review on #373/#371: clarify follow sync is unaffected, fix probe advice (do not wait for stable -32601), add quicknode + date stamp, soften blockdaemon batch wording, note differing WS paths, and drop the extra blank line. --- docs/running-an-arc-node.md | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/docs/running-an-arc-node.md b/docs/running-an-arc-node.md index 31d1373..d9892cf 100644 --- a/docs/running-an-arc-node.md +++ b/docs/running-an-arc-node.md @@ -225,22 +225,33 @@ companion execution layer. The consensus layer operates in the **follow** mode. We provide three endpoints from which the node retrieves finalized blocks. -> **Public testnet RPC methods are not identical across providers.** The -> `--follow.endpoint` values above are interchangeable for **follow sync** -> (finalized blocks), but they do **not** all expose the same JSON-RPC method -> set for application clients. Measured against the public fleet (see #371): +> **Public testnet RPC methods are not identical across providers for +> application clients.** Follow sync itself is unaffected: the follow client +> only needs `eth_getBlockByNumber`, `eth_call`, `eth_chainId`, and +> `net_listening`, and those work on every public host below. Note the +> differing WebSocket paths in the command above when swapping providers. +> +> The gap is for dapp/bridge/light-client callers that need EIP-1186 proofs or +> access lists. Observed 2026-09-09 against the public fleet (see #371): > > | Endpoint | `eth_getProof` | `eth_createAccessList` | > |---|---|---| -> | `rpc.testnet.arc.io` | unsupported / unstable error codes | unsupported (`-32601`) | +> | `rpc.testnet.arc.io` | unsupported (codes flip) | unsupported (`-32601`) | > | `rpc.drpc.testnet.arc.io` | OK | OK | -> | `rpc.blockdaemon.testnet.arc.io` | OK | filtered (`-32003`; rejects whole batches) | +> | `rpc.quicknode.testnet.arc.io` | unsupported (codes flip) | unsupported (`-32601`) | +> | `rpc.blockdaemon.testnet.arc.io` | OK | filtered (`-32003`); a batch containing it is rejected in full, losing unrelated calls | > -> Prefer `rpc.drpc.testnet.arc.io` when you need EIP-1186 proofs or access lists. -> Also, some hosts flip between `-32601` (method unsupported) and `-32014` -> (data unavailable) for the same `eth_getProof` call — treat capability probes -> as sticky only after a stable `-32601`, not after a single sample. - +> Prefer `rpc.drpc.testnet.arc.io` when you need proofs or access lists. Some +> hosts return `-32601` (method unsupported) for one call and `-32014` (data +> unavailable) for the next, for the same request. Do not branch on the code — +> treat any error from a capability probe as "unsupported on this host" and +> fail over. +> +> ```bash +> curl -s -X POST -H 'Content-Type: application/json' \ +> --data '{"jsonrpc":"2.0","id":1,"method":"eth_getProof","params":["0x3600000000000000000000000000000000000000",["0x0"],"latest"]}' \ +> https://rpc.testnet.arc.io +> ``` ### Verify operation From d8cabddeb6cec4726946f6d2aa807775ff850720 Mon Sep 17 00:00:00 2001 From: KutluhanETH Date: Thu, 10 Sep 2026 11:54:19 +0000 Subject: [PATCH 3/3] docs: correct follow RPC surface and blockdaemon cert retention Include arc_getCertificate and eth_subscribe(newHeads) in the follow method list, and warn that blockdaemon lacks deep-history certificates so genesis/deep catch-up should use testnet or drpc endpoints. --- docs/running-an-arc-node.md | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/docs/running-an-arc-node.md b/docs/running-an-arc-node.md index d9892cf..2279b91 100644 --- a/docs/running-an-arc-node.md +++ b/docs/running-an-arc-node.md @@ -225,14 +225,20 @@ companion execution layer. The consensus layer operates in the **follow** mode. We provide three endpoints from which the node retrieves finalized blocks. -> **Public testnet RPC methods are not identical across providers for -> application clients.** Follow sync itself is unaffected: the follow client -> only needs `eth_getBlockByNumber`, `eth_call`, `eth_chainId`, and -> `net_listening`, and those work on every public host below. Note the +> **Public testnet RPC methods are not identical across providers.** Note the > differing WebSocket paths in the command above when swapping providers. > -> The gap is for dapp/bridge/light-client callers that need EIP-1186 proofs or -> access lists. Observed 2026-09-09 against the public fleet (see #371): +> Follow sync needs `eth_getBlockByNumber`, `arc_getCertificate` (batched per +> height), `eth_call`, `eth_chainId`, `net_listening`, and +> `eth_subscribe("newHeads")` over the `wss=` URL. `rpc.blockdaemon.testnet.arc.io` +> serves certificates only for recent history (observed: nothing below block +> ~41,863,835 on 2026-09-09) while still serving the blocks themselves, so use +> `rpc.testnet.arc.io` or `rpc.drpc.testnet.arc.io` when catching up from genesis +> or from deep history. A missing certificate fails the whole follow batch, not +> just that height. +> +> Application clients that need EIP-1186 proofs or access lists also see method +> gaps. Observed 2026-09-09 against the public fleet (see #371): > > | Endpoint | `eth_getProof` | `eth_createAccessList` | > |---|---|---|