new minimal bsc

This commit is contained in:
goldsquid
2026-05-10 11:24:19 +07:00
parent 5e53cc33a0
commit 0dc8aa8358
3 changed files with 507 additions and 406 deletions

View File

@@ -0,0 +1,156 @@
---
x-logging-defaults: &logging-defaults
driver: json-file
options:
max-size: "10m"
max-file: "3"
# Snapshot for minial datadir here
# https://github.com/48Club/bsc-snapshots?tab=readme-ov-file
# Usage:
#
# mkdir rpc && cd rpc
#
# git init
# git remote add origin https://github.com/StakeSquid/ethereum-rpc-docker.git
# git fetch origin vibe
# git checkout origin/vibe
#
# docker run --rm alpine sh -c "printf '0x'; head -c32 /dev/urandom | xxd -p -c 64" > .jwtsecret
#
# env
# ...
# IP=$(curl ipinfo.io/ip)
# DOMAIN=${IP}.traefik.me
# COMPOSE_FILE=base.yml:rpc.yml:bsc/bsc/bsc-mainnet-bsc-minimal-pebble-hash.yml
#
# docker compose up -d
#
# curl -X POST https://${IP}.traefik.me/bsc-mainnet-minimal \
# -H "Content-Type: application/json" \
# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
services:
bsc-mainnet-minimal:
image: ${BSC_BSC_IMAGE:-ghcr.io/bnb-chain/bsc}:${BSC_MAINNET_BSC_VERSION:-1.7.3}
sysctls:
# TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
net.core.somaxconn: 32768 # Higher connection queue
# Memory/Connection Management
# net.core.netdev_max_backlog: 50000 # Increase network buffer
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
ulimits:
nofile: 1048576 # Max open files (for RPC/WS connections)
user: root
ports:
- 12853:12853
- 12853:12853/udp
expose:
- 8545
- 6060
entrypoint: [geth]
command:
- --cache.database=${BSC_MAINNET_BSC_MINIMAL_PEBBLE_HASH_CACHE_DB:-40}
- --cache.gc=${BSC_MAINNET_BSC_MINIMAL_PEBBLE_HASH_CACHE_GC:-25}
- --cache.snapshot=${BSC_MAINNET_BSC_MINIMAL_PEBBLE_HASH_CACHE_SNAPSHOT:-20}
- --cache.trie=${BSC_MAINNET_BSC_MINIMAL_PEBBLE_HASH_CACHE_TRIE:-15}
- --cache=${BSC_MAINNET_BSC_MINIMAL_PEBBLE_HASH_CACHE:-1024}
- --config=/config/config.toml
- --datadir=/bsc/.ethereum
- --db.engine=pebble
- --gcmode=full
- --history.blocks=1024
- --history.logs.disable=true
- --history.state=1024
- --history.transactions=1024
- --http
- --http.addr=0.0.0.0
- --http.api=eth,net,web3,txpool,debug,admin,parlia
- --http.port=8545
- --http.vhosts=*
- --mainnet
- --maxpeers=50
- --metrics
- --metrics.addr=0.0.0.0
- --metrics.port=6060
- --nat=extip:${IP}
- --port=12853
- --rpc.gascap=0
- --rpc.txfeecap=0
- --state.scheme=hash
- --syncmode=full
- --tries-verify-mode=none
- --txpool.pricelimit=50000000
- --ws
- --ws.addr=0.0.0.0
- --ws.api=eth,net,web3,txpool,debug,admin,parlia
- --ws.origins=*
- --ws.port=8545
restart: unless-stopped
stop_grace_period: 5m
networks:
- chains
volumes:
- ${BSC_MAINNET_BSC_MINIMAL_PEBBLE_HASH_DATA:-bsc-mainnet-bsc-minimal-pebble-hash}:/bsc/.ethereum
- ./bsc/mainnet:/config
- /slowdisk:/slowdisk
logging: *logging-defaults
labels:
- prometheus-scrape.enabled=true
- prometheus-scrape.port=6060
- prometheus-scrape.path=/metrics
- traefik.enable=true
- traefik.http.middlewares.bsc-mainnet-bsc-minimal-pebble-hash-stripprefix.stripprefix.prefixes=/bsc-mainnet-minimal
- traefik.http.services.bsc-mainnet-bsc-minimal-pebble-hash.loadbalancer.server.port=8545
- ${NO_SSL:-traefik.http.routers.bsc-mainnet-bsc-minimal-pebble-hash.entrypoints=websecure}
- ${NO_SSL:-traefik.http.routers.bsc-mainnet-bsc-minimal-pebble-hash.tls.certresolver=myresolver}
- ${NO_SSL:-traefik.http.routers.bsc-mainnet-bsc-minimal-pebble-hash.rule=Host(`$DOMAIN`) && (Path(`/bsc-mainnet-minimal`) || Path(`/bsc-mainnet-minimal/`))}
- ${NO_SSL:+traefik.http.routers.bsc-mainnet-bsc-minimal-pebble-hash.rule=Path(`/bsc-mainnet-minimal`) || Path(`/bsc-mainnet-minimal/`)}
- traefik.http.routers.bsc-mainnet-bsc-minimal-pebble-hash.middlewares=bsc-mainnet-bsc-minimal-pebble-hash-stripprefix, ipallowlist
volumes:
bsc-mainnet-bsc-minimal-pebble-hash:
x-upstreams:
- id: $${ID}
labels:
provider: $${PROVIDER}
connection:
generic:
rpc:
url: $${RPC_URL}
ws:
frameSize: 20Mb
msgSize: 50Mb
url: $${WS_URL}
chain: bsc
method-groups:
enabled:
- debug
- filter
methods:
disabled:
enabled:
- name: txpool_content # TODO: should be disabled for rollup nodes
# standard geth only
- name: debug_getRawBlock
- name: debug_getRawTransaction
- name: debug_getRawReceipts
- name: debug_getRawHeader
- name: debug_getBadBlocks
# non standard geth only slightly dangerous
- name: debug_intermediateRoots
- name: debug_dumpBlock
# standard geth and erigon
- name: debug_accountRange
- name: debug_getModifiedAccountsByNumber
- name: debug_getModifiedAccountsByHash
# non standard geth and erigon
- name: eth_getRawTransactionByHash
- name: eth_getRawTransactionByBlockHashAndIndex
...

File diff suppressed because it is too large Load Diff

View File

@@ -257,16 +257,21 @@
"hashkey-testnet": {
"id": 133,
"urls": [
"https://testnet.hsk.xyz"
"https://hashkeychain-testnet.alt.technology"
]
},
"polygon": {
"id": 137,
"urls": [
"https://polygon.drpc.org",
"https://polygon-rpc.com/",
"https://rpc-mainnet.matic.network",
"https://matic-mainnet.chainstacklabs.com",
"https://rpc-mainnet.maticvigil.com",
"https://rpc-mainnet.matic.quiknode.pro",
"https://matic-mainnet-full-rpc.bwarelabs.com",
"https://polygon-bor-rpc.publicnode.com",
"https://polygon.gateway.tenderly.co"
"https://polygon.gateway.tenderly.co",
"https://polygon.drpc.org"
]
},
"monad-mainnet": {
@@ -319,30 +324,12 @@
"https://opbnb.drpc.org"
]
},
"bsquared": {
"id": 223,
"urls": [
"https://mainnet.b2-rpc.com",
"https://rpc.bsquared.network",
"https://b2-mainnet.alt.technology",
"https://b2-mainnet-public.s.chainbase.com",
"https://rpc.ankr.com/b2"
]
},
"lens": {
"id": 232,
"urls": [
"https://rpc.lens.xyz"
]
},
"tac": {
"id": 239,
"urls": [
"https://rpc.tac.build",
"https://rpc.ankr.com/tac",
"https://ws.rpc.tac.build"
]
},
"cronos-zkevm-testnet": {
"id": 240,
"urls": [
@@ -393,12 +380,6 @@
"https://boba-eth.drpc.org"
]
},
"orderly": {
"id": 291,
"urls": [
"https://rpc.orderly.network"
]
},
"zksync-sepolia": {
"id": 300,
"urls": [
@@ -481,9 +462,9 @@
]
},
"bittorrent-testnet": {
"id": 1029,
"id": 1028,
"urls": [
"https://pre-rpc.bt.io"
"https://testrpc.bittorrentchain.io/"
]
},
"metis": {
@@ -669,6 +650,12 @@
"https://testrpc.xlayer.tech"
]
},
"ronin-saigon": {
"id": 2021,
"urls": [
"https://ronin-testnet.gateway.tenderly.co"
]
},
"alephzero-sepolia": {
"id": 2039,
"urls": [
@@ -713,14 +700,6 @@
"https://api.sepolia.kroma.network"
]
},
"tac-spb": {
"id": 2391,
"urls": [
"https://spb.rpc.tac.build",
"https://rpc.ankr.com/tac_spb",
"https://spb-ws.rpc.tac.build"
]
},
"polygon-zkevm-cardona": {
"id": 2442,
"urls": [
@@ -739,13 +718,6 @@
"https://api.mainnet.abs.xyz"
]
},
"morph": {
"id": 2818,
"urls": [
"https://rpc.morphl2.io",
"https://rpc-quicknode.morphl2.io"
]
},
"fantom-testnet": {
"id": 4002,
"urls": [
@@ -768,22 +740,10 @@
"https://rpc.sepolia-api.lisk.com"
]
},
"tempo-mainnet": {
"id": 4217,
"urls": [
"https://rpc.mainnet.tempo.xyz"
]
},
"megaeth": {
"id": 4326,
"urls": []
},
"orderly-testnet": {
"id": 4460,
"urls": [
"https://testnet-rpc.orderly.org"
]
},
"iotex": {
"id": 4689,
"urls": [
@@ -838,16 +798,8 @@
"https://opbnb-testnet-rpc.publicnode.com"
]
},
"tea": {
"id": 6122,
"urls": []
},
"megaeth-deprecated": {
"id": 6342,
"urls": []
},
"megaeth-testnet": {
"id": 6343,
"urls": [
"https://carrot.megaeth.com/rpc"
]
@@ -941,12 +893,6 @@
"https://gnosis-chiado.drpc.org"
]
},
"tea-sepolia": {
"id": 10218,
"urls": [
"https://tea-sepolia.g.alchemy.com/public"
]
},
"gameswift-testnet": {
"id": 10888,
"urls": [
@@ -970,13 +916,15 @@
"immutable-zkevm": {
"id": 13371,
"urls": [
"https://rpc.immutable.com"
"https://rpc.immutable.com",
"https://immutable-zkevm.drpc.org"
]
},
"immutable-zkevm-testnet": {
"id": 13473,
"urls": [
"https://rpc.testnet.immutable.com"
"https://rpc.testnet.immutable.com",
"https://immutable-zkevm-testnet.drpc.org"
]
},
"gravity-alpha-sepolia": {
@@ -996,7 +944,7 @@
"urls": []
},
"0g-galileo-testnet": {
"id": 16602,
"id": 16601,
"urls": [
"https://evmrpc-testnet.0g.ai"
]
@@ -1056,13 +1004,6 @@
"https://mode.drpc.org"
]
},
"abcore": {
"id": 36888,
"urls": [
"https://rpc.core.ab.org",
"https://rpc1.core.ab.org"
]
},
"lens-testnet": {
"id": 37111,
"urls": [
@@ -1134,12 +1075,6 @@
"https://alfajores-forno.celo-testnet.org"
]
},
"robinhood-testnet": {
"id": 46630,
"urls": [
"https://rpc.testnet.chain.robinhood.com/rpc"
]
},
"zircuit-garfield-testnet": {
"id": 48898,
"urls": [
@@ -1148,7 +1083,9 @@
},
"zircuit-testnet": {
"id": 48899,
"urls": []
"urls": [
"https://testnet.zircuit.com"
]
},
"zircuit-mainnet": {
"id": 48900,
@@ -1228,8 +1165,7 @@
"id": 80002,
"urls": [
"https://rpc-amoy.polygon.technology",
"https://polygon-amoy-bor-rpc.publicnode.com",
"https://polygon-amoy.drpc.org"
"https://polygon-amoy-bor-rpc.publicnode.com"
]
},
"berachain-bepolia": {
@@ -1341,12 +1277,6 @@
"https://rpc.hoodi.taiko.xyz"
]
},
"ronin-saigon": {
"id": 2021,
"urls": [
"https://ronin-testnet.gateway.tenderly.co"
]
},
"filecoin-calibration": {
"id": 314159,
"urls": [
@@ -1611,13 +1541,13 @@
]
},
"aztec-devnet": {
"rollup_version": "615022430",
"rollup_version": "1647720761",
"urls": [
"https://v4-devnet-2.aztec-labs.com/"
"https://devnet-6.aztec-labs.com/"
]
},
"aztec-testnet": {
"rollup_version": "4127419662",
"rollup_version": "2500495677",
"urls": [
"https://rpc.testnet.aztec-labs.com"
]