abcore: fix version interpolation and state scheme

- Use canonical clients version substitution format:
  ${SERVICE_CLIENT_VERSION:-version} instead of ${SERVICE_GETH_VERSION:-version}
- Change profile from pruned-pebble-path to pruned-pebble-hash
- Remove --state.scheme=path from run command (geth v1.13 cannot write path scheme)
- Remove --state.scheme=path from init.sh geth init command
- Keep --db.engine=pebble and --config=/config/config.toml

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
This commit is contained in:
2026-08-26 03:35:23 +00:00
parent d5e3068e7f
commit 48302a4270
3 changed files with 33 additions and 18 deletions

View File

@@ -23,7 +23,7 @@ x-logging-defaults: &logging-defaults
# ...
# IP=$(curl ipinfo.io/ip)
# DOMAIN=${IP}.traefik.me
# COMPOSE_FILE=base.yml:rpc.yml:abcore/geth/abcore-mainnet-geth-pruned-pebble-path.yml
# COMPOSE_FILE=base.yml:rpc.yml:abcore/geth/abcore-mainnet-geth-pruned-pebble-hash.yml
#
# docker compose up -d
#
@@ -53,8 +53,8 @@ services:
nofile: 1048576 # Max open files (for RPC/WS connections)
user: root
ports:
- 13430:13430
- 13430:13430/udp
- 13110:13110
- 13110:13110/udp
expose:
- 8545
- 6060
@@ -77,10 +77,9 @@ services:
- --metrics.port=6060
- --nat=extip:${IP}
- --networkid=36888
- --port=13430
- --port=13110
- --rpc.gascap=600000000
- --rpc.txfeecap=0
- --state.scheme=path
- --syncmode=full
- --ws
- --ws.addr=0.0.0.0
@@ -92,7 +91,7 @@ services:
networks:
- chains
volumes:
- ${ABCORE_MAINNET_GETH_PRUNED_PEBBLE_PATH_DATA:-abcore-mainnet-geth-pruned-pebble-path}:/root/.ethereum
- ${ABCORE_MAINNET_GETH_PRUNED_PEBBLE_HASH_DATA:-abcore-mainnet-geth-pruned-pebble-hash}:/root/.ethereum
- ./abcore/mainnet:/config
- /slowdisk:/slowdisk
logging: *logging-defaults
@@ -101,16 +100,16 @@ services:
- prometheus-scrape.port=6060
- prometheus-scrape.path=/debug/metrics/prometheus
- traefik.enable=true
- traefik.http.middlewares.abcore-mainnet-geth-pruned-pebble-path-stripprefix.stripprefix.prefixes=/abcore-mainnet-geth
- traefik.http.services.abcore-mainnet-geth-pruned-pebble-path.loadbalancer.server.port=8545
- ${NO_SSL:-traefik.http.routers.abcore-mainnet-geth-pruned-pebble-path.entrypoints=websecure}
- ${NO_SSL:-traefik.http.routers.abcore-mainnet-geth-pruned-pebble-path.tls.certresolver=myresolver}
- ${NO_SSL:-traefik.http.routers.abcore-mainnet-geth-pruned-pebble-path.rule=Host(`$DOMAIN`) && (Path(`/abcore-mainnet-geth`) || Path(`/abcore-mainnet-geth/`))}
- ${NO_SSL:+traefik.http.routers.abcore-mainnet-geth-pruned-pebble-path.rule=Path(`/abcore-mainnet-geth`) || Path(`/abcore-mainnet-geth/`)}
- traefik.http.routers.abcore-mainnet-geth-pruned-pebble-path.middlewares=abcore-mainnet-geth-pruned-pebble-path-stripprefix, ipallowlist
- traefik.http.middlewares.abcore-mainnet-geth-pruned-pebble-hash-stripprefix.stripprefix.prefixes=/abcore-mainnet-geth
- traefik.http.services.abcore-mainnet-geth-pruned-pebble-hash.loadbalancer.server.port=8545
- ${NO_SSL:-traefik.http.routers.abcore-mainnet-geth-pruned-pebble-hash.entrypoints=websecure}
- ${NO_SSL:-traefik.http.routers.abcore-mainnet-geth-pruned-pebble-hash.tls.certresolver=myresolver}
- ${NO_SSL:-traefik.http.routers.abcore-mainnet-geth-pruned-pebble-hash.rule=Host(`$DOMAIN`) && (Path(`/abcore-mainnet-geth`) || Path(`/abcore-mainnet-geth/`))}
- ${NO_SSL:+traefik.http.routers.abcore-mainnet-geth-pruned-pebble-hash.rule=Path(`/abcore-mainnet-geth`) || Path(`/abcore-mainnet-geth/`)}
- traefik.http.routers.abcore-mainnet-geth-pruned-pebble-hash.middlewares=abcore-mainnet-geth-pruned-pebble-hash-stripprefix, ipallowlist
volumes:
abcore-mainnet-geth-pruned-pebble-path:
abcore-mainnet-geth-pruned-pebble-hash:
x-upstreams:
- id: $${ID}
@@ -131,8 +130,6 @@ x-upstreams:
- filter
methods:
disabled:
# not compatible with path state scheme
- name: debug_traceBlockByHash
enabled:
- name: txpool_content # TODO: should be disabled for rollup nodes
# standard geth only

View File

@@ -10,7 +10,7 @@ GENESIS_FILE="/config/genesis.json"
if [ -z "$(ls -A "$GETH_DATA_DIR")" ]; then
echo "abcore: data directory is empty, initializing from genesis..."
if [ -f "$GENESIS_FILE" ]; then
/abcore/bin/geth init --datadir "$GETH_DATA_DIR" --db.engine=pebble --state.scheme=path "$GENESIS_FILE"
/abcore/bin/geth init --datadir "$GETH_DATA_DIR" --db.engine=pebble "$GENESIS_FILE"
else
echo "abcore: genesis file not found at $GENESIS_FILE" >&2
exit 1

View File

@@ -1,11 +1,29 @@
[
{
"chain": "mainnet",
"client": "geth",
"compose_file": "abcore/geth/abcore-mainnet-geth-pruned-pebble-hash",
"drpc_chain": "abcore",
"features": [
"hash",
"pebble"
],
"network": "abcore",
"node": null,
"relay": null,
"stack": null,
"type": "pruned",
"volumes": [
"abcore-mainnet-geth-pruned-pebble-hash"
]
},
{
"chain": "mainnet",
"client": "geth",
"compose_file": "abcore/geth/abcore-mainnet-geth-pruned-pebble-path",
"drpc_chain": "abcore",
"features": [
"path",
"hash",
"pebble"
],
"network": "abcore",