# Besu — VMID 2103 besu-rpc-core-thirdweb (Thirdweb admin / core lane)
# LAN: 192.168.11.217:8545 / :8546 — NPM: rpc.tw-core.d-bis.org / wss.tw-core.d-bis.org
# Same RPC API surface as config-rpc-core.toml (ADMIN, TXPOOL, QBFT, DEBUG, TRACE);
# CORS is open for browser / Thirdweb tooling behind NPM TLS.
data-path="/data/besu"
genesis-file="/genesis/genesis.json"

network-id=138
# Placeholder only: node-specific generated configs must advertise the real LAN IP.
# Do not deploy this base template as-is to production thirdweb admin/core RPC nodes.
p2p-host="0.0.0.0"
p2p-port=30303

sync-mode="FULL"
data-storage-format="FOREST"

rpc-http-enabled=true
rpc-http-host="0.0.0.0"
rpc-http-port=8545
rpc-http-api=["ETH","NET","WEB3","TXPOOL","QBFT","ADMIN","DEBUG","TRACE"]
rpc-http-cors-origins=["*"]
rpc-ws-enabled=true
rpc-ws-host="0.0.0.0"
rpc-ws-port=8546
rpc-ws-api=["ETH","NET","WEB3","TXPOOL","QBFT","ADMIN"]
rpc-ws-origins=["*"]

metrics-enabled=true
metrics-port=9545
metrics-host="0.0.0.0"
metrics-push-enabled=false

logging="WARN"

permissions-nodes-config-file-enabled=true
permissions-nodes-config-file="/var/lib/besu/permissions/permissions-nodes.toml"
permissions-accounts-config-file-enabled=true
permissions-accounts-config-file="/permissions/permissions-accounts.toml"

# Thirdweb (2103) only: allow at most ONE queued “next” future tx per sender in the layered pool.
# This rejects deep nonce gaps and huge sequential queues (e.g. 15) when chain next is 1, instead of
# retaining them until gossip refills. Use 1, not 0: tx-pool-max-future-by-sender=0 can trigger Besu
# LayeredPendingTransactions IndexOutOfBounds (SparseTransactions) on block import.
# Other RPC nodes (2101, 2201) stay at higher limits — see config-rpc-core / config-rpc-public.
tx-pool=layered
tx-pool-layer-max-capacity=12500000
tx-pool-max-prioritized=2000
tx-pool-max-future-by-sender=1
tx-pool-price-bump=10

bootnodes=[]

static-nodes-file="/var/lib/besu/static-nodes.json"

discovery-enabled=false

max-peers=32

rpc-http-timeout=120
