240 Commits

Author SHA1 Message Date
e9024c5c17 add op-reth sepolia variants for bob, worldchain, ink
Superchain Sepolia hardfork ~2026-06-19 drops op-geth support; op-erigon is
already broken post-hardfork. op-reth is the migration target for Superchain
members. Generates archive-trace, minimal-trace, and pruned-trace variants
via the 'full_minimal_trace' profile (mirroring base-sepolia / op-sepolia).
2026-06-09 05:37:19 +00:00
2e08acbe07 regenerate drifted celo-sepolia compose files
Pre-existing template change: bind-mount './op/celo/sepolia:/config' migrated to
parameterizable named docker volumes (CELO_SEPOLIA_OP_GETH_*_CONFIG /
CELO_SEPOLIA_OP_GETH_*_NODE_CONFIG with sensible defaults). Surfaced when
running update.sh on top of the current rpc/ submodule HEAD.
2026-06-09 05:37:19 +00:00
ef88539ae6 fix of the fix 2026-06-07 09:19:06 +02:00
241c52848b fix 2026-06-07 09:12:43 +02:00
eeb894d783 fix taiko reth build 2026-06-07 08:34:05 +02:00
goldsquid
df8aeaefd1 build reth for taiko 2026-06-07 13:18:04 +07:00
goldsquid
86d0f53569 fix 2026-06-07 13:03:08 +07:00
goldsquid
2a194909da geth init fixes when genesis available. and that fixes reth too 2026-06-07 12:58:54 +07:00
goldsquid
4b03b4cdbc fix 2026-06-07 12:35:00 +07:00
goldsquid
07e198c87d taiko reth 2026-06-07 12:24:50 +07:00
goldsquid
aa5ffb63b6 fix 2026-06-06 11:49:31 +07:00
goldsquid
1aef140a9a if the backup storage is local do not use webdav 2026-06-06 11:36:58 +07:00
goldsquid
eccae5039f maybe pre-confirmations work on pruned nodes for taiko now? 2026-06-06 11:04:44 +07:00
goldsquid
0792d26756 fix 2026-06-06 10:42:15 +07:00
goldsquid
6a4a30b55a more fast 2026-06-06 10:32:46 +07:00
goldsquid
d49e3814d5 add preconfirmation to taiko hoodi 2026-06-06 09:58:36 +07:00
goldsquid
91ef991773 make the volume scripts ignore ephemeral volumes 2026-06-06 09:57:48 +07:00
goldsquid
d369f62c44 fix 2026-06-06 09:32:46 +07:00
goldsquid
1390b47bb8 move the init for geth to a init container 2026-06-06 09:27:23 +07:00
goldsquid
19739b5c34 fix 2026-06-06 09:17:35 +07:00
goldsquid
49a3b5c8b7 fix 2026-06-06 09:13:45 +07:00
goldsquid
bb3b54934d download rollup.json with iniut container 2026-06-06 09:08:49 +07:00
goldsquid
d5f755629f fix 2026-06-06 08:26:01 +07:00
goldsquid
6e97a5e6f7 hardcode fork time 2026-06-06 08:12:01 +07:00
goldsquid
3b7b662564 fix the taikos 2026-06-05 12:39:00 +07:00
goldsquid
3792c9a130 fix 2026-06-05 10:31:23 +07:00
goldsquid
8d87ebb982 some new params 2026-06-05 10:29:57 +07:00
goldsquid
5b99762bd6 snap sync linea besu 2026-06-05 10:25:21 +07:00
goldsquid
4bd8db226e jovian for bob 2026-06-05 10:13:37 +07:00
goldsquid
b7c3683981 fix 2026-06-05 09:58:20 +07:00
goldsquid
db7e8edb98 fix besu version 2026-06-05 09:56:05 +07:00
goldsquid
3f018e20d8 fix 2026-06-04 20:42:27 +07:00
goldsquid
3247bfe5b1 linea besu now mainline 2026-06-04 20:28:22 +07:00
goldsquid
e30ec1d62f let bob pull its config from the suerpchain registry instead of local files 2026-06-04 19:52:37 +07:00
goldsquid
19c01590d9 fix 2026-06-04 19:44:10 +07:00
goldsquid
0f632a91f7 fix 2026-06-04 19:42:28 +07:00
goldsquid
cffead2093 fix 2026-06-04 19:38:34 +07:00
goldsquid
37cd50fbfb update the client with hardforks 2026-06-04 19:36:35 +07:00
goldsquid
d2c140bc28 fix 2026-06-04 19:06:56 +07:00
goldsquid
4fa3ab857b fix 2026-06-04 18:55:06 +07:00
goldsquid
a2f4f86dbf fix 2026-06-04 18:48:42 +07:00
goldsquid
3d8b2e26b9 fix 2026-06-04 18:46:16 +07:00
goldsquid
1ad017b27c fix 2026-06-04 18:43:50 +07:00
goldsquid
27e15523cd fix 2026-06-04 18:41:05 +07:00
goldsquid
69c306da55 fix 2026-06-04 18:39:30 +07:00
goldsquid
2ee964883f relay update 2026-06-04 18:35:30 +07:00
goldsquid
a233937bb9 celo now with eigenv2 2026-06-04 18:21:46 +07:00
goldsquid
f973ab6002 can download the current genesis now 2026-06-04 18:00:14 +07:00
goldsquid
7505df8747 updatre celo assets 2026-06-04 17:38:17 +07:00
goldsquid
967b4bab25 hold the relay on the old version 2026-06-04 17:23:41 +07:00
goldsquid
486bf0b81a update op-node 2026-06-04 17:08:48 +07:00
goldsquid
e6eb416f11 lets see 2026-06-04 17:06:41 +07:00
goldsquid
2c77800c94 update reth for gnosis and nimbus which didn't receive auto-updates for some reason 2026-06-04 15:38:51 +07:00
goldsquid
d37af5387c override something 2026-06-04 15:05:28 +07:00
goldsquid
0d593e6eb2 override new default 2026-06-04 15:04:49 +07:00
goldsquid
ed094dbe11 fix 2026-06-04 14:37:14 +07:00
goldsquid
1bb1e3c8c3 weirdly I need to override the hardfork time 2026-06-04 14:36:40 +07:00
goldsquid
b53a6a41b5 some hardfork timestamps for bob 2026-06-04 14:26:24 +07:00
goldsquid
5fb687d6a3 fix 2026-06-04 13:32:39 +07:00
goldsquid
9a2aedaf51 fix 2026-06-03 14:43:27 +07:00
goldsquid
2efbc1d1b1 fix 2026-06-03 14:42:07 +07:00
goldsquid
f6392cfe1c different binary 2026-06-03 14:36:27 +07:00
goldsquid
96e2c184eb new base consensus 2026-06-03 14:33:07 +07:00
goldsquid
d86bceec3b made bor archive pbss 2026-06-01 18:13:09 +07:00
6daffd04df Update dshackle to v0.79.5
Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-05-30 04:12:29 +00:00
e2b76be395 Update dshackle version: 0.79.2 -> 0.79.4
Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-05-27 04:09:33 +00:00
20aeedbc9c fix(rskj): traefik should hit nginx wrapper on port 80, not rskj client on 8545
The rskj compose has an nginx proxy wrapper in front of the rskj client.
The wrapper listens on port 80 and proxies to rskj:8545 internally (this is
required because rskj's hosts whitelist is hard-coded to localhost only,
so traefik forwards must look local to rskj). Traefik labels were pointing
to port 8545, hitting the rskj client directly, which rejected the request
because the Host header didn't match localhost.

Fix: traefik loadbalancer.server.port now 80 for both rootstock-mainnet
and rootstock-bamboo (mirrors the parent rpc-client.yml template's
existing client_proxy_required logic, which the rskj client template
inadvertently dropped).

Verified on de-31: rootstock-mainnet eth_blockNumber returns block
8,872,189 after the fix.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-24 15:55:50 +00:00
459e90e187 Update versions: erigon3 v3.4.2, external-node v29.17.0, prysm v7.1.4, dshackle v0.79.2
- erigon3: v3.4.1 -> v3.4.2 (ethereum, gnosis, linea)
- external-node: v29.17.0-alpha -> v29.17.0 (zksync-era, abstract, lens)
- external-node sophon: v29.1.0 -> v29.17.0
- prysm: v7.1.3 -> v7.1.4
- dshackle: 0.79.1 -> 0.79.2

Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-05-23 04:09:34 +00:00
0c8b4089fc Update external-node to v29.17.0-alpha (abstract, lens, zksync-era)
Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-05-21 04:09:01 +00:00
e8a4d65c52 Update dshackle to v0.79.1
Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-05-20 04:09:08 +00:00
a7ee7448d8 Update nitro to v3.10.1-d7f07be
Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-05-19 04:11:47 +00:00
2e08603b67 Update versions: dshackle 0.78.7->0.78.8, bitcoin-cash 0.33.3->0.33.4
Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-05-16 04:08:39 +00:00
76c441e2bb Update versions: bor 2.7.3->2.8.0, erigon3 v3.5.0->v3.6.0 (polygon), reth v1.2.0->v1.2.1 (gnosis)
Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-05-15 04:11:53 +00:00
31de6192df Update dshackle 0.78.6 -> 0.78.7
Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-05-14 04:09:28 +00:00
705e79626c arb/nitro: drop obsolete --node.da-provider.* and DA inbox/parent-url flags
These flags were removed in Nitro v3.10 and cause Fatal config errors on
startup. Affected chains use AnyTrust DAS via REST aggregator without a
separate relay (orbit-no-relay branch):
- alephzero (mainnet+sepolia)
- connext-sepolia
- everclear-mainnet
- opencampuscodex-sepolia
- playblock-mainnet
- plume (mainnet+testnet)
- real-mainnet

The parent-chain node URL and sequencer-inbox-address are now auto-derived
from --parent-chain.connection.url. The --node.da-provider.* flag family is
gone entirely.

Verified live on rpc-de-13 (everclear): container Up, REST aggregator URL
accepted, head block loaded, RPC listening.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-14 03:44:35 +00:00
9d734b2825 Update versions: besu 26.4.0->26.5.0, rippled 3.1.2->3.1.3
Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-05-13 04:08:16 +00:00
55614918e4 Update versions: geth v1.17.3, nitro v3.10.0, nimbus v26.5.0, gnosis-reth v1.2.0
Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-05-12 04:08:18 +00:00
0f0859844b Update viction node to v2.6.0
Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-05-11 04:09:43 +00:00
goldsquid
0dc8aa8358 new minimal bsc 2026-05-10 11:24:19 +07:00
5e53cc33a0 Update erigon3 v3.4.0 -> v3.4.1
Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-05-10 04:08:53 +00:00
8e3656a3f8 Update versions: haqq v1.9.3->v1.9.4, dshackle 0.78.5->0.78.6
Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-05-09 04:11:04 +00:00
dc8c73c264 Update versions: bitcoind 0.33.2->0.33.3, bor 2.7.2->2.7.3
Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-05-08 04:08:02 +00:00
3b97b1bc55 Update versions: nitro v3.9.9-rc.3 -> v3.9.9-6b0af88-stripped, blast-sepolia sepolia-v1.4.0 -> sepolia-v1.7.0, dshackle 0.78.4 -> 0.78.5
Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-05-06 04:09:53 +00:00
67c08fe6c9 Rootstock: revert HOCON env-var sub - hardcode rpc-de-31 domain
${?DOMAIN} substitution caused rskj to crash with 'Can't read config'.
Hardcoding the host-specific domain for now (rootstock only runs on
de-31). For multi-host deployment later, would need a per-host
templated node.conf or a proxy that rewrites Host header.
2026-05-05 19:28:27 +00:00
7dc379dd05 Rootstock: include $DOMAIN in http hosts whitelist
rskj's hosts whitelist is exact-match (no wildcards). Use HOCON env-var
substitution ${?DOMAIN} to inject the per-host public domain into the
allowed list. Pass DOMAIN env var into the container via the rskj
template.

Allowed hosts list: [localhost, 127.0.0.1, ::1, ${?DOMAIN}]
- localhost variants for direct/internal access
- DOMAIN for traefik-forwarded requests (Host header = public domain)
2026-05-05 19:25:57 +00:00
bbb6205cb4 Rootstock: drop JVM -Dhosts.X props - let file config 'hosts = ["*"]' win
Setting hosts via -Dhosts.0=*, -Dhosts.1=*, etc creates an OBJECT in
HOCON (indexed entries), but rskj's schema expects LIST. Result: rskj
warns and falls back to default whitelist (localhost only).

Drop the hosts.X JVM properties entirely. The file /etc/rsk/node.conf
already declares hosts = ["*"] which IS a HOCON LIST. Without the JVM
override, the file value wins.
2026-05-05 19:16:27 +00:00
53697cb40d Rootstock: override RSKJ_SYS_PROPS to allow Host: * in http whitelist
The rsksmart/rskj:VETIVER-9.0.1 image bakes an env var:
  RSKJ_SYS_PROPS=-Drpc.providers.web.http.bind_address=0.0.0.0
                 -Drpc.providers.web.http.hosts.0=localhost
                 -Drpc.providers.web.http.hosts.1=127.0.0.1
                 -Drpc.providers.web.http.hosts.2=::1

These JVM -D system properties take precedence over /etc/rsk/node.conf
in HOCON, so the Host whitelist always resolves to {localhost,127.0.0.1,::1}.

Result: traefik routing to rskj at IP rootstock-mainnet-client:8545
arrives with Host header that doesn't match those three. rskj returns
HTTP 400, traefik translates to 502 Bad Gateway.

Override the env var in the compose template so the http hosts whitelist
contains '*' (any host). Traefik's ipallowlist middleware is the actual
gatekeeper. Affects rootstock-mainnet AND rootstock-bamboo.
2026-05-05 19:06:31 +00:00
abb3c4b189 Rootstock: hosts = ["*"] - allow all Host headers (was [])
VETIVER-9.0.1 enforces rpc.providers.web.http.hosts as a whitelist;
empty list / default rejects everything except 'Host: localhost'.

The traefik route uses 'customrequestheaders.Host=localhost' middleware
to rewrite the Host header, but that middleware appears not to be
applied for the rootstock route - real requests still arrive at rskj
with Host: rpc-de-XX.stakesquid.eu and rskj returns 400 Bad Request,
which traefik translates to 502 Bad Gateway.

Wildcard whitelist is fine here because traefik (with ipallowlist
middleware) is the actual gatekeeper.

Confirmed empirically: 'wget --header=Host:localhost' returns valid
JSON-RPC, anything else returns 400.
2026-05-05 18:56:08 +00:00
bc95c7e1a6 Rootstock: fix rpc.modules format for VETIVER (LIST -> OBJECT)
VETIVER-9.0.1 silently ignores rpc.modules when configured as a list of
{name,version,enabled} objects. Switch to canonical OBJECT format from
rskj's expected.conf:
  modules = { eth { version = "1.0", enabled = "true" } ... }

Without this, the RPC server starts but no modules are registered, so
eth_blockNumber returns method-not-found and show-status flags as 'error'
even though the chain itself imports blocks fine.

Also added 'hosts = []' under rpc.providers.web.http (LIST per
expected.conf, was missing). Same fix applied to bamboo testnet config.

Note: this only resolves mainnet. Bamboo still needs DB recreate due to
unrelated 'Invalid block header size: 22' corruption.
2026-05-05 18:34:09 +00:00
4a62c8b243 Update versions: nethermind 1.37.1->1.37.2, dshackle 0.78.3->0.78.4
Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-05-05 04:10:11 +00:00
97a3ce1db4 Bump matterlabs/external-node v29.1.2 -> v29.16.0-alpha
Required to fix zksync-era-mainnet on de-13 which is failing with
'migration 20250820140638 was previously applied but is missing in the
resolved migrations'. We were 15 minor versions behind the latest stable
GitHub release (core-v29.16.0). Cascades to abstract/lens external-node
composes which inherit the base version (none currently deployed).
2026-05-04 19:12:19 +00:00
f921cf4028 Linea: set sequencer URLs (rpc.linea.build / rpc.sepolia.linea.build)
maru v1.2.x strictly validates l2-eth-api-endpoint as a URL and crashes when SEQUENCER
env var is empty. Old maru tolerated empty. Fixes 4 stuck Linea instances on
de-27, de-32, us-40 — all besu/geth running but maru crash-looping with config error
'Required type class java.net.URL could not be decoded from a String value: '
2026-05-04 14:36:34 +00:00
065c31dbb5 Update dshackle 0.78.2 -> 0.78.3
Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-05-02 04:07:35 +00:00
f75470e2c1 Update reth to v2.2.0
Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-05-01 13:13:20 +00:00
e8cc23ae26 Revert BSC pin: back to 1.7.3 (corrupt DB on us-32 to be replaced via 48.club snapshot) 2026-05-01 11:01:09 +00:00
5af2b5ace8 Pin BSC client to 1.7.2
1.7.3 introduced a regression where --tries-verify-mode=none silently overrides
--state.scheme=path → hash, causing 'Incompatible state scheme' crash on minimal
nodes built with path scheme. 1.7.2 was confirmed working before the auto-bump.
2026-05-01 10:45:48 +00:00
e51d99c433 Update versions: bitcoind 0.33.2, dshackle 0.78.2; regenerate compose files
Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-05-01 04:19:24 +00:00
c03cc74943 Fix maru version: v1.2.0 -> v1.2.1-20260410142843-d326b73
v1.2.0 tag doesn't exist on Docker Hub, causing compose build
failures on de-27, de-32, us-40. Using the actual tag format.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-30 19:34:54 +00:00
737ffdac32 Update versions: nethermind 1.35.7->1.37.1, rippled 3.0.0->3.1.2, nitro rc.2->rc.3, agave 3.1.4->3.1.14, geth 1.16.7->1.17.2, besu 25.12.0->26.4.0, erigon3 3.3.2->3.4.0, nimbus 25.11.1->26.3.1, juno 0.15.16->0.16.0, pathfinder 0.21.3->0.22.3, op-reth 1.9.3->1.10.2, scroll 5.10.0->5.10.6, cronos-zkevm 29.6.0->29.14.0, xlayer cdk-erigon 0.8.7.1->0.9.5, wemix 0.10.11->0.10.13, fuse nethermind 1.32.2->1.36.2, bitcoin-cash 0.32.4->0.33.1, rootstock REED-8.1.0->VETIVER-9.0.1, sonic 2.1.4->2.1.6, metis dtl 0.2.5->0.2.6, celo v2.1->v2.2, mantle 1.3.2->1.5.5, boba geth 1.101603->1.101609, zircuit 1.125.6->1.132.6, fraxtal 1.101603->1.101702, blast mainnet 1.4.0->1.8.0, bor 2.5.4->2.7.2, polygon erigon3 3.3.3->3.5.0, bsc 1.6.4->1.7.3, goat testnet3+mainnet, ronin 1.1.2->1.2.2, taiko geth 1.17.3->2.4.0, maru 9737a45->1.2.0, gnosis reth 0.1.8->1.1.11, berachain reth 1.3.1->1.4.0, dshackle 0.76.0->0.78.0
Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-04-30 09:47:51 +00:00
d0291932bc Regenerate all compose files with version updates
- prysm v7.1.3, lighthouse v8.1.3, java-tron v4.8.1
- Add zero-gravity/aristotle chain (chainid 16661)
- Add tempo/mainnet compose files
- Add tempo to chainid exempt list (uses named chain specs)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-24 19:14:33 +00:00
926a993129 Update safe patch versions: prysm v7.1.3, lighthouse v8.1.3, haqq v1.9.3, avalanche v1.14.2, java-tron v4.8.1 2026-04-24 17:34:49 +00:00
e232e6d625 CRITICAL: Upgrade Dshackle to v0.76.0 2026-04-23 07:10:15 +00:00
goldsquid
1a3a607eda mucho 2026-04-20 20:15:37 +07:00
goldsquid
89cf3ab255 nitro archive 2026-04-20 20:14:27 +07:00
fa05752e57 Update Dshackle to v0.75.21
- Update drpcorg/dshackle from 0.75.17 to 0.75.21
- Required for Tron network support
- Updates both drpc.yml and drpc-free.yml

Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-04-20 04:53:53 +00:00
3606ba0f2b Update avalanche go to v1.14.2-firewood
Regenerated compose files from context.yml update.

Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-04-19 16:27:33 +00:00
cbf548df5b Update bob-mainnet op-node to v1.16.12
Fix L1 deposit tx parsing error (data length 178)
2026-04-13 23:02:20 +00:00
6a14b7abd4 Update bob-mainnet op-node to v1.17.0
Fix L1 deposit tx parsing error "data is unexpected length: 178"
caused by Ethereum Prague/Electra upgrade changing deposit tx format.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-13 19:30:00 +00:00
3c591608f1 Update Polygon Amoy bootnodes and maxpeers
- Replace outdated bootnodes (34.89.39.114, 35.197.249.21) with official ones from Polygon docs
- New bootnodes: 34.89.255.109, 34.185.137.160, 34.89.119.250, 34.89.40.235
- Increase maxpeers from 50 to 500 per Polygon docs recommendations
- Affects: Bor and all Erigon3 variants (archive, minimal, pruned)

Reference: https://docs.polygon.technology/pos/reference/seed-and-bootnodes/

Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-04-08 19:56:41 +00:00
b569c87930 Update Amoy bootnodes to current working nodes
Old bootnodes (34.89.39.114, 35.197.249.21) were down causing sync failure.
Updated to official bootnodes from Polygon documentation.

Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-04-06 03:24:11 +00:00
42f845fa40 Update versions: avalanche, bitcoin-cash, celo, gnosis reth, rootstock, starknet pathfinder
- avalanche go: v1.14.1 → v1.14.2
- bitcoin-cash: 0.32.11 → 0.33.0
- celo geth: v1.17.1 → v1.17.2
- op.celo geth: celo-v2.2.1 → celo-v2.2.2
- gnosis reth: v1.0.3 → v1.1.11-eraimports
- rootstock rskj: REED-8.1.1 → VETIVER-9.0.0
- starknet pathfinder: v0.22.0 → v0.22.1

Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-04-03 12:24:06 +00:00
2c34c9e376 Update versions: nimbus multiarch-v26.3.0 -> multiarch-v26.3.1
Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-03-29 04:06:59 +00:00
4e8fadb56a fix: resolve port collisions for polygon-amoy and zircuit-garfield
- polygon-amoy: reassigned from port 12188 (collision with hashkeychain-mainnet)
  to 12190 via salt+2 in generate_ports()
- zircuit-garfield/testnet: fix empty --networkid= (was {{ chain_id }},
  now {{ chainid }})

Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-03-27 23:44:36 +00:00
4f6c2b5fcd fix(zero-gravity): use --syncmode=full for galileo and aristotle geth
Snap sync causes a deadlock on fresh nodes: consensus sends a zero
finalized block hash at startup which geth rejects, crashing consensus.
Full sync processes blocks sequentially from genesis and avoids this.

Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-03-27 20:42:06 +00:00
aa5386cc0b fix 0G galileo: use official seed IP from release package
Replace dead itrocket hostname with official seed from bundled config.toml:
461b27a9d1530eb47f62fe010a8d3e5d43b6740c@34.82.252.10:26656

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 18:33:30 +00:00
f51e0d4910 fix 0G galileo: network ID 16601→16602, v3.0.4, update seeds
- Fix networkid from 16601 to 16602 (confirmed by official docs)
- Bump version 3.0.3 → 3.0.4
- Replace dead bootnode (8.218.88.60) with bundled geth-config.toml
- Replace dead consensus seed (8.218.88.60:26656) with itrocket seed
- Same fixes applied to aristotle for consistency

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 18:12:33 +00:00
7fb3f08498 Update client versions: juno v0.15.21, aztec 4.1.2, taiko-geth v2.4.0
Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-03-27 16:41:34 +00:00
ed051c2b46 Update client versions
- nethermind: 1.36.1 → 1.36.2
- erigon3 (default): v3.3.9 → v3.3.10
- lighthouse: v8.1.2 → v8.1.3
- celo geth: 1.8.9 → v1.17.1
- zircuit op-geth/op-node: v1.132.6 → v1.134.1-beta
- katana op-geth: v1.101603.5 → v1.101701.0
- bor (polygon): 2.6.5 → 2.7.0
- erigon3 (polygon): v3.4.0 → v3.5.0
- bsc: 1.7.1 → 1.7.2
- gnosis reth: v1.0.2 → v1.0.3

Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-03-27 05:01:30 +00:00
d5bfffecda Set rpc.gascap=0 and rpc.txfeecap=0 on BSC/Core nodes
Overrides default gascap (600000000) to 0 (no gas cap) in BSC template.
Core inherits from BSC template, so also updated.

Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-03-25 11:26:02 +00:00
21813cbdd0 fix: update op-reth image to new oplabs registry
op-reth moved from ghcr.io/paradigmxyz/op-reth to
us-docker.pkg.dev/oplabs-tools-artifacts/images/op-reth
starting with v1.11.0

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 04:11:41 +00:00
dcbbcf5cde security: update OP Stack clients to latest security releases
op-geth: v1.101608.0 -> v1.101701.0
op-reth: v1.10.2 -> v1.11.3
op-node: v1.16.6 -> v1.16.9

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 04:01:47 +00:00
ec9d966f2f Update versions: nitro v3.9.8, juno v0.15.20, cronos-zkevm v29.14.0, aztec 4.1.1
- nitro: v3.9.7-75e084e → v3.9.8-4624977 (all arbitrum-based chains)
- juno: v0.15.19 → v0.15.20 (starknet mainnet+sepolia)
- cronos-zkevm external-node: v29.6.0 → v29.14.0
- aztec testnet: 4.1.0-rc.2 → 4.1.1 (stable release)
- aztec devnet: 4.0.0-devnet.2-patch.0 → 4.1.1 (stable release)

Skipped: avalanche (RC), ronin (RC), bor (beta), blast-sepolia (false positive),
         linea erigon3 (false positive), manta-pacific op-node (false positive),
         eigenda-proxy (held)

Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-03-25 00:46:34 +00:00
a5210206a1 Update versions: agave v3.1.10->v3.1.11, bitcoin-cash 0.32.10->0.32.11, bor 2.6.3->2.6.5, cdk-erigon xlayer v0.8.7.1->v0.9.5, external-node v29.13.1-alpha->v29.14.0, op-celo celo-v2.2.0->celo-v2.2.1, goat geth/node updates, fraxtal geth/node updates, mantle v1.5.2->v1.5.3, pathfinder v0.21.5->v0.22.0, berachain-reth v1.3.1->v1.4.0, xlayer-op-node v0.1.5->v0.1.5.1, hemi geth/node updates, dshackle 0.75.14->0.75.17
Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-03-20 17:09:51 +00:00
847c68a676 Update versions: prysm v7.1.2->v7.1.3, bsc 1.6.7->1.7.1, external-node v29.12.1-alpha->v29.13.1-alpha, mantle v1.5.1->v1.5.2, dshackle 0.75.13->0.75.14
Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-03-17 04:10:13 +00:00
ea1a05b49f Add ITRocket seed for 0G Galileo to fix peer discovery
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-14 10:41:27 +00:00
4756813b30 Add zkevm.l2-datastreamer-url as CLI arg to bypass config parsing 2026-03-14 10:07:17 +00:00
a455b28e04 Remove deprecated/unknown flags from polygon-zkevm erigon.yaml
zkevm.datastream-version, zkevm.get-logs-timeout, zkevm.get-logs-retries
are unknown/deprecated in v2.63.0-RC11.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-14 09:43:42 +00:00
58b4cf8aa1 Fix polygon-zkevm cdk-erigon version: v2.64.2 → v2.63.0-RC11
v2.64.2 doesn't exist on Docker Hub; latest available is v2.63.0-RC11.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-14 04:50:49 +00:00
f1c0fab51c Add polygon-zkevm CDK-erigon support (mainnet + Cardona testnet)
- Add rpc/polygon-zkevm/mainnet/erigon.yaml (chain 1101, datastream v2)
- Add rpc/polygon-zkevm/cardona/erigon.yaml (chain 2442, Sepolia L1)
- Add compose files for mainnet archive+pruned (ports 11361/12361)
- Add compose files for cardona archive+pruned (ports 11362/12362)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-14 04:48:10 +00:00
3546d79e75 Update client versions: reth v1.11.3, sonic v2.1.6, mantle v1.5.1, scroll v5.10.6, bor 2.6.3, rippled 3.1.2, rskj REED-8.1.1
- ethereum reth: v1.11.2 → v1.11.3 (HIGH priority trie panic fix)
- sonic: v2.1.5 → v2.1.6 (security patches CVE-2026-26314, CVE-2026-26315)
- mantle op-geth+op-node: v1.4.2 → v1.5.1 (URGENT: Arsia fork 2026-03-25)
- scroll l2geth: scroll-v5.10.4 → scroll-v5.10.6 (EVM balance check fixes)
- polygon bor: 2.6.2 → 2.6.3 (stable patch)
- rippled: 3.1.1 → 3.1.2 (stable patch)
- rootstock rskj: REED-8.1.0 → REED-8.1.1 (patch)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-14 04:26:41 +00:00
goldsquid
c42f0e0f25 fix 2026-03-13 17:06:09 +07:00
goldsquid
3db32fd356 downgrade the eigenda relay 2026-03-13 16:49:51 +07:00
goldsquid
4afa6d9854 update celo 2026-03-13 16:33:43 +07:00
goldsquid
44adaf52dd updatre 2026-03-13 16:29:40 +07:00
3bffde93d3 Aztec compose: devnet 4.0.0-devnet.2-patch.0, testnet 4.1.0-rc.2 2026-03-13 04:45:34 +00:00
15eabc9e62 Update Aztec devnet to v4-devnet-2 and testnet to 4.1.0-rc.2
- aztec-devnet: rollup_version 1647720761->615022430, url devnet-6->v4-devnet-2.aztec-labs.com
- aztec-testnet: rollup_version 2500495677->4127419662 (network upgraded)
2026-03-13 04:41:41 +00:00
4aa653b29a Update versions: reth v1.11.2, agave v3.1.10, external-node v29.12.1-alpha
Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-03-11 04:13:27 +00:00
b05c8d41bc Update versions: lighthouse v8.1.1 -> v8.1.2
Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-03-10 04:08:22 +00:00
dc65000d4b Update versions: erigon3 v3.3.8 -> v3.3.9
Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-03-08 04:09:27 +00:00
9fc1e2d95b Update versions: nethermind 1.36.1, bor 2.6.2, gnosis-reth v1.0.2
Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-03-07 04:09:22 +00:00
0bbd716acf Update versions: nitro v3.9.7, geth v1.17.1, besu 26.2.0, external-node v29.12.0-alpha, nimbus v26.3.0, blsync v1.17.1, juno v0.15.19, bitcoin-cash 0.32.10, scroll v5.10.4, xlayer-node v0.1.5, dshackle 0.75.13
Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-03-06 04:11:42 +00:00
60b8cd5048 fix(immutable-zkevm): pin version and update image to immutable-geth
Switch from defunct ghcr.io/immutable/go-ethereum/go-ethereum image
to the current ghcr.io/immutable/immutable-geth/immutable-geth image.
Pin version to v1.0.0-beta.17 instead of using 'latest' tag.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 10:44:02 +00:00
1cf7bd5651 Update versions: lighthouse v8.1.0 -> v8.1.1
Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-02-28 04:13:58 +00:00
9310b078e0 op-reth: add --rpc.max-trace-filter-blocks=10000
Applies to all OP-stack reth nodes (base, soneium, op-mainnet, etc).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 03:42:48 +00:00
ce20a16c79 bsc reth: add --rpc.max-trace-filter-blocks=10000
Limits trace filter block range to 10000 blocks for BSC reth nodes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 03:24:00 +00:00
9fd3047e18 Update versions: bitcoind 0.32.9, aztec 4.0.2, dshackle 0.75.11; update hashkeychain-testnet sequencer URL
Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-02-27 04:09:39 +00:00
goldsquid
5e106aea33 update 2026-02-26 18:22:40 +07:00
goldsquid
f2ac6cab05 updates 2026-02-26 18:14:48 +07:00
f3b40c9ef8 Update external-node v29.11.0-alpha -> v29.11.1-alpha
Updated: abstract.mainnet, abstract.testnet, lens.mainnet, lens.testnet, sophon.mainnet, zksync-era.boojnet, zksync-era.mainnet

Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-02-26 04:10:36 +00:00
dc977d47be Update versions: bor 2.5.9->2.6.0, rippled 3.1.0->3.1.1
Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-02-25 04:08:34 +00:00
5e040bcd4a Update versions: reth v1.11.1, external-node v29.11.0-alpha, zircuit-garfield config fix
Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-02-24 04:10:19 +00:00
71d48d0493 Fix: revert op-reth to v1.10.2 (op-reth:v1.11.0 image not available)
Keep ethereum/reth at v1.11.0 but op-reth stays at v1.10.2 since
ghcr.io/paradigmxyz/op-reth:v1.11.0 is not published.

Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-02-21 04:23:24 +00:00
9abe6409ac Update versions: reth v1.10.2 -> v1.11.0
Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-02-21 04:16:16 +00:00
2f84138733 fix(xlayer): remove obsolete XLayer gas price oracle config
XLayer migrated from Polygon CDK to OP Stack (Jovian fork, Oct 2025).
The Kafka-based [Eth.GPO.XLayer] section was removed in op-geth v0.1.4
(okx/op-geth PR #168, Feb 2026) and causes Fatal crash on startup.
Replace with standard OP Stack GPO config with MinSuggestedPriorityFee.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 17:38:55 +00:00
40c457c370 Update versions: erigon3 v3.3.8, fraxtal op-geth v1.101609.0-frax-1.3.0, fraxtal op-node v1.16.6-frax-1.2.0
Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-02-20 04:15:05 +00:00
a955c5cd92 Revert reth to v1.10.2: op-reth v1.11.0 image not yet available on ghcr
Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-02-19 04:18:48 +00:00
5dbea9f017 Update versions: reth v1.11.0, polygon-erigon3 v3.4.0, dshackle 0.75.9, zksync-era external-node v29.10.1-alpha
Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-02-19 04:14:04 +00:00
74e21ccf73 Update versions: geth v1.17.0, nimbus multiarch-v26.2.1, bor 2.5.9, bsc 1.6.7, external-node v29.10.1-alpha, blsync alltools-v1.17.0
Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-02-18 04:23:44 +00:00
e06da27b3e Update zksync-era external-node to v29.8.0-alpha 2026-02-18 02:20:56 +00:00
c8017d9ea9 Update zksync-era external-node to v29.8.0 2026-02-18 02:15:40 +00:00
e90198a831 Add plume-mainnet pebble configs for DB corruption fix
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-17 12:39:47 +00:00
4e307bcde5 Fix plume-mainnet-archive: add explicit --persistent.db-engine=pebble
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-17 12:24:50 +00:00
44e7127a37 Revert reth to v1.10.2 - v1.11.0 image not yet available on ghcr
Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-02-17 04:14:22 +00:00
518c2ede2e Update versions: reth v1.10.2->v1.11.0, nimbus multiarch-v26.1.0->multiarch-v26.2.0, xlayer v0.1.3->v0.1.4
Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-02-17 04:09:54 +00:00
goldsquid
12e197fffa udpate 2026-02-16 12:34:31 +07:00
goldsquid
1416f91636 update 2026-02-11 20:17:37 +07:00
69d178d79b Update versions: bitcoin-cash 0.32.8, blast-sepolia v1.7.0
- bitcoin-cash: 0.32.7 → 0.32.8
- blast-sepolia geth & node: v1.6.0 → v1.7.0

Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-02-10 21:09:03 +00:00
63fd119d55 fixed the ram script 2026-02-10 05:37:18 +01:00
641c1d8fa1 Add --http.vhosts=* to immutable-zkevm compose files
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 17:06:50 +00:00
4b24f7969f Add generated immutable-zkevm compose files
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 17:03:13 +00:00
2f65975bcd katana-testnet: use custom genesis/rollup config
Same fix as mainnet - katana-testnet is not in the superchain registry.
Chain ID 737373, L1 is Sepolia.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 14:17:20 +00:00
rob
400ea86d29 Adding json files for katana testnet 2026-02-08 14:15:57 +00:00
206109c2a3 katana-mainnet: use custom genesis/rollup config
Katana is not in the OP Stack superchain registry, so it needs
custom genesis.json and rollup.json files instead of the built-in
network name. Follows the same pattern as superseed-mainnet.

Changes:
- Remove GETH_OP_NETWORK env var
- Add genesis init in entrypoint (checks if /data/geth exists)
- Add --networkid=747474
- Mount op/katana/mainnet as /config in both geth and op-node
- Replace OP_NODE_NETWORK with OP_NODE_ROLLUP_CONFIG

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 02:10:56 +00:00
rob
b74d521064 Add config files 2026-02-08 02:07:03 +00:00
rob
02976155d5 Add Katana (Ronin L2) node configurations for mainnet and testnet 2026-02-07 22:32:52 +00:00
rob
a583d9cf8c Add Aztec devnet/testnet to reference endpoints
Adds rollup_version-based lookup for Aztec chains.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-07 17:17:50 +00:00
goldsquid
22b4ecd042 total node size 2026-02-07 22:33:30 +07:00
goldsquid
4ae053438c total node size 2026-02-07 22:29:01 +07:00
goldsquid
0031e43550 updates 2026-02-07 22:26:58 +07:00
7ef8301ccf Pin haqq to v1.9.1 (v1.9.2 does not exist on Docker Hub) 2026-02-07 11:34:37 +00:00
rob
c8f96a3a39 show-size.sh: Add disk space info when called without args
Shows free/total disk space at the end, similar to show-db-size.sh

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-07 10:24:13 +00:00
rob
413ca7ccd4 show-ram.sh: Fix to show node paths like show-status
- Use COMPOSE_FILE from .env to get list of nodes
- Match containers by service labels from compose files
- Output format now matches show-status (node paths, not container IDs)
- Sorted by RAM usage descending

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-07 10:13:47 +00:00
rob
f92f80abd0 show-ram.sh: Fix path mapping to compose file
Path maps directly to compose file in subdirectories:
op/reth/base-mainnet-op-reth-archive-trace -> op/reth/base-mainnet-op-reth-archive-trace.yml

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-07 09:52:28 +00:00
rob
67731beed0 show-ram.sh: Fix node_path handling, group by node
- Fix: handle full path like ethereum/geth/node-name (extract basename)
- Without args: show RAM per node (grouped by compose project), not per container
- Sorted by RAM usage descending

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-07 09:46:51 +00:00
rob
9ce4b5cd0a show-ram.sh: Show all containers when no node_path given
- Without argument: shows all containers sorted by RAM, total container RAM, server RAM
- With argument: shows RAM for specific node only

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-07 09:38:49 +00:00
rob
433bb6f341 Add show-ram.sh script to show RAM usage per node
Shows RAM usage for all containers in a compose file with total.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-07 08:50:59 +00:00
0aa4ad0aa2 Update dshackle 0.75.7 → 0.75.8
Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-02-06 21:08:41 +00:00
1c033cf699 Regenerate compose files with op-geth v1.101608.0 and op-node v1.16.6
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 06:52:04 +00:00
9c9523a031 Update op-geth to v1.101608.0 and op-node to v1.16.6
Regenerated compose files with latest OP Stack client versions.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 06:48:40 +00:00
goldsquid
158dc903df fix bob sepolia 2026-02-06 13:39:27 +07:00
goldsquid
b7ec2ff084 fix taiko hoodi 2026-02-06 13:21:27 +07:00
6d97078f70 Update versions: sonic v2.1.4 → v2.1.5, dshackle 0.75.6 → 0.75.7
Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-02-05 21:08:54 +00:00
goldsquid
a30f2cbfe9 fix bob sepolia 2026-02-05 17:01:14 +07:00
72c96bc8f9 Update lighthouse v8.0.1 → v8.1.0, maru v1.0.0 → v1.1.0
Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-02-05 09:43:29 +00:00
1ba4ad97c5 Update taiko-geth for hoodi: v1.17.4 → v2.2.1
Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-02-05 09:32:51 +00:00
feffc2ab0a Update versions: java-tron v4.8.1, dshackle 0.75.6, hashkeychain config
Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-02-04 21:09:16 +00:00
f6f9d92171 Update versions: besu 26.1.0, haqq v1.9.2, go-wemix w0.10.13, goat testnet3 node v0.4.3
Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-02-03 21:10:59 +00:00
goldsquid
e70f42196d fix 2026-02-02 17:59:55 +07:00
aa3ac10893 Revert haqq to v1.9.1 - Docker image v1.9.2 not published
The v1.9.2 release exists on GitHub but the Docker image hasn't been
published to Docker Hub yet.

Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-02-01 21:15:17 +00:00
8094518094 Update versions: haqq v1.9.2, dshackle 0.75.5
- haqq client: v1.9.1 -> v1.9.2
- dshackle: 0.75.4 -> 0.75.5
- hashkeychain testnet: sequencer URL update

Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-02-01 21:09:37 +00:00
124d19dbb6 Add tempo consensus parameters for RPC nodes
- Add --consensus.signing-key and --consensus.fee-recipient
- Add secrets volume for validator key storage
- Add comment with key generation instructions

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 06:13:06 +00:00
6cb5b12ab0 Update tempo image tag to sha-a1ac033
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 06:08:29 +00:00
a09b33b7a0 Add Tempo network configuration (moderato, testnet)
- Add tempo-moderato-reth-archive-trace and tempo-moderato-reth-pruned-trace
- Add tempo-testnet-reth-archive-trace and tempo-testnet-reth-pruned-trace
- Update compose_registry.json with new endpoints

Chain IDs:
- Tempo Moderato: 42431
- Tempo Testnet (Andantino): 42429

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 06:04:52 +00:00
c35fdd0f15 fix(hashkey-testnet): update reference RPC endpoint
The previous endpoint https://hashkeychain-testnet.alt.technology had
DNS resolution failure, causing sync-status to return "unverified ()".

Updated to official endpoint https://testnet.hsk.xyz

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 03:52:20 +00:00
d814146f13 Update juno (starknet) v0.15.17 -> v0.15.18
Stable release bump for Starknet juno client.

Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-01-31 21:10:25 +00:00
goldsquid
39648446a5 add a full sync version 2026-01-31 12:10:23 +07:00
goldsquid
42d9d64dfa fix 2026-01-31 12:03:32 +07:00
goldsquid
2ac216bdfe hashkeychain testnet 2026-01-31 11:57:38 +07:00
goldsquid
bf2f75d1cd fix 2026-01-31 11:28:28 +07:00
goldsquid
376b1a750f fix 2026-01-31 11:26:01 +07:00
goldsquid
eafbb2e2c3 fix 2026-01-31 11:24:14 +07:00
goldsquid
10f429e743 fix 2026-01-31 11:13:56 +07:00
goldsquid
a6e7348b40 some fix 2026-01-31 11:09:28 +07:00
goldsquid
3c20aac136 aztec maybe 2026-01-31 11:00:36 +07:00
goldsquid
3c68c92ecc haqq downgrade 2026-01-31 08:59:11 +07:00
56d7772909 Update erigon3 v3.3.5 -> v3.3.7, dshackle 0.75.3 -> 0.75.4
- Erigon3 for ethereum, gnosis, linea: v3.3.5 -> v3.3.7
- Dshackle: 0.75.3 -> 0.75.4

Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-01-30 21:11:18 +00:00
3517b98ef5 Update versions: erigon3 v3.3.5, nimbus v26.1.0, bor 2.5.8, dshackle 0.75.3
- erigon3: v3.3.4 -> v3.3.5 (ethereum, gnosis)
- nimbus: multiarch-v25.12.0 -> multiarch-v26.1.0 (ethereum consensus)
- bor: 2.5.7 -> 2.5.8 (polygon)
- dshackle: 0.75.1 -> 0.75.3

Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-01-29 21:11:17 +00:00
6bd7b35ae0 Update versions: dshackle 0.75.1, haqq v1.9.2, rippled 3.1.0
Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-01-28 21:11:20 +00:00
5687d74a62 Pin Loki to version 3.4.3 to trigger container restart
Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-01-28 13:49:05 +00:00
beacca7986 Enable 7-day log retention for Loki
Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-01-28 13:27:19 +00:00
737a8e24a7 Fix superseed mainnet rollup.json and haqq version
- Add granite_time, holocene_time, isthmus_time to superseed mainnet rollup.json
  (fetched from live superseed sequencer)
- Update haqq image from v1.9.2 to v1.9.1 (v1.9.2 doesn't exist on Docker Hub)

Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-01-28 03:30:37 +00:00
336adb68e6 Update zircuit geth/node: v1.127.13-beta -> v1.132.6
Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-01-27 21:10:37 +00:00
1022f44959 Fix bob-sepolia: remove deprecated da_challenge_contract_address
op-node v1.16.5 no longer accepts the da_challenge_contract_address field
in rollup.json (it was replaced by alt_da in newer OP Stack versions).
Since BOB sepolia doesn't use alt DA (zero address), simply removing the
field fixes the crash loop.

Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-01-27 09:58:10 +00:00
f174b0cc61 Update dshackle: 0.74.0 → 0.74.1
Co-Authored-By: Claude Agent <claude@stakesquid.eu>
2026-01-26 21:11:22 +00:00
rob
65919f6c01 Update dshackle: 0.73.0 → 0.74.0
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 05:11:36 +00:00
rob
73d376f589 Update client versions
- agave (solana): v3.1.7 → v3.1.8
- bitcoind (bitcoin-cash): 0.32.6 → 0.32.7
- erigon3 (ethereum, gnosis): v3.3.3 → v3.3.4
- geth/node (mantle.sepolia): v1.4.1 → v1.4.2
- go-wemix: w0.10.11 → w0.10.12
- haqq: v1.9.1 → v1.9.2
- reth (op-stack, ethereum): v1.10.1 → v1.10.2

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 05:08:20 +00:00
rob
c6d33fde72 Update Celo versions: geth celo-v2.1.3, op-node celo-v2.1.1
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 03:16:55 +00:00
rob
08e537ee71 Update client versions (cursor-verified)
- juno: v0.15.16 → v0.15.17 (starknet)
- scroll l2geth: v5.10.1 → v5.10.2 (SECURITY FIX)
- reth: v1.9.3 → v1.10.1 (ethereum)
- op-reth: v1.9.3 → v1.10.1 (base/lisk/op/soneium)
- metis dtl: v0.2.5 → v0.2.6
- xlayer geth/node: v0.1.2 → v0.1.3
- solana agave: v3.0.13/v3.1.6 → v3.1.7
- linea geth: v1.16.7 → v1.16.8

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 01:45:48 +00:00
rob
6915a759d1 Update taiko-hekla nethermind to 1.36.0, fix linea-sepolia sync mode
- taiko-hekla nethermind: 1.35.8 -> 1.36.0 (security + Taiko fixes)
- linea-sepolia-besu: SNAP -> FULL sync mode (SNAP broken for Linea)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 10:27:52 +00:00
rob
a7661930be Fix Linea Sepolia maru config for snapshot sync
- Disable payload-validation-enabled (same as mainnet fix)
- Increase desync-tolerance to 100000 (allow CL/EL sync gap)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 05:26:30 +00:00
rob
749ff64f8f Switch Linea Besu from SNAP to FULL sync mode
SNAP sync is broken for Linea - it picks an old pivot block (~24.7M) that
no peers can serve world state for. This causes:
- World state download stuck with 0 pending requests
- Maru unable to push blocks to EL without complete world state
- Node stuck returning block 0 for "latest"

FULL sync executes every block from genesis. It's slower but reliable
and allows maru to drive the sync via engine API.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 05:02:06 +00:00
rob
b7fe145fa5 Fix Linea maru: increase desync-tolerance to allow catchup sync
When Besu is behind the CL head (e.g., during initial sync or after restart),
desync-tolerance=0 prevents maru from sending any fork choice updates to Besu.
This causes Besu to remain stuck at its current block.

Increasing desync-tolerance to 100000 allows maru to continue sending blocks
even when Besu is significantly behind, enabling it to catch up.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 04:49:52 +00:00
rob
bd6083231f Fix Linea maru: disable payload-validation-enabled to match official config
When payload-validation-enabled is true, maru validates every block against
Besu before sending fork choice updates. If Besu is in an inconsistent state
(e.g., stuck in SNAP sync), this causes maru to stop sending fork choice
updates entirely, preventing Besu from ever syncing.

The official Linea configuration uses payload-validation-enabled = false,
which allows maru to continue sending fork choice updates regardless of
Besu's current state.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 04:37:19 +00:00
rob
0a880c3f3f Revert Linea mainnet Besu to SNAP sync mode 2026-01-17 03:41:44 +00:00
rob
1987f07cf8 Change Linea mainnet Besu to CHECKPOINT sync mode 2026-01-17 03:40:54 +00:00
rob
a0f098de79 Change Linea mainnet Besu from SNAP to FULL sync mode 2026-01-17 03:40:05 +00:00
rob
6fb1d76b13 fix(zircuit): update Garfield configs for Sepolia L1 and testnet op_network 2026-01-17 03:02:50 +00:00
rob
e136b0fc52 Update Linea Besu to beta-v4.4-rc7-20260108212219-738a446 2026-01-15 13:40:08 +00:00
rob
607dbe7020 Add bootnodes for Linea Besu - remove network exclusion from template 2026-01-15 13:34:19 +00:00
rob
c2582b0b76 Enable payload-validation for Linea Maru
Set payload-validation-enabled=true in Maru config to ensure
payloads are sent to the execution client. Without this, Maru
doesn't send forkchoice/newPayload calls when EL reports synced
status (even at block 0).

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 13:23:17 +00:00
449 changed files with 26703 additions and 1892 deletions

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
abstract-mainnet-archive: abstract-mainnet-archive:
image: ${ABSTRACT_EXTERNAL_NODE_IMAGE:-matterlabs/external-node}:${ABSTRACT_MAINNET_EXTERNAL_NODE_VERSION:-v29.7.0} image: ${ABSTRACT_EXTERNAL_NODE_IMAGE:-matterlabs/external-node}:${ABSTRACT_MAINNET_EXTERNAL_NODE_VERSION:-v29.17.0}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
abstract-mainnet: abstract-mainnet:
image: ${ABSTRACT_EXTERNAL_NODE_IMAGE:-matterlabs/external-node}:${ABSTRACT_MAINNET_EXTERNAL_NODE_VERSION:-v29.7.0} image: ${ABSTRACT_EXTERNAL_NODE_IMAGE:-matterlabs/external-node}:${ABSTRACT_MAINNET_EXTERNAL_NODE_VERSION:-v29.17.0}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
abstract-testnet-archive: abstract-testnet-archive:
image: ${ABSTRACT_EXTERNAL_NODE_IMAGE:-matterlabs/external-node}:${ABSTRACT_TESTNET_EXTERNAL_NODE_VERSION:-v29.7.0} image: ${ABSTRACT_EXTERNAL_NODE_IMAGE:-matterlabs/external-node}:${ABSTRACT_TESTNET_EXTERNAL_NODE_VERSION:-v29.17.0}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
abstract-testnet: abstract-testnet:
image: ${ABSTRACT_EXTERNAL_NODE_IMAGE:-matterlabs/external-node}:${ABSTRACT_TESTNET_EXTERNAL_NODE_VERSION:-v29.7.0} image: ${ABSTRACT_EXTERNAL_NODE_IMAGE:-matterlabs/external-node}:${ABSTRACT_TESTNET_EXTERNAL_NODE_VERSION:-v29.17.0}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
alephzero-mainnet-archive: alephzero-mainnet-archive:
image: ${ALEPHZERO_NITRO_IMAGE:-offchainlabs/nitro-node}:${ALEPHZERO_MAINNET_NITRO_VERSION:-v3.9.5-66e42c4} image: ${ALEPHZERO_NITRO_IMAGE:-offchainlabs/nitro-node}:${ALEPHZERO_MAINNET_NITRO_VERSION:-v3.10.1-d7f07be}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -67,12 +67,9 @@ services:
- --metrics-server.addr=0.0.0.0 - --metrics-server.addr=0.0.0.0
- --metrics-server.port=6070 - --metrics-server.port=6070
- --node.batch-poster.enable=false - --node.batch-poster.enable=false
- --node.da-provider.enable=false
- --node.data-availability.enable=true - --node.data-availability.enable=true
- --node.data-availability.parent-chain-node-url=${ETHEREUM_MAINNET_EXECUTION_RPC}
- --node.data-availability.rest-aggregator.enable=true - --node.data-availability.rest-aggregator.enable=true
- --node.data-availability.rest-aggregator.urls=https://das.alephzero.raas.gelato.cloud - --node.data-availability.rest-aggregator.urls=https://das.alephzero.raas.gelato.cloud
- --node.data-availability.sequencer-inbox-address=0x1411949971076304187394088912578077660717096867958
- --node.feed.input.url=wss://feed.alephzero.raas.gelato.cloud - --node.feed.input.url=wss://feed.alephzero.raas.gelato.cloud
- --node.sequencer=false - --node.sequencer=false
- --node.staker.enable=false - --node.staker.enable=false

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
alephzero-mainnet: alephzero-mainnet:
image: ${ALEPHZERO_NITRO_IMAGE:-offchainlabs/nitro-node}:${ALEPHZERO_MAINNET_NITRO_VERSION:-v3.9.5-66e42c4} image: ${ALEPHZERO_NITRO_IMAGE:-offchainlabs/nitro-node}:${ALEPHZERO_MAINNET_NITRO_VERSION:-v3.10.1-d7f07be}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -67,12 +67,9 @@ services:
- --metrics-server.addr=0.0.0.0 - --metrics-server.addr=0.0.0.0
- --metrics-server.port=6070 - --metrics-server.port=6070
- --node.batch-poster.enable=false - --node.batch-poster.enable=false
- --node.da-provider.enable=false
- --node.data-availability.enable=true - --node.data-availability.enable=true
- --node.data-availability.parent-chain-node-url=${ETHEREUM_MAINNET_EXECUTION_RPC}
- --node.data-availability.rest-aggregator.enable=true - --node.data-availability.rest-aggregator.enable=true
- --node.data-availability.rest-aggregator.urls=https://das.alephzero.raas.gelato.cloud - --node.data-availability.rest-aggregator.urls=https://das.alephzero.raas.gelato.cloud
- --node.data-availability.sequencer-inbox-address=0x1411949971076304187394088912578077660717096867958
- --node.feed.input.url=wss://feed.alephzero.raas.gelato.cloud - --node.feed.input.url=wss://feed.alephzero.raas.gelato.cloud
- --node.sequencer=false - --node.sequencer=false
- --node.staker.enable=false - --node.staker.enable=false

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
alephzero-sepolia-archive: alephzero-sepolia-archive:
image: ${ALEPHZERO_NITRO_IMAGE:-offchainlabs/nitro-node}:${ALEPHZERO_SEPOLIA_NITRO_VERSION:-v3.9.5-66e42c4} image: ${ALEPHZERO_NITRO_IMAGE:-offchainlabs/nitro-node}:${ALEPHZERO_SEPOLIA_NITRO_VERSION:-v3.10.1-d7f07be}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -67,12 +67,9 @@ services:
- --metrics-server.addr=0.0.0.0 - --metrics-server.addr=0.0.0.0
- --metrics-server.port=6070 - --metrics-server.port=6070
- --node.batch-poster.enable=false - --node.batch-poster.enable=false
- --node.da-provider.enable=false
- --node.data-availability.enable=true - --node.data-availability.enable=true
- --node.data-availability.parent-chain-node-url=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
- --node.data-availability.rest-aggregator.enable=true - --node.data-availability.rest-aggregator.enable=true
- --node.data-availability.rest-aggregator.urls=https://das.alephzero-testnet.gelato.digital - --node.data-availability.rest-aggregator.urls=https://das.alephzero-testnet.gelato.digital
- --node.data-availability.sequencer-inbox-address=0x130937498521962644184395825246273622310592356541
- --node.feed.input.url=wss://feed.alephzero-testnet.gelato.digital - --node.feed.input.url=wss://feed.alephzero-testnet.gelato.digital
- --node.sequencer=false - --node.sequencer=false
- --node.staker.enable=false - --node.staker.enable=false

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
alephzero-sepolia: alephzero-sepolia:
image: ${ALEPHZERO_NITRO_IMAGE:-offchainlabs/nitro-node}:${ALEPHZERO_SEPOLIA_NITRO_VERSION:-v3.9.5-66e42c4} image: ${ALEPHZERO_NITRO_IMAGE:-offchainlabs/nitro-node}:${ALEPHZERO_SEPOLIA_NITRO_VERSION:-v3.10.1-d7f07be}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -67,12 +67,9 @@ services:
- --metrics-server.addr=0.0.0.0 - --metrics-server.addr=0.0.0.0
- --metrics-server.port=6070 - --metrics-server.port=6070
- --node.batch-poster.enable=false - --node.batch-poster.enable=false
- --node.da-provider.enable=false
- --node.data-availability.enable=true - --node.data-availability.enable=true
- --node.data-availability.parent-chain-node-url=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
- --node.data-availability.rest-aggregator.enable=true - --node.data-availability.rest-aggregator.enable=true
- --node.data-availability.rest-aggregator.urls=https://das.alephzero-testnet.gelato.digital - --node.data-availability.rest-aggregator.urls=https://das.alephzero-testnet.gelato.digital
- --node.data-availability.sequencer-inbox-address=0x130937498521962644184395825246273622310592356541
- --node.feed.input.url=wss://feed.alephzero-testnet.gelato.digital - --node.feed.input.url=wss://feed.alephzero-testnet.gelato.digital
- --node.sequencer=false - --node.sequencer=false
- --node.staker.enable=false - --node.staker.enable=false

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
arbitrum-nova-archive: arbitrum-nova-archive:
image: ${ARBITRUM_NITRO_IMAGE:-offchainlabs/nitro-node}:${ARBITRUM_NOVA_NITRO_VERSION:-v3.9.5-66e42c4} image: ${ARBITRUM_NITRO_IMAGE:-offchainlabs/nitro-node}:${ARBITRUM_NOVA_NITRO_VERSION:-v3.10.1-d7f07be}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle

View File

@@ -0,0 +1,142 @@
---
x-logging-defaults: &logging-defaults
driver: json-file
options:
max-size: "10m"
max-file: "3"
# 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:arb/nitro/arbitrum-nova-nitro-archive-pebble-path.yml
#
# docker compose up -d
#
# curl -X POST https://${IP}.traefik.me/arbitrum-nova-archive \
# -H "Content-Type: application/json" \
# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
services:
arbitrum-nova-archive:
image: ${ARBITRUM_NITRO_IMAGE:-offchainlabs/nitro-node}:${ARBITRUM_NOVA_NITRO_VERSION:-v3.10.1-d7f07be}
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
expose:
- 8545
command:
- --chain.id=42170
- --execution.caching.archive=true
- --execution.caching.database-cache=${ARBITRUM_NOVA_NITRO_ARCHIVE_PEBBLE_PATH_DATABASE_CACHE:-2048}
- --execution.caching.snapshot-cache=${ARBITRUM_NOVA_NITRO_ARCHIVE_PEBBLE_PATH_SNAPSHOT_CACHE:-400}
- --execution.caching.state-scheme=path
- --execution.caching.trie-clean-cache=${ARBITRUM_NOVA_NITRO_ARCHIVE_PEBBLE_PATH_TRIE_CLEAN_CACHE:-600}
- --execution.caching.trie-dirty-cache=${ARBITRUM_NOVA_NITRO_ARCHIVE_PEBBLE_PATH_TRIE_DIRTY_CACHE:-1024}
- --execution.rpc.gas-cap=5500000000
- --execution.sequencer.enable=false
- --http.addr=0.0.0.0
- --http.api=eth,net,web3,arb,txpool,debug
- --http.corsdomain=*
- --http.port=8545
- --http.vhosts=*
- --metrics
- --metrics-server.addr=0.0.0.0
- --metrics-server.port=6070
- --node.batch-poster.enable=false
- --node.sequencer=false
- --node.staker.enable=false
- --parent-chain.blob-client.beacon-url=${ETHEREUM_MAINNET_BEACON_REST}
- --parent-chain.connection.url=${ETHEREUM_MAINNET_EXECUTION_RPC}
- --persistent.chain=/root/.arbitrum/arbitrum-nova-archive
- --persistent.db-engine=pebble
- --ws.addr=0.0.0.0
- --ws.origins=*
- --ws.port=8545
restart: unless-stopped
stop_grace_period: 5m
networks:
- chains
volumes:
- ${ARBITRUM_NOVA_NITRO_ARCHIVE_PEBBLE_PATH_DATA:-arbitrum-nova-nitro-archive-pebble-path}:/root/.arbitrum
- ./tmp/arbitrum-nova-archive:/tmp
- /slowdisk:/slowdisk
logging: *logging-defaults
labels:
- prometheus-scrape.enabled=true
- prometheus-scrape.port=6070
- prometheus-scrape.path=/debug/metrics/prometheus
- traefik.enable=true
- traefik.http.middlewares.arbitrum-nova-nitro-archive-pebble-path-stripprefix.stripprefix.prefixes=/arbitrum-nova-archive
- traefik.http.services.arbitrum-nova-nitro-archive-pebble-path.loadbalancer.server.port=8545
- ${NO_SSL:-traefik.http.routers.arbitrum-nova-nitro-archive-pebble-path.entrypoints=websecure}
- ${NO_SSL:-traefik.http.routers.arbitrum-nova-nitro-archive-pebble-path.tls.certresolver=myresolver}
- ${NO_SSL:-traefik.http.routers.arbitrum-nova-nitro-archive-pebble-path.rule=Host(`$DOMAIN`) && (Path(`/arbitrum-nova-archive`) || Path(`/arbitrum-nova-archive/`))}
- ${NO_SSL:+traefik.http.routers.arbitrum-nova-nitro-archive-pebble-path.rule=Path(`/arbitrum-nova-archive`) || Path(`/arbitrum-nova-archive/`)}
- traefik.http.routers.arbitrum-nova-nitro-archive-pebble-path.middlewares=arbitrum-nova-nitro-archive-pebble-path-stripprefix, ipallowlist
volumes:
arbitrum-nova-nitro-archive-pebble-path:
x-upstreams:
- id: $${ID}
labels:
provider: $${PROVIDER}
connection:
generic:
rpc:
url: $${RPC_URL}
ws:
frameSize: 20Mb
msgSize: 50Mb
url: $${WS_URL}
chain: arbitrum-nova
method-groups:
enabled:
- debug
- 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
- 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
...

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
arbitrum-nova: arbitrum-nova:
image: ${ARBITRUM_NITRO_IMAGE:-offchainlabs/nitro-node}:${ARBITRUM_NOVA_NITRO_VERSION:-v3.9.5-66e42c4} image: ${ARBITRUM_NITRO_IMAGE:-offchainlabs/nitro-node}:${ARBITRUM_NOVA_NITRO_VERSION:-v3.10.1-d7f07be}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
arbitrum-one-archive: arbitrum-one-archive:
image: ${ARBITRUM_NITRO_IMAGE:-offchainlabs/nitro-node}:${ARBITRUM_ONE_NITRO_VERSION:-v3.9.5-66e42c4} image: ${ARBITRUM_NITRO_IMAGE:-offchainlabs/nitro-node}:${ARBITRUM_ONE_NITRO_VERSION:-v3.10.1-d7f07be}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
arbitrum-one-archive: arbitrum-one-archive:
image: ${ARBITRUM_NITRO_IMAGE:-offchainlabs/nitro-node}:${ARBITRUM_ONE_NITRO_VERSION:-v3.9.5-66e42c4} image: ${ARBITRUM_NITRO_IMAGE:-offchainlabs/nitro-node}:${ARBITRUM_ONE_NITRO_VERSION:-v3.10.1-d7f07be}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle

View File

@@ -0,0 +1,142 @@
---
x-logging-defaults: &logging-defaults
driver: json-file
options:
max-size: "10m"
max-file: "3"
# 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:arb/nitro/arbitrum-one-nitro-archive-pebble-path.yml
#
# docker compose up -d
#
# curl -X POST https://${IP}.traefik.me/arbitrum-one-archive \
# -H "Content-Type: application/json" \
# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
services:
arbitrum-one-archive:
image: ${ARBITRUM_NITRO_IMAGE:-offchainlabs/nitro-node}:${ARBITRUM_ONE_NITRO_VERSION:-v3.10.1-d7f07be}
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
expose:
- 8545
command:
- --chain.id=42161
- --execution.caching.archive=true
- --execution.caching.database-cache=${ARBITRUM_ONE_NITRO_ARCHIVE_PEBBLE_PATH_DATABASE_CACHE:-2048}
- --execution.caching.snapshot-cache=${ARBITRUM_ONE_NITRO_ARCHIVE_PEBBLE_PATH_SNAPSHOT_CACHE:-400}
- --execution.caching.state-scheme=path
- --execution.caching.trie-clean-cache=${ARBITRUM_ONE_NITRO_ARCHIVE_PEBBLE_PATH_TRIE_CLEAN_CACHE:-600}
- --execution.caching.trie-dirty-cache=${ARBITRUM_ONE_NITRO_ARCHIVE_PEBBLE_PATH_TRIE_DIRTY_CACHE:-1024}
- --execution.rpc.gas-cap=5500000000
- --execution.sequencer.enable=false
- --http.addr=0.0.0.0
- --http.api=eth,net,web3,arb,txpool,debug
- --http.corsdomain=*
- --http.port=8545
- --http.vhosts=*
- --metrics
- --metrics-server.addr=0.0.0.0
- --metrics-server.port=6070
- --node.batch-poster.enable=false
- --node.sequencer=false
- --node.staker.enable=false
- --parent-chain.blob-client.beacon-url=${ETHEREUM_MAINNET_BEACON_REST}
- --parent-chain.connection.url=${ETHEREUM_MAINNET_EXECUTION_RPC}
- --persistent.chain=/root/.arbitrum/arbitrum-one-archive
- --persistent.db-engine=pebble
- --ws.addr=0.0.0.0
- --ws.origins=*
- --ws.port=8545
restart: unless-stopped
stop_grace_period: 5m
networks:
- chains
volumes:
- ${ARBITRUM_ONE_NITRO_ARCHIVE_PEBBLE_PATH_DATA:-arbitrum-one-nitro-archive-pebble-path}:/root/.arbitrum
- ./tmp/arbitrum-one-archive:/tmp
- /slowdisk:/slowdisk
logging: *logging-defaults
labels:
- prometheus-scrape.enabled=true
- prometheus-scrape.port=6070
- prometheus-scrape.path=/debug/metrics/prometheus
- traefik.enable=true
- traefik.http.middlewares.arbitrum-one-nitro-archive-pebble-path-stripprefix.stripprefix.prefixes=/arbitrum-one-archive
- traefik.http.services.arbitrum-one-nitro-archive-pebble-path.loadbalancer.server.port=8545
- ${NO_SSL:-traefik.http.routers.arbitrum-one-nitro-archive-pebble-path.entrypoints=websecure}
- ${NO_SSL:-traefik.http.routers.arbitrum-one-nitro-archive-pebble-path.tls.certresolver=myresolver}
- ${NO_SSL:-traefik.http.routers.arbitrum-one-nitro-archive-pebble-path.rule=Host(`$DOMAIN`) && (Path(`/arbitrum-one-archive`) || Path(`/arbitrum-one-archive/`))}
- ${NO_SSL:+traefik.http.routers.arbitrum-one-nitro-archive-pebble-path.rule=Path(`/arbitrum-one-archive`) || Path(`/arbitrum-one-archive/`)}
- traefik.http.routers.arbitrum-one-nitro-archive-pebble-path.middlewares=arbitrum-one-nitro-archive-pebble-path-stripprefix, ipallowlist
volumes:
arbitrum-one-nitro-archive-pebble-path:
x-upstreams:
- id: $${ID}
labels:
provider: $${PROVIDER}
connection:
generic:
rpc:
url: $${RPC_URL}
ws:
frameSize: 20Mb
msgSize: 50Mb
url: $${WS_URL}
chain: arbitrum
method-groups:
enabled:
- debug
- 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
- 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
...

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
arbitrum-one: arbitrum-one:
image: ${ARBITRUM_NITRO_IMAGE:-offchainlabs/nitro-node}:${ARBITRUM_ONE_NITRO_VERSION:-v3.9.5-66e42c4} image: ${ARBITRUM_NITRO_IMAGE:-offchainlabs/nitro-node}:${ARBITRUM_ONE_NITRO_VERSION:-v3.10.1-d7f07be}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
arbitrum-sepolia-archive: arbitrum-sepolia-archive:
image: ${ARBITRUM_NITRO_IMAGE:-offchainlabs/nitro-node}:${ARBITRUM_SEPOLIA_NITRO_VERSION:-v3.9.5-66e42c4} image: ${ARBITRUM_NITRO_IMAGE:-offchainlabs/nitro-node}:${ARBITRUM_SEPOLIA_NITRO_VERSION:-v3.10.1-d7f07be}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
arbitrum-sepolia: arbitrum-sepolia:
image: ${ARBITRUM_NITRO_IMAGE:-offchainlabs/nitro-node}:${ARBITRUM_SEPOLIA_NITRO_VERSION:-v3.9.5-66e42c4} image: ${ARBITRUM_NITRO_IMAGE:-offchainlabs/nitro-node}:${ARBITRUM_SEPOLIA_NITRO_VERSION:-v3.10.1-d7f07be}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
connext-sepolia-archive: connext-sepolia-archive:
image: ${CONNEXT_NITRO_IMAGE:-offchainlabs/nitro-node}:${CONNEXT_SEPOLIA_NITRO_VERSION:-v3.9.5-66e42c4} image: ${CONNEXT_NITRO_IMAGE:-offchainlabs/nitro-node}:${CONNEXT_SEPOLIA_NITRO_VERSION:-v3.10.1-d7f07be}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -67,12 +67,9 @@ services:
- --metrics-server.addr=0.0.0.0 - --metrics-server.addr=0.0.0.0
- --metrics-server.port=6070 - --metrics-server.port=6070
- --node.batch-poster.enable=false - --node.batch-poster.enable=false
- --node.da-provider.enable=false
- --node.data-availability.enable=true - --node.data-availability.enable=true
- --node.data-availability.parent-chain-node-url=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
- --node.data-availability.rest-aggregator.enable=true - --node.data-availability.rest-aggregator.enable=true
- --node.data-availability.rest-aggregator.urls=https://das.connext-sepolia.gelato.digital - --node.data-availability.rest-aggregator.urls=https://das.connext-sepolia.gelato.digital
- --node.data-availability.sequencer-inbox-address=0x727095791318912381473707332248435763608420056676
- --node.feed.input.url=wss://feed.connext-sepolia.gelato.digital - --node.feed.input.url=wss://feed.connext-sepolia.gelato.digital
- --node.sequencer=false - --node.sequencer=false
- --node.staker.enable=false - --node.staker.enable=false

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
connext-sepolia: connext-sepolia:
image: ${CONNEXT_NITRO_IMAGE:-offchainlabs/nitro-node}:${CONNEXT_SEPOLIA_NITRO_VERSION:-v3.9.5-66e42c4} image: ${CONNEXT_NITRO_IMAGE:-offchainlabs/nitro-node}:${CONNEXT_SEPOLIA_NITRO_VERSION:-v3.10.1-d7f07be}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -67,12 +67,9 @@ services:
- --metrics-server.addr=0.0.0.0 - --metrics-server.addr=0.0.0.0
- --metrics-server.port=6070 - --metrics-server.port=6070
- --node.batch-poster.enable=false - --node.batch-poster.enable=false
- --node.da-provider.enable=false
- --node.data-availability.enable=true - --node.data-availability.enable=true
- --node.data-availability.parent-chain-node-url=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
- --node.data-availability.rest-aggregator.enable=true - --node.data-availability.rest-aggregator.enable=true
- --node.data-availability.rest-aggregator.urls=https://das.connext-sepolia.gelato.digital - --node.data-availability.rest-aggregator.urls=https://das.connext-sepolia.gelato.digital
- --node.data-availability.sequencer-inbox-address=0x727095791318912381473707332248435763608420056676
- --node.feed.input.url=wss://feed.connext-sepolia.gelato.digital - --node.feed.input.url=wss://feed.connext-sepolia.gelato.digital
- --node.sequencer=false - --node.sequencer=false
- --node.staker.enable=false - --node.staker.enable=false

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
everclear-mainnet-archive: everclear-mainnet-archive:
image: ${EVERCLEAR_NITRO_IMAGE:-offchainlabs/nitro-node}:${EVERCLEAR_MAINNET_NITRO_VERSION:-v3.9.5-66e42c4} image: ${EVERCLEAR_NITRO_IMAGE:-offchainlabs/nitro-node}:${EVERCLEAR_MAINNET_NITRO_VERSION:-v3.10.1-d7f07be}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -67,12 +67,9 @@ services:
- --metrics-server.addr=0.0.0.0 - --metrics-server.addr=0.0.0.0
- --metrics-server.port=6070 - --metrics-server.port=6070
- --node.batch-poster.enable=false - --node.batch-poster.enable=false
- --node.da-provider.enable=false
- --node.data-availability.enable=true - --node.data-availability.enable=true
- --node.data-availability.parent-chain-node-url=${ETHEREUM_MAINNET_EXECUTION_RPC}
- --node.data-availability.rest-aggregator.enable=true - --node.data-availability.rest-aggregator.enable=true
- --node.data-availability.rest-aggregator.urls=https://das.everclear.raas.gelato.cloud - --node.data-availability.rest-aggregator.urls=https://das.everclear.raas.gelato.cloud
- --node.data-availability.sequencer-inbox-address=0x727095791318912381473707332248435763608420056676
- --node.feed.input.url=wss://feed.everclear.raas.gelato.cloud - --node.feed.input.url=wss://feed.everclear.raas.gelato.cloud
- --node.sequencer=false - --node.sequencer=false
- --node.staker.enable=false - --node.staker.enable=false

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
everclear-mainnet: everclear-mainnet:
image: ${EVERCLEAR_NITRO_IMAGE:-offchainlabs/nitro-node}:${EVERCLEAR_MAINNET_NITRO_VERSION:-v3.9.5-66e42c4} image: ${EVERCLEAR_NITRO_IMAGE:-offchainlabs/nitro-node}:${EVERCLEAR_MAINNET_NITRO_VERSION:-v3.10.1-d7f07be}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -67,12 +67,9 @@ services:
- --metrics-server.addr=0.0.0.0 - --metrics-server.addr=0.0.0.0
- --metrics-server.port=6070 - --metrics-server.port=6070
- --node.batch-poster.enable=false - --node.batch-poster.enable=false
- --node.da-provider.enable=false
- --node.data-availability.enable=true - --node.data-availability.enable=true
- --node.data-availability.parent-chain-node-url=${ETHEREUM_MAINNET_EXECUTION_RPC}
- --node.data-availability.rest-aggregator.enable=true - --node.data-availability.rest-aggregator.enable=true
- --node.data-availability.rest-aggregator.urls=https://das.everclear.raas.gelato.cloud - --node.data-availability.rest-aggregator.urls=https://das.everclear.raas.gelato.cloud
- --node.data-availability.sequencer-inbox-address=0x727095791318912381473707332248435763608420056676
- --node.feed.input.url=wss://feed.everclear.raas.gelato.cloud - --node.feed.input.url=wss://feed.everclear.raas.gelato.cloud
- --node.sequencer=false - --node.sequencer=false
- --node.staker.enable=false - --node.staker.enable=false

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
opencampuscodex-sepolia-archive: opencampuscodex-sepolia-archive:
image: ${OPENCAMPUSCODEX_NITRO_IMAGE:-offchainlabs/nitro-node}:${OPENCAMPUSCODEX_SEPOLIA_NITRO_VERSION:-v3.9.5-66e42c4} image: ${OPENCAMPUSCODEX_NITRO_IMAGE:-offchainlabs/nitro-node}:${OPENCAMPUSCODEX_SEPOLIA_NITRO_VERSION:-v3.10.1-d7f07be}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -67,12 +67,9 @@ services:
- --metrics-server.addr=0.0.0.0 - --metrics-server.addr=0.0.0.0
- --metrics-server.port=6070 - --metrics-server.port=6070
- --node.batch-poster.enable=false - --node.batch-poster.enable=false
- --node.da-provider.enable=false
- --node.data-availability.enable=true - --node.data-availability.enable=true
- --node.data-availability.parent-chain-node-url=${ARBITRUM_SEPOLIA_EXECUTION_RPC}
- --node.data-availability.rest-aggregator.enable=true - --node.data-availability.rest-aggregator.enable=true
- --node.data-availability.rest-aggregator.urls=https://das.open-campus-codex.gelato.digital - --node.data-availability.rest-aggregator.urls=https://das.open-campus-codex.gelato.digital
- --node.data-availability.sequencer-inbox-address=0xe347C1223381b9Dcd6c0F61cf81c90175A7Bae77
- --node.feed.input.url=wss://feed.open-campus-codex.gelato.digital - --node.feed.input.url=wss://feed.open-campus-codex.gelato.digital
- --node.sequencer=false - --node.sequencer=false
- --node.staker.enable=false - --node.staker.enable=false

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
opencampuscodex-sepolia: opencampuscodex-sepolia:
image: ${OPENCAMPUSCODEX_NITRO_IMAGE:-offchainlabs/nitro-node}:${OPENCAMPUSCODEX_SEPOLIA_NITRO_VERSION:-v3.9.5-66e42c4} image: ${OPENCAMPUSCODEX_NITRO_IMAGE:-offchainlabs/nitro-node}:${OPENCAMPUSCODEX_SEPOLIA_NITRO_VERSION:-v3.10.1-d7f07be}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -67,12 +67,9 @@ services:
- --metrics-server.addr=0.0.0.0 - --metrics-server.addr=0.0.0.0
- --metrics-server.port=6070 - --metrics-server.port=6070
- --node.batch-poster.enable=false - --node.batch-poster.enable=false
- --node.da-provider.enable=false
- --node.data-availability.enable=true - --node.data-availability.enable=true
- --node.data-availability.parent-chain-node-url=${ARBITRUM_SEPOLIA_EXECUTION_RPC}
- --node.data-availability.rest-aggregator.enable=true - --node.data-availability.rest-aggregator.enable=true
- --node.data-availability.rest-aggregator.urls=https://das.open-campus-codex.gelato.digital - --node.data-availability.rest-aggregator.urls=https://das.open-campus-codex.gelato.digital
- --node.data-availability.sequencer-inbox-address=0xe347C1223381b9Dcd6c0F61cf81c90175A7Bae77
- --node.feed.input.url=wss://feed.open-campus-codex.gelato.digital - --node.feed.input.url=wss://feed.open-campus-codex.gelato.digital
- --node.sequencer=false - --node.sequencer=false
- --node.staker.enable=false - --node.staker.enable=false

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
playblock-mainnet-archive: playblock-mainnet-archive:
image: ${PLAYBLOCK_NITRO_IMAGE:-offchainlabs/nitro-node}:${PLAYBLOCK_MAINNET_NITRO_VERSION:-v3.9.5-66e42c4} image: ${PLAYBLOCK_NITRO_IMAGE:-offchainlabs/nitro-node}:${PLAYBLOCK_MAINNET_NITRO_VERSION:-v3.10.1-d7f07be}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -67,12 +67,9 @@ services:
- --metrics-server.addr=0.0.0.0 - --metrics-server.addr=0.0.0.0
- --metrics-server.port=6070 - --metrics-server.port=6070
- --node.batch-poster.enable=false - --node.batch-poster.enable=false
- --node.da-provider.enable=false
- --node.data-availability.enable=true - --node.data-availability.enable=true
- --node.data-availability.parent-chain-node-url=${ARBITRUM_NOVA_EXECUTION_RPC}
- --node.data-availability.rest-aggregator.enable=true - --node.data-availability.rest-aggregator.enable=true
- --node.data-availability.rest-aggregator.urls=https://das.playblock.io - --node.data-availability.rest-aggregator.urls=https://das.playblock.io
- --node.data-availability.sequencer-inbox-address=0x1297541082195356755105700451499873350464260779639
- --node.feed.input.url=wss://feed.playblock.io - --node.feed.input.url=wss://feed.playblock.io
- --node.sequencer=false - --node.sequencer=false
- --node.staker.enable=false - --node.staker.enable=false

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
playblock-mainnet: playblock-mainnet:
image: ${PLAYBLOCK_NITRO_IMAGE:-offchainlabs/nitro-node}:${PLAYBLOCK_MAINNET_NITRO_VERSION:-v3.9.5-66e42c4} image: ${PLAYBLOCK_NITRO_IMAGE:-offchainlabs/nitro-node}:${PLAYBLOCK_MAINNET_NITRO_VERSION:-v3.10.1-d7f07be}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -67,12 +67,9 @@ services:
- --metrics-server.addr=0.0.0.0 - --metrics-server.addr=0.0.0.0
- --metrics-server.port=6070 - --metrics-server.port=6070
- --node.batch-poster.enable=false - --node.batch-poster.enable=false
- --node.da-provider.enable=false
- --node.data-availability.enable=true - --node.data-availability.enable=true
- --node.data-availability.parent-chain-node-url=${ARBITRUM_NOVA_EXECUTION_RPC}
- --node.data-availability.rest-aggregator.enable=true - --node.data-availability.rest-aggregator.enable=true
- --node.data-availability.rest-aggregator.urls=https://das.playblock.io - --node.data-availability.rest-aggregator.urls=https://das.playblock.io
- --node.data-availability.sequencer-inbox-address=0x1297541082195356755105700451499873350464260779639
- --node.feed.input.url=wss://feed.playblock.io - --node.feed.input.url=wss://feed.playblock.io
- --node.sequencer=false - --node.sequencer=false
- --node.staker.enable=false - --node.staker.enable=false

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
plume-mainnet-archive: plume-mainnet-archive:
image: ${PLUME_NITRO_IMAGE:-offchainlabs/nitro-node}:${PLUME_MAINNET_NITRO_VERSION:-v3.9.5-66e42c4} image: ${PLUME_NITRO_IMAGE:-offchainlabs/nitro-node}:${PLUME_MAINNET_NITRO_VERSION:-v3.10.1-d7f07be}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -67,12 +67,9 @@ services:
- --metrics-server.addr=0.0.0.0 - --metrics-server.addr=0.0.0.0
- --metrics-server.port=6070 - --metrics-server.port=6070
- --node.batch-poster.enable=false - --node.batch-poster.enable=false
- --node.da-provider.enable=false
- --node.data-availability.enable=true - --node.data-availability.enable=true
- --node.data-availability.parent-chain-node-url=${ETHEREUM_MAINNET_EXECUTION_RPC}
- --node.data-availability.rest-aggregator.enable=true - --node.data-availability.rest-aggregator.enable=true
- --node.data-availability.rest-aggregator.urls=https://das-plume-mainnet-1.t.conduit.xyz - --node.data-availability.rest-aggregator.urls=https://das-plume-mainnet-1.t.conduit.xyz
- --node.data-availability.sequencer-inbox-address=0x85eC1b9138a8b9659A51e2b51bb0861901040b59
- --node.feed.input.url=wss://relay-plume-mainnet-1.t.conduit.xyz - --node.feed.input.url=wss://relay-plume-mainnet-1.t.conduit.xyz
- --node.sequencer=false - --node.sequencer=false
- --node.staker.enable=false - --node.staker.enable=false

View File

@@ -0,0 +1,145 @@
---
x-logging-defaults: &logging-defaults
driver: json-file
options:
max-size: "10m"
max-file: "3"
# 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:arb/nitro/plume-mainnet-nitro-archive-pebble-hash.yml
#
# docker compose up -d
#
# curl -X POST https://${IP}.traefik.me/plume-mainnet-archive \
# -H "Content-Type: application/json" \
# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
services:
plume-mainnet-archive:
image: ${PLUME_NITRO_IMAGE:-offchainlabs/nitro-node}:${PLUME_MAINNET_NITRO_VERSION:-v3.10.1-d7f07be}
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
expose:
- 8545
command:
- --conf.file=/config/baseConfig.json
- --execution.caching.archive=true
- --execution.caching.database-cache=${PLUME_MAINNET_NITRO_ARCHIVE_PEBBLE_HASH_DATABASE_CACHE:-2048}
- --execution.caching.snapshot-cache=${PLUME_MAINNET_NITRO_ARCHIVE_PEBBLE_HASH_SNAPSHOT_CACHE:-400}
- --execution.caching.trie-clean-cache=${PLUME_MAINNET_NITRO_ARCHIVE_PEBBLE_HASH_TRIE_CLEAN_CACHE:-600}
- --execution.caching.trie-dirty-cache=${PLUME_MAINNET_NITRO_ARCHIVE_PEBBLE_HASH_TRIE_DIRTY_CACHE:-1024}
- --execution.forwarding-target=https://rpc.plume.org
- --execution.rpc.gas-cap=5500000000
- --execution.rpc.log-history=0
- --execution.sequencer.enable=false
- --http.addr=0.0.0.0
- --http.api=eth,net,web3,arb,txpool,debug
- --http.corsdomain=*
- --http.port=8545
- --http.vhosts=*
- --metrics
- --metrics-server.addr=0.0.0.0
- --metrics-server.port=6070
- --node.batch-poster.enable=false
- --node.data-availability.enable=true
- --node.data-availability.rest-aggregator.enable=true
- --node.data-availability.rest-aggregator.urls=https://das-plume-mainnet-1.t.conduit.xyz
- --node.feed.input.url=wss://relay-plume-mainnet-1.t.conduit.xyz
- --node.sequencer=false
- --node.staker.enable=false
- --parent-chain.blob-client.beacon-url=${ETHEREUM_MAINNET_BEACON_REST}
- --parent-chain.connection.url=${ETHEREUM_MAINNET_EXECUTION_RPC}
- --persistent.chain=/root/.arbitrum/plume-mainnet-archive
- --persistent.db-engine=pebble
- --ws.addr=0.0.0.0
- --ws.origins=*
- --ws.port=8545
restart: unless-stopped
stop_grace_period: 5m
networks:
- chains
volumes:
- ${PLUME_MAINNET_NITRO_ARCHIVE_PEBBLE_HASH_DATA:-plume-mainnet-nitro-archive-pebble-hash}:/root/.arbitrum
- ./arb/plume/mainnet:/config
- /slowdisk:/slowdisk
logging: *logging-defaults
labels:
- prometheus-scrape.enabled=true
- prometheus-scrape.port=6070
- prometheus-scrape.path=/debug/metrics/prometheus
- traefik.enable=true
- traefik.http.middlewares.plume-mainnet-nitro-archive-pebble-hash-stripprefix.stripprefix.prefixes=/plume-mainnet-archive
- traefik.http.services.plume-mainnet-nitro-archive-pebble-hash.loadbalancer.server.port=8545
- ${NO_SSL:-traefik.http.routers.plume-mainnet-nitro-archive-pebble-hash.entrypoints=websecure}
- ${NO_SSL:-traefik.http.routers.plume-mainnet-nitro-archive-pebble-hash.tls.certresolver=myresolver}
- ${NO_SSL:-traefik.http.routers.plume-mainnet-nitro-archive-pebble-hash.rule=Host(`$DOMAIN`) && (Path(`/plume-mainnet-archive`) || Path(`/plume-mainnet-archive/`))}
- ${NO_SSL:+traefik.http.routers.plume-mainnet-nitro-archive-pebble-hash.rule=Path(`/plume-mainnet-archive`) || Path(`/plume-mainnet-archive/`)}
- traefik.http.routers.plume-mainnet-nitro-archive-pebble-hash.middlewares=plume-mainnet-nitro-archive-pebble-hash-stripprefix, ipallowlist
volumes:
plume-mainnet-nitro-archive-pebble-hash:
x-upstreams:
- id: $${ID}
labels:
provider: $${PROVIDER}
connection:
generic:
rpc:
url: $${RPC_URL}
ws:
frameSize: 20Mb
msgSize: 50Mb
url: $${WS_URL}
chain: plume
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
...

View File

@@ -0,0 +1,144 @@
---
x-logging-defaults: &logging-defaults
driver: json-file
options:
max-size: "10m"
max-file: "3"
# 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:arb/nitro/plume-mainnet-nitro-pruned-leveldb-hash.yml
#
# docker compose up -d
#
# curl -X POST https://${IP}.traefik.me/plume-mainnet \
# -H "Content-Type: application/json" \
# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
services:
plume-mainnet:
image: ${PLUME_NITRO_IMAGE:-offchainlabs/nitro-node}:${PLUME_MAINNET_NITRO_VERSION:-v3.10.1-d7f07be}
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
expose:
- 8545
command:
- --conf.file=/config/baseConfig.json
- --execution.caching.archive=${PLUME_MAINNET_ARCHIVE_DB:-false}
- --execution.caching.database-cache=${PLUME_MAINNET_NITRO_PRUNED_LEVELDB_HASH_DATABASE_CACHE:-2048}
- --execution.caching.snapshot-cache=${PLUME_MAINNET_NITRO_PRUNED_LEVELDB_HASH_SNAPSHOT_CACHE:-400}
- --execution.caching.trie-clean-cache=${PLUME_MAINNET_NITRO_PRUNED_LEVELDB_HASH_TRIE_CLEAN_CACHE:-600}
- --execution.caching.trie-dirty-cache=${PLUME_MAINNET_NITRO_PRUNED_LEVELDB_HASH_TRIE_DIRTY_CACHE:-1024}
- --execution.forwarding-target=https://rpc.plume.org
- --execution.rpc.gas-cap=5500000000
- --execution.rpc.log-history=0
- --execution.sequencer.enable=false
- --http.addr=0.0.0.0
- --http.api=eth,net,web3,arb,txpool,debug
- --http.corsdomain=*
- --http.port=8545
- --http.vhosts=*
- --metrics
- --metrics-server.addr=0.0.0.0
- --metrics-server.port=6070
- --node.batch-poster.enable=false
- --node.data-availability.enable=true
- --node.data-availability.rest-aggregator.enable=true
- --node.data-availability.rest-aggregator.urls=https://das-plume-mainnet-1.t.conduit.xyz
- --node.feed.input.url=wss://relay-plume-mainnet-1.t.conduit.xyz
- --node.sequencer=false
- --node.staker.enable=false
- --parent-chain.blob-client.beacon-url=${ETHEREUM_MAINNET_BEACON_REST}
- --parent-chain.connection.url=${ETHEREUM_MAINNET_EXECUTION_RPC}
- --persistent.chain=/root/.arbitrum/plume-mainnet
- --ws.addr=0.0.0.0
- --ws.origins=*
- --ws.port=8545
restart: unless-stopped
stop_grace_period: 5m
networks:
- chains
volumes:
- ${PLUME_MAINNET_NITRO_PRUNED_LEVELDB_HASH_DATA:-plume-mainnet-nitro-pruned-leveldb-hash}:/root/.arbitrum
- ./arb/plume/mainnet:/config
- /slowdisk:/slowdisk
logging: *logging-defaults
labels:
- prometheus-scrape.enabled=true
- prometheus-scrape.port=6070
- prometheus-scrape.path=/debug/metrics/prometheus
- traefik.enable=true
- traefik.http.middlewares.plume-mainnet-nitro-pruned-leveldb-hash-stripprefix.stripprefix.prefixes=/plume-mainnet
- traefik.http.services.plume-mainnet-nitro-pruned-leveldb-hash.loadbalancer.server.port=8545
- ${NO_SSL:-traefik.http.routers.plume-mainnet-nitro-pruned-leveldb-hash.entrypoints=websecure}
- ${NO_SSL:-traefik.http.routers.plume-mainnet-nitro-pruned-leveldb-hash.tls.certresolver=myresolver}
- ${NO_SSL:-traefik.http.routers.plume-mainnet-nitro-pruned-leveldb-hash.rule=Host(`$DOMAIN`) && (Path(`/plume-mainnet`) || Path(`/plume-mainnet/`))}
- ${NO_SSL:+traefik.http.routers.plume-mainnet-nitro-pruned-leveldb-hash.rule=Path(`/plume-mainnet`) || Path(`/plume-mainnet/`)}
- traefik.http.routers.plume-mainnet-nitro-pruned-leveldb-hash.middlewares=plume-mainnet-nitro-pruned-leveldb-hash-stripprefix, ipallowlist
volumes:
plume-mainnet-nitro-pruned-leveldb-hash:
x-upstreams:
- id: $${ID}
labels:
provider: $${PROVIDER}
connection:
generic:
rpc:
url: $${RPC_URL}
ws:
frameSize: 20Mb
msgSize: 50Mb
url: $${WS_URL}
chain: plume
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
...

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
plume-mainnet: plume-mainnet:
image: ${PLUME_NITRO_IMAGE:-offchainlabs/nitro-node}:${PLUME_MAINNET_NITRO_VERSION:-v3.9.5-66e42c4} image: ${PLUME_NITRO_IMAGE:-offchainlabs/nitro-node}:${PLUME_MAINNET_NITRO_VERSION:-v3.10.1-d7f07be}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -67,12 +67,9 @@ services:
- --metrics-server.addr=0.0.0.0 - --metrics-server.addr=0.0.0.0
- --metrics-server.port=6070 - --metrics-server.port=6070
- --node.batch-poster.enable=false - --node.batch-poster.enable=false
- --node.da-provider.enable=false
- --node.data-availability.enable=true - --node.data-availability.enable=true
- --node.data-availability.parent-chain-node-url=${ETHEREUM_MAINNET_EXECUTION_RPC}
- --node.data-availability.rest-aggregator.enable=true - --node.data-availability.rest-aggregator.enable=true
- --node.data-availability.rest-aggregator.urls=https://das-plume-mainnet-1.t.conduit.xyz - --node.data-availability.rest-aggregator.urls=https://das-plume-mainnet-1.t.conduit.xyz
- --node.data-availability.sequencer-inbox-address=0x85eC1b9138a8b9659A51e2b51bb0861901040b59
- --node.feed.input.url=wss://relay-plume-mainnet-1.t.conduit.xyz - --node.feed.input.url=wss://relay-plume-mainnet-1.t.conduit.xyz
- --node.sequencer=false - --node.sequencer=false
- --node.staker.enable=false - --node.staker.enable=false

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
plume-testnet-archive: plume-testnet-archive:
image: ${PLUME_NITRO_IMAGE:-offchainlabs/nitro-node}:${PLUME_TESTNET_NITRO_VERSION:-v3.9.5-66e42c4} image: ${PLUME_NITRO_IMAGE:-offchainlabs/nitro-node}:${PLUME_TESTNET_NITRO_VERSION:-v3.10.1-d7f07be}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -67,12 +67,9 @@ services:
- --metrics-server.addr=0.0.0.0 - --metrics-server.addr=0.0.0.0
- --metrics-server.port=6070 - --metrics-server.port=6070
- --node.batch-poster.enable=false - --node.batch-poster.enable=false
- --node.da-provider.enable=false
- --node.data-availability.enable=true - --node.data-availability.enable=true
- --node.data-availability.parent-chain-node-url=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
- --node.data-availability.rest-aggregator.enable=true - --node.data-availability.rest-aggregator.enable=true
- --node.data-availability.rest-aggregator.urls=https://das-plume-testnet-1.t.conduit.xyz - --node.data-availability.rest-aggregator.urls=https://das-plume-testnet-1.t.conduit.xyz
- --node.data-availability.sequencer-inbox-address=0xbCa991f1831bE1F1E7e5576d5F84A645e70F3E4d
- --node.feed.input.url=wss://relay-plume-testnet-1.t.conduit.xyz - --node.feed.input.url=wss://relay-plume-testnet-1.t.conduit.xyz
- --node.sequencer=false - --node.sequencer=false
- --node.staker.enable=false - --node.staker.enable=false

View File

@@ -0,0 +1,145 @@
---
x-logging-defaults: &logging-defaults
driver: json-file
options:
max-size: "10m"
max-file: "3"
# 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:arb/nitro/plume-testnet-nitro-archive-pebble-hash.yml
#
# docker compose up -d
#
# curl -X POST https://${IP}.traefik.me/plume-testnet-archive \
# -H "Content-Type: application/json" \
# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
services:
plume-testnet-archive:
image: ${PLUME_NITRO_IMAGE:-offchainlabs/nitro-node}:${PLUME_TESTNET_NITRO_VERSION:-v3.10.1-d7f07be}
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
expose:
- 8545
command:
- --conf.file=/config/baseConfig.json
- --execution.caching.archive=true
- --execution.caching.database-cache=${PLUME_TESTNET_NITRO_ARCHIVE_PEBBLE_HASH_DATABASE_CACHE:-2048}
- --execution.caching.snapshot-cache=${PLUME_TESTNET_NITRO_ARCHIVE_PEBBLE_HASH_SNAPSHOT_CACHE:-400}
- --execution.caching.trie-clean-cache=${PLUME_TESTNET_NITRO_ARCHIVE_PEBBLE_HASH_TRIE_CLEAN_CACHE:-600}
- --execution.caching.trie-dirty-cache=${PLUME_TESTNET_NITRO_ARCHIVE_PEBBLE_HASH_TRIE_DIRTY_CACHE:-1024}
- --execution.forwarding-target=https://testnet-rpc.plume.org
- --execution.rpc.gas-cap=5500000000
- --execution.rpc.log-history=0
- --execution.sequencer.enable=false
- --http.addr=0.0.0.0
- --http.api=eth,net,web3,arb,txpool,debug
- --http.corsdomain=*
- --http.port=8545
- --http.vhosts=*
- --metrics
- --metrics-server.addr=0.0.0.0
- --metrics-server.port=6070
- --node.batch-poster.enable=false
- --node.data-availability.enable=true
- --node.data-availability.rest-aggregator.enable=true
- --node.data-availability.rest-aggregator.urls=https://das-plume-testnet-1.t.conduit.xyz
- --node.feed.input.url=wss://relay-plume-testnet-1.t.conduit.xyz
- --node.sequencer=false
- --node.staker.enable=false
- --parent-chain.blob-client.beacon-url=${ETHEREUM_SEPOLIA_BEACON_REST}
- --parent-chain.connection.url=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
- --persistent.chain=/root/.arbitrum/plume-testnet-archive
- --persistent.db-engine=pebble
- --ws.addr=0.0.0.0
- --ws.origins=*
- --ws.port=8545
restart: unless-stopped
stop_grace_period: 5m
networks:
- chains
volumes:
- ${PLUME_TESTNET_NITRO_ARCHIVE_PEBBLE_HASH_DATA:-plume-testnet-nitro-archive-pebble-hash}:/root/.arbitrum
- ./arb/plume/testnet:/config
- /slowdisk:/slowdisk
logging: *logging-defaults
labels:
- prometheus-scrape.enabled=true
- prometheus-scrape.port=6070
- prometheus-scrape.path=/debug/metrics/prometheus
- traefik.enable=true
- traefik.http.middlewares.plume-testnet-nitro-archive-pebble-hash-stripprefix.stripprefix.prefixes=/plume-testnet-archive
- traefik.http.services.plume-testnet-nitro-archive-pebble-hash.loadbalancer.server.port=8545
- ${NO_SSL:-traefik.http.routers.plume-testnet-nitro-archive-pebble-hash.entrypoints=websecure}
- ${NO_SSL:-traefik.http.routers.plume-testnet-nitro-archive-pebble-hash.tls.certresolver=myresolver}
- ${NO_SSL:-traefik.http.routers.plume-testnet-nitro-archive-pebble-hash.rule=Host(`$DOMAIN`) && (Path(`/plume-testnet-archive`) || Path(`/plume-testnet-archive/`))}
- ${NO_SSL:+traefik.http.routers.plume-testnet-nitro-archive-pebble-hash.rule=Path(`/plume-testnet-archive`) || Path(`/plume-testnet-archive/`)}
- traefik.http.routers.plume-testnet-nitro-archive-pebble-hash.middlewares=plume-testnet-nitro-archive-pebble-hash-stripprefix, ipallowlist
volumes:
plume-testnet-nitro-archive-pebble-hash:
x-upstreams:
- id: $${ID}
labels:
provider: $${PROVIDER}
connection:
generic:
rpc:
url: $${RPC_URL}
ws:
frameSize: 20Mb
msgSize: 50Mb
url: $${WS_URL}
chain: plume-testnet
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
...

View File

@@ -0,0 +1,144 @@
---
x-logging-defaults: &logging-defaults
driver: json-file
options:
max-size: "10m"
max-file: "3"
# 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:arb/nitro/plume-testnet-nitro-pruned-leveldb-hash.yml
#
# docker compose up -d
#
# curl -X POST https://${IP}.traefik.me/plume-testnet \
# -H "Content-Type: application/json" \
# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
services:
plume-testnet:
image: ${PLUME_NITRO_IMAGE:-offchainlabs/nitro-node}:${PLUME_TESTNET_NITRO_VERSION:-v3.10.1-d7f07be}
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
expose:
- 8545
command:
- --conf.file=/config/baseConfig.json
- --execution.caching.archive=${PLUME_TESTNET_ARCHIVE_DB:-false}
- --execution.caching.database-cache=${PLUME_TESTNET_NITRO_PRUNED_LEVELDB_HASH_DATABASE_CACHE:-2048}
- --execution.caching.snapshot-cache=${PLUME_TESTNET_NITRO_PRUNED_LEVELDB_HASH_SNAPSHOT_CACHE:-400}
- --execution.caching.trie-clean-cache=${PLUME_TESTNET_NITRO_PRUNED_LEVELDB_HASH_TRIE_CLEAN_CACHE:-600}
- --execution.caching.trie-dirty-cache=${PLUME_TESTNET_NITRO_PRUNED_LEVELDB_HASH_TRIE_DIRTY_CACHE:-1024}
- --execution.forwarding-target=https://testnet-rpc.plume.org
- --execution.rpc.gas-cap=5500000000
- --execution.rpc.log-history=0
- --execution.sequencer.enable=false
- --http.addr=0.0.0.0
- --http.api=eth,net,web3,arb,txpool,debug
- --http.corsdomain=*
- --http.port=8545
- --http.vhosts=*
- --metrics
- --metrics-server.addr=0.0.0.0
- --metrics-server.port=6070
- --node.batch-poster.enable=false
- --node.data-availability.enable=true
- --node.data-availability.rest-aggregator.enable=true
- --node.data-availability.rest-aggregator.urls=https://das-plume-testnet-1.t.conduit.xyz
- --node.feed.input.url=wss://relay-plume-testnet-1.t.conduit.xyz
- --node.sequencer=false
- --node.staker.enable=false
- --parent-chain.blob-client.beacon-url=${ETHEREUM_SEPOLIA_BEACON_REST}
- --parent-chain.connection.url=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
- --persistent.chain=/root/.arbitrum/plume-testnet
- --ws.addr=0.0.0.0
- --ws.origins=*
- --ws.port=8545
restart: unless-stopped
stop_grace_period: 5m
networks:
- chains
volumes:
- ${PLUME_TESTNET_NITRO_PRUNED_LEVELDB_HASH_DATA:-plume-testnet-nitro-pruned-leveldb-hash}:/root/.arbitrum
- ./arb/plume/testnet:/config
- /slowdisk:/slowdisk
logging: *logging-defaults
labels:
- prometheus-scrape.enabled=true
- prometheus-scrape.port=6070
- prometheus-scrape.path=/debug/metrics/prometheus
- traefik.enable=true
- traefik.http.middlewares.plume-testnet-nitro-pruned-leveldb-hash-stripprefix.stripprefix.prefixes=/plume-testnet
- traefik.http.services.plume-testnet-nitro-pruned-leveldb-hash.loadbalancer.server.port=8545
- ${NO_SSL:-traefik.http.routers.plume-testnet-nitro-pruned-leveldb-hash.entrypoints=websecure}
- ${NO_SSL:-traefik.http.routers.plume-testnet-nitro-pruned-leveldb-hash.tls.certresolver=myresolver}
- ${NO_SSL:-traefik.http.routers.plume-testnet-nitro-pruned-leveldb-hash.rule=Host(`$DOMAIN`) && (Path(`/plume-testnet`) || Path(`/plume-testnet/`))}
- ${NO_SSL:+traefik.http.routers.plume-testnet-nitro-pruned-leveldb-hash.rule=Path(`/plume-testnet`) || Path(`/plume-testnet/`)}
- traefik.http.routers.plume-testnet-nitro-pruned-leveldb-hash.middlewares=plume-testnet-nitro-pruned-leveldb-hash-stripprefix, ipallowlist
volumes:
plume-testnet-nitro-pruned-leveldb-hash:
x-upstreams:
- id: $${ID}
labels:
provider: $${PROVIDER}
connection:
generic:
rpc:
url: $${RPC_URL}
ws:
frameSize: 20Mb
msgSize: 50Mb
url: $${WS_URL}
chain: plume-testnet
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
...

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
plume-testnet: plume-testnet:
image: ${PLUME_NITRO_IMAGE:-offchainlabs/nitro-node}:${PLUME_TESTNET_NITRO_VERSION:-v3.9.5-66e42c4} image: ${PLUME_NITRO_IMAGE:-offchainlabs/nitro-node}:${PLUME_TESTNET_NITRO_VERSION:-v3.10.1-d7f07be}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -67,12 +67,9 @@ services:
- --metrics-server.addr=0.0.0.0 - --metrics-server.addr=0.0.0.0
- --metrics-server.port=6070 - --metrics-server.port=6070
- --node.batch-poster.enable=false - --node.batch-poster.enable=false
- --node.da-provider.enable=false
- --node.data-availability.enable=true - --node.data-availability.enable=true
- --node.data-availability.parent-chain-node-url=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
- --node.data-availability.rest-aggregator.enable=true - --node.data-availability.rest-aggregator.enable=true
- --node.data-availability.rest-aggregator.urls=https://das-plume-testnet-1.t.conduit.xyz - --node.data-availability.rest-aggregator.urls=https://das-plume-testnet-1.t.conduit.xyz
- --node.data-availability.sequencer-inbox-address=0xbCa991f1831bE1F1E7e5576d5F84A645e70F3E4d
- --node.feed.input.url=wss://relay-plume-testnet-1.t.conduit.xyz - --node.feed.input.url=wss://relay-plume-testnet-1.t.conduit.xyz
- --node.sequencer=false - --node.sequencer=false
- --node.staker.enable=false - --node.staker.enable=false

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
real-mainnet-archive: real-mainnet-archive:
image: ${REAL_NITRO_IMAGE:-offchainlabs/nitro-node}:${REAL_MAINNET_NITRO_VERSION:-v3.9.5-66e42c4} image: ${REAL_NITRO_IMAGE:-offchainlabs/nitro-node}:${REAL_MAINNET_NITRO_VERSION:-v3.10.1-d7f07be}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -67,12 +67,9 @@ services:
- --metrics-server.addr=0.0.0.0 - --metrics-server.addr=0.0.0.0
- --metrics-server.port=6070 - --metrics-server.port=6070
- --node.batch-poster.enable=false - --node.batch-poster.enable=false
- --node.da-provider.enable=false
- --node.data-availability.enable=true - --node.data-availability.enable=true
- --node.data-availability.parent-chain-node-url=${ETHEREUM_MAINNET_EXECUTION_RPC}
- --node.data-availability.rest-aggregator.enable=true - --node.data-availability.rest-aggregator.enable=true
- --node.data-availability.rest-aggregator.urls=https://das.realforreal.gelato.digital - --node.data-availability.rest-aggregator.urls=https://das.realforreal.gelato.digital
- --node.data-availability.sequencer-inbox-address=0x466813324240923703236721233648302990016039913376
- --node.feed.input.url=wss://feed.realforreal.gelato.digital - --node.feed.input.url=wss://feed.realforreal.gelato.digital
- --node.sequencer=false - --node.sequencer=false
- --node.staker.enable=false - --node.staker.enable=false

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
real-mainnet-archive: real-mainnet-archive:
image: ${REAL_NITRO_IMAGE:-offchainlabs/nitro-node}:${REAL_MAINNET_NITRO_VERSION:-v3.9.5-66e42c4} image: ${REAL_NITRO_IMAGE:-offchainlabs/nitro-node}:${REAL_MAINNET_NITRO_VERSION:-v3.10.1-d7f07be}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -67,12 +67,9 @@ services:
- --metrics-server.addr=0.0.0.0 - --metrics-server.addr=0.0.0.0
- --metrics-server.port=6070 - --metrics-server.port=6070
- --node.batch-poster.enable=false - --node.batch-poster.enable=false
- --node.da-provider.enable=false
- --node.data-availability.enable=true - --node.data-availability.enable=true
- --node.data-availability.parent-chain-node-url=${ETHEREUM_MAINNET_EXECUTION_RPC}
- --node.data-availability.rest-aggregator.enable=true - --node.data-availability.rest-aggregator.enable=true
- --node.data-availability.rest-aggregator.urls=https://das.realforreal.gelato.digital - --node.data-availability.rest-aggregator.urls=https://das.realforreal.gelato.digital
- --node.data-availability.sequencer-inbox-address=0x466813324240923703236721233648302990016039913376
- --node.feed.input.url=wss://feed.realforreal.gelato.digital - --node.feed.input.url=wss://feed.realforreal.gelato.digital
- --node.sequencer=false - --node.sequencer=false
- --node.staker.enable=false - --node.staker.enable=false

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
real-mainnet: real-mainnet:
image: ${REAL_NITRO_IMAGE:-offchainlabs/nitro-node}:${REAL_MAINNET_NITRO_VERSION:-v3.9.5-66e42c4} image: ${REAL_NITRO_IMAGE:-offchainlabs/nitro-node}:${REAL_MAINNET_NITRO_VERSION:-v3.10.1-d7f07be}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -67,12 +67,9 @@ services:
- --metrics-server.addr=0.0.0.0 - --metrics-server.addr=0.0.0.0
- --metrics-server.port=6070 - --metrics-server.port=6070
- --node.batch-poster.enable=false - --node.batch-poster.enable=false
- --node.da-provider.enable=false
- --node.data-availability.enable=true - --node.data-availability.enable=true
- --node.data-availability.parent-chain-node-url=${ETHEREUM_MAINNET_EXECUTION_RPC}
- --node.data-availability.rest-aggregator.enable=true - --node.data-availability.rest-aggregator.enable=true
- --node.data-availability.rest-aggregator.urls=https://das.realforreal.gelato.digital - --node.data-availability.rest-aggregator.urls=https://das.realforreal.gelato.digital
- --node.data-availability.sequencer-inbox-address=0x466813324240923703236721233648302990016039913376
- --node.feed.input.url=wss://feed.realforreal.gelato.digital - --node.feed.input.url=wss://feed.realforreal.gelato.digital
- --node.sequencer=false - --node.sequencer=false
- --node.staker.enable=false - --node.staker.enable=false

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
avalanche-fuji-archive: avalanche-fuji-archive:
image: ${AVALANCHE_GO_IMAGE:-avaplatform/avalanchego}:${AVALANCHE_FUJI_GO_VERSION:-v1.14.1} image: ${AVALANCHE_GO_IMAGE:-avaplatform/avalanchego}:${AVALANCHE_FUJI_GO_VERSION:-v1.14.2}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
avalanche-fuji: avalanche-fuji:
image: ${AVALANCHE_GO_IMAGE:-avaplatform/avalanchego}:${AVALANCHE_FUJI_GO_VERSION:-v1.14.1} image: ${AVALANCHE_GO_IMAGE:-avaplatform/avalanchego}:${AVALANCHE_FUJI_GO_VERSION:-v1.14.2}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
avalanche-fuji: avalanche-fuji:
image: ${AVALANCHE_GO_IMAGE:-avaplatform/avalanchego}:${AVALANCHE_FUJI_GO_VERSION:-v1.14.1} image: ${AVALANCHE_GO_IMAGE:-avaplatform/avalanchego}:${AVALANCHE_FUJI_GO_VERSION:-v1.14.2}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
avalanche-mainnet-archive: avalanche-mainnet-archive:
image: ${AVALANCHE_GO_IMAGE:-avaplatform/avalanchego}:${AVALANCHE_MAINNET_GO_VERSION:-v1.14.1} image: ${AVALANCHE_GO_IMAGE:-avaplatform/avalanchego}:${AVALANCHE_MAINNET_GO_VERSION:-v1.14.2}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
avalanche-mainnet: avalanche-mainnet:
image: ${AVALANCHE_GO_IMAGE:-avaplatform/avalanchego}:${AVALANCHE_MAINNET_GO_VERSION:-v1.14.1} image: ${AVALANCHE_GO_IMAGE:-avaplatform/avalanchego}:${AVALANCHE_MAINNET_GO_VERSION:-v1.14.2}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
avalanche-mainnet: avalanche-mainnet:
image: ${AVALANCHE_GO_IMAGE:-avaplatform/avalanchego}:${AVALANCHE_MAINNET_GO_VERSION:-v1.14.1} image: ${AVALANCHE_GO_IMAGE:-avaplatform/avalanchego}:${AVALANCHE_MAINNET_GO_VERSION:-v1.14.2}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle

View File

@@ -0,0 +1,112 @@
---
x-logging-defaults: &logging-defaults
driver: json-file
options:
max-size: "10m"
max-file: "3"
# Aztec full node. See https://docs.aztec.network/network/setup/running_a_node
# Admin port (8880) is not exposed; use docker exec for admin API.
# 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:aztec/aztec/aztec-devnet-aztec-pruned.yml
#
# docker compose up -d
#
# curl -X POST https://${IP}.traefik.me/aztec-devnet \
# -H "Content-Type: application/json" \
# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
services:
aztec-devnet:
image: ${AZTEC_AZTEC_IMAGE:-aztecprotocol/aztec}:${AZTEC_DEVNET_AZTEC_VERSION:-3.0.0-devnet.6-patch.1}
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:
- 12024:12024
- 12024:12024/udp
expose:
- 8080
environment:
AZTEC_ADMIN_PORT: '8880'
AZTEC_PORT: '8080'
DATA_DIRECTORY: /var/lib/data
ETHEREUM_HOSTS: ${ETHEREUM_SEPOLIA_EXECUTION_RPC}
L1_CONSENSUS_HOST_URLS: ${ETHEREUM_SEPOLIA_BEACON_REST}
LOG_LEVEL: ${AZTEC_LOG_LEVEL:-info}
P2P_IP: ${IP}
P2P_PORT: '12024'
entrypoint: [node, --no-warnings, /usr/src/yarn-project/aztec/dest/bin/index.js, start]
command:
- --archiver
- --network=devnet
- --node
restart: unless-stopped
stop_grace_period: 5m
networks:
- chains
volumes:
- ${AZTEC_DEVNET_AZTEC_PRUNED_DATA:-aztec-devnet-aztec-pruned}:/var/lib/data
- /slowdisk:/slowdisk
logging: *logging-defaults
labels:
- prometheus-scrape.enabled=false
- traefik.enable=true
- traefik.http.middlewares.aztec-devnet-aztec-pruned-stripprefix.stripprefix.prefixes=/aztec-devnet
- traefik.http.services.aztec-devnet-aztec-pruned.loadbalancer.server.port=8080
- ${NO_SSL:-traefik.http.routers.aztec-devnet-aztec-pruned.entrypoints=websecure}
- ${NO_SSL:-traefik.http.routers.aztec-devnet-aztec-pruned.tls.certresolver=myresolver}
- ${NO_SSL:-traefik.http.routers.aztec-devnet-aztec-pruned.rule=Host(`$DOMAIN`) && (Path(`/aztec-devnet`) || Path(`/aztec-devnet/`))}
- ${NO_SSL:+traefik.http.routers.aztec-devnet-aztec-pruned.rule=Path(`/aztec-devnet`) || Path(`/aztec-devnet/`)}
- traefik.http.routers.aztec-devnet-aztec-pruned.middlewares=aztec-devnet-aztec-pruned-stripprefix, ipallowlist
volumes:
aztec-devnet-aztec-pruned:
x-upstreams:
- id: $${ID}
labels:
provider: $${PROVIDER}
connection:
generic:
rpc:
url: $${RPC_URL}
ws:
frameSize: 20Mb
msgSize: 50Mb
url: $${WS_URL}
chain: aztec-devnet
method-groups:
enabled:
- debug
- filter
methods:
disabled:
enabled:
- name: txpool_content # TODO: should be disabled for rollup nodes
...

View File

@@ -0,0 +1,112 @@
---
x-logging-defaults: &logging-defaults
driver: json-file
options:
max-size: "10m"
max-file: "3"
# Aztec full node. See https://docs.aztec.network/network/setup/running_a_node
# Admin port (8880) is not exposed; use docker exec for admin API.
# 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:aztec/aztec/aztec-testnet-aztec-pruned.yml
#
# docker compose up -d
#
# curl -X POST https://${IP}.traefik.me/aztec-testnet \
# -H "Content-Type: application/json" \
# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
services:
aztec-testnet:
image: ${AZTEC_AZTEC_IMAGE:-aztecprotocol/aztec}:${AZTEC_TESTNET_AZTEC_VERSION:-3.0.2}
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:
- 13009:13009
- 13009:13009/udp
expose:
- 8080
environment:
AZTEC_ADMIN_PORT: '8880'
AZTEC_PORT: '8080'
DATA_DIRECTORY: /var/lib/data
ETHEREUM_HOSTS: ${ETHEREUM_SEPOLIA_EXECUTION_RPC}
L1_CONSENSUS_HOST_URLS: ${ETHEREUM_SEPOLIA_BEACON_REST}
LOG_LEVEL: ${AZTEC_LOG_LEVEL:-info}
P2P_IP: ${IP}
P2P_PORT: '13009'
entrypoint: [node, --no-warnings, /usr/src/yarn-project/aztec/dest/bin/index.js, start]
command:
- --archiver
- --network=testnet
- --node
restart: unless-stopped
stop_grace_period: 5m
networks:
- chains
volumes:
- ${AZTEC_TESTNET_AZTEC_PRUNED_DATA:-aztec-testnet-aztec-pruned}:/var/lib/data
- /slowdisk:/slowdisk
logging: *logging-defaults
labels:
- prometheus-scrape.enabled=false
- traefik.enable=true
- traefik.http.middlewares.aztec-testnet-aztec-pruned-stripprefix.stripprefix.prefixes=/aztec-testnet
- traefik.http.services.aztec-testnet-aztec-pruned.loadbalancer.server.port=8080
- ${NO_SSL:-traefik.http.routers.aztec-testnet-aztec-pruned.entrypoints=websecure}
- ${NO_SSL:-traefik.http.routers.aztec-testnet-aztec-pruned.tls.certresolver=myresolver}
- ${NO_SSL:-traefik.http.routers.aztec-testnet-aztec-pruned.rule=Host(`$DOMAIN`) && (Path(`/aztec-testnet`) || Path(`/aztec-testnet/`))}
- ${NO_SSL:+traefik.http.routers.aztec-testnet-aztec-pruned.rule=Path(`/aztec-testnet`) || Path(`/aztec-testnet/`)}
- traefik.http.routers.aztec-testnet-aztec-pruned.middlewares=aztec-testnet-aztec-pruned-stripprefix, ipallowlist
volumes:
aztec-testnet-aztec-pruned:
x-upstreams:
- id: $${ID}
labels:
provider: $${PROVIDER}
connection:
generic:
rpc:
url: $${RPC_URL}
ws:
frameSize: 20Mb
msgSize: 50Mb
url: $${WS_URL}
chain: aztec-testnet
method-groups:
enabled:
- debug
- filter
methods:
disabled:
enabled:
- name: txpool_content # TODO: should be disabled for rollup nodes
...

View File

@@ -1,10 +1,17 @@
#!/bin/bash #!/bin/bash
BASEPATH="$(dirname "$0")" BASEPATH="$(dirname "$0")"
source "$BASEPATH/volume-utils.sh"
backup_dir="/backup" backup_dir="/backup"
if [[ -n $2 ]]; then remote_target="$2"
echo "upload backup via webdav to $2" if [[ -n "$remote_target" ]] && is_local_backup_url "$remote_target"; then
echo "Target URL points to this server, using local /backup instead of $remote_target"
remote_target=""
fi
if [[ -n "$remote_target" ]]; then
echo "upload backup via webdav to $remote_target"
else else
if [ ! -d "$backup_dir" ]; then if [ ! -d "$backup_dir" ]; then
echo "Error: /backup directory does not exist" echo "Error: /backup directory does not exist"
@@ -43,7 +50,7 @@ generate_volume_metadata() {
} }
# Read the JSON input and extract the list of keys # Read the JSON input and extract the list of keys
keys=$(cat /root/rpc/$1.yml | yaml2json - | jq '.volumes' | jq -r 'keys[]') keys=$(get_persistent_volume_keys "/root/rpc/$1.yml")
# Iterate over the list of keys # Iterate over the list of keys
for key in $keys; do for key in $keys; do
@@ -74,16 +81,16 @@ for key in $keys; do
#echo "$target_file" #echo "$target_file"
if [[ -n $2 ]]; then if [[ -n "$remote_target" ]]; then
# Upload volume archive # Upload volume archive
tar -cf - --dereference "$source_folder" | pv -pterb -s $(du -sb "$source_folder" | awk '{print $1}') | zstd | curl -X PUT --upload-file - "$2/null/uploading-$target_file" tar -cf - --dereference "$source_folder" | pv -pterb -s $(du -sb "$source_folder" | awk '{print $1}') | zstd | curl -X PUT --upload-file - "$remote_target/null/uploading-$target_file"
curl -X MOVE -H "Destination: /null/$target_file" "$2/null/uploading-$target_file" curl -X MOVE -H "Destination: /null/$target_file" "$remote_target/null/uploading-$target_file"
# Generate and upload metadata file # Generate and upload metadata file
echo "Generating metadata for volume: rpc_$key" echo "Generating metadata for volume: rpc_$key"
temp_metadata="/tmp/$metadata_file_name" temp_metadata="/tmp/$metadata_file_name"
generate_volume_metadata "$key" "$source_folder" "$temp_metadata" generate_volume_metadata "$key" "$source_folder" "$temp_metadata"
curl -X PUT --upload-file "$temp_metadata" "$2/null/$metadata_file_name" curl -X PUT --upload-file "$temp_metadata" "$remote_target/null/$metadata_file_name"
rm -f "$temp_metadata" rm -f "$temp_metadata"
else else
# Create volume archive # Create volume archive

View File

@@ -61,7 +61,7 @@ x-logging-defaults: &logging-defaults
services: services:
berachain-bartio-reth: berachain-bartio-reth:
image: ${BERACHAIN_RETH_IMAGE:-ghcr.io/berachain/bera-reth}:${BERACHAIN_BARTIO_RETH_VERSION:-v1.3.1} image: ${BERACHAIN_RETH_IMAGE:-ghcr.io/berachain/bera-reth}:${BERACHAIN_BARTIO_RETH_VERSION:-v1.4.0}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle

View File

@@ -61,7 +61,7 @@ x-logging-defaults: &logging-defaults
services: services:
berachain-bartio-reth-pruned: berachain-bartio-reth-pruned:
image: ${BERACHAIN_RETH_IMAGE:-ghcr.io/berachain/bera-reth}:${BERACHAIN_BARTIO_RETH_VERSION:-v1.3.1} image: ${BERACHAIN_RETH_IMAGE:-ghcr.io/berachain/bera-reth}:${BERACHAIN_BARTIO_RETH_VERSION:-v1.4.0}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle

View File

@@ -61,7 +61,7 @@ x-logging-defaults: &logging-defaults
services: services:
berachain-bepolia-reth: berachain-bepolia-reth:
image: ${BERACHAIN_RETH_IMAGE:-ghcr.io/berachain/bera-reth}:${BERACHAIN_BEPOLIA_RETH_VERSION:-v1.3.1} image: ${BERACHAIN_RETH_IMAGE:-ghcr.io/berachain/bera-reth}:${BERACHAIN_BEPOLIA_RETH_VERSION:-v1.4.0}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle

View File

@@ -61,7 +61,7 @@ x-logging-defaults: &logging-defaults
services: services:
berachain-bepolia-reth-pruned: berachain-bepolia-reth-pruned:
image: ${BERACHAIN_RETH_IMAGE:-ghcr.io/berachain/bera-reth}:${BERACHAIN_BEPOLIA_RETH_VERSION:-v1.3.1} image: ${BERACHAIN_RETH_IMAGE:-ghcr.io/berachain/bera-reth}:${BERACHAIN_BEPOLIA_RETH_VERSION:-v1.4.0}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle

View File

@@ -61,7 +61,7 @@ x-logging-defaults: &logging-defaults
services: services:
berachain-mainnet-reth: berachain-mainnet-reth:
image: ${BERACHAIN_RETH_IMAGE:-ghcr.io/berachain/bera-reth}:${BERACHAIN_MAINNET_RETH_VERSION:-v1.3.1} image: ${BERACHAIN_RETH_IMAGE:-ghcr.io/berachain/bera-reth}:${BERACHAIN_MAINNET_RETH_VERSION:-v1.4.0}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle

View File

@@ -61,7 +61,7 @@ x-logging-defaults: &logging-defaults
services: services:
berachain-mainnet-reth-pruned: berachain-mainnet-reth-pruned:
image: ${BERACHAIN_RETH_IMAGE:-ghcr.io/berachain/bera-reth}:${BERACHAIN_MAINNET_RETH_VERSION:-v1.3.1} image: ${BERACHAIN_RETH_IMAGE:-ghcr.io/berachain/bera-reth}:${BERACHAIN_MAINNET_RETH_VERSION:-v1.4.0}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
bitcoin-cash-mainnet: bitcoin-cash-mainnet:
image: ${BITCOIN_CASH_BITCOIND_IMAGE:-bitcoinabc/bitcoin-abc}:${BITCOIN_CASH_MAINNET_BITCOIND_VERSION:-0.32.6} image: ${BITCOIN_CASH_BITCOIND_IMAGE:-bitcoinabc/bitcoin-abc}:${BITCOIN_CASH_MAINNET_BITCOIND_VERSION:-0.33.4}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
bitcoin-cash-testnet: bitcoin-cash-testnet:
image: ${BITCOIN_CASH_BITCOIND_IMAGE:-bitcoinabc/bitcoin-abc}:${BITCOIN_CASH_TESTNET_BITCOIND_VERSION:-0.32.6} image: ${BITCOIN_CASH_BITCOIND_IMAGE:-bitcoinabc/bitcoin-abc}:${BITCOIN_CASH_TESTNET_BITCOIND_VERSION:-0.33.4}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
bsc-chapel: bsc-chapel:
image: ${BSC_BSC_IMAGE:-ghcr.io/bnb-chain/bsc}:${BSC_CHAPEL_BSC_VERSION:-1.6.6} image: ${BSC_BSC_IMAGE:-ghcr.io/bnb-chain/bsc}:${BSC_CHAPEL_BSC_VERSION:-1.7.3}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -74,7 +74,7 @@ services:
- --metrics.port=6060 - --metrics.port=6060
- --nat=extip:${IP} - --nat=extip:${IP}
- --port=12759 - --port=12759
- --rpc.gascap=600000000 - --rpc.gascap=0
- --rpc.txfeecap=0 - --rpc.txfeecap=0
- --state.scheme=path - --state.scheme=path
- --syncmode=snap - --syncmode=snap

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
...

View File

@@ -32,7 +32,7 @@ x-logging-defaults: &logging-defaults
services: services:
bsc-mainnet-minimal: bsc-mainnet-minimal:
image: ${BSC_BSC_IMAGE:-ghcr.io/bnb-chain/bsc}:${BSC_MAINNET_BSC_VERSION:-1.6.6} image: ${BSC_BSC_IMAGE:-ghcr.io/bnb-chain/bsc}:${BSC_MAINNET_BSC_VERSION:-1.7.3}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -80,7 +80,7 @@ services:
- --metrics.port=6060 - --metrics.port=6060
- --nat=extip:${IP} - --nat=extip:${IP}
- --port=14596 - --port=14596
- --rpc.gascap=600000000 - --rpc.gascap=0
- --rpc.txfeecap=0 - --rpc.txfeecap=0
- --state.scheme=path - --state.scheme=path
- --syncmode=snap - --syncmode=snap

View File

@@ -75,7 +75,7 @@ services:
- --metrics.port=6060 - --metrics.port=6060
- --nat=extip:${IP} - --nat=extip:${IP}
- --port=12037 - --port=12037
- --rpc.gascap=600000000 - --rpc.gascap=0
- --rpc.txfeecap=0 - --rpc.txfeecap=0
- --state.scheme=path - --state.scheme=path
- --syncmode=full - --syncmode=full

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
bsc-mainnet: bsc-mainnet:
image: ${BSC_BSC_IMAGE:-ghcr.io/bnb-chain/bsc}:${BSC_MAINNET_BSC_VERSION:-1.6.6} image: ${BSC_BSC_IMAGE:-ghcr.io/bnb-chain/bsc}:${BSC_MAINNET_BSC_VERSION:-1.7.3}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -74,7 +74,7 @@ services:
- --metrics.port=6060 - --metrics.port=6060
- --nat=extip:${IP} - --nat=extip:${IP}
- --port=12037 - --port=12037
- --rpc.gascap=600000000 - --rpc.gascap=0
- --rpc.txfeecap=0 - --rpc.txfeecap=0
- --state.scheme=path - --state.scheme=path
- --syncmode=snap - --syncmode=snap

View File

@@ -49,7 +49,7 @@ services:
args: args:
LLVM_IMAGE: ${LLVM_IMAGE:-snowstep/llvm} LLVM_IMAGE: ${LLVM_IMAGE:-snowstep/llvm}
LLVM_VERSION: ${LLVM_VERSION:-20250912105042} LLVM_VERSION: ${LLVM_VERSION:-20250912105042}
RETH_VERSION: ${BSC_CHAPEL_RETH_VERSION:-v0.0.7-beta} RETH_VERSION: ${BSC_CHAPEL_RETH_VERSION:-v0.0.6-beta}
RETH_REPO: ${BSC_CHAPEL_RETH_REPO:-https://github.com/bnb-chain/reth-bsc.git} RETH_REPO: ${BSC_CHAPEL_RETH_REPO:-https://github.com/bnb-chain/reth-bsc.git}
ARCH_TARGET: ${ARCH_TARGET:-native} ARCH_TARGET: ${ARCH_TARGET:-native}
PROFILE: ${RETH_BUILD_PROFILE:-maxperf} PROFILE: ${RETH_BUILD_PROFILE:-maxperf}
@@ -101,6 +101,7 @@ services:
- --rpc.max-blocks-per-filter=0 - --rpc.max-blocks-per-filter=0
- --rpc.max-connections=50000 - --rpc.max-connections=50000
- --rpc.max-logs-per-response=0 - --rpc.max-logs-per-response=0
- --rpc.max-trace-filter-blocks=10000
- --statedb.triedb - --statedb.triedb
- --ws - --ws
- --ws.addr=0.0.0.0 - --ws.addr=0.0.0.0

View File

@@ -49,7 +49,7 @@ services:
args: args:
LLVM_IMAGE: ${LLVM_IMAGE:-snowstep/llvm} LLVM_IMAGE: ${LLVM_IMAGE:-snowstep/llvm}
LLVM_VERSION: ${LLVM_VERSION:-20250912105042} LLVM_VERSION: ${LLVM_VERSION:-20250912105042}
RETH_VERSION: ${BSC_CHAPEL_RETH_VERSION:-v0.0.7-beta} RETH_VERSION: ${BSC_CHAPEL_RETH_VERSION:-v0.0.6-beta}
RETH_REPO: ${BSC_CHAPEL_RETH_REPO:-https://github.com/bnb-chain/reth-bsc.git} RETH_REPO: ${BSC_CHAPEL_RETH_REPO:-https://github.com/bnb-chain/reth-bsc.git}
ARCH_TARGET: ${ARCH_TARGET:-native} ARCH_TARGET: ${ARCH_TARGET:-native}
PROFILE: ${RETH_BUILD_PROFILE:-maxperf} PROFILE: ${RETH_BUILD_PROFILE:-maxperf}
@@ -101,6 +101,7 @@ services:
- --rpc.max-blocks-per-filter=0 - --rpc.max-blocks-per-filter=0
- --rpc.max-connections=50000 - --rpc.max-connections=50000
- --rpc.max-logs-per-response=0 - --rpc.max-logs-per-response=0
- --rpc.max-trace-filter-blocks=10000
- --ws - --ws
- --ws.addr=0.0.0.0 - --ws.addr=0.0.0.0
- --ws.api=admin,debug,eth,net,trace,txpool,web3,rpc,reth,ots,flashbots,mev - --ws.api=admin,debug,eth,net,trace,txpool,web3,rpc,reth,ots,flashbots,mev

View File

@@ -49,7 +49,7 @@ services:
args: args:
LLVM_IMAGE: ${LLVM_IMAGE:-snowstep/llvm} LLVM_IMAGE: ${LLVM_IMAGE:-snowstep/llvm}
LLVM_VERSION: ${LLVM_VERSION:-20250912105042} LLVM_VERSION: ${LLVM_VERSION:-20250912105042}
RETH_VERSION: ${BSC_CHAPEL_RETH_VERSION:-v0.0.7-beta} RETH_VERSION: ${BSC_CHAPEL_RETH_VERSION:-v0.0.6-beta}
RETH_REPO: ${BSC_CHAPEL_RETH_REPO:-https://github.com/bnb-chain/reth-bsc.git} RETH_REPO: ${BSC_CHAPEL_RETH_REPO:-https://github.com/bnb-chain/reth-bsc.git}
ARCH_TARGET: ${ARCH_TARGET:-native} ARCH_TARGET: ${ARCH_TARGET:-native}
PROFILE: ${RETH_BUILD_PROFILE:-maxperf} PROFILE: ${RETH_BUILD_PROFILE:-maxperf}
@@ -102,6 +102,7 @@ services:
- --rpc.max-blocks-per-filter=0 - --rpc.max-blocks-per-filter=0
- --rpc.max-connections=50000 - --rpc.max-connections=50000
- --rpc.max-logs-per-response=0 - --rpc.max-logs-per-response=0
- --rpc.max-trace-filter-blocks=10000
- --statedb.triedb - --statedb.triedb
- --ws - --ws
- --ws.addr=0.0.0.0 - --ws.addr=0.0.0.0

View File

@@ -49,7 +49,7 @@ services:
args: args:
LLVM_IMAGE: ${LLVM_IMAGE:-snowstep/llvm} LLVM_IMAGE: ${LLVM_IMAGE:-snowstep/llvm}
LLVM_VERSION: ${LLVM_VERSION:-20250912105042} LLVM_VERSION: ${LLVM_VERSION:-20250912105042}
RETH_VERSION: ${BSC_CHAPEL_RETH_VERSION:-v0.0.7-beta} RETH_VERSION: ${BSC_CHAPEL_RETH_VERSION:-v0.0.6-beta}
RETH_REPO: ${BSC_CHAPEL_RETH_REPO:-https://github.com/bnb-chain/reth-bsc.git} RETH_REPO: ${BSC_CHAPEL_RETH_REPO:-https://github.com/bnb-chain/reth-bsc.git}
ARCH_TARGET: ${ARCH_TARGET:-native} ARCH_TARGET: ${ARCH_TARGET:-native}
PROFILE: ${RETH_BUILD_PROFILE:-maxperf} PROFILE: ${RETH_BUILD_PROFILE:-maxperf}
@@ -102,6 +102,7 @@ services:
- --rpc.max-blocks-per-filter=0 - --rpc.max-blocks-per-filter=0
- --rpc.max-connections=50000 - --rpc.max-connections=50000
- --rpc.max-logs-per-response=0 - --rpc.max-logs-per-response=0
- --rpc.max-trace-filter-blocks=10000
- --ws - --ws
- --ws.addr=0.0.0.0 - --ws.addr=0.0.0.0
- --ws.api=admin,debug,eth,net,trace,txpool,web3,rpc,reth,ots,flashbots,mev - --ws.api=admin,debug,eth,net,trace,txpool,web3,rpc,reth,ots,flashbots,mev

View File

@@ -49,7 +49,7 @@ services:
args: args:
LLVM_IMAGE: ${LLVM_IMAGE:-snowstep/llvm} LLVM_IMAGE: ${LLVM_IMAGE:-snowstep/llvm}
LLVM_VERSION: ${LLVM_VERSION:-20250912105042} LLVM_VERSION: ${LLVM_VERSION:-20250912105042}
RETH_VERSION: ${BSC_MAINNET_RETH_VERSION:-v0.0.7-beta} RETH_VERSION: ${BSC_MAINNET_RETH_VERSION:-v0.0.6-beta}
RETH_REPO: ${BSC_MAINNET_RETH_REPO:-https://github.com/bnb-chain/reth-bsc.git} RETH_REPO: ${BSC_MAINNET_RETH_REPO:-https://github.com/bnb-chain/reth-bsc.git}
ARCH_TARGET: ${ARCH_TARGET:-native} ARCH_TARGET: ${ARCH_TARGET:-native}
PROFILE: ${RETH_BUILD_PROFILE:-maxperf} PROFILE: ${RETH_BUILD_PROFILE:-maxperf}
@@ -102,6 +102,7 @@ services:
- --rpc.max-blocks-per-filter=0 - --rpc.max-blocks-per-filter=0
- --rpc.max-connections=50000 - --rpc.max-connections=50000
- --rpc.max-logs-per-response=0 - --rpc.max-logs-per-response=0
- --rpc.max-trace-filter-blocks=10000
- --statedb.triedb - --statedb.triedb
- --ws - --ws
- --ws.addr=0.0.0.0 - --ws.addr=0.0.0.0

View File

@@ -49,7 +49,7 @@ services:
args: args:
LLVM_IMAGE: ${LLVM_IMAGE:-snowstep/llvm} LLVM_IMAGE: ${LLVM_IMAGE:-snowstep/llvm}
LLVM_VERSION: ${LLVM_VERSION:-20250912105042} LLVM_VERSION: ${LLVM_VERSION:-20250912105042}
RETH_VERSION: ${BSC_MAINNET_RETH_VERSION:-v0.0.7-beta} RETH_VERSION: ${BSC_MAINNET_RETH_VERSION:-v0.0.6-beta}
RETH_REPO: ${BSC_MAINNET_RETH_REPO:-https://github.com/bnb-chain/reth-bsc.git} RETH_REPO: ${BSC_MAINNET_RETH_REPO:-https://github.com/bnb-chain/reth-bsc.git}
ARCH_TARGET: ${ARCH_TARGET:-native} ARCH_TARGET: ${ARCH_TARGET:-native}
PROFILE: ${RETH_BUILD_PROFILE:-maxperf} PROFILE: ${RETH_BUILD_PROFILE:-maxperf}
@@ -102,6 +102,7 @@ services:
- --rpc.max-blocks-per-filter=0 - --rpc.max-blocks-per-filter=0
- --rpc.max-connections=50000 - --rpc.max-connections=50000
- --rpc.max-logs-per-response=0 - --rpc.max-logs-per-response=0
- --rpc.max-trace-filter-blocks=10000
- --ws - --ws
- --ws.addr=0.0.0.0 - --ws.addr=0.0.0.0
- --ws.api=admin,debug,eth,net,trace,txpool,web3,rpc,reth,ots,flashbots,mev - --ws.api=admin,debug,eth,net,trace,txpool,web3,rpc,reth,ots,flashbots,mev

View File

@@ -49,7 +49,7 @@ services:
args: args:
LLVM_IMAGE: ${LLVM_IMAGE:-snowstep/llvm} LLVM_IMAGE: ${LLVM_IMAGE:-snowstep/llvm}
LLVM_VERSION: ${LLVM_VERSION:-20250912105042} LLVM_VERSION: ${LLVM_VERSION:-20250912105042}
RETH_VERSION: ${BSC_MAINNET_RETH_VERSION:-v0.0.7-beta} RETH_VERSION: ${BSC_MAINNET_RETH_VERSION:-v0.0.6-beta}
RETH_REPO: ${BSC_MAINNET_RETH_REPO:-https://github.com/bnb-chain/reth-bsc.git} RETH_REPO: ${BSC_MAINNET_RETH_REPO:-https://github.com/bnb-chain/reth-bsc.git}
ARCH_TARGET: ${ARCH_TARGET:-native} ARCH_TARGET: ${ARCH_TARGET:-native}
PROFILE: ${RETH_BUILD_PROFILE:-maxperf} PROFILE: ${RETH_BUILD_PROFILE:-maxperf}
@@ -102,6 +102,7 @@ services:
- --rpc.max-blocks-per-filter=0 - --rpc.max-blocks-per-filter=0
- --rpc.max-connections=50000 - --rpc.max-connections=50000
- --rpc.max-logs-per-response=0 - --rpc.max-logs-per-response=0
- --rpc.max-trace-filter-blocks=10000
- --statedb.triedb - --statedb.triedb
- --ws - --ws
- --ws.addr=0.0.0.0 - --ws.addr=0.0.0.0

View File

@@ -49,7 +49,7 @@ services:
args: args:
LLVM_IMAGE: ${LLVM_IMAGE:-snowstep/llvm} LLVM_IMAGE: ${LLVM_IMAGE:-snowstep/llvm}
LLVM_VERSION: ${LLVM_VERSION:-20250912105042} LLVM_VERSION: ${LLVM_VERSION:-20250912105042}
RETH_VERSION: ${BSC_MAINNET_RETH_VERSION:-v0.0.7-beta} RETH_VERSION: ${BSC_MAINNET_RETH_VERSION:-v0.0.6-beta}
RETH_REPO: ${BSC_MAINNET_RETH_REPO:-https://github.com/bnb-chain/reth-bsc.git} RETH_REPO: ${BSC_MAINNET_RETH_REPO:-https://github.com/bnb-chain/reth-bsc.git}
ARCH_TARGET: ${ARCH_TARGET:-native} ARCH_TARGET: ${ARCH_TARGET:-native}
PROFILE: ${RETH_BUILD_PROFILE:-maxperf} PROFILE: ${RETH_BUILD_PROFILE:-maxperf}
@@ -102,6 +102,7 @@ services:
- --rpc.max-blocks-per-filter=0 - --rpc.max-blocks-per-filter=0
- --rpc.max-connections=50000 - --rpc.max-connections=50000
- --rpc.max-logs-per-response=0 - --rpc.max-logs-per-response=0
- --rpc.max-trace-filter-blocks=10000
- --ws - --ws
- --ws.addr=0.0.0.0 - --ws.addr=0.0.0.0
- --ws.api=admin,debug,eth,net,trace,txpool,web3,rpc,reth,ots,flashbots,mev - --ws.api=admin,debug,eth,net,trace,txpool,web3,rpc,reth,ots,flashbots,mev

View File

@@ -10,11 +10,15 @@ fi
RPC_URL=$1 RPC_URL=$1
shift shift
# Check for --starknet flag # Check for --starknet / --aztec flag
is_starknet=false is_starknet=false
is_aztec=false
if [ "$1" == "--starknet" ]; then if [ "$1" == "--starknet" ]; then
is_starknet=true is_starknet=true
shift shift
elif [ "$1" == "--aztec" ]; then
is_aztec=true
shift
fi fi
REF="" REF=""
@@ -34,6 +38,8 @@ response_file=$(mktemp)
# Use appropriate RPC method based on chain type # Use appropriate RPC method based on chain type
if $is_starknet; then if $is_starknet; then
rpc_method='{"jsonrpc":"2.0","method":"starknet_getBlockWithTxHashes","params":["latest"],"id":1}' rpc_method='{"jsonrpc":"2.0","method":"starknet_getBlockWithTxHashes","params":["latest"],"id":1}'
elif $is_aztec; then
rpc_method='{"jsonrpc":"2.0","method":"node_getBlock","params":["latest"],"id":1}'
else else
rpc_method='{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["latest", false],"id":1}' rpc_method='{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["latest", false],"id":1}'
fi fi
@@ -49,6 +55,15 @@ if [ $? -eq 0 ]; then
latest_block_timestamp_decimal=$(echo "$response" | jq -r '.result.timestamp') latest_block_timestamp_decimal=$(echo "$response" | jq -r '.result.timestamp')
latest_block_number=$(echo "$response" | jq -r '.result.block_number') latest_block_number=$(echo "$response" | jq -r '.result.block_number')
latest_block_hash=$(echo "$response" | jq -r '.result.block_hash') latest_block_hash=$(echo "$response" | jq -r '.result.block_hash')
elif $is_aztec; then
# Aztec: node_getBlock("latest") returns blockHash, header.globalVariables.blockNumber, header.globalVariables.timestamp
latest_block_number=$(echo "$response" | jq -r '.result.header.globalVariables.blockNumber')
latest_block_timestamp_decimal=$(echo "$response" | jq -r '.result.header.globalVariables.timestamp')
latest_block_hash=$(echo "$response" | jq -r '.result.blockHash')
if [ "$latest_block_number" = "null" ] || [ "$latest_block_timestamp_decimal" = "null" ] || [ -z "$latest_block_timestamp_decimal" ]; then
echo "error"
exit 1
fi
else else
# Ethereum returns hex timestamp and number # Ethereum returns hex timestamp and number
latest_block_timestamp=$(echo "$response" | jq -r '.result.timestamp') latest_block_timestamp=$(echo "$response" | jq -r '.result.timestamp')
@@ -70,6 +85,8 @@ if [ $? -eq 0 ]; then
if $is_starknet; then if $is_starknet; then
# Starknet uses block_id object with block_number # Starknet uses block_id object with block_number
rpc_method2="{\"jsonrpc\":\"2.0\",\"method\":\"starknet_getBlockWithTxHashes\",\"params\":[{\"block_number\":$latest_block_number}],\"id\":1}" rpc_method2="{\"jsonrpc\":\"2.0\",\"method\":\"starknet_getBlockWithTxHashes\",\"params\":[{\"block_number\":$latest_block_number}],\"id\":1}"
elif $is_aztec; then
rpc_method2="{\"jsonrpc\":\"2.0\",\"method\":\"node_getBlock\",\"params\":[$latest_block_number],\"id\":1}"
else else
rpc_method2="{\"jsonrpc\":\"2.0\",\"method\":\"eth_getBlockByNumber\",\"params\":[\"$latest_block_number\", false],\"id\":1}" rpc_method2="{\"jsonrpc\":\"2.0\",\"method\":\"eth_getBlockByNumber\",\"params\":[\"$latest_block_number\", false],\"id\":1}"
fi fi
@@ -83,35 +100,50 @@ if [ $? -eq 0 ]; then
response2=$(cat "$response_file2") response2=$(cat "$response_file2")
if $is_starknet; then if $is_starknet; then
latest_block_hash2=$(echo "$response2" | jq -r '.result.block_hash') latest_block_hash2=$(echo "$response2" | jq -r '.result.block_hash')
elif $is_aztec; then
latest_block_hash2=$(echo "$response2" | jq -r '.result.blockHash')
else else
latest_block_hash2=$(echo "$response2" | jq -r '.result.hash') latest_block_hash2=$(echo "$response2" | jq -r '.result.hash')
fi fi
rm "$response_file2" rm "$response_file2"
# Proceed if hashes match (or both empty for Aztec when API omits hash)
if [ "$latest_block_hash" == "$latest_block_hash2" ]; then if [ "$latest_block_hash" == "$latest_block_hash2" ]; then
response_file3=$(mktemp) response_file3=$(mktemp)
status_file3=$(mktemp) status_file3=$(mktemp)
if $is_starknet; then if $is_aztec; then
rpc_method_latest='{"jsonrpc":"2.0","method":"starknet_getBlockWithTxHashes","params":["latest"],"id":1}' # Aztec: node_getBlock("latest") - same single-request pattern as eth/starknet
rpc_method_latest='{"jsonrpc":"2.0","method":"node_getBlock","params":["latest"],"id":1}'
{
$BASEPATH/multicurl.sh -L --ipv4 -m $timeout -s -X POST -w "%{http_code} %{time_total}" -o "$response_file3" -H "Content-Type: application/json" --data "$rpc_method_latest" $ref > "$status_file3"
} &
pid3=$!
response_file4=$(mktemp)
status_file4=$(mktemp)
{
curl -L --ipv4 -m $timeout -s -X POST -w "%{http_code} %{time_total}" -o "$response_file4" -H "Content-Type: application/json" --data "$rpc_method_latest" $RPC_URL > "$status_file4"
} &
pid4=$!
else else
rpc_method_latest='{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["latest", false],"id":1}' if $is_starknet; then
rpc_method_latest='{"jsonrpc":"2.0","method":"starknet_getBlockWithTxHashes","params":["latest"],"id":1}'
else
rpc_method_latest='{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["latest", false],"id":1}'
fi
{
$BASEPATH/multicurl.sh -L --ipv4 -m $timeout -s -X POST -w "%{http_code} %{time_total}" -o "$response_file3" -H "Content-Type: application/json" --data "$rpc_method_latest" $ref > "$status_file3"
} &
pid3=$!
response_file4=$(mktemp)
status_file4=$(mktemp)
{
curl -L --ipv4 -m $timeout -s -X POST -w "%{http_code} %{time_total}" -o "$response_file4" -H "Content-Type: application/json" --data "$rpc_method_latest" $RPC_URL > "$status_file4"
} &
pid4=$!
fi fi
{
$BASEPATH/multicurl.sh -L --ipv4 -m $timeout -s -X POST -w "%{http_code} %{time_total}" -o "$response_file3" -H "Content-Type: application/json" --data "$rpc_method_latest" $ref > "$status_file3"
} &
pid3=$!
response_file4=$(mktemp)
status_file4=$(mktemp)
{
curl -L --ipv4 -m $timeout -s -X POST -w "%{http_code} %{time_total}" -o "$response_file4" -H "Content-Type: application/json" --data "$rpc_method_latest" $RPC_URL > "$status_file4"
} &
pid4=$!
wait $pid3 wait $pid3
curl_code3=$? curl_code3=$?
http_status_code3=$(cat "$status_file3" | cut -d ' ' -f 1) http_status_code3=$(cat "$status_file3" | cut -d ' ' -f 1)
@@ -132,6 +164,8 @@ if [ $? -eq 0 ]; then
if $is_starknet; then if $is_starknet; then
latest_block_timestamp_decimal3=$(echo "$response3" | jq -r '.result.timestamp') latest_block_timestamp_decimal3=$(echo "$response3" | jq -r '.result.timestamp')
elif $is_aztec; then
latest_block_timestamp_decimal3=$(echo "$response3" | jq -r '.result.header.globalVariables.timestamp')
else else
latest_block_timestamp3=$(echo "$response3" | jq -r '.result.timestamp') latest_block_timestamp3=$(echo "$response3" | jq -r '.result.timestamp')
latest_block_timestamp_decimal3=$((16#${latest_block_timestamp3#0x})) latest_block_timestamp_decimal3=$((16#${latest_block_timestamp3#0x}))
@@ -146,6 +180,8 @@ if [ $? -eq 0 ]; then
if $is_starknet; then if $is_starknet; then
latest_block_timestamp_decimal4=$(echo "$response4" | jq -r '.result.timestamp') latest_block_timestamp_decimal4=$(echo "$response4" | jq -r '.result.timestamp')
elif $is_aztec; then
latest_block_timestamp_decimal4=$(echo "$response4" | jq -r '.result.header.globalVariables.timestamp')
else else
latest_block_timestamp4=$(echo "$response4" | jq -r '.result.timestamp') latest_block_timestamp4=$(echo "$response4" | jq -r '.result.timestamp')
latest_block_timestamp_decimal4=$((16#${latest_block_timestamp4#0x})) latest_block_timestamp_decimal4=$((16#${latest_block_timestamp4#0x}))

View File

@@ -1,17 +1,13 @@
BASEPATH="$(dirname "$0")" BASEPATH="$(dirname "$0")"
source $BASEPATH/.env source $BASEPATH/.env
source $BASEPATH/volume-utils.sh
IFS=':' read -ra parts <<< $COMPOSE_FILE IFS=':' read -ra parts <<< $COMPOSE_FILE
used_volumes=() used_volumes=()
for part in "${parts[@]}"; do for part in "${parts[@]}"; do
volumes=$(get_volume_keys "$BASEPATH/$part")
# Convert YAML to JSON using yaml2json
json=$(yaml2json "$BASEPATH/$part")
# Extract volumes using jq
volumes=$(echo "$json" | jq -r '.volumes | keys[]' 2> /dev/null)
# Convert volumes to an array # Convert volumes to an array
prefix="rpc_" prefix="rpc_"

View File

@@ -12,6 +12,7 @@ else
fi fi
dir="$(dirname "$0")" dir="$(dirname "$0")"
source "$dir/volume-utils.sh"
# Configuration # Configuration
BASE_PORT=9000 BASE_PORT=9000
@@ -524,7 +525,7 @@ main() {
sudo sysctl -w net.ipv4.tcp_no_metrics_save=1 sudo sysctl -w net.ipv4.tcp_no_metrics_save=1
echo "Reading volume configuration from $dir/$1.yml..." echo "Reading volume configuration from $dir/$1.yml..."
keys=$(cat "$dir/$1.yml" | yaml2json - | jq '.volumes' | jq -r 'keys[]') keys=$(get_persistent_volume_keys "$dir/$1.yml")
if [[ -z "$keys" ]]; then if [[ -z "$keys" ]]; then
echo "Error: No volumes found in configuration" echo "Error: No volumes found in configuration"

View File

@@ -3,6 +3,7 @@
# Fixed version that handles missing netstat # Fixed version that handles missing netstat
BASEPATH="$(dirname "$0")" BASEPATH="$(dirname "$0")"
source "$BASEPATH/volume-utils.sh"
if [[ -n $2 ]]; then if [[ -n $2 ]]; then
DEST_HOST="$2.stakesquid.eu" DEST_HOST="$2.stakesquid.eu"
@@ -496,7 +497,7 @@ main() {
sudo sysctl -w net.ipv4.tcp_no_metrics_save=1 sudo sysctl -w net.ipv4.tcp_no_metrics_save=1
echo "Reading volume configuration from $1.yml..." echo "Reading volume configuration from $1.yml..."
keys=$(cat /root/rpc/$1.yml | yaml2json - | jq '.volumes' | jq -r 'keys[]') keys=$(get_persistent_volume_keys "/root/rpc/$1.yml")
if [[ -z "$keys" ]]; then if [[ -z "$keys" ]]; then
echo "Error: No volumes found in configuration" echo "Error: No volumes found in configuration"

View File

@@ -201,8 +201,8 @@
"client": "nitro", "client": "nitro",
"compose_file": "arb/nitro/arbitrum-nova-nitro-archive-leveldb-hash", "compose_file": "arb/nitro/arbitrum-nova-nitro-archive-leveldb-hash",
"features": [ "features": [
"hash", "path",
"leveldb" "pebble"
], ],
"network": "arbitrum", "network": "arbitrum",
"node": null, "node": null,
@@ -213,6 +213,23 @@
"arbitrum-nova-nitro-archive-leveldb-hash" "arbitrum-nova-nitro-archive-leveldb-hash"
] ]
}, },
{
"chain": "nova",
"client": "nitro",
"compose_file": "arb/nitro/arbitrum-nova-nitro-archive-pebble-path",
"features": [
"path",
"pebble"
],
"network": "arbitrum",
"node": null,
"relay": null,
"stack": "arb",
"type": "archive",
"volumes": [
"arbitrum-nova-nitro-archive-pebble-path"
]
},
{ {
"chain": "nova", "chain": "nova",
"client": "nitro", "client": "nitro",
@@ -283,6 +300,23 @@
"arbitrum-one-nitro-archive-pebble-hash" "arbitrum-one-nitro-archive-pebble-hash"
] ]
}, },
{
"chain": "one",
"client": "nitro",
"compose_file": "arb/nitro/arbitrum-one-nitro-archive-pebble-path",
"features": [
"hash",
"pebble"
],
"network": "arbitrum",
"node": null,
"relay": null,
"stack": "arb",
"type": "archive",
"volumes": [
"arbitrum-one-nitro-archive-pebble-path"
]
},
{ {
"chain": "one", "chain": "one",
"client": "nitro", "client": "nitro",
@@ -539,13 +573,47 @@
"plume-mainnet-nitro-archive-leveldb-hash" "plume-mainnet-nitro-archive-leveldb-hash"
] ]
}, },
{
"chain": "mainnet",
"client": "nitro",
"compose_file": "arb/nitro/plume-mainnet-nitro-archive-pebble-hash",
"features": [
"hash",
"leveldb"
],
"network": "plume",
"node": null,
"relay": null,
"stack": "arb",
"type": "archive",
"volumes": [
"plume-mainnet-nitro-archive-pebble-hash"
]
},
{
"chain": "mainnet",
"client": "nitro",
"compose_file": "arb/nitro/plume-mainnet-nitro-pruned-leveldb-hash",
"features": [
"hash",
"leveldb"
],
"network": "plume",
"node": null,
"relay": null,
"stack": "arb",
"type": "pruned",
"volumes": [
"plume-mainnet-nitro-pruned-leveldb-hash"
]
},
{ {
"chain": "mainnet", "chain": "mainnet",
"client": "nitro", "client": "nitro",
"compose_file": "arb/nitro/plume-mainnet-nitro-pruned-pebble-path", "compose_file": "arb/nitro/plume-mainnet-nitro-pruned-pebble-path",
"features": [ "features": [
"path", "hash",
"pebble" "leveldb"
], ],
"network": "plume", "network": "plume",
"node": null, "node": null,
@@ -573,13 +641,47 @@
"plume-testnet-nitro-archive-leveldb-hash" "plume-testnet-nitro-archive-leveldb-hash"
] ]
}, },
{
"chain": "testnet",
"client": "nitro",
"compose_file": "arb/nitro/plume-testnet-nitro-archive-pebble-hash",
"features": [
"hash",
"leveldb"
],
"network": "plume",
"node": null,
"relay": null,
"stack": "arb",
"type": "archive",
"volumes": [
"plume-testnet-nitro-archive-pebble-hash"
]
},
{
"chain": "testnet",
"client": "nitro",
"compose_file": "arb/nitro/plume-testnet-nitro-pruned-leveldb-hash",
"features": [
"hash",
"leveldb"
],
"network": "plume",
"node": null,
"relay": null,
"stack": "arb",
"type": "pruned",
"volumes": [
"plume-testnet-nitro-pruned-leveldb-hash"
]
},
{ {
"chain": "testnet", "chain": "testnet",
"client": "nitro", "client": "nitro",
"compose_file": "arb/nitro/plume-testnet-nitro-pruned-pebble-path", "compose_file": "arb/nitro/plume-testnet-nitro-pruned-pebble-path",
"features": [ "features": [
"path", "hash",
"pebble" "leveldb"
], ],
"network": "plume", "network": "plume",
"node": null, "node": null,
@@ -785,6 +887,34 @@
"avalanche-mainnet-go-pruned-pebbledb" "avalanche-mainnet-go-pruned-pebbledb"
] ]
}, },
{
"chain": "devnet",
"client": "aztec",
"compose_file": "aztec/aztec/aztec-devnet-aztec-pruned",
"features": [],
"network": "aztec",
"node": null,
"relay": null,
"stack": null,
"type": "pruned",
"volumes": [
"aztec-devnet-aztec-pruned"
]
},
{
"chain": "testnet",
"client": "aztec",
"compose_file": "aztec/aztec/aztec-testnet-aztec-pruned",
"features": [],
"network": "aztec",
"node": null,
"relay": null,
"stack": null,
"type": "pruned",
"volumes": [
"aztec-testnet-aztec-pruned"
]
},
{ {
"chain": "bepolia", "chain": "bepolia",
"client": "geth", "client": "geth",
@@ -1006,12 +1136,29 @@
"bsc-chapel-bsc-pruned-pebble-path" "bsc-chapel-bsc-pruned-pebble-path"
] ]
}, },
{
"chain": "mainnet",
"client": "bsc",
"compose_file": "bsc/bsc/bsc-mainnet-bsc-minimal-pebble-hash",
"features": [
"hash",
"pebble"
],
"network": "bsc",
"node": null,
"relay": null,
"stack": null,
"type": "minimal",
"volumes": [
"bsc-mainnet-bsc-minimal-pebble-hash"
]
},
{ {
"chain": "mainnet", "chain": "mainnet",
"client": "bsc", "client": "bsc",
"compose_file": "bsc/bsc/bsc-mainnet-bsc-minimal-pebble-path", "compose_file": "bsc/bsc/bsc-mainnet-bsc-minimal-pebble-path",
"features": [ "features": [
"path", "hash",
"pebble" "pebble"
], ],
"network": "bsc", "network": "bsc",
@@ -2966,6 +3113,40 @@
"hyperliquid-testnet-visor-pruned" "hyperliquid-testnet-visor-pruned"
] ]
}, },
{
"chain": "zkevm-mainnet",
"client": "geth",
"compose_file": "immutable-zkevm/geth/immutable-zkevm-mainnet-geth-pruned-pebble-path",
"features": [
"path",
"pebble"
],
"network": "immutable",
"node": null,
"relay": null,
"stack": null,
"type": "pruned",
"volumes": [
"immutable-zkevm-mainnet-geth-pruned-pebble-path"
]
},
{
"chain": "zkevm-testnet",
"client": "geth",
"compose_file": "immutable-zkevm/geth/immutable-zkevm-testnet-geth-pruned-pebble-path",
"features": [
"path",
"pebble"
],
"network": "immutable",
"node": null,
"relay": null,
"stack": null,
"type": "pruned",
"volumes": [
"immutable-zkevm-testnet-geth-pruned-pebble-path"
]
},
{ {
"chain": "mainnet", "chain": "mainnet",
"client": "external-node", "client": "external-node",
@@ -4452,6 +4633,57 @@
"hashkeychain-mainnet-op-geth-pruned-pebble-path" "hashkeychain-mainnet-op-geth-pruned-pebble-path"
] ]
}, },
{
"chain": "testnet",
"client": "geth",
"compose_file": "op/geth/hashkeychain-testnet-op-geth-archive-leveldb-hash",
"features": [
"hash",
"leveldb"
],
"network": "hashkeychain",
"node": "node",
"relay": null,
"stack": "op",
"type": "archive",
"volumes": [
"hashkeychain-testnet-op-geth-archive-leveldb-hash"
]
},
{
"chain": "testnet",
"client": "geth",
"compose_file": "op/geth/hashkeychain-testnet-op-geth-pruned-pebble-hash",
"features": [
"hash",
"pebble"
],
"network": "hashkeychain",
"node": "node",
"relay": null,
"stack": "op",
"type": "pruned",
"volumes": [
"hashkeychain-testnet-op-geth-pruned-pebble-hash"
]
},
{
"chain": "testnet",
"client": "geth",
"compose_file": "op/geth/hashkeychain-testnet-op-geth-pruned-pebble-path",
"features": [
"hash",
"pebble"
],
"network": "hashkeychain",
"node": "node",
"relay": null,
"stack": "op",
"type": "pruned",
"volumes": [
"hashkeychain-testnet-op-geth-pruned-pebble-path"
]
},
{ {
"chain": "mainnet", "chain": "mainnet",
"client": "geth", "client": "geth",
@@ -4537,6 +4769,74 @@
"ink-sepolia-op-geth-pruned-pebble-path" "ink-sepolia-op-geth-pruned-pebble-path"
] ]
}, },
{
"chain": "mainnet",
"client": "geth",
"compose_file": "op/geth/katana-mainnet-op-geth-archive-leveldb-hash",
"features": [
"hash",
"leveldb"
],
"network": "katana",
"node": "node",
"relay": null,
"stack": "op",
"type": "archive",
"volumes": [
"katana-mainnet-op-geth-archive-leveldb-hash"
]
},
{
"chain": "mainnet",
"client": "geth",
"compose_file": "op/geth/katana-mainnet-op-geth-pruned-pebble-path",
"features": [
"path",
"pebble"
],
"network": "katana",
"node": "node",
"relay": null,
"stack": "op",
"type": "pruned",
"volumes": [
"katana-mainnet-op-geth-pruned-pebble-path"
]
},
{
"chain": "testnet",
"client": "geth",
"compose_file": "op/geth/katana-testnet-op-geth-archive-leveldb-hash",
"features": [
"hash",
"leveldb"
],
"network": "katana",
"node": "node",
"relay": null,
"stack": "op",
"type": "archive",
"volumes": [
"katana-testnet-op-geth-archive-leveldb-hash"
]
},
{
"chain": "testnet",
"client": "geth",
"compose_file": "op/geth/katana-testnet-op-geth-pruned-pebble-path",
"features": [
"path",
"pebble"
],
"network": "katana",
"node": "node",
"relay": null,
"stack": "op",
"type": "pruned",
"volumes": [
"katana-testnet-op-geth-pruned-pebble-path"
]
},
{ {
"chain": "mainnet", "chain": "mainnet",
"client": "geth", "client": "geth",
@@ -5826,6 +6126,102 @@
"base-sepolia-op-reth-pruned-trace" "base-sepolia-op-reth-pruned-trace"
] ]
}, },
{
"chain": "sepolia",
"client": "reth",
"compose_file": "op/reth/bob-sepolia-op-reth-archive-trace",
"features": [
"trace"
],
"network": "bob",
"node": "node",
"relay": null,
"stack": "op",
"type": "archive",
"volumes": [
"bob-sepolia-op-reth-archive-trace"
]
},
{
"chain": "sepolia",
"client": "reth",
"compose_file": "op/reth/bob-sepolia-op-reth-minimal-trace",
"features": [
"trace"
],
"network": "bob",
"node": "node",
"relay": null,
"stack": "op",
"type": "minimal",
"volumes": [
"bob-sepolia-op-reth-minimal-trace"
]
},
{
"chain": "sepolia",
"client": "reth",
"compose_file": "op/reth/bob-sepolia-op-reth-pruned-trace",
"features": [
"trace"
],
"network": "bob",
"node": "node",
"relay": null,
"stack": "op",
"type": "pruned",
"volumes": [
"bob-sepolia-op-reth-pruned-trace"
]
},
{
"chain": "sepolia",
"client": "reth",
"compose_file": "op/reth/ink-sepolia-op-reth-archive-trace",
"features": [
"trace"
],
"network": "ink",
"node": "node",
"relay": null,
"stack": "op",
"type": "archive",
"volumes": [
"ink-sepolia-op-reth-archive-trace"
]
},
{
"chain": "sepolia",
"client": "reth",
"compose_file": "op/reth/ink-sepolia-op-reth-minimal-trace",
"features": [
"trace"
],
"network": "ink",
"node": "node",
"relay": null,
"stack": "op",
"type": "minimal",
"volumes": [
"ink-sepolia-op-reth-minimal-trace"
]
},
{
"chain": "sepolia",
"client": "reth",
"compose_file": "op/reth/ink-sepolia-op-reth-pruned-trace",
"features": [
"trace"
],
"network": "ink",
"node": "node",
"relay": null,
"stack": "op",
"type": "pruned",
"volumes": [
"ink-sepolia-op-reth-pruned-trace"
]
},
{ {
"chain": "mainnet", "chain": "mainnet",
"client": "reth", "client": "reth",
@@ -6018,6 +6414,135 @@
"soneium-minato-sepolia-op-reth-pruned-trace" "soneium-minato-sepolia-op-reth-pruned-trace"
] ]
}, },
{
"chain": "sepolia",
"client": "reth",
"compose_file": "op/reth/worldchain-sepolia-op-reth-archive-trace",
"features": [
"trace"
],
"network": "worldchain",
"node": "node",
"relay": null,
"stack": "op",
"type": "archive",
"volumes": [
"worldchain-sepolia-op-reth-archive-trace"
]
},
{
"chain": "sepolia",
"client": "reth",
"compose_file": "op/reth/worldchain-sepolia-op-reth-minimal-trace",
"features": [
"trace"
],
"network": "worldchain",
"node": "node",
"relay": null,
"stack": "op",
"type": "minimal",
"volumes": [
"worldchain-sepolia-op-reth-minimal-trace"
]
},
{
"chain": "sepolia",
"client": "reth",
"compose_file": "op/reth/worldchain-sepolia-op-reth-pruned-trace",
"features": [
"trace"
],
"network": "worldchain",
"node": "node",
"relay": null,
"stack": "op",
"type": "pruned",
"volumes": [
"worldchain-sepolia-op-reth-pruned-trace"
]
},
{
"chain": "mainnet",
"client": "reth",
"compose_file": "op/reth/xlayer-mainnet-op-reth-archive-trace",
"features": [
"trace"
],
"network": "xlayer",
"node": "node",
"relay": null,
"stack": "op",
"type": "archive",
"volumes": [
"xlayer-mainnet-op-reth-archive-trace"
]
},
{
"chain": "mainnet",
"client": "reth",
"compose_file": "op/reth/xlayer-mainnet-op-reth-pruned-trace",
"features": [
"trace"
],
"network": "xlayer",
"node": "node",
"relay": null,
"stack": "op",
"type": "pruned",
"volumes": [
"xlayer-mainnet-op-reth-pruned-trace"
]
},
{
"chain": "testnet",
"client": "reth",
"compose_file": "op/reth/xlayer-testnet-op-reth-archive-trace",
"features": [
"trace"
],
"network": "xlayer",
"node": "node",
"relay": null,
"stack": "op",
"type": "archive",
"volumes": [
"xlayer-testnet-op-reth-archive-trace"
]
},
{
"chain": "testnet",
"client": "reth",
"compose_file": "op/reth/xlayer-testnet-op-reth-pruned-trace",
"features": [
"trace"
],
"network": "xlayer",
"node": "node",
"relay": null,
"stack": "op",
"type": "pruned",
"volumes": [
"xlayer-testnet-op-reth-pruned-trace"
]
},
{
"chain": "amoy",
"client": "bor",
"compose_file": "polygon/bor/polygon-amoy-bor-archive-pebble-path",
"features": [
"path",
"pebble"
],
"network": "polygon",
"node": null,
"relay": null,
"stack": null,
"type": "archive",
"volumes": [
"polygon-amoy-bor-archive-pebble-path"
]
},
{ {
"chain": "amoy", "chain": "amoy",
"client": "bor", "client": "bor",
@@ -6035,6 +6560,23 @@
"polygon-amoy-bor-pruned-pebble-path" "polygon-amoy-bor-pruned-pebble-path"
] ]
}, },
{
"chain": "mainnet",
"client": "bor",
"compose_file": "polygon/bor/polygon-mainnet-bor-archive-pebble-path",
"features": [
"path",
"pebble"
],
"network": "polygon",
"node": null,
"relay": null,
"stack": null,
"type": "archive",
"volumes": [
"polygon-mainnet-bor-archive-pebble-path"
]
},
{ {
"chain": "mainnet", "chain": "mainnet",
"client": "bor", "client": "bor",
@@ -6166,6 +6708,70 @@
"polygon-mainnet-erigon3-pruned-trace" "polygon-mainnet-erigon3-pruned-trace"
] ]
}, },
{
"chain": "zkevm-cardona",
"client": "cdk-erigon",
"compose_file": "polygon-zkevm/cdk-erigon/polygon-zkevm-cardona-cdk-erigon-archive-trace",
"features": [
"trace"
],
"network": "polygon",
"node": null,
"relay": null,
"stack": null,
"type": "archive",
"volumes": [
"polygon-zkevm-cardona-cdk-erigon-archive-trace"
]
},
{
"chain": "zkevm-cardona",
"client": "cdk-erigon",
"compose_file": "polygon-zkevm/cdk-erigon/polygon-zkevm-cardona-cdk-erigon-pruned-trace",
"features": [
"trace"
],
"network": "polygon",
"node": null,
"relay": null,
"stack": null,
"type": "pruned",
"volumes": [
"polygon-zkevm-cardona-cdk-erigon-pruned-trace"
]
},
{
"chain": "zkevm-mainnet",
"client": "cdk-erigon",
"compose_file": "polygon-zkevm/cdk-erigon/polygon-zkevm-mainnet-cdk-erigon-archive-trace",
"features": [
"trace"
],
"network": "polygon",
"node": null,
"relay": null,
"stack": null,
"type": "archive",
"volumes": [
"polygon-zkevm-mainnet-cdk-erigon-archive-trace"
]
},
{
"chain": "zkevm-mainnet",
"client": "cdk-erigon",
"compose_file": "polygon-zkevm/cdk-erigon/polygon-zkevm-mainnet-cdk-erigon-pruned-trace",
"features": [
"trace"
],
"network": "polygon",
"node": null,
"relay": null,
"stack": null,
"type": "pruned",
"volumes": [
"polygon-zkevm-mainnet-cdk-erigon-pruned-trace"
]
},
{ {
"chain": "mainnet", "chain": "mainnet",
"client": "rippled", "client": "rippled",
@@ -6751,7 +7357,7 @@
"pebble" "pebble"
], ],
"network": "taiko", "network": "taiko",
"node": "driver", "node": null,
"relay": null, "relay": null,
"stack": null, "stack": null,
"type": "pruned", "type": "pruned",
@@ -6802,7 +7408,7 @@
"pebble" "pebble"
], ],
"network": "taiko", "network": "taiko",
"node": "driver", "node": null,
"relay": null, "relay": null,
"stack": null, "stack": null,
"type": "pruned", "type": "pruned",
@@ -6853,7 +7459,7 @@
"pebble" "pebble"
], ],
"network": "taiko", "network": "taiko",
"node": "driver", "node": null,
"relay": null, "relay": null,
"stack": null, "stack": null,
"type": "pruned", "type": "pruned",
@@ -6963,6 +7569,140 @@
"taiko-hoodi-nethermind-pruned-rocksdb-trace" "taiko-hoodi-nethermind-pruned-rocksdb-trace"
] ]
}, },
{
"chain": "alethia",
"client": "reth",
"compose_file": "taiko/reth/taiko-alethia-reth-archive-trace",
"features": [
"trace"
],
"network": "taiko",
"node": "driver",
"relay": null,
"stack": null,
"type": "archive",
"volumes": [
"taiko-alethia-reth-archive-trace"
]
},
{
"chain": "alethia",
"client": "reth",
"compose_file": "taiko/reth/taiko-alethia-reth-pruned-trace",
"features": [
"trace"
],
"network": "taiko",
"node": "driver",
"relay": null,
"stack": null,
"type": "pruned",
"volumes": [
"taiko-alethia-reth-pruned-trace"
]
},
{
"chain": "mainnet",
"client": "reth",
"compose_file": "tempo/reth/tempo-mainnet-reth-archive-trace",
"features": [
"trace"
],
"network": "tempo",
"node": null,
"relay": null,
"stack": null,
"type": "archive",
"volumes": [
"tempo-mainnet-reth-archive-trace",
"tempo-mainnet-reth-secrets"
]
},
{
"chain": "mainnet",
"client": "reth",
"compose_file": "tempo/reth/tempo-mainnet-reth-pruned-trace",
"features": [
"trace"
],
"network": "tempo",
"node": null,
"relay": null,
"stack": null,
"type": "pruned",
"volumes": [
"tempo-mainnet-reth-pruned-secrets",
"tempo-mainnet-reth-pruned-trace"
]
},
{
"chain": "moderato",
"client": "reth",
"compose_file": "tempo/reth/tempo-moderato-reth-archive-trace",
"features": [
"trace"
],
"network": "tempo",
"node": null,
"relay": null,
"stack": null,
"type": "archive",
"volumes": [
"tempo-moderato-reth-archive-trace",
"tempo-moderato-reth-secrets"
]
},
{
"chain": "moderato",
"client": "reth",
"compose_file": "tempo/reth/tempo-moderato-reth-pruned-trace",
"features": [
"trace"
],
"network": "tempo",
"node": null,
"relay": null,
"stack": null,
"type": "pruned",
"volumes": [
"tempo-moderato-reth-pruned-secrets",
"tempo-moderato-reth-pruned-trace"
]
},
{
"chain": "testnet",
"client": "reth",
"compose_file": "tempo/reth/tempo-testnet-reth-archive-trace",
"features": [
"trace"
],
"network": "tempo",
"node": null,
"relay": null,
"stack": null,
"type": "archive",
"volumes": [
"tempo-testnet-reth-archive-trace",
"tempo-testnet-reth-secrets"
]
},
{
"chain": "testnet",
"client": "reth",
"compose_file": "tempo/reth/tempo-testnet-reth-pruned-trace",
"features": [
"trace"
],
"network": "tempo",
"node": null,
"relay": null,
"stack": null,
"type": "pruned",
"volumes": [
"tempo-testnet-reth-pruned-secrets",
"tempo-testnet-reth-pruned-trace"
]
},
{ {
"chain": "venus", "chain": "venus",
"client": "thunder", "client": "thunder",

View File

@@ -70,7 +70,7 @@ services:
- --maxpeers=50 - --maxpeers=50
- --nat=extip:${IP} - --nat=extip:${IP}
- --port=12384 - --port=12384
- --rpc.gascap=600000000 - --rpc.gascap=0
- --rpc.txfeecap=0 - --rpc.txfeecap=0
- --state.scheme=path - --state.scheme=path
- --syncmode=snap - --syncmode=snap

View File

@@ -70,7 +70,7 @@ services:
- --maxpeers=50 - --maxpeers=50
- --nat=extip:${IP} - --nat=extip:${IP}
- --port=14234 - --port=14234
- --rpc.gascap=600000000 - --rpc.gascap=0
- --rpc.txfeecap=0 - --rpc.txfeecap=0
- --state.scheme=hash - --state.scheme=hash
- --syncmode=full - --syncmode=full

View File

@@ -70,7 +70,7 @@ services:
- --maxpeers=50 - --maxpeers=50
- --nat=extip:${IP} - --nat=extip:${IP}
- --port=11169 - --port=11169
- --rpc.gascap=600000000 - --rpc.gascap=0
- --rpc.txfeecap=0 - --rpc.txfeecap=0
- --state.scheme=hash - --state.scheme=hash
- --syncmode=full - --syncmode=full

View File

@@ -70,7 +70,7 @@ services:
- --nat=extip:${IP} - --nat=extip:${IP}
- --pigeon - --pigeon
- --port=14478 - --port=14478
- --rpc.gascap=600000000 - --rpc.gascap=0
- --rpc.txfeecap=0 - --rpc.txfeecap=0
- --state.scheme=path - --state.scheme=path
- --syncmode=snap - --syncmode=snap

View File

@@ -33,7 +33,7 @@ x-logging-defaults: &logging-defaults
services: services:
cronos-zkevm-mainnet-archive: cronos-zkevm-mainnet-archive:
image: ${CRONOS_ZKEVM_EXTERNAL_NODE_IMAGE:-ghcr.io/cronos-labs/external-node}:${CRONOS_ZKEVM_MAINNET_EXTERNAL_NODE_VERSION:-v29.6.0} image: ${CRONOS_ZKEVM_EXTERNAL_NODE_IMAGE:-ghcr.io/cronos-labs/external-node}:${CRONOS_ZKEVM_MAINNET_EXTERNAL_NODE_VERSION:-v29.14.0}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle

View File

@@ -33,7 +33,7 @@ x-logging-defaults: &logging-defaults
services: services:
cronos-zkevm-mainnet: cronos-zkevm-mainnet:
image: ${CRONOS_ZKEVM_EXTERNAL_NODE_IMAGE:-ghcr.io/cronos-labs/external-node}:${CRONOS_ZKEVM_MAINNET_EXTERNAL_NODE_VERSION:-v29.6.0} image: ${CRONOS_ZKEVM_EXTERNAL_NODE_IMAGE:-ghcr.io/cronos-labs/external-node}:${CRONOS_ZKEVM_MAINNET_EXTERNAL_NODE_VERSION:-v29.14.0}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle

View File

@@ -33,7 +33,7 @@ x-logging-defaults: &logging-defaults
services: services:
cronos-zkevm-testnet-archive: cronos-zkevm-testnet-archive:
image: ${CRONOS_ZKEVM_EXTERNAL_NODE_IMAGE:-ghcr.io/cronos-labs/external-node}:${CRONOS_ZKEVM_TESTNET_EXTERNAL_NODE_VERSION:-v29.6.0} image: ${CRONOS_ZKEVM_EXTERNAL_NODE_IMAGE:-ghcr.io/cronos-labs/external-node}:${CRONOS_ZKEVM_TESTNET_EXTERNAL_NODE_VERSION:-v29.14.0}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle

View File

@@ -33,7 +33,7 @@ x-logging-defaults: &logging-defaults
services: services:
cronos-zkevm-testnet: cronos-zkevm-testnet:
image: ${CRONOS_ZKEVM_EXTERNAL_NODE_IMAGE:-ghcr.io/cronos-labs/external-node}:${CRONOS_ZKEVM_TESTNET_EXTERNAL_NODE_VERSION:-v29.6.0} image: ${CRONOS_ZKEVM_EXTERNAL_NODE_IMAGE:-ghcr.io/cronos-labs/external-node}:${CRONOS_ZKEVM_TESTNET_EXTERNAL_NODE_VERSION:-v29.14.0}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle

View File

@@ -14,6 +14,7 @@ fi
CONFIG_FILE="$1.yml" CONFIG_FILE="$1.yml"
GLOBS_FILE="${2:-node-key-globs.txt}" GLOBS_FILE="${2:-node-key-globs.txt}"
SCRIPT_DIR="$(dirname "$0")" SCRIPT_DIR="$(dirname "$0")"
source "$SCRIPT_DIR/volume-utils.sh"
# Try to find config file in multiple locations # Try to find config file in multiple locations
if [[ -f "$SCRIPT_DIR/$CONFIG_FILE" ]]; then if [[ -f "$SCRIPT_DIR/$CONFIG_FILE" ]]; then
@@ -42,7 +43,7 @@ fi
# Read volume keys from config file # Read volume keys from config file
echo "Reading volume configuration from $CONFIG_PATH..." echo "Reading volume configuration from $CONFIG_PATH..."
keys=$(cat "$CONFIG_PATH" | yaml2json - | jq '.volumes' | jq -r 'keys[]') keys=$(get_persistent_volume_keys "$CONFIG_PATH")
if [[ -z "$keys" ]]; then if [[ -z "$keys" ]]; then
echo "Error: No volumes found in configuration" echo "Error: No volumes found in configuration"

View File

@@ -1,6 +1,6 @@
services: services:
dshackle-free: dshackle-free:
image: drpcorg/dshackle:0.73.0 image: drpcorg/dshackle:0.79.5
restart: unless-stopped restart: unless-stopped
volumes: volumes:
- ./free_configs:/etc/dshackle - ./free_configs:/etc/dshackle

View File

@@ -1,6 +1,6 @@
services: services:
dshackle: dshackle:
image: drpcorg/dshackle:0.73.0 image: drpcorg/dshackle:0.79.5
restart: unless-stopped restart: unless-stopped
volumes: volumes:
- ./main_configs:/etc/dshackle - ./main_configs:/etc/dshackle

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
ethereum-classic-besu: ethereum-classic-besu:
image: ${ETHEREUM_BESU_IMAGE:-hyperledger/besu}:${ETHEREUM_CLASSIC_BESU_VERSION:-25.12.0} image: ${ETHEREUM_BESU_IMAGE:-hyperledger/besu}:${ETHEREUM_CLASSIC_BESU_VERSION:-26.5.0}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -56,7 +56,6 @@ services:
- --Xbonsai-full-flat-db-enabled=true - --Xbonsai-full-flat-db-enabled=true
- --data-path=/opt/besu/database - --data-path=/opt/besu/database
- --data-storage-format=BONSAI - --data-storage-format=BONSAI
- --fast-sync-min-peers=1
- --host-allowlist=* - --host-allowlist=*
- --metrics-enabled=true - --metrics-enabled=true
- --metrics-host=0.0.0.0 - --metrics-host=0.0.0.0
@@ -73,6 +72,7 @@ services:
- --rpc-ws-enabled=true - --rpc-ws-enabled=true
- --rpc-ws-host=0.0.0.0 - --rpc-ws-host=0.0.0.0
- --rpc-ws-port=8546 - --rpc-ws-port=8546
- --sync-min-peers=1
- --sync-mode=SNAP - --sync-mode=SNAP
restart: unless-stopped restart: unless-stopped
stop_grace_period: 5m stop_grace_period: 5m
@@ -81,6 +81,8 @@ services:
volumes: volumes:
- ${ETHEREUM_CLASSIC_BESU_PRUNED_BONSAI_DATA:-ethereum-classic-besu-pruned-bonsai}:/opt/besu/database - ${ETHEREUM_CLASSIC_BESU_PRUNED_BONSAI_DATA:-ethereum-classic-besu-pruned-bonsai}:/opt/besu/database
- /slowdisk:/slowdisk - /slowdisk:/slowdisk
tmpfs:
- /tmp:size=512M,mode=1777,exec
logging: *logging-defaults logging: *logging-defaults
labels: labels:
- prometheus-scrape.enabled=true - prometheus-scrape.enabled=true

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
ethereum-mainnet-besu: ethereum-mainnet-besu:
image: ${ETHEREUM_BESU_IMAGE:-hyperledger/besu}:${ETHEREUM_MAINNET_BESU_VERSION:-25.12.0} image: ${ETHEREUM_BESU_IMAGE:-hyperledger/besu}:${ETHEREUM_MAINNET_BESU_VERSION:-26.5.0}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -57,10 +57,10 @@ services:
- --data-path=/opt/besu/database - --data-path=/opt/besu/database
- --data-storage-format=BONSAI - --data-storage-format=BONSAI
- --engine-host-allowlist=* - --engine-host-allowlist=*
- --engine-jwt-disabled=false
- --engine-jwt-secret=/jwtsecret - --engine-jwt-secret=/jwtsecret
- --engine-rpc-enabled=true - --engine-rpc-enabled=true
- --engine-rpc-port=8551 - --engine-rpc-port=8551
- --fast-sync-min-peers=1
- --host-allowlist=* - --host-allowlist=*
- --metrics-enabled=true - --metrics-enabled=true
- --metrics-host=0.0.0.0 - --metrics-host=0.0.0.0
@@ -77,6 +77,7 @@ services:
- --rpc-ws-enabled=true - --rpc-ws-enabled=true
- --rpc-ws-host=0.0.0.0 - --rpc-ws-host=0.0.0.0
- --rpc-ws-port=8546 - --rpc-ws-port=8546
- --sync-min-peers=1
- --sync-mode=SNAP - --sync-mode=SNAP
restart: unless-stopped restart: unless-stopped
stop_grace_period: 5m stop_grace_period: 5m
@@ -86,6 +87,8 @@ services:
- ${ETHEREUM_MAINNET_BESU_PRUNED_BONSAI_DATA:-ethereum-mainnet-besu-pruned-bonsai}:/opt/besu/database - ${ETHEREUM_MAINNET_BESU_PRUNED_BONSAI_DATA:-ethereum-mainnet-besu-pruned-bonsai}:/opt/besu/database
- .jwtsecret:/jwtsecret:ro - .jwtsecret:/jwtsecret:ro
- /slowdisk:/slowdisk - /slowdisk:/slowdisk
tmpfs:
- /tmp:size=512M,mode=1777,exec
logging: *logging-defaults logging: *logging-defaults
labels: labels:
- prometheus-scrape.enabled=true - prometheus-scrape.enabled=true
@@ -111,7 +114,7 @@ services:
- traefik.http.routers.ethereum-mainnet-besu-pruned-bonsai-ws.middlewares=ethereum-mainnet-besu-pruned-bonsai-stripprefix, ipallowlist - traefik.http.routers.ethereum-mainnet-besu-pruned-bonsai-ws.middlewares=ethereum-mainnet-besu-pruned-bonsai-stripprefix, ipallowlist
ethereum-mainnet-besu-node: ethereum-mainnet-besu-node:
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_MAINNET_NIMBUS_VERSION:-multiarch-v25.12.0} image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_MAINNET_NIMBUS_VERSION:-multiarch-v26.5.0}
user: root user: root
ports: ports:
- 18205:18205 - 18205:18205

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
ethereum-hoodi-erigon3-archive: ethereum-hoodi-erigon3-archive:
image: ${ETHEREUM_ERIGON3_IMAGE:-erigontech/erigon}:${ETHEREUM_HOODI_ERIGON3_VERSION:-v3.3.3} image: ${ETHEREUM_ERIGON3_IMAGE:-erigontech/erigon}:${ETHEREUM_HOODI_ERIGON3_VERSION:-v3.4.2}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -70,6 +70,7 @@ services:
- --caplin.discovery.addr=0.0.0.0 - --caplin.discovery.addr=0.0.0.0
- --caplin.discovery.port=19715 - --caplin.discovery.port=19715
- --caplin.discovery.tcpport=19715 - --caplin.discovery.tcpport=19715
- --caplin.nat=extip:${IP}
- --chain=hoodi - --chain=hoodi
- --datadir=/root/.local/share/erigon - --datadir=/root/.local/share/erigon
- --http - --http

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
ethereum-hoodi-erigon3-minimal: ethereum-hoodi-erigon3-minimal:
image: ${ETHEREUM_ERIGON3_IMAGE:-erigontech/erigon}:${ETHEREUM_HOODI_ERIGON3_VERSION:-v3.3.3} image: ${ETHEREUM_ERIGON3_IMAGE:-erigontech/erigon}:${ETHEREUM_HOODI_ERIGON3_VERSION:-v3.4.2}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -69,6 +69,7 @@ services:
- --caplin.discovery.addr=0.0.0.0 - --caplin.discovery.addr=0.0.0.0
- --caplin.discovery.port=17832 - --caplin.discovery.port=17832
- --caplin.discovery.tcpport=17832 - --caplin.discovery.tcpport=17832
- --caplin.nat=extip:${IP}
- --chain=hoodi - --chain=hoodi
- --datadir=/root/.local/share/erigon - --datadir=/root/.local/share/erigon
- --http - --http

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
ethereum-hoodi-erigon3: ethereum-hoodi-erigon3:
image: ${ETHEREUM_ERIGON3_IMAGE:-erigontech/erigon}:${ETHEREUM_HOODI_ERIGON3_VERSION:-v3.3.3} image: ${ETHEREUM_ERIGON3_IMAGE:-erigontech/erigon}:${ETHEREUM_HOODI_ERIGON3_VERSION:-v3.4.2}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -69,6 +69,7 @@ services:
- --caplin.discovery.addr=0.0.0.0 - --caplin.discovery.addr=0.0.0.0
- --caplin.discovery.port=16857 - --caplin.discovery.port=16857
- --caplin.discovery.tcpport=16857 - --caplin.discovery.tcpport=16857
- --caplin.nat=extip:${IP}
- --chain=hoodi - --chain=hoodi
- --datadir=/root/.local/share/erigon - --datadir=/root/.local/share/erigon
- --http - --http

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
ethereum-mainnet-erigon3-archive: ethereum-mainnet-erigon3-archive:
image: ${ETHEREUM_ERIGON3_IMAGE:-erigontech/erigon}:${ETHEREUM_MAINNET_ERIGON3_VERSION:-v3.3.3} image: ${ETHEREUM_ERIGON3_IMAGE:-erigontech/erigon}:${ETHEREUM_MAINNET_ERIGON3_VERSION:-v3.4.2}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -70,6 +70,7 @@ services:
- --caplin.discovery.addr=0.0.0.0 - --caplin.discovery.addr=0.0.0.0
- --caplin.discovery.port=16675 - --caplin.discovery.port=16675
- --caplin.discovery.tcpport=16675 - --caplin.discovery.tcpport=16675
- --caplin.nat=extip:${IP}
- --chain=mainnet - --chain=mainnet
- --datadir=/root/.local/share/erigon - --datadir=/root/.local/share/erigon
- --http - --http

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
ethereum-mainnet-erigon3-minimal: ethereum-mainnet-erigon3-minimal:
image: ${ETHEREUM_ERIGON3_IMAGE:-erigontech/erigon}:${ETHEREUM_MAINNET_ERIGON3_VERSION:-v3.3.3} image: ${ETHEREUM_ERIGON3_IMAGE:-erigontech/erigon}:${ETHEREUM_MAINNET_ERIGON3_VERSION:-v3.4.2}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -69,6 +69,7 @@ services:
- --caplin.discovery.addr=0.0.0.0 - --caplin.discovery.addr=0.0.0.0
- --caplin.discovery.port=19614 - --caplin.discovery.port=19614
- --caplin.discovery.tcpport=19614 - --caplin.discovery.tcpport=19614
- --caplin.nat=extip:${IP}
- --chain=mainnet - --chain=mainnet
- --datadir=/root/.local/share/erigon - --datadir=/root/.local/share/erigon
- --http - --http

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
ethereum-mainnet-erigon3: ethereum-mainnet-erigon3:
image: ${ETHEREUM_ERIGON3_IMAGE:-erigontech/erigon}:${ETHEREUM_MAINNET_ERIGON3_VERSION:-v3.3.3} image: ${ETHEREUM_ERIGON3_IMAGE:-erigontech/erigon}:${ETHEREUM_MAINNET_ERIGON3_VERSION:-v3.4.2}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -69,6 +69,7 @@ services:
- --caplin.discovery.addr=0.0.0.0 - --caplin.discovery.addr=0.0.0.0
- --caplin.discovery.port=19616 - --caplin.discovery.port=19616
- --caplin.discovery.tcpport=19616 - --caplin.discovery.tcpport=19616
- --caplin.nat=extip:${IP}
- --chain=mainnet - --chain=mainnet
- --datadir=/root/.local/share/erigon - --datadir=/root/.local/share/erigon
- --http - --http

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
ethereum-sepolia-erigon3-archive: ethereum-sepolia-erigon3-archive:
image: ${ETHEREUM_ERIGON3_IMAGE:-erigontech/erigon}:${ETHEREUM_SEPOLIA_ERIGON3_VERSION:-v3.3.3} image: ${ETHEREUM_ERIGON3_IMAGE:-erigontech/erigon}:${ETHEREUM_SEPOLIA_ERIGON3_VERSION:-v3.4.2}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -70,6 +70,7 @@ services:
- --caplin.discovery.addr=0.0.0.0 - --caplin.discovery.addr=0.0.0.0
- --caplin.discovery.port=18317 - --caplin.discovery.port=18317
- --caplin.discovery.tcpport=18317 - --caplin.discovery.tcpport=18317
- --caplin.nat=extip:${IP}
- --chain=sepolia - --chain=sepolia
- --datadir=/root/.local/share/erigon - --datadir=/root/.local/share/erigon
- --http - --http

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
ethereum-sepolia-erigon3-minimal: ethereum-sepolia-erigon3-minimal:
image: ${ETHEREUM_ERIGON3_IMAGE:-erigontech/erigon}:${ETHEREUM_SEPOLIA_ERIGON3_VERSION:-v3.3.3} image: ${ETHEREUM_ERIGON3_IMAGE:-erigontech/erigon}:${ETHEREUM_SEPOLIA_ERIGON3_VERSION:-v3.4.2}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -69,6 +69,7 @@ services:
- --caplin.discovery.addr=0.0.0.0 - --caplin.discovery.addr=0.0.0.0
- --caplin.discovery.port=16087 - --caplin.discovery.port=16087
- --caplin.discovery.tcpport=16087 - --caplin.discovery.tcpport=16087
- --caplin.nat=extip:${IP}
- --chain=sepolia - --chain=sepolia
- --datadir=/root/.local/share/erigon - --datadir=/root/.local/share/erigon
- --http - --http

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
ethereum-sepolia-erigon3: ethereum-sepolia-erigon3:
image: ${ETHEREUM_ERIGON3_IMAGE:-erigontech/erigon}:${ETHEREUM_SEPOLIA_ERIGON3_VERSION:-v3.3.3} image: ${ETHEREUM_ERIGON3_IMAGE:-erigontech/erigon}:${ETHEREUM_SEPOLIA_ERIGON3_VERSION:-v3.4.2}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -69,6 +69,7 @@ services:
- --caplin.discovery.addr=0.0.0.0 - --caplin.discovery.addr=0.0.0.0
- --caplin.discovery.port=16930 - --caplin.discovery.port=16930
- --caplin.discovery.tcpport=16930 - --caplin.discovery.tcpport=16930
- --caplin.nat=extip:${IP}
- --chain=sepolia - --chain=sepolia
- --datadir=/root/.local/share/erigon - --datadir=/root/.local/share/erigon
- --http - --http

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
ethereum-hoodi-geth: ethereum-hoodi-geth:
image: ${ETHEREUM_GETH_IMAGE:-ethereum/client-go}:${ETHEREUM_HOODI_GETH_VERSION:-v1.16.8} image: ${ETHEREUM_GETH_IMAGE:-ethereum/client-go}:${ETHEREUM_HOODI_GETH_VERSION:-v1.17.3}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -103,7 +103,7 @@ services:
- traefik.http.routers.ethereum-hoodi-geth-pruned-pebble-path.middlewares=ethereum-hoodi-geth-pruned-pebble-path-stripprefix, ipallowlist - traefik.http.routers.ethereum-hoodi-geth-pruned-pebble-path.middlewares=ethereum-hoodi-geth-pruned-pebble-path-stripprefix, ipallowlist
ethereum-hoodi-geth-node: ethereum-hoodi-geth-node:
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_HOODI_NIMBUS_VERSION:-multiarch-v25.12.0} image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_HOODI_NIMBUS_VERSION:-multiarch-v26.5.0}
user: root user: root
ports: ports:
- 16917:16917 - 16917:16917

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
ethereum-hoodi-geth: ethereum-hoodi-geth:
image: ${ETHEREUM_GETH_IMAGE:-ethereum/client-go}:${ETHEREUM_HOODI_GETH_VERSION:-v1.16.8} image: ${ETHEREUM_GETH_IMAGE:-ethereum/client-go}:${ETHEREUM_HOODI_GETH_VERSION:-v1.17.3}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -103,7 +103,7 @@ services:
- traefik.http.routers.ethereum-hoodi-geth-pruned-pebble-path.middlewares=ethereum-hoodi-geth-pruned-pebble-path-stripprefix, ipallowlist - traefik.http.routers.ethereum-hoodi-geth-pruned-pebble-path.middlewares=ethereum-hoodi-geth-pruned-pebble-path-stripprefix, ipallowlist
ethereum-hoodi-geth-node: ethereum-hoodi-geth-node:
image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_HOODI_PRYSM_VERSION:-v7.1.2} image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_HOODI_PRYSM_VERSION:-v7.1.4}
ports: ports:
- 16917:16917 - 16917:16917
- 16917:16917/udp - 16917:16917/udp

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
ethereum-mainnet-geth-minimal: ethereum-mainnet-geth-minimal:
image: ${ETHEREUM_GETH_IMAGE:-ethereum/client-go}:${ETHEREUM_MAINNET_GETH_VERSION:-v1.16.8} image: ${ETHEREUM_GETH_IMAGE:-ethereum/client-go}:${ETHEREUM_MAINNET_GETH_VERSION:-v1.17.3}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -107,7 +107,7 @@ services:
- traefik.http.routers.ethereum-mainnet-geth-minimal-pebble-path.middlewares=ethereum-mainnet-geth-minimal-pebble-path-stripprefix, ipallowlist - traefik.http.routers.ethereum-mainnet-geth-minimal-pebble-path.middlewares=ethereum-mainnet-geth-minimal-pebble-path-stripprefix, ipallowlist
ethereum-mainnet-geth-minimal-node: ethereum-mainnet-geth-minimal-node:
image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_MAINNET_PRYSM_VERSION:-v7.1.2} image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_MAINNET_PRYSM_VERSION:-v7.1.4}
ports: ports:
- 19551:19551 - 19551:19551
- 19551:19551/udp - 19551:19551/udp

View File

@@ -168,7 +168,7 @@ services:
- traefik.http.routers.ethereum-mainnet-geth-pruned-leveldb-hash-events.middlewares=ipallowlist - traefik.http.routers.ethereum-mainnet-geth-pruned-leveldb-hash-events.middlewares=ipallowlist
ethereum-mainnet-geth-node: ethereum-mainnet-geth-node:
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_MAINNET_NIMBUS_VERSION:-multiarch-v25.12.0} image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_MAINNET_NIMBUS_VERSION:-multiarch-v26.5.0}
user: root user: root
ports: ports:
- 15455:15455 - 15455:15455

View File

@@ -168,7 +168,7 @@ services:
- traefik.http.routers.ethereum-mainnet-geth-pruned-pebble-path-events.middlewares=ipallowlist - traefik.http.routers.ethereum-mainnet-geth-pruned-pebble-path-events.middlewares=ipallowlist
ethereum-mainnet-geth-node: ethereum-mainnet-geth-node:
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_MAINNET_NIMBUS_VERSION:-multiarch-v25.12.0} image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_MAINNET_NIMBUS_VERSION:-multiarch-v26.5.0}
user: root user: root
ports: ports:
- 17023:17023 - 17023:17023

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
ethereum-mainnet-geth: ethereum-mainnet-geth:
image: ${ETHEREUM_GETH_IMAGE:-ethereum/client-go}:${ETHEREUM_MAINNET_GETH_VERSION:-v1.16.8} image: ${ETHEREUM_GETH_IMAGE:-ethereum/client-go}:${ETHEREUM_MAINNET_GETH_VERSION:-v1.17.3}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -103,7 +103,7 @@ services:
- traefik.http.routers.ethereum-mainnet-geth-pruned-pebble-path.middlewares=ethereum-mainnet-geth-pruned-pebble-path-stripprefix, ipallowlist - traefik.http.routers.ethereum-mainnet-geth-pruned-pebble-path.middlewares=ethereum-mainnet-geth-pruned-pebble-path-stripprefix, ipallowlist
ethereum-mainnet-geth-node: ethereum-mainnet-geth-node:
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_MAINNET_NIMBUS_VERSION:-multiarch-v25.12.0} image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_MAINNET_NIMBUS_VERSION:-multiarch-v26.5.0}
user: root user: root
ports: ports:
- 17023:17023 - 17023:17023

View File

@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
ethereum-mainnet-geth: ethereum-mainnet-geth:
image: ${ETHEREUM_GETH_IMAGE:-ethereum/client-go}:${ETHEREUM_MAINNET_GETH_VERSION:-v1.16.8} image: ${ETHEREUM_GETH_IMAGE:-ethereum/client-go}:${ETHEREUM_MAINNET_GETH_VERSION:-v1.17.3}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -103,7 +103,7 @@ services:
- traefik.http.routers.ethereum-mainnet-geth-pruned-pebble-path.middlewares=ethereum-mainnet-geth-pruned-pebble-path-stripprefix, ipallowlist - traefik.http.routers.ethereum-mainnet-geth-pruned-pebble-path.middlewares=ethereum-mainnet-geth-pruned-pebble-path-stripprefix, ipallowlist
ethereum-mainnet-geth-node: ethereum-mainnet-geth-node:
image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_MAINNET_PRYSM_VERSION:-v7.1.2} image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_MAINNET_PRYSM_VERSION:-v7.1.4}
ports: ports:
- 17023:17023 - 17023:17023
- 17023:17023/udp - 17023:17023/udp

Some files were not shown because too many files have changed in this diff Show More