From 577ac5d7f2cf436712826df5e675c1c592ed4f7c Mon Sep 17 00:00:00 2001 From: Claude Agent Date: Tue, 16 Jun 2026 05:29:44 +0000 Subject: [PATCH] bsc minimal: disable eth_getProof on dshackle upstream Minimal BSC nodes lack the state to serve eth_getProof and return "header not found" (especially while catching up after a restart). The drpc gateway probes eth_getProof and marks the WHOLE upstream unavailable on failure, so e.g. bsc-mainnet-bsc-minimal on us-32 showed unavailable in US-East despite the node being online and at head. Disable eth_getProof on bsc minimal upstreams only (network=bsc, db_type=minimal) so they stay available for every other method. Archive/ pruned bsc and all other nodes keep serving getProof. Co-Authored-By: Claude Opus 4.8 (1M context) --- bsc/bsc/bsc-mainnet-bsc-minimal-pebble-hash.yml | 4 ++++ bsc/bsc/bsc-mainnet-bsc-minimal-pebble-path.yml | 4 ++++ bsc/erigon3/bsc-chapel-erigon3-minimal-trace.yml | 4 ++++ bsc/erigon3/bsc-mainnet-erigon3-minimal-trace.yml | 4 ++++ 4 files changed, 16 insertions(+) diff --git a/bsc/bsc/bsc-mainnet-bsc-minimal-pebble-hash.yml b/bsc/bsc/bsc-mainnet-bsc-minimal-pebble-hash.yml index 2198647d..486b20f9 100644 --- a/bsc/bsc/bsc-mainnet-bsc-minimal-pebble-hash.yml +++ b/bsc/bsc/bsc-mainnet-bsc-minimal-pebble-hash.yml @@ -135,6 +135,10 @@ x-upstreams: - filter methods: disabled: + # minimal bsc lacks the state to serve eth_getProof; the drpc gateway + # probes it and marks the whole upstream unavailable on "header not + # found" (especially while catching up after a restart). + - name: eth_getProof enabled: - name: txpool_content # TODO: should be disabled for rollup nodes # standard geth only diff --git a/bsc/bsc/bsc-mainnet-bsc-minimal-pebble-path.yml b/bsc/bsc/bsc-mainnet-bsc-minimal-pebble-path.yml index 639bd97f..bfbec0d2 100644 --- a/bsc/bsc/bsc-mainnet-bsc-minimal-pebble-path.yml +++ b/bsc/bsc/bsc-mainnet-bsc-minimal-pebble-path.yml @@ -137,6 +137,10 @@ x-upstreams: disabled: # not compatible with path state scheme - name: debug_traceBlockByHash + # minimal bsc lacks the state to serve eth_getProof; the drpc gateway + # probes it and marks the whole upstream unavailable on "header not + # found" (especially while catching up after a restart). + - name: eth_getProof enabled: - name: txpool_content # TODO: should be disabled for rollup nodes # standard geth only diff --git a/bsc/erigon3/bsc-chapel-erigon3-minimal-trace.yml b/bsc/erigon3/bsc-chapel-erigon3-minimal-trace.yml index 52834f6a..eae885e4 100644 --- a/bsc/erigon3/bsc-chapel-erigon3-minimal-trace.yml +++ b/bsc/erigon3/bsc-chapel-erigon3-minimal-trace.yml @@ -130,6 +130,10 @@ x-upstreams: methods: disabled: - name: eth_getLogs # this returns result [] on ethereum mainnet when it shouldn't so it's probably buggy on al networks + # minimal bsc lacks the state to serve eth_getProof; the drpc gateway + # probes it and marks the whole upstream unavailable on "header not + # found" (especially while catching up after a restart). + - name: eth_getProof enabled: - name: txpool_content # TODO: should be disabled for rollup nodes # standard geth and erigon diff --git a/bsc/erigon3/bsc-mainnet-erigon3-minimal-trace.yml b/bsc/erigon3/bsc-mainnet-erigon3-minimal-trace.yml index a0982adc..f7fd7603 100644 --- a/bsc/erigon3/bsc-mainnet-erigon3-minimal-trace.yml +++ b/bsc/erigon3/bsc-mainnet-erigon3-minimal-trace.yml @@ -130,6 +130,10 @@ x-upstreams: methods: disabled: - name: eth_getLogs # this returns result [] on ethereum mainnet when it shouldn't so it's probably buggy on al networks + # minimal bsc lacks the state to serve eth_getProof; the drpc gateway + # probes it and marks the whole upstream unavailable on "header not + # found" (especially while catching up after a restart). + - name: eth_getProof enabled: - name: txpool_content # TODO: should be disabled for rollup nodes # standard geth and erigon