non-EVM chain labels via full registry import + reference endpoint ladder
- aztec-testnet, solana, ripple x-upstreams now carry their drpc slug as chain label (was empty -> dshackle ignored the upstreams) - reference-rpc-endpoint.json: every chain now has a protocol field (eth/bitcoin/solana/ripple/aztec/...) for protocol-family dispatch in scripts, plus https://{slug}.drpc.org appended as LAST fallback url (independent endpoints stay preferred; overrides win entirely) - registry grew 247 -> 333 entries (all drpc protocols imported, not just eth) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,9 +1,37 @@
|
||||
---
|
||||
x-logging-defaults: &logging-defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: "10m"
|
||||
max-file: "3"
|
||||
# Find archive snapshots on publicnode.com
|
||||
|
||||
# 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:metis-andromeda/l2geth/metis-andromeda-sepolia-l2geth-archive-leveldb-hash.yml
|
||||
#
|
||||
# docker compose up -d
|
||||
#
|
||||
# curl -X POST https://${IP}.traefik.me/metis-andromeda-sepolia-archive \
|
||||
# -H "Content-Type: application/json" \
|
||||
# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
|
||||
|
||||
services:
|
||||
metis-andromeda-sepolia-archive-client:
|
||||
image: ${METIS_ANDROMEDA_L2GETH_IMAGE:-metisdao/l2geth}:${METIS_ANDROMEDA_SEPOLIA_L2GETH_VERSION:-v0.3.5}
|
||||
metis-andromeda-sepolia-archive:
|
||||
image: ${METIS_ANDROMEDA_L2GETH_IMAGE:-metisdao/l2geth}:${METIS_ANDROMEDA_SEPOLIA_L2GETH_VERSION:-v0.3.9}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
@@ -75,37 +103,35 @@ services:
|
||||
volumes:
|
||||
- ${METIS_ANDROMEDA_SEPOLIA_L2GETH_ARCHIVE_LEVELDB_HASH_DATA:-metis-andromeda-sepolia-l2geth-archive-leveldb-hash}:/root/.ethereum
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
metis-andromeda-sepolia-archive:
|
||||
image: nginx
|
||||
environment:
|
||||
PROXY_HOST: metis-andromeda-sepolia-archive-client
|
||||
RPC_PATH: ''
|
||||
RPC_PORT: 8545
|
||||
WS_PATH: ''
|
||||
WS_PORT: 8546
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- metis-andromeda-sepolia-archive-client
|
||||
networks:
|
||||
- chains
|
||||
volumes:
|
||||
- ./nginx-proxy:/etc/nginx/templates
|
||||
logging: *logging-defaults
|
||||
labels:
|
||||
- prometheus-scrape.enabled=false
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.metis-andromeda-sepolia-l2geth-archive-leveldb-hash-stripprefix.stripprefix.prefixes=/metis-andromeda-sepolia-archive
|
||||
- traefik.http.services.metis-andromeda-sepolia-l2geth-archive-leveldb-hash.loadbalancer.server.port=80
|
||||
- traefik.http.services.metis-andromeda-sepolia-l2geth-archive-leveldb-hash.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.metis-andromeda-sepolia-l2geth-archive-leveldb-hash.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.metis-andromeda-sepolia-l2geth-archive-leveldb-hash.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.metis-andromeda-sepolia-l2geth-archive-leveldb-hash.rule=Host(`$DOMAIN`) && (Path(`/metis-andromeda-sepolia-archive`) || Path(`/metis-andromeda-sepolia-archive/`))}
|
||||
- ${NO_SSL:+traefik.http.routers.metis-andromeda-sepolia-l2geth-archive-leveldb-hash.rule=Path(`/metis-andromeda-sepolia-archive`) || Path(`/metis-andromeda-sepolia-archive/`)}
|
||||
- traefik.http.routers.metis-andromeda-sepolia-l2geth-archive-leveldb-hash.middlewares=metis-andromeda-sepolia-l2geth-archive-leveldb-hash-stripprefix, ipallowlist
|
||||
- traefik.http.routers.metis-andromeda-sepolia-l2geth-archive-leveldb-hash.priority=50 # gets any request that is not GET with UPGRADE header
|
||||
- traefik.http.routers.metis-andromeda-sepolia-l2geth-archive-leveldb-hash-ws.priority=100 # answers GET requests first
|
||||
- traefik.http.services.metis-andromeda-sepolia-l2geth-archive-leveldb-hash-ws.loadbalancer.server.port=8546
|
||||
- traefik.http.routers.metis-andromeda-sepolia-l2geth-archive-leveldb-hash-ws.service=metis-andromeda-sepolia-l2geth-archive-leveldb-hash-ws
|
||||
- traefik.http.routers.metis-andromeda-sepolia-l2geth-archive-leveldb-hash.service=metis-andromeda-sepolia-l2geth-archive-leveldb-hash
|
||||
- ${NO_SSL:-traefik.http.routers.metis-andromeda-sepolia-l2geth-archive-leveldb-hash-ws.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.metis-andromeda-sepolia-l2geth-archive-leveldb-hash-ws.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.metis-andromeda-sepolia-l2geth-archive-leveldb-hash-ws.rule=Host(`$DOMAIN`) && (Path(`/metis-andromeda-sepolia-archive`) || Path(`/metis-andromeda-sepolia-archive/`)) && Headers(`Upgrade`, `websocket`)}
|
||||
- ${NO_SSL:+traefik.http.routers.metis-andromeda-sepolia-l2geth-archive-leveldb-hash-ws.rule=(Path(`/metis-andromeda-sepolia-archive`) || Path(`/metis-andromeda-sepolia-archive/`)) && Headers(`Upgrade`, `websocket`)}
|
||||
- traefik.http.routers.metis-andromeda-sepolia-l2geth-archive-leveldb-hash-ws.middlewares=metis-andromeda-sepolia-l2geth-archive-leveldb-hash-stripprefix, ipallowlist
|
||||
|
||||
metis-andromeda-sepolia-archive-node:
|
||||
image: ${METIS_ANDROMEDA_DTL_IMAGE:-metisdao/dtl}:${METIS_ANDROMEDA_SEPOLIA_DTL_VERSION:-v0.1.3}
|
||||
image: ${METIS_ANDROMEDA_DTL_IMAGE:-metisdao/dtl}:${METIS_ANDROMEDA_SEPOLIA_DTL_VERSION:-v0.2.6}
|
||||
ports:
|
||||
- 19563:19563
|
||||
- 19563:19563/udp
|
||||
expose:
|
||||
- 7878
|
||||
environment:
|
||||
- DATA_TRANSPORT_LAYER__BATCH_INBOX_ADDRESS=0xff00000000000000000000000001115511159902
|
||||
- DATA_TRANSPORT_LAYER__BATCH_INBOX_L1_HEIGHT=5536000
|
||||
@@ -138,12 +164,15 @@ services:
|
||||
- URL=https://metisprotocol.github.io/metis-networks/sepolia-testnet/addresses.json
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- metis-andromeda-sepolia-archive-client
|
||||
- metis-andromeda-sepolia-archive
|
||||
networks:
|
||||
- chains
|
||||
volumes:
|
||||
- ${METIS_ANDROMEDA_SEPOLIA_L2GETH_ARCHIVE_LEVELDB_HASH__DTL_DATA:-metis-andromeda-sepolia-l2geth-archive-leveldb-hash_dtl}:/data
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
logging: *logging-defaults
|
||||
labels:
|
||||
- prometheus-scrape.enabled=false
|
||||
|
||||
volumes:
|
||||
metis-andromeda-sepolia-l2geth-archive-leveldb-hash:
|
||||
@@ -161,7 +190,7 @@ x-upstreams:
|
||||
frameSize: 20Mb
|
||||
msgSize: 50Mb
|
||||
url: $${WS_URL}
|
||||
chain: $${CHAIN}
|
||||
chain:
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
|
||||
Reference in New Issue
Block a user