From 8bd024823b53d22d53d82b37ee1c251f04d85091 Mon Sep 17 00:00:00 2001 From: Claude Agent Date: Sun, 5 Jul 2026 07:22:04 +0000 Subject: [PATCH] Remove broken kona-node variants for diverged OP chains; add worldchain reth+kona MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Drop --kona compose profiles for base, fraxtal, zircuit, xlayer, and superseed where kona-node v1.6.1 stalls or hash-mismatches on custom rollups. Add worldchain-mainnet-op-reth-pruned-trace--kona for the planned geth→reth+kona swap. Co-authored-by: Cursor --- compose_registry.json | 717 ++---------------- ...-mainnet-op-erigon-archive-trace--kona.yml | 203 ----- ...-sepolia-op-erigon-archive-trace--kona.yml | 203 ----- ...net-op-geth-archive-leveldb-hash--kona.yml | 196 ----- ...geth-pruned-pebble-path--kona--fireeth.yml | 263 ------- ...innet-op-geth-pruned-pebble-path--kona.yml | 198 ----- ...lia-op-geth-archive-leveldb-hash--kona.yml | 197 ----- ...polia-op-geth-pruned-pebble-path--kona.yml | 199 ----- ...net-op-geth-archive-leveldb-hash--kona.yml | 207 ----- ...innet-op-geth-pruned-pebble-path--kona.yml | 209 ----- ...net-op-geth-archive-leveldb-hash--kona.yml | 202 ----- ...stnet-op-geth-pruned-pebble-path--kona.yml | 204 ----- ...innet-op-geth-pruned-pebble-path--kona.yml | 203 ----- ...polia-op-geth-pruned-pebble-path--kona.yml | 201 ----- ...net-op-geth-archive-leveldb-hash--kona.yml | 219 ------ ...nnet-op-geth-archive-pebble-hash--kona.yml | 219 ------ ...innet-op-geth-pruned-pebble-path--kona.yml | 221 ------ ...eld-op-geth-archive-leveldb-hash--kona.yml | 200 ----- ...ield-op-geth-archive-pebble-hash--kona.yml | 200 ----- ...field-op-geth-pruned-pebble-hash--kona.yml | 200 ----- ...field-op-geth-pruned-pebble-path--kona.yml | 202 ----- ...net-op-geth-archive-leveldb-hash--kona.yml | 201 ----- ...nnet-op-geth-archive-pebble-hash--kona.yml | 201 ----- ...innet-op-geth-pruned-pebble-hash--kona.yml | 201 ----- ...innet-op-geth-pruned-pebble-path--kona.yml | 203 ----- ...net-op-geth-archive-leveldb-hash--kona.yml | 204 ----- ...tnet-op-geth-archive-pebble-hash--kona.yml | 204 ----- ...stnet-op-geth-pruned-pebble-hash--kona.yml | 204 ----- ...stnet-op-geth-pruned-pebble-path--kona.yml | 206 ----- ...se-mainnet-op-reth-archive-trace--kona.yml | 182 ----- ...ase-mainnet-op-reth-pruned-trace--kona.yml | 183 ----- ...se-sepolia-op-reth-archive-trace--kona.yml | 183 ----- ...se-sepolia-op-reth-minimal-trace--kona.yml | 183 ----- ...ase-sepolia-op-reth-pruned-trace--kona.yml | 184 ----- ...eed-sepolia-op-reth-pruned-trace--kona.yml | 185 ----- ...in-mainnet-op-reth-pruned-trace--kona.yml} | 77 +- ...er-mainnet-op-reth-archive-trace--kona.yml | 210 ----- ...er-testnet-op-reth-archive-trace--kona.yml | 211 ------ 38 files changed, 96 insertions(+), 7989 deletions(-) delete mode 100644 op/erigon/base-mainnet-op-erigon-archive-trace--kona.yml delete mode 100644 op/erigon/base-sepolia-op-erigon-archive-trace--kona.yml delete mode 100644 op/geth/base-mainnet-op-geth-archive-leveldb-hash--kona.yml delete mode 100644 op/geth/base-mainnet-op-geth-pruned-pebble-path--kona--fireeth.yml delete mode 100644 op/geth/base-mainnet-op-geth-pruned-pebble-path--kona.yml delete mode 100644 op/geth/base-sepolia-op-geth-archive-leveldb-hash--kona.yml delete mode 100644 op/geth/base-sepolia-op-geth-pruned-pebble-path--kona.yml delete mode 100644 op/geth/fraxtal-mainnet-op-geth-archive-leveldb-hash--kona.yml delete mode 100644 op/geth/fraxtal-mainnet-op-geth-pruned-pebble-path--kona.yml delete mode 100644 op/geth/fraxtal-testnet-op-geth-archive-leveldb-hash--kona.yml delete mode 100644 op/geth/fraxtal-testnet-op-geth-pruned-pebble-path--kona.yml delete mode 100644 op/geth/superseed-mainnet-op-geth-pruned-pebble-path--kona.yml delete mode 100644 op/geth/superseed-sepolia-op-geth-pruned-pebble-path--kona.yml delete mode 100644 op/geth/xlayer-mainnet-op-geth-archive-leveldb-hash--kona.yml delete mode 100644 op/geth/xlayer-mainnet-op-geth-archive-pebble-hash--kona.yml delete mode 100644 op/geth/xlayer-mainnet-op-geth-pruned-pebble-path--kona.yml delete mode 100644 op/geth/zircuit-garfield-op-geth-archive-leveldb-hash--kona.yml delete mode 100644 op/geth/zircuit-garfield-op-geth-archive-pebble-hash--kona.yml delete mode 100644 op/geth/zircuit-garfield-op-geth-pruned-pebble-hash--kona.yml delete mode 100644 op/geth/zircuit-garfield-op-geth-pruned-pebble-path--kona.yml delete mode 100644 op/geth/zircuit-mainnet-op-geth-archive-leveldb-hash--kona.yml delete mode 100644 op/geth/zircuit-mainnet-op-geth-archive-pebble-hash--kona.yml delete mode 100644 op/geth/zircuit-mainnet-op-geth-pruned-pebble-hash--kona.yml delete mode 100644 op/geth/zircuit-mainnet-op-geth-pruned-pebble-path--kona.yml delete mode 100644 op/geth/zircuit-testnet-op-geth-archive-leveldb-hash--kona.yml delete mode 100644 op/geth/zircuit-testnet-op-geth-archive-pebble-hash--kona.yml delete mode 100644 op/geth/zircuit-testnet-op-geth-pruned-pebble-hash--kona.yml delete mode 100644 op/geth/zircuit-testnet-op-geth-pruned-pebble-path--kona.yml delete mode 100644 op/reth/base-mainnet-op-reth-archive-trace--kona.yml delete mode 100644 op/reth/base-mainnet-op-reth-pruned-trace--kona.yml delete mode 100644 op/reth/base-sepolia-op-reth-archive-trace--kona.yml delete mode 100644 op/reth/base-sepolia-op-reth-minimal-trace--kona.yml delete mode 100644 op/reth/base-sepolia-op-reth-pruned-trace--kona.yml delete mode 100644 op/reth/superseed-sepolia-op-reth-pruned-trace--kona.yml rename op/reth/{base-mainnet-op-reth-minimal-trace--kona.yml => worldchain-mainnet-op-reth-pruned-trace--kona.yml} (56%) delete mode 100644 op/reth/xlayer-mainnet-op-reth-archive-trace--kona.yml delete mode 100644 op/reth/xlayer-testnet-op-reth-archive-trace--kona.yml diff --git a/compose_registry.json b/compose_registry.json index 60deaeb6..61de9b37 100644 --- a/compose_registry.json +++ b/compose_registry.json @@ -3838,22 +3838,6 @@ "morph-mainnet-l2geth-archive-leveldb-hash-mpt_morph" ] }, - { - "chain": "mainnet", - "client": "erigon", - "compose_file": "op/erigon/base-mainnet-op-erigon-archive-trace--kona", - "features": [ - "trace" - ], - "network": "base", - "node": "kona", - "relay": null, - "stack": "op", - "type": "archive", - "volumes": [ - "base-mainnet-op-erigon-archive-trace" - ] - }, { "chain": "mainnet", "client": "erigon", @@ -3862,7 +3846,7 @@ "trace" ], "network": "base", - "node": "kona", + "node": "node", "relay": null, "stack": "op", "type": "archive", @@ -3870,22 +3854,6 @@ "base-mainnet-op-erigon-archive-trace" ] }, - { - "chain": "sepolia", - "client": "erigon", - "compose_file": "op/erigon/base-sepolia-op-erigon-archive-trace--kona", - "features": [ - "trace" - ], - "network": "base", - "node": "kona", - "relay": null, - "stack": "op", - "type": "archive", - "volumes": [ - "base-sepolia-op-erigon-archive-trace" - ] - }, { "chain": "sepolia", "client": "erigon", @@ -3894,7 +3862,7 @@ "trace" ], "network": "base", - "node": "kona", + "node": "node", "relay": null, "stack": "op", "type": "archive", @@ -4574,23 +4542,6 @@ "zora-sepolia-op-erigon-archive-trace" ] }, - { - "chain": "mainnet", - "client": "geth", - "compose_file": "op/geth/base-mainnet-op-geth-archive-leveldb-hash--kona", - "features": [ - "hash", - "leveldb" - ], - "network": "base", - "node": "kona", - "relay": null, - "stack": "op", - "type": "archive", - "volumes": [ - "base-mainnet-op-geth-archive-leveldb-hash" - ] - }, { "chain": "mainnet", "client": "geth", @@ -4600,7 +4551,7 @@ "leveldb" ], "network": "base", - "node": "kona", + "node": "node", "relay": null, "stack": "op", "type": "archive", @@ -4617,7 +4568,7 @@ "pebble" ], "network": "base", - "node": "kona", + "node": "node", "relay": null, "stack": "op", "type": "pruned", @@ -4626,41 +4577,6 @@ "base-mainnet-op-geth-pruned-pebble-path_fireeth" ] }, - { - "chain": "mainnet", - "client": "geth", - "compose_file": "op/geth/base-mainnet-op-geth-pruned-pebble-path--kona--fireeth", - "features": [ - "path", - "pebble" - ], - "network": "base", - "node": "kona", - "relay": null, - "stack": "op", - "type": "pruned", - "volumes": [ - "base-mainnet-op-geth-pruned-pebble-path", - "base-mainnet-op-geth-pruned-pebble-path_fireeth" - ] - }, - { - "chain": "mainnet", - "client": "geth", - "compose_file": "op/geth/base-mainnet-op-geth-pruned-pebble-path--kona", - "features": [ - "path", - "pebble" - ], - "network": "base", - "node": "kona", - "relay": null, - "stack": "op", - "type": "pruned", - "volumes": [ - "base-mainnet-op-geth-pruned-pebble-path" - ] - }, { "chain": "mainnet", "client": "geth", @@ -4670,7 +4586,7 @@ "pebble" ], "network": "base", - "node": "kona", + "node": "node", "relay": null, "stack": "op", "type": "pruned", @@ -4678,23 +4594,6 @@ "base-mainnet-op-geth-pruned-pebble-path" ] }, - { - "chain": "sepolia", - "client": "geth", - "compose_file": "op/geth/base-sepolia-op-geth-archive-leveldb-hash--kona", - "features": [ - "hash", - "leveldb" - ], - "network": "base", - "node": "kona", - "relay": null, - "stack": "op", - "type": "archive", - "volumes": [ - "base-sepolia-op-geth-archive-leveldb-hash" - ] - }, { "chain": "sepolia", "client": "geth", @@ -4704,7 +4603,7 @@ "leveldb" ], "network": "base", - "node": "kona", + "node": "node", "relay": null, "stack": "op", "type": "archive", @@ -4712,23 +4611,6 @@ "base-sepolia-op-geth-archive-leveldb-hash" ] }, - { - "chain": "sepolia", - "client": "geth", - "compose_file": "op/geth/base-sepolia-op-geth-pruned-pebble-path--kona", - "features": [ - "path", - "pebble" - ], - "network": "base", - "node": "kona", - "relay": null, - "stack": "op", - "type": "pruned", - "volumes": [ - "base-sepolia-op-geth-pruned-pebble-path" - ] - }, { "chain": "sepolia", "client": "geth", @@ -4738,7 +4620,7 @@ "pebble" ], "network": "base", - "node": "kona", + "node": "node", "relay": null, "stack": "op", "type": "pruned", @@ -5437,23 +5319,6 @@ "doma-mainnet-op-geth-pruned-pebble-path" ] }, - { - "chain": "mainnet", - "client": "geth", - "compose_file": "op/geth/fraxtal-mainnet-op-geth-archive-leveldb-hash--kona", - "features": [ - "hash", - "leveldb" - ], - "network": "fraxtal", - "node": "kona", - "relay": null, - "stack": "op", - "type": "archive", - "volumes": [ - "fraxtal-mainnet-op-geth-archive-leveldb-hash" - ] - }, { "chain": "mainnet", "client": "geth", @@ -5463,7 +5328,7 @@ "leveldb" ], "network": "fraxtal", - "node": "kona", + "node": "node", "relay": null, "stack": "op", "type": "archive", @@ -5471,23 +5336,6 @@ "fraxtal-mainnet-op-geth-archive-leveldb-hash" ] }, - { - "chain": "mainnet", - "client": "geth", - "compose_file": "op/geth/fraxtal-mainnet-op-geth-pruned-pebble-path--kona", - "features": [ - "path", - "pebble" - ], - "network": "fraxtal", - "node": "kona", - "relay": null, - "stack": "op", - "type": "pruned", - "volumes": [ - "fraxtal-mainnet-op-geth-pruned-pebble-path" - ] - }, { "chain": "mainnet", "client": "geth", @@ -5497,7 +5345,7 @@ "pebble" ], "network": "fraxtal", - "node": "kona", + "node": "node", "relay": null, "stack": "op", "type": "pruned", @@ -5505,23 +5353,6 @@ "fraxtal-mainnet-op-geth-pruned-pebble-path" ] }, - { - "chain": "testnet", - "client": "geth", - "compose_file": "op/geth/fraxtal-testnet-op-geth-archive-leveldb-hash--kona", - "features": [ - "hash", - "leveldb" - ], - "network": "fraxtal", - "node": "kona", - "relay": null, - "stack": "op", - "type": "archive", - "volumes": [ - "fraxtal-testnet-op-geth-archive-leveldb-hash" - ] - }, { "chain": "testnet", "client": "geth", @@ -5531,7 +5362,7 @@ "leveldb" ], "network": "fraxtal", - "node": "kona", + "node": "node", "relay": null, "stack": "op", "type": "archive", @@ -5539,23 +5370,6 @@ "fraxtal-testnet-op-geth-archive-leveldb-hash" ] }, - { - "chain": "testnet", - "client": "geth", - "compose_file": "op/geth/fraxtal-testnet-op-geth-pruned-pebble-path--kona", - "features": [ - "path", - "pebble" - ], - "network": "fraxtal", - "node": "kona", - "relay": null, - "stack": "op", - "type": "pruned", - "volumes": [ - "fraxtal-testnet-op-geth-pruned-pebble-path" - ] - }, { "chain": "testnet", "client": "geth", @@ -5565,7 +5379,7 @@ "pebble" ], "network": "fraxtal", - "node": "kona", + "node": "node", "relay": null, "stack": "op", "type": "pruned", @@ -6801,23 +6615,6 @@ "soneium-minato-sepolia-op-geth-pruned-pebble-path" ] }, - { - "chain": "mainnet", - "client": "geth", - "compose_file": "op/geth/superseed-mainnet-op-geth-pruned-pebble-path--kona", - "features": [ - "path", - "pebble" - ], - "network": "superseed", - "node": "kona", - "relay": null, - "stack": "op", - "type": "pruned", - "volumes": [ - "superseed-mainnet-op-geth-pruned-pebble-path" - ] - }, { "chain": "mainnet", "client": "geth", @@ -6827,7 +6624,7 @@ "pebble" ], "network": "superseed", - "node": "kona", + "node": "node", "relay": null, "stack": "op", "type": "pruned", @@ -6835,23 +6632,6 @@ "superseed-mainnet-op-geth-pruned-pebble-path" ] }, - { - "chain": "sepolia", - "client": "geth", - "compose_file": "op/geth/superseed-sepolia-op-geth-pruned-pebble-path--kona", - "features": [ - "path", - "pebble" - ], - "network": "superseed", - "node": "kona", - "relay": null, - "stack": "op", - "type": "pruned", - "volumes": [ - "superseed-sepolia-op-geth-pruned-pebble-path" - ] - }, { "chain": "sepolia", "client": "geth", @@ -6861,7 +6641,7 @@ "pebble" ], "network": "superseed", - "node": "kona", + "node": "node", "relay": null, "stack": "op", "type": "pruned", @@ -7177,23 +6957,6 @@ "worldchain-sepolia-op-geth-pruned-pebble-path" ] }, - { - "chain": "mainnet", - "client": "geth", - "compose_file": "op/geth/xlayer-mainnet-op-geth-archive-leveldb-hash--kona", - "features": [ - "hash", - "leveldb" - ], - "network": "xlayer", - "node": "kona", - "relay": null, - "stack": "op", - "type": "archive", - "volumes": [ - "xlayer-mainnet-op-geth-archive-leveldb-hash" - ] - }, { "chain": "mainnet", "client": "geth", @@ -7203,7 +6966,7 @@ "leveldb" ], "network": "xlayer", - "node": "kona", + "node": "node", "relay": null, "stack": "op", "type": "archive", @@ -7211,23 +6974,6 @@ "xlayer-mainnet-op-geth-archive-leveldb-hash" ] }, - { - "chain": "mainnet", - "client": "geth", - "compose_file": "op/geth/xlayer-mainnet-op-geth-archive-pebble-hash--kona", - "features": [ - "hash", - "leveldb" - ], - "network": "xlayer", - "node": "kona", - "relay": null, - "stack": "op", - "type": "archive", - "volumes": [ - "xlayer-mainnet-op-geth-archive-pebble-hash" - ] - }, { "chain": "mainnet", "client": "geth", @@ -7237,7 +6983,7 @@ "leveldb" ], "network": "xlayer", - "node": "kona", + "node": "node", "relay": null, "stack": "op", "type": "archive", @@ -7245,23 +6991,6 @@ "xlayer-mainnet-op-geth-archive-pebble-hash" ] }, - { - "chain": "mainnet", - "client": "geth", - "compose_file": "op/geth/xlayer-mainnet-op-geth-pruned-pebble-path--kona", - "features": [ - "path", - "pebble" - ], - "network": "xlayer", - "node": "kona", - "relay": null, - "stack": "op", - "type": "pruned", - "volumes": [ - "xlayer-mainnet-op-geth-pruned-pebble-path" - ] - }, { "chain": "mainnet", "client": "geth", @@ -7271,7 +7000,7 @@ "pebble" ], "network": "xlayer", - "node": "kona", + "node": "node", "relay": null, "stack": "op", "type": "pruned", @@ -7288,7 +7017,7 @@ "leveldb" ], "network": "xlayer", - "node": "kona", + "node": "node", "relay": null, "stack": "op", "type": "archive", @@ -7305,7 +7034,7 @@ "leveldb" ], "network": "xlayer", - "node": "kona", + "node": "node", "relay": null, "stack": "op", "type": "archive", @@ -7322,7 +7051,7 @@ "pebble" ], "network": "xlayer", - "node": "kona", + "node": "node", "relay": null, "stack": "op", "type": "pruned", @@ -7330,23 +7059,6 @@ "xlayer-testnet-op-geth-pruned-pebble-path" ] }, - { - "chain": "garfield", - "client": "geth", - "compose_file": "op/geth/zircuit-garfield-op-geth-archive-leveldb-hash--kona", - "features": [ - "hash", - "pebble" - ], - "network": "zircuit", - "node": "kona", - "relay": null, - "stack": "op", - "type": "archive", - "volumes": [ - "zircuit-garfield-op-geth-archive-leveldb-hash" - ] - }, { "chain": "garfield", "client": "geth", @@ -7356,7 +7068,7 @@ "pebble" ], "network": "zircuit", - "node": "kona", + "node": "node", "relay": null, "stack": "op", "type": "archive", @@ -7364,23 +7076,6 @@ "zircuit-garfield-op-geth-archive-leveldb-hash" ] }, - { - "chain": "garfield", - "client": "geth", - "compose_file": "op/geth/zircuit-garfield-op-geth-archive-pebble-hash--kona", - "features": [ - "hash", - "pebble" - ], - "network": "zircuit", - "node": "kona", - "relay": null, - "stack": "op", - "type": "archive", - "volumes": [ - "zircuit-garfield-op-geth-archive-pebble-hash" - ] - }, { "chain": "garfield", "client": "geth", @@ -7390,7 +7085,7 @@ "pebble" ], "network": "zircuit", - "node": "kona", + "node": "node", "relay": null, "stack": "op", "type": "archive", @@ -7398,23 +7093,6 @@ "zircuit-garfield-op-geth-archive-pebble-hash" ] }, - { - "chain": "garfield", - "client": "geth", - "compose_file": "op/geth/zircuit-garfield-op-geth-pruned-pebble-hash--kona", - "features": [ - "hash", - "pebble" - ], - "network": "zircuit", - "node": "kona", - "relay": null, - "stack": "op", - "type": "pruned", - "volumes": [ - "zircuit-garfield-op-geth-pruned-pebble-hash" - ] - }, { "chain": "garfield", "client": "geth", @@ -7424,7 +7102,7 @@ "pebble" ], "network": "zircuit", - "node": "kona", + "node": "node", "relay": null, "stack": "op", "type": "pruned", @@ -7432,23 +7110,6 @@ "zircuit-garfield-op-geth-pruned-pebble-hash" ] }, - { - "chain": "garfield", - "client": "geth", - "compose_file": "op/geth/zircuit-garfield-op-geth-pruned-pebble-path--kona", - "features": [ - "hash", - "pebble" - ], - "network": "zircuit", - "node": "kona", - "relay": null, - "stack": "op", - "type": "pruned", - "volumes": [ - "zircuit-garfield-op-geth-pruned-pebble-path" - ] - }, { "chain": "garfield", "client": "geth", @@ -7458,7 +7119,7 @@ "pebble" ], "network": "zircuit", - "node": "kona", + "node": "node", "relay": null, "stack": "op", "type": "pruned", @@ -7466,23 +7127,6 @@ "zircuit-garfield-op-geth-pruned-pebble-path" ] }, - { - "chain": "mainnet", - "client": "geth", - "compose_file": "op/geth/zircuit-mainnet-op-geth-archive-leveldb-hash--kona", - "features": [ - "hash", - "pebble" - ], - "network": "zircuit", - "node": "kona", - "relay": null, - "stack": "op", - "type": "archive", - "volumes": [ - "zircuit-mainnet-op-geth-archive-leveldb-hash" - ] - }, { "chain": "mainnet", "client": "geth", @@ -7492,7 +7136,7 @@ "pebble" ], "network": "zircuit", - "node": "kona", + "node": "node", "relay": null, "stack": "op", "type": "archive", @@ -7500,23 +7144,6 @@ "zircuit-mainnet-op-geth-archive-leveldb-hash" ] }, - { - "chain": "mainnet", - "client": "geth", - "compose_file": "op/geth/zircuit-mainnet-op-geth-archive-pebble-hash--kona", - "features": [ - "hash", - "pebble" - ], - "network": "zircuit", - "node": "kona", - "relay": null, - "stack": "op", - "type": "archive", - "volumes": [ - "zircuit-mainnet-op-geth-archive-pebble-hash" - ] - }, { "chain": "mainnet", "client": "geth", @@ -7526,7 +7153,7 @@ "pebble" ], "network": "zircuit", - "node": "kona", + "node": "node", "relay": null, "stack": "op", "type": "archive", @@ -7534,23 +7161,6 @@ "zircuit-mainnet-op-geth-archive-pebble-hash" ] }, - { - "chain": "mainnet", - "client": "geth", - "compose_file": "op/geth/zircuit-mainnet-op-geth-pruned-pebble-hash--kona", - "features": [ - "hash", - "pebble" - ], - "network": "zircuit", - "node": "kona", - "relay": null, - "stack": "op", - "type": "pruned", - "volumes": [ - "zircuit-mainnet-op-geth-pruned-pebble-hash" - ] - }, { "chain": "mainnet", "client": "geth", @@ -7560,7 +7170,7 @@ "pebble" ], "network": "zircuit", - "node": "kona", + "node": "node", "relay": null, "stack": "op", "type": "pruned", @@ -7568,23 +7178,6 @@ "zircuit-mainnet-op-geth-pruned-pebble-hash" ] }, - { - "chain": "mainnet", - "client": "geth", - "compose_file": "op/geth/zircuit-mainnet-op-geth-pruned-pebble-path--kona", - "features": [ - "hash", - "pebble" - ], - "network": "zircuit", - "node": "kona", - "relay": null, - "stack": "op", - "type": "pruned", - "volumes": [ - "zircuit-mainnet-op-geth-pruned-pebble-path" - ] - }, { "chain": "mainnet", "client": "geth", @@ -7594,7 +7187,7 @@ "pebble" ], "network": "zircuit", - "node": "kona", + "node": "node", "relay": null, "stack": "op", "type": "pruned", @@ -7602,23 +7195,6 @@ "zircuit-mainnet-op-geth-pruned-pebble-path" ] }, - { - "chain": "testnet", - "client": "geth", - "compose_file": "op/geth/zircuit-testnet-op-geth-archive-leveldb-hash--kona", - "features": [ - "hash", - "pebble" - ], - "network": "zircuit", - "node": "kona", - "relay": null, - "stack": "op", - "type": "archive", - "volumes": [ - "zircuit-testnet-op-geth-archive-leveldb-hash" - ] - }, { "chain": "testnet", "client": "geth", @@ -7628,7 +7204,7 @@ "pebble" ], "network": "zircuit", - "node": "kona", + "node": "node", "relay": null, "stack": "op", "type": "archive", @@ -7636,23 +7212,6 @@ "zircuit-testnet-op-geth-archive-leveldb-hash" ] }, - { - "chain": "testnet", - "client": "geth", - "compose_file": "op/geth/zircuit-testnet-op-geth-archive-pebble-hash--kona", - "features": [ - "hash", - "pebble" - ], - "network": "zircuit", - "node": "kona", - "relay": null, - "stack": "op", - "type": "archive", - "volumes": [ - "zircuit-testnet-op-geth-archive-pebble-hash" - ] - }, { "chain": "testnet", "client": "geth", @@ -7662,7 +7221,7 @@ "pebble" ], "network": "zircuit", - "node": "kona", + "node": "node", "relay": null, "stack": "op", "type": "archive", @@ -7670,23 +7229,6 @@ "zircuit-testnet-op-geth-archive-pebble-hash" ] }, - { - "chain": "testnet", - "client": "geth", - "compose_file": "op/geth/zircuit-testnet-op-geth-pruned-pebble-hash--kona", - "features": [ - "hash", - "pebble" - ], - "network": "zircuit", - "node": "kona", - "relay": null, - "stack": "op", - "type": "pruned", - "volumes": [ - "zircuit-testnet-op-geth-pruned-pebble-hash" - ] - }, { "chain": "testnet", "client": "geth", @@ -7696,7 +7238,7 @@ "pebble" ], "network": "zircuit", - "node": "kona", + "node": "node", "relay": null, "stack": "op", "type": "pruned", @@ -7704,23 +7246,6 @@ "zircuit-testnet-op-geth-pruned-pebble-hash" ] }, - { - "chain": "testnet", - "client": "geth", - "compose_file": "op/geth/zircuit-testnet-op-geth-pruned-pebble-path--kona", - "features": [ - "hash", - "pebble" - ], - "network": "zircuit", - "node": "kona", - "relay": null, - "stack": "op", - "type": "pruned", - "volumes": [ - "zircuit-testnet-op-geth-pruned-pebble-path" - ] - }, { "chain": "testnet", "client": "geth", @@ -7730,7 +7255,7 @@ "pebble" ], "network": "zircuit", - "node": "kona", + "node": "node", "relay": null, "stack": "op", "type": "pruned", @@ -7959,22 +7484,6 @@ "op-mainnet-l2geth-archive-leveldb-hash" ] }, - { - "chain": "mainnet", - "client": "reth", - "compose_file": "op/reth/base-mainnet-op-reth-archive-trace--kona", - "features": [ - "trace" - ], - "network": "base", - "node": "kona", - "relay": null, - "stack": "op", - "type": "archive", - "volumes": [ - "base-mainnet-op-reth-archive-trace" - ] - }, { "chain": "mainnet", "client": "reth", @@ -7983,7 +7492,7 @@ "trace" ], "network": "base", - "node": "kona", + "node": "node", "relay": null, "stack": "op", "type": "archive", @@ -7991,22 +7500,6 @@ "base-mainnet-op-reth-archive-trace" ] }, - { - "chain": "mainnet", - "client": "reth", - "compose_file": "op/reth/base-mainnet-op-reth-minimal-trace--kona", - "features": [ - "trace" - ], - "network": "base", - "node": "kona", - "relay": null, - "stack": "op", - "type": "minimal", - "volumes": [ - "base-mainnet-op-reth-minimal-trace" - ] - }, { "chain": "mainnet", "client": "reth", @@ -8015,7 +7508,7 @@ "trace" ], "network": "base", - "node": "kona", + "node": "node", "relay": null, "stack": "op", "type": "minimal", @@ -8023,22 +7516,6 @@ "base-mainnet-op-reth-minimal-trace" ] }, - { - "chain": "mainnet", - "client": "reth", - "compose_file": "op/reth/base-mainnet-op-reth-pruned-trace--kona", - "features": [ - "trace" - ], - "network": "base", - "node": "kona", - "relay": null, - "stack": "op", - "type": "pruned", - "volumes": [ - "base-mainnet-op-reth-pruned-trace" - ] - }, { "chain": "mainnet", "client": "reth", @@ -8047,7 +7524,7 @@ "trace" ], "network": "base", - "node": "kona", + "node": "node", "relay": null, "stack": "op", "type": "pruned", @@ -8055,22 +7532,6 @@ "base-mainnet-op-reth-pruned-trace" ] }, - { - "chain": "sepolia", - "client": "reth", - "compose_file": "op/reth/base-sepolia-op-reth-archive-trace--kona", - "features": [ - "trace" - ], - "network": "base", - "node": "kona", - "relay": null, - "stack": "op", - "type": "archive", - "volumes": [ - "base-sepolia-op-reth-archive-trace" - ] - }, { "chain": "sepolia", "client": "reth", @@ -8079,7 +7540,7 @@ "trace" ], "network": "base", - "node": "kona", + "node": "node", "relay": null, "stack": "op", "type": "archive", @@ -8087,22 +7548,6 @@ "base-sepolia-op-reth-archive-trace" ] }, - { - "chain": "sepolia", - "client": "reth", - "compose_file": "op/reth/base-sepolia-op-reth-minimal-trace--kona", - "features": [ - "trace" - ], - "network": "base", - "node": "kona", - "relay": null, - "stack": "op", - "type": "minimal", - "volumes": [ - "base-sepolia-op-reth-minimal-trace" - ] - }, { "chain": "sepolia", "client": "reth", @@ -8111,7 +7556,7 @@ "trace" ], "network": "base", - "node": "kona", + "node": "node", "relay": null, "stack": "op", "type": "minimal", @@ -8119,22 +7564,6 @@ "base-sepolia-op-reth-minimal-trace" ] }, - { - "chain": "sepolia", - "client": "reth", - "compose_file": "op/reth/base-sepolia-op-reth-pruned-trace--kona", - "features": [ - "trace" - ], - "network": "base", - "node": "kona", - "relay": null, - "stack": "op", - "type": "pruned", - "volumes": [ - "base-sepolia-op-reth-pruned-trace" - ] - }, { "chain": "sepolia", "client": "reth", @@ -8143,7 +7572,7 @@ "trace" ], "network": "base", - "node": "kona", + "node": "node", "relay": null, "stack": "op", "type": "pruned", @@ -8810,22 +8239,6 @@ "soneium-minato-sepolia-op-reth-pruned-trace" ] }, - { - "chain": "sepolia", - "client": "reth", - "compose_file": "op/reth/superseed-sepolia-op-reth-pruned-trace--kona", - "features": [ - "trace" - ], - "network": "superseed", - "node": "kona", - "relay": null, - "stack": "op", - "type": "pruned", - "volumes": [ - "superseed-sepolia-op-reth-pruned-trace" - ] - }, { "chain": "sepolia", "client": "reth", @@ -8834,7 +8247,7 @@ "trace" ], "network": "superseed", - "node": "kona", + "node": "node", "relay": null, "stack": "op", "type": "pruned", @@ -8890,6 +8303,22 @@ "unichain-sepolia-op-reth-pruned-trace" ] }, + { + "chain": "mainnet", + "client": "reth", + "compose_file": "op/reth/worldchain-mainnet-op-reth-pruned-trace--kona", + "features": [ + "trace" + ], + "network": "worldchain", + "node": "kona", + "relay": null, + "stack": "op", + "type": "pruned", + "volumes": [ + "worldchain-mainnet-op-reth-pruned-trace" + ] + }, { "chain": "mainnet", "client": "reth", @@ -8898,7 +8327,7 @@ "trace" ], "network": "worldchain", - "node": "node", + "node": "kona", "relay": null, "stack": "op", "type": "pruned", @@ -8954,22 +8383,6 @@ "worldchain-sepolia-op-reth-pruned-trace" ] }, - { - "chain": "mainnet", - "client": "reth", - "compose_file": "op/reth/xlayer-mainnet-op-reth-archive-trace--kona", - "features": [ - "trace" - ], - "network": "xlayer", - "node": "kona", - "relay": null, - "stack": "op", - "type": "archive", - "volumes": [ - "xlayer-mainnet-op-reth-archive-trace" - ] - }, { "chain": "mainnet", "client": "reth", @@ -8978,7 +8391,7 @@ "trace" ], "network": "xlayer", - "node": "kona", + "node": "node", "relay": null, "stack": "op", "type": "archive", @@ -8986,22 +8399,6 @@ "xlayer-mainnet-op-reth-archive-trace" ] }, - { - "chain": "testnet", - "client": "reth", - "compose_file": "op/reth/xlayer-testnet-op-reth-archive-trace--kona", - "features": [ - "trace" - ], - "network": "xlayer", - "node": "kona", - "relay": null, - "stack": "op", - "type": "archive", - "volumes": [ - "xlayer-testnet-op-reth-archive-trace" - ] - }, { "chain": "testnet", "client": "reth", @@ -9010,7 +8407,7 @@ "trace" ], "network": "xlayer", - "node": "kona", + "node": "node", "relay": null, "stack": "op", "type": "archive", diff --git a/op/erigon/base-mainnet-op-erigon-archive-trace--kona.yml b/op/erigon/base-mainnet-op-erigon-archive-trace--kona.yml deleted file mode 100644 index 8b68b5d9..00000000 --- a/op/erigon/base-mainnet-op-erigon-archive-trace--kona.yml +++ /dev/null @@ -1,203 +0,0 @@ ---- -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:op/erigon/base-mainnet-op-erigon-archive-trace--kona.yml -# -# docker compose up -d -# -# curl -X POST https://${IP}.traefik.me/base-mainnet-op-erigon \ -# -H "Content-Type: application/json" \ -# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' - -services: - base-mainnet-op-erigon: - image: ${BASE_ERIGON_IMAGE:-testinprod/op-erigon}:${BASE_MAINNET_ERIGON_VERSION:-v2.61.3-0.10.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) - memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX) - user: root - ports: - - 13092:13092 - - 13092:13092/udp - - 33092:33092 - - 33092:33092/udp - - 38092:38092 - - 38092:38092/udp - expose: - - 8545 - - 6060 - - 8551 - entrypoint: [erigon] - command: - - --chain=base-mainnet - - --datadir=/root/.local/share/erigon - - --db.size.limit=8TB - - --maxpeers=50 - - --metrics - - --metrics.addr=0.0.0.0 - - --metrics.port=6060 - - --nat=extip:${IP} - - --p2p.allowed-ports=33092 - - --p2p.allowed-ports=38092 - - --port=13092 - - --rollup.sequencerhttp=https://mainnet-sequencer.base.org - - --rpc.gascap=6000000000 - - --rpc.returndata.limit=1500000 - - --http - - --http.addr=0.0.0.0 - - --http.api=eth,erigon,web3,net,debug,trace,txpool,admin,engine - - --http.port=8545 - - --http.vhosts=* - - --ws - - --ws.port=8545 - - --authrpc.addr=0.0.0.0 - - --authrpc.jwtsecret=/jwtsecret - - --authrpc.vhosts=* - restart: unless-stopped - stop_grace_period: 5m - networks: - - chains - volumes: - - ${BASE_MAINNET_OP_ERIGON_ARCHIVE_TRACE_DATA:-base-mainnet-op-erigon-archive-trace}:/root/.local/share/erigon - - .jwtsecret:/jwtsecret:ro - - /slowdisk:/slowdisk - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=6060 - - prometheus-scrape.path=/debug/metrics/prometheus - - traefik.enable=true - - traefik.http.middlewares.base-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/base-mainnet-op-erigon - - traefik.http.services.base-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545 - - ${NO_SSL:-traefik.http.routers.base-mainnet-op-erigon-archive-trace.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.base-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.base-mainnet-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && (Path(`/base-mainnet-op-erigon`) || Path(`/base-mainnet-op-erigon/`))} - - ${NO_SSL:+traefik.http.routers.base-mainnet-op-erigon-archive-trace.rule=Path(`/base-mainnet-op-erigon`) || Path(`/base-mainnet-op-erigon/`)} - - traefik.http.routers.base-mainnet-op-erigon-archive-trace.middlewares=base-mainnet-op-erigon-archive-trace-stripprefix, ipallowlist - shm_size: 2gb - - base-mainnet-op-erigon-node: - image: ${BASE_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${BASE_MAINNET_KONA_VERSION:-v1.6.1} - ports: - - 18092:18092 - - 18092:18092/udp - environment: - - KONA_METRICS_ADDR=0.0.0.0 - - KONA_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST} - - KONA_NODE_L1_ETH_RPC=${BASE_MAINNET_L1_EXECUTION_RPC:-${ETHEREUM_MAINNET_EXECUTION_RPC}} - - KONA_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false} - - KONA_NODE_L2_CHAIN_ID=8453 - - KONA_NODE_L2_ENGINE_AUTH=/jwtsecret - - KONA_NODE_L2_ENGINE_RPC=http://base-mainnet-op-erigon:8551 - - KONA_NODE_L2_ENGINE_TIMEOUT=120000 - - KONA_NODE_L2_TRUST_RPC=true - - KONA_NODE_METRICS_PORT=7300 - - KONA_NODE_MODE=Validator - - KONA_NODE_P2P_ADVERTISE_IP=${IP} - - KONA_NODE_P2P_LISTEN_IP=0.0.0.0 - - KONA_NODE_P2P_LISTEN_TCP_PORT=18092 - - KONA_NODE_P2P_LISTEN_UDP_PORT=18092 - - KONA_NODE_RPC_ADDR=0.0.0.0 - - KONA_NODE_RPC_PORT=9545 - entrypoint: [kona-node, node] - restart: unless-stopped - depends_on: - base-mainnet-op-erigon: - condition: service_started - restart: true - networks: - - chains - volumes: - - .jwtsecret:/jwtsecret:ro - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=7300 - - prometheus-scrape.path=/metrics - - traefik.enable=true - - traefik.http.middlewares.base-mainnet-op-erigon-archive-trace-node-stripprefix.stripprefix.prefixes=/base-mainnet-op-erigon/node - - traefik.http.services.base-mainnet-op-erigon-archive-trace-node.loadbalancer.server.port=9545 - - ${NO_SSL:-traefik.http.routers.base-mainnet-op-erigon-archive-trace-node.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.base-mainnet-op-erigon-archive-trace-node.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.base-mainnet-op-erigon-archive-trace-node.rule=Host(`$DOMAIN`) && PathPrefix(`/base-mainnet-op-erigon/node`)} - - ${NO_SSL:+traefik.http.routers.base-mainnet-op-erigon-archive-trace-node.rule=PathPrefix(`/base-mainnet-op-erigon/node`)} - - traefik.http.routers.base-mainnet-op-erigon-archive-trace-node.middlewares=base-mainnet-op-erigon-archive-trace-node-stripprefix, ipallowlist - -volumes: - base-mainnet-op-erigon-archive-trace: - -x-upstreams: - - id: $${ID} - labels: - provider: $${PROVIDER} - connection: - generic: - rpc: - url: $${RPC_URL} - ws: - frameSize: 20Mb - msgSize: 50Mb - url: $${WS_URL} - chain: base - method-groups: - enabled: - - debug - - filter - - trace - methods: - disabled: - enabled: - - name: txpool_content # TODO: should be disabled for rollup nodes - # standard geth and erigon - - name: debug_accountRange - - name: debug_getModifiedAccountsByNumber - - name: debug_getModifiedAccountsByHash - # non standard geth and erigon - - name: eth_getRawTransactionByHash - - name: eth_getRawTransactionByBlockHashAndIndex - # non standard erigon only - - name: eth_getBlockReceipts - - name: eth_protocolVersion - - name: eth_callMany - - name: eth_callBundle - - name: debug_accountAt - - name: debug_traceCallMany - - name: erigon_getHeaderByHash - - name: erigon_getBlockReceiptsByBlockHash - - name: erigon_getHeaderByNumber - - name: erigon_getLogsByHash - - name: erigon_forks - - name: erigon_getBlockByTimestamp - - name: erigon_BlockNumber - - name: erigon_getLatestLogs -... \ No newline at end of file diff --git a/op/erigon/base-sepolia-op-erigon-archive-trace--kona.yml b/op/erigon/base-sepolia-op-erigon-archive-trace--kona.yml deleted file mode 100644 index 617477a9..00000000 --- a/op/erigon/base-sepolia-op-erigon-archive-trace--kona.yml +++ /dev/null @@ -1,203 +0,0 @@ ---- -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:op/erigon/base-sepolia-op-erigon-archive-trace--kona.yml -# -# docker compose up -d -# -# curl -X POST https://${IP}.traefik.me/base-sepolia-op-erigon \ -# -H "Content-Type: application/json" \ -# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' - -services: - base-sepolia-op-erigon: - image: ${BASE_ERIGON_IMAGE:-testinprod/op-erigon}:${BASE_SEPOLIA_ERIGON_VERSION:-v2.61.3-0.10.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) - memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX) - user: root - ports: - - 13487:13487 - - 13487:13487/udp - - 33487:33487 - - 33487:33487/udp - - 38487:38487 - - 38487:38487/udp - expose: - - 8545 - - 6060 - - 8551 - entrypoint: [erigon] - command: - - --chain=base-sepolia - - --datadir=/root/.local/share/erigon - - --maxpeers=50 - - --metrics - - --metrics.addr=0.0.0.0 - - --metrics.port=6060 - - --nat=extip:${IP} - - --p2p.allowed-ports=33487 - - --p2p.allowed-ports=38487 - - --port=13487 - - --rollup.sequencerhttp=https://sepolia-sequencer.base.org - - --rpc.gascap=6000000000 - - --rpc.returndata.limit=1500000 - - --http - - --http.addr=0.0.0.0 - - --http.api=eth,erigon,web3,net,debug,trace,txpool,admin,engine - - --http.port=8545 - - --http.vhosts=* - - --ws - - --ws.port=8545 - - --authrpc.addr=0.0.0.0 - - --authrpc.jwtsecret=/jwtsecret - - --authrpc.vhosts=* - restart: unless-stopped - stop_grace_period: 5m - networks: - - chains - volumes: - - ${BASE_SEPOLIA_OP_ERIGON_ARCHIVE_TRACE_DATA:-base-sepolia-op-erigon-archive-trace}:/root/.local/share/erigon - - .jwtsecret:/jwtsecret:ro - - /slowdisk:/slowdisk - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=6060 - - prometheus-scrape.path=/debug/metrics/prometheus - - traefik.enable=true - - traefik.http.middlewares.base-sepolia-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/base-sepolia-op-erigon - - traefik.http.services.base-sepolia-op-erigon-archive-trace.loadbalancer.server.port=8545 - - ${NO_SSL:-traefik.http.routers.base-sepolia-op-erigon-archive-trace.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.base-sepolia-op-erigon-archive-trace.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.base-sepolia-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && (Path(`/base-sepolia-op-erigon`) || Path(`/base-sepolia-op-erigon/`))} - - ${NO_SSL:+traefik.http.routers.base-sepolia-op-erigon-archive-trace.rule=Path(`/base-sepolia-op-erigon`) || Path(`/base-sepolia-op-erigon/`)} - - traefik.http.routers.base-sepolia-op-erigon-archive-trace.middlewares=base-sepolia-op-erigon-archive-trace-stripprefix, ipallowlist - shm_size: 2gb - - base-sepolia-op-erigon-node: - image: ${BASE_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${BASE_SEPOLIA_KONA_VERSION:-v1.6.1} - ports: - - 18487:18487 - - 18487:18487/udp - environment: - - KONA_METRICS_ADDR=0.0.0.0 - - KONA_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST} - - KONA_NODE_L1_ETH_RPC=${BASE_SEPOLIA_L1_EXECUTION_RPC:-${ETHEREUM_SEPOLIA_EXECUTION_RPC}} - - KONA_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false} - - KONA_NODE_L2_CHAIN_ID=84532 - - KONA_NODE_L2_ENGINE_AUTH=/jwtsecret - - KONA_NODE_L2_ENGINE_RPC=http://base-sepolia-op-erigon:8551 - - KONA_NODE_L2_ENGINE_TIMEOUT=120000 - - KONA_NODE_L2_TRUST_RPC=true - - KONA_NODE_METRICS_PORT=7300 - - KONA_NODE_MODE=Validator - - KONA_NODE_OVERRIDE_PECTRA_BLOB_SCHEDULE=1742486400 - - KONA_NODE_P2P_ADVERTISE_IP=${IP} - - KONA_NODE_P2P_LISTEN_IP=0.0.0.0 - - KONA_NODE_P2P_LISTEN_TCP_PORT=18487 - - KONA_NODE_P2P_LISTEN_UDP_PORT=18487 - - KONA_NODE_RPC_ADDR=0.0.0.0 - - KONA_NODE_RPC_PORT=9545 - entrypoint: [kona-node, node] - restart: unless-stopped - depends_on: - base-sepolia-op-erigon: - condition: service_started - restart: true - networks: - - chains - volumes: - - .jwtsecret:/jwtsecret:ro - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=7300 - - prometheus-scrape.path=/metrics - - traefik.enable=true - - traefik.http.middlewares.base-sepolia-op-erigon-archive-trace-node-stripprefix.stripprefix.prefixes=/base-sepolia-op-erigon/node - - traefik.http.services.base-sepolia-op-erigon-archive-trace-node.loadbalancer.server.port=9545 - - ${NO_SSL:-traefik.http.routers.base-sepolia-op-erigon-archive-trace-node.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.base-sepolia-op-erigon-archive-trace-node.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.base-sepolia-op-erigon-archive-trace-node.rule=Host(`$DOMAIN`) && PathPrefix(`/base-sepolia-op-erigon/node`)} - - ${NO_SSL:+traefik.http.routers.base-sepolia-op-erigon-archive-trace-node.rule=PathPrefix(`/base-sepolia-op-erigon/node`)} - - traefik.http.routers.base-sepolia-op-erigon-archive-trace-node.middlewares=base-sepolia-op-erigon-archive-trace-node-stripprefix, ipallowlist - -volumes: - base-sepolia-op-erigon-archive-trace: - -x-upstreams: - - id: $${ID} - labels: - provider: $${PROVIDER} - connection: - generic: - rpc: - url: $${RPC_URL} - ws: - frameSize: 20Mb - msgSize: 50Mb - url: $${WS_URL} - chain: base-sepolia - method-groups: - enabled: - - debug - - filter - - trace - methods: - disabled: - enabled: - - name: txpool_content # TODO: should be disabled for rollup nodes - # standard geth and erigon - - name: debug_accountRange - - name: debug_getModifiedAccountsByNumber - - name: debug_getModifiedAccountsByHash - # non standard geth and erigon - - name: eth_getRawTransactionByHash - - name: eth_getRawTransactionByBlockHashAndIndex - # non standard erigon only - - name: eth_getBlockReceipts - - name: eth_protocolVersion - - name: eth_callMany - - name: eth_callBundle - - name: debug_accountAt - - name: debug_traceCallMany - - name: erigon_getHeaderByHash - - name: erigon_getBlockReceiptsByBlockHash - - name: erigon_getHeaderByNumber - - name: erigon_getLogsByHash - - name: erigon_forks - - name: erigon_getBlockByTimestamp - - name: erigon_BlockNumber - - name: erigon_getLatestLogs -... \ No newline at end of file diff --git a/op/geth/base-mainnet-op-geth-archive-leveldb-hash--kona.yml b/op/geth/base-mainnet-op-geth-archive-leveldb-hash--kona.yml deleted file mode 100644 index 2448933e..00000000 --- a/op/geth/base-mainnet-op-geth-archive-leveldb-hash--kona.yml +++ /dev/null @@ -1,196 +0,0 @@ ---- -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:op/geth/base-mainnet-op-geth-archive-leveldb-hash--kona.yml -# -# docker compose up -d -# -# curl -X POST https://${IP}.traefik.me/base-mainnet-archive \ -# -H "Content-Type: application/json" \ -# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' - -services: - base-mainnet-archive: - image: ${BASE_GETH_IMAGE:-ghcr.io/base/node-geth}:${BASE_MAINNET_GETH_VERSION:-v0.15.6} - 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: - - 13596:13596 - - 13596:13596/udp - expose: - - 8545 - - 6060 - - 8551 - environment: - - GETH_OP_NETWORK=base-mainnet - - GETH_ROLLUP_DISABLETXPOOLGOSSIP=true - - GETH_ROLLUP_SEQUENCERHTTP=https://mainnet-sequencer.base.org - entrypoint: /bin/sh -c 'exec geth "$@"' -- - command: - - --datadir=/data - - --db.engine=leveldb - - --gcmode=archive - - --maxpeers=50 - - --metrics - - --metrics.addr=0.0.0.0 - - --metrics.port=6060 - - --nat=extip:${IP} - - --port=13596 - - --rpc.gascap=600000000 - - --rpc.txfeecap=0 - - --state.scheme=hash - - --syncmode=full - - --http - - --http.addr=0.0.0.0 - - --http.api=eth,net,web3,debug,admin,txpool,engine - - --http.port=8545 - - --http.vhosts=* - - --ws - - --ws.addr=0.0.0.0 - - --ws.api=eth,net,web3,debug,admin,txpool,engine - - --ws.origins=* - - --ws.port=8545 - - --authrpc.addr=0.0.0.0 - - --authrpc.jwtsecret=/jwtsecret - - --authrpc.vhosts=* - restart: unless-stopped - stop_grace_period: 5m - networks: - - chains - volumes: - - ${BASE_MAINNET_OP_GETH_ARCHIVE_LEVELDB_HASH_DATA:-base-mainnet-op-geth-archive-leveldb-hash}:/data - - .jwtsecret:/jwtsecret:ro - - /slowdisk:/slowdisk - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=6060 - - prometheus-scrape.path=/debug/metrics/prometheus - - traefik.enable=true - - traefik.http.middlewares.base-mainnet-op-geth-archive-leveldb-hash-stripprefix.stripprefix.prefixes=/base-mainnet-archive - - traefik.http.services.base-mainnet-op-geth-archive-leveldb-hash.loadbalancer.server.port=8545 - - ${NO_SSL:-traefik.http.routers.base-mainnet-op-geth-archive-leveldb-hash.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.base-mainnet-op-geth-archive-leveldb-hash.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.base-mainnet-op-geth-archive-leveldb-hash.rule=Host(`$DOMAIN`) && (Path(`/base-mainnet-archive`) || Path(`/base-mainnet-archive/`))} - - ${NO_SSL:+traefik.http.routers.base-mainnet-op-geth-archive-leveldb-hash.rule=Path(`/base-mainnet-archive`) || Path(`/base-mainnet-archive/`)} - - traefik.http.routers.base-mainnet-op-geth-archive-leveldb-hash.middlewares=base-mainnet-op-geth-archive-leveldb-hash-stripprefix, ipallowlist - - base-mainnet-archive-node: - image: ${BASE_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${BASE_MAINNET_KONA_VERSION:-v1.6.1} - ports: - - 18596:18596 - - 18596:18596/udp - environment: - - KONA_METRICS_ADDR=0.0.0.0 - - KONA_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST} - - KONA_NODE_L1_ETH_RPC=${BASE_MAINNET_L1_EXECUTION_RPC:-${ETHEREUM_MAINNET_EXECUTION_RPC}} - - KONA_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false} - - KONA_NODE_L2_CHAIN_ID=8453 - - KONA_NODE_L2_ENGINE_AUTH=/jwtsecret - - KONA_NODE_L2_ENGINE_RPC=http://base-mainnet-archive:8551 - - KONA_NODE_L2_ENGINE_TIMEOUT=120000 - - KONA_NODE_L2_TRUST_RPC=true - - KONA_NODE_METRICS_PORT=7300 - - KONA_NODE_MODE=Validator - - KONA_NODE_P2P_ADVERTISE_IP=${IP} - - KONA_NODE_P2P_LISTEN_IP=0.0.0.0 - - KONA_NODE_P2P_LISTEN_TCP_PORT=18596 - - KONA_NODE_P2P_LISTEN_UDP_PORT=18596 - - KONA_NODE_RPC_ADDR=0.0.0.0 - - KONA_NODE_RPC_PORT=9545 - entrypoint: [kona-node, node] - restart: unless-stopped - depends_on: - base-mainnet-archive: - condition: service_started - restart: true - networks: - - chains - volumes: - - .jwtsecret:/jwtsecret:ro - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=7300 - - prometheus-scrape.path=/metrics - - traefik.enable=true - - traefik.http.middlewares.base-mainnet-op-geth-archive-leveldb-hash-node-stripprefix.stripprefix.prefixes=/base-mainnet-archive/node - - traefik.http.services.base-mainnet-op-geth-archive-leveldb-hash-node.loadbalancer.server.port=9545 - - ${NO_SSL:-traefik.http.routers.base-mainnet-op-geth-archive-leveldb-hash-node.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.base-mainnet-op-geth-archive-leveldb-hash-node.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.base-mainnet-op-geth-archive-leveldb-hash-node.rule=Host(`$DOMAIN`) && PathPrefix(`/base-mainnet-archive/node`)} - - ${NO_SSL:+traefik.http.routers.base-mainnet-op-geth-archive-leveldb-hash-node.rule=PathPrefix(`/base-mainnet-archive/node`)} - - traefik.http.routers.base-mainnet-op-geth-archive-leveldb-hash-node.middlewares=base-mainnet-op-geth-archive-leveldb-hash-node-stripprefix, ipallowlist - -volumes: - base-mainnet-op-geth-archive-leveldb-hash: - -x-upstreams: - - id: $${ID} - labels: - provider: $${PROVIDER} - connection: - generic: - rpc: - url: $${RPC_URL} - ws: - frameSize: 20Mb - msgSize: 50Mb - url: $${WS_URL} - chain: base - 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 -... \ No newline at end of file diff --git a/op/geth/base-mainnet-op-geth-pruned-pebble-path--kona--fireeth.yml b/op/geth/base-mainnet-op-geth-pruned-pebble-path--kona--fireeth.yml deleted file mode 100644 index 1dc2b8d3..00000000 --- a/op/geth/base-mainnet-op-geth-pruned-pebble-path--kona--fireeth.yml +++ /dev/null @@ -1,263 +0,0 @@ ---- -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:op/geth/base-mainnet-op-geth-pruned-pebble-path--kona--fireeth.yml -# -# docker compose up -d -# -# curl -X POST https://${IP}.traefik.me/base-mainnet \ -# -H "Content-Type: application/json" \ -# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' - -services: - base-mainnet: - image: ${BASE_FIREETH_IMAGE:-ghcr.io/streamingfast/go-ethereum}:${BASE_MAINNET_FIREETH_VERSION:-v2.12.4-optimism-v1.101511.0-op-node.v1.13.3-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: - - 11422:11422 - - 11422:11422/udp - expose: - - 8545 - - 6060 - - 8551 - - 10010 - environment: - - GETH_OP_NETWORK=base-mainnet - - GETH_ROLLUP_DISABLETXPOOLGOSSIP=true - - GETH_ROLLUP_SEQUENCERHTTP=https://mainnet-sequencer.base.org - entrypoint: [sh, -c, exec fireeth start reader-node --reader-node-arguments "$*", _] - command: - - --datadir=/data - - --db.engine=pebble - - --gcmode=full - - --maxpeers=50 - - --metrics - - --metrics.addr=0.0.0.0 - - --metrics.port=6060 - - --nat=extip:${IP} - - --port=11422 - - --rpc.gascap=600000000 - - --rpc.txfeecap=0 - - --state.scheme=path - - --syncmode=full - - --vmtrace=firehose - - --http - - --http.addr=0.0.0.0 - - --http.api=eth,net,web3,debug,admin,txpool,engine - - --http.port=8545 - - --http.vhosts=* - - --ws - - --ws.addr=0.0.0.0 - - --ws.api=eth,net,web3,debug,admin,txpool,engine - - --ws.origins=* - - --ws.port=8545 - - --authrpc.addr=0.0.0.0 - - --authrpc.jwtsecret=/jwtsecret - - --authrpc.vhosts=* - restart: unless-stopped - stop_grace_period: 5m - networks: - - chains - volumes: - - ${BASE_MAINNET_FIREETH_DATA:-base-mainnet-fireeth}:/app/firehose-data - - ${BASE_MAINNET_OP_GETH_PRUNED_PEBBLE_PATH_DATA:-base-mainnet-op-geth-pruned-pebble-path}:/data - - .jwtsecret:/jwtsecret:ro - - /slowdisk:/slowdisk - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=6060 - - prometheus-scrape.path=/debug/metrics/prometheus - - traefik.enable=true - - traefik.http.middlewares.base-mainnet-op-geth-pruned-pebble-path-stripprefix.stripprefix.prefixes=/base-mainnet - - traefik.http.services.base-mainnet-op-geth-pruned-pebble-path.loadbalancer.server.port=8545 - - ${NO_SSL:-traefik.http.routers.base-mainnet-op-geth-pruned-pebble-path.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.base-mainnet-op-geth-pruned-pebble-path.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.base-mainnet-op-geth-pruned-pebble-path.rule=Host(`$DOMAIN`) && (Path(`/base-mainnet`) || Path(`/base-mainnet/`))} - - ${NO_SSL:+traefik.http.routers.base-mainnet-op-geth-pruned-pebble-path.rule=Path(`/base-mainnet`) || Path(`/base-mainnet/`)} - - traefik.http.routers.base-mainnet-op-geth-pruned-pebble-path.middlewares=base-mainnet-op-geth-pruned-pebble-path-stripprefix, ipallowlist - - base-mainnet-firehose: - image: ${BASE_FIREETH_IMAGE:-ghcr.io/streamingfast/go-ethereum}:${BASE_MAINNET_FIREETH_VERSION:-v2.12.4-optimism-v1.101511.0-op-node.v1.13.3-1} - expose: - - 10015 - - 10014 - environment: - - ${BASE_MAINNET_FIREETH_BLOCKS_STORE:-/app/firehose-data/storage/merged-blocks} - entrypoint: [sh, -c, exec fireeth --config-file="" --log-to-file=false start firehose index-builder relayer merger $@, _] - command: - - --firehose-rate-limit-bucket-fill-rate=${BASE_MAINNET_FIREHOSE_RATE_LIMIT_BUCKET_FILL_RATE:-1s} - - --firehose-rate-limit-bucket-size=${BASE_MAINNET_FIREHOSE_RATE_LIMIT_BUCKET_SIZE:-200} - - --log-to-file=false - - --relayer-source=base-mainnet:10010 - restart: unless-stopped - depends_on: - - base-mainnet - networks: - - chains - volumes: - - ${BASE_MAINNET_FIREETH_DATA:-base-mainnet-fireeth}:/app/firehose-data - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=false - - traefik.enable=true - - traefik.http.services.base-mainnet-op-geth-pruned-pebble-path-firehose.loadbalancer.server.scheme=h2c - - traefik.http.routers.base-mainnet-op-geth-pruned-pebble-path-firehose.service=base-mainnet-op-geth-pruned-pebble-path-firehose - - traefik.http.services.base-mainnet-op-geth-pruned-pebble-path-firehose.loadbalancer.server.port=10015 - - traefik.http.routers.base-mainnet-op-geth-pruned-pebble-path-firehose.entrypoints=grpc - - ${NO_SSL:-traefik.http.routers.base-mainnet-op-geth-pruned-pebble-path-firehose.tls.certresolver=myresolver} - - traefik.http.routers.base-mainnet-op-geth-pruned-pebble-path-firehose.rule=Host(`base-mainnet-firehose.${DOMAIN}`) - - traefik.http.routers.base-mainnet-op-geth-pruned-pebble-path-firehose.middlewares=ipallowlist - - base-mainnet-events: - image: ${BASE_FIREETH_IMAGE:-ghcr.io/streamingfast/go-ethereum}:${BASE_MAINNET_FIREETH_VERSION:-v2.12.4-optimism-v1.101511.0-op-node.v1.13.3-1} - expose: - - 10016 - entrypoint: [sh, -c, exec fireeth --config-file="" --log-to-file=false start substreams-tier1 substreams-tier2 $@, _] - command: - - --common-live-blocks-addr=base-mainnet-firehose:10014 - - --log-to-file=false - - --substreams-block-execution-timeout=${BASE_MAINNET_SUBSTREAMS_BLOCK_EXECUTION_TIMEOUT:-3m0s} - - --substreams-rpc-endpoints=${BASE_MAINNET_EXECUTION_ARCHIVE_RPC} - - --substreams-tier1-max-subrequests=${BASE_MAINNET_SUBSTREAMS_TIER1_MAX_SUBREQUESTS:-4} - restart: unless-stopped - depends_on: - - base-mainnet - networks: - - chains - volumes: - - ${BASE_MAINNET_FIREETH_DATA:-base-mainnet-fireeth}:/app/firehose-data - logging: *logging-defaults - labels: - - traefik.enable=true - - traefik.http.services.base-mainnet-op-geth-pruned-pebble-path-events.loadbalancer.server.scheme=h2c - - traefik.http.routers.base-mainnet-op-geth-pruned-pebble-path-events.service=base-mainnet-op-geth-pruned-pebble-path-events - - traefik.http.services.base-mainnet-op-geth-pruned-pebble-path-events.loadbalancer.server.port=10016 - - traefik.http.routers.base-mainnet-op-geth-pruned-pebble-path-events.entrypoints=grpc - - ${NO_SSL:-traefik.http.routers.base-mainnet-op-geth-pruned-pebble-path-events.tls.certresolver=myresolver} - - traefik.http.routers.base-mainnet-op-geth-pruned-pebble-path-events.rule=Host(`base-mainnet-events.${DOMAIN}`) - - traefik.http.routers.base-mainnet-op-geth-pruned-pebble-path-events.middlewares=ipallowlist - - base-mainnet-node: - image: ${BASE_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${BASE_MAINNET_KONA_VERSION:-v1.6.1} - ports: - - 16422:16422 - - 16422:16422/udp - environment: - - KONA_METRICS_ADDR=0.0.0.0 - - KONA_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST} - - KONA_NODE_L1_ETH_RPC=${BASE_MAINNET_L1_EXECUTION_RPC:-${ETHEREUM_MAINNET_EXECUTION_RPC}} - - KONA_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false} - - KONA_NODE_L2_CHAIN_ID=8453 - - KONA_NODE_L2_ENGINE_AUTH=/jwtsecret - - KONA_NODE_L2_ENGINE_RPC=http://base-mainnet:8551 - - KONA_NODE_L2_ENGINE_TIMEOUT=120000 - - KONA_NODE_L2_TRUST_RPC=true - - KONA_NODE_METRICS_PORT=7300 - - KONA_NODE_MODE=Validator - - KONA_NODE_P2P_ADVERTISE_IP=${IP} - - KONA_NODE_P2P_LISTEN_IP=0.0.0.0 - - KONA_NODE_P2P_LISTEN_TCP_PORT=16422 - - KONA_NODE_P2P_LISTEN_UDP_PORT=16422 - - KONA_NODE_RPC_ADDR=0.0.0.0 - - KONA_NODE_RPC_PORT=9545 - entrypoint: [kona-node, node] - restart: unless-stopped - depends_on: - base-mainnet: - condition: service_started - restart: true - networks: - - chains - volumes: - - .jwtsecret:/jwtsecret:ro - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=7300 - - prometheus-scrape.path=/metrics - - traefik.enable=true - - traefik.http.middlewares.base-mainnet-op-geth-pruned-pebble-path-node-stripprefix.stripprefix.prefixes=/base-mainnet/node - - traefik.http.services.base-mainnet-op-geth-pruned-pebble-path-node.loadbalancer.server.port=9545 - - ${NO_SSL:-traefik.http.routers.base-mainnet-op-geth-pruned-pebble-path-node.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.base-mainnet-op-geth-pruned-pebble-path-node.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.base-mainnet-op-geth-pruned-pebble-path-node.rule=Host(`$DOMAIN`) && PathPrefix(`/base-mainnet/node`)} - - ${NO_SSL:+traefik.http.routers.base-mainnet-op-geth-pruned-pebble-path-node.rule=PathPrefix(`/base-mainnet/node`)} - - traefik.http.routers.base-mainnet-op-geth-pruned-pebble-path-node.middlewares=base-mainnet-op-geth-pruned-pebble-path-node-stripprefix, ipallowlist - -volumes: - base-mainnet-op-geth-pruned-pebble-path: - base-mainnet-op-geth-pruned-pebble-path_fireeth: - -x-upstreams: - - id: $${ID} - labels: - provider: $${PROVIDER} - connection: - generic: - rpc: - url: $${RPC_URL} - ws: - frameSize: 20Mb - msgSize: 50Mb - url: $${WS_URL} - chain: base - 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 -... \ No newline at end of file diff --git a/op/geth/base-mainnet-op-geth-pruned-pebble-path--kona.yml b/op/geth/base-mainnet-op-geth-pruned-pebble-path--kona.yml deleted file mode 100644 index ce5b2c5a..00000000 --- a/op/geth/base-mainnet-op-geth-pruned-pebble-path--kona.yml +++ /dev/null @@ -1,198 +0,0 @@ ---- -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:op/geth/base-mainnet-op-geth-pruned-pebble-path--kona.yml -# -# docker compose up -d -# -# curl -X POST https://${IP}.traefik.me/base-mainnet \ -# -H "Content-Type: application/json" \ -# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' - -services: - base-mainnet: - image: ${BASE_GETH_IMAGE:-ghcr.io/base/node-geth}:${BASE_MAINNET_GETH_VERSION:-v0.15.6} - 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: - - 11422:11422 - - 11422:11422/udp - expose: - - 8545 - - 6060 - - 8551 - environment: - - GETH_OP_NETWORK=base-mainnet - - GETH_ROLLUP_DISABLETXPOOLGOSSIP=true - - GETH_ROLLUP_SEQUENCERHTTP=https://mainnet-sequencer.base.org - entrypoint: /bin/sh -c 'exec geth "$@"' -- - command: - - --datadir=/data - - --db.engine=pebble - - --gcmode=full - - --maxpeers=50 - - --metrics - - --metrics.addr=0.0.0.0 - - --metrics.port=6060 - - --nat=extip:${IP} - - --port=11422 - - --rpc.gascap=600000000 - - --rpc.txfeecap=0 - - --state.scheme=path - - --syncmode=snap - - --http - - --http.addr=0.0.0.0 - - --http.api=eth,net,web3,debug,admin,txpool,engine - - --http.port=8545 - - --http.vhosts=* - - --ws - - --ws.addr=0.0.0.0 - - --ws.api=eth,net,web3,debug,admin,txpool,engine - - --ws.origins=* - - --ws.port=8545 - - --authrpc.addr=0.0.0.0 - - --authrpc.jwtsecret=/jwtsecret - - --authrpc.vhosts=* - restart: unless-stopped - stop_grace_period: 5m - networks: - - chains - volumes: - - ${BASE_MAINNET_OP_GETH_PRUNED_PEBBLE_PATH_DATA:-base-mainnet-op-geth-pruned-pebble-path}:/data - - .jwtsecret:/jwtsecret:ro - - /slowdisk:/slowdisk - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=6060 - - prometheus-scrape.path=/debug/metrics/prometheus - - traefik.enable=true - - traefik.http.middlewares.base-mainnet-op-geth-pruned-pebble-path-stripprefix.stripprefix.prefixes=/base-mainnet - - traefik.http.services.base-mainnet-op-geth-pruned-pebble-path.loadbalancer.server.port=8545 - - ${NO_SSL:-traefik.http.routers.base-mainnet-op-geth-pruned-pebble-path.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.base-mainnet-op-geth-pruned-pebble-path.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.base-mainnet-op-geth-pruned-pebble-path.rule=Host(`$DOMAIN`) && (Path(`/base-mainnet`) || Path(`/base-mainnet/`))} - - ${NO_SSL:+traefik.http.routers.base-mainnet-op-geth-pruned-pebble-path.rule=Path(`/base-mainnet`) || Path(`/base-mainnet/`)} - - traefik.http.routers.base-mainnet-op-geth-pruned-pebble-path.middlewares=base-mainnet-op-geth-pruned-pebble-path-stripprefix, ipallowlist - - base-mainnet-node: - image: ${BASE_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${BASE_MAINNET_KONA_VERSION:-v1.6.1} - ports: - - 16422:16422 - - 16422:16422/udp - environment: - - KONA_METRICS_ADDR=0.0.0.0 - - KONA_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST} - - KONA_NODE_L1_ETH_RPC=${BASE_MAINNET_L1_EXECUTION_RPC:-${ETHEREUM_MAINNET_EXECUTION_RPC}} - - KONA_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false} - - KONA_NODE_L2_CHAIN_ID=8453 - - KONA_NODE_L2_ENGINE_AUTH=/jwtsecret - - KONA_NODE_L2_ENGINE_RPC=http://base-mainnet:8551 - - KONA_NODE_L2_ENGINE_TIMEOUT=120000 - - KONA_NODE_L2_TRUST_RPC=true - - KONA_NODE_METRICS_PORT=7300 - - KONA_NODE_MODE=Validator - - KONA_NODE_P2P_ADVERTISE_IP=${IP} - - KONA_NODE_P2P_LISTEN_IP=0.0.0.0 - - KONA_NODE_P2P_LISTEN_TCP_PORT=16422 - - KONA_NODE_P2P_LISTEN_UDP_PORT=16422 - - KONA_NODE_RPC_ADDR=0.0.0.0 - - KONA_NODE_RPC_PORT=9545 - entrypoint: [kona-node, node] - restart: unless-stopped - depends_on: - base-mainnet: - condition: service_started - restart: true - networks: - - chains - volumes: - - .jwtsecret:/jwtsecret:ro - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=7300 - - prometheus-scrape.path=/metrics - - traefik.enable=true - - traefik.http.middlewares.base-mainnet-op-geth-pruned-pebble-path-node-stripprefix.stripprefix.prefixes=/base-mainnet/node - - traefik.http.services.base-mainnet-op-geth-pruned-pebble-path-node.loadbalancer.server.port=9545 - - ${NO_SSL:-traefik.http.routers.base-mainnet-op-geth-pruned-pebble-path-node.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.base-mainnet-op-geth-pruned-pebble-path-node.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.base-mainnet-op-geth-pruned-pebble-path-node.rule=Host(`$DOMAIN`) && PathPrefix(`/base-mainnet/node`)} - - ${NO_SSL:+traefik.http.routers.base-mainnet-op-geth-pruned-pebble-path-node.rule=PathPrefix(`/base-mainnet/node`)} - - traefik.http.routers.base-mainnet-op-geth-pruned-pebble-path-node.middlewares=base-mainnet-op-geth-pruned-pebble-path-node-stripprefix, ipallowlist - -volumes: - base-mainnet-op-geth-pruned-pebble-path: - -x-upstreams: - - id: $${ID} - labels: - provider: $${PROVIDER} - connection: - generic: - rpc: - url: $${RPC_URL} - ws: - frameSize: 20Mb - msgSize: 50Mb - url: $${WS_URL} - chain: base - 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 -... \ No newline at end of file diff --git a/op/geth/base-sepolia-op-geth-archive-leveldb-hash--kona.yml b/op/geth/base-sepolia-op-geth-archive-leveldb-hash--kona.yml deleted file mode 100644 index 68851bd9..00000000 --- a/op/geth/base-sepolia-op-geth-archive-leveldb-hash--kona.yml +++ /dev/null @@ -1,197 +0,0 @@ ---- -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:op/geth/base-sepolia-op-geth-archive-leveldb-hash--kona.yml -# -# docker compose up -d -# -# curl -X POST https://${IP}.traefik.me/base-sepolia-archive \ -# -H "Content-Type: application/json" \ -# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' - -services: - base-sepolia-archive: - image: ${BASE_GETH_IMAGE:-ghcr.io/base/node-geth}:${BASE_SEPOLIA_GETH_VERSION:-v0.15.6} - 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: - - 10910:10910 - - 10910:10910/udp - expose: - - 8545 - - 6060 - - 8551 - environment: - - GETH_OP_NETWORK=base-sepolia - - GETH_ROLLUP_DISABLETXPOOLGOSSIP=true - - GETH_ROLLUP_SEQUENCERHTTP=https://sepolia-sequencer.base.org - entrypoint: /bin/sh -c 'exec geth "$@"' -- - command: - - --datadir=/data - - --db.engine=leveldb - - --gcmode=archive - - --maxpeers=50 - - --metrics - - --metrics.addr=0.0.0.0 - - --metrics.port=6060 - - --nat=extip:${IP} - - --port=10910 - - --rpc.gascap=600000000 - - --rpc.txfeecap=0 - - --state.scheme=hash - - --syncmode=full - - --http - - --http.addr=0.0.0.0 - - --http.api=eth,net,web3,debug,admin,txpool,engine - - --http.port=8545 - - --http.vhosts=* - - --ws - - --ws.addr=0.0.0.0 - - --ws.api=eth,net,web3,debug,admin,txpool,engine - - --ws.origins=* - - --ws.port=8545 - - --authrpc.addr=0.0.0.0 - - --authrpc.jwtsecret=/jwtsecret - - --authrpc.vhosts=* - restart: unless-stopped - stop_grace_period: 5m - networks: - - chains - volumes: - - ${BASE_SEPOLIA_OP_GETH_ARCHIVE_LEVELDB_HASH_DATA:-base-sepolia-op-geth-archive-leveldb-hash}:/data - - .jwtsecret:/jwtsecret:ro - - /slowdisk:/slowdisk - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=6060 - - prometheus-scrape.path=/debug/metrics/prometheus - - traefik.enable=true - - traefik.http.middlewares.base-sepolia-op-geth-archive-leveldb-hash-stripprefix.stripprefix.prefixes=/base-sepolia-archive - - traefik.http.services.base-sepolia-op-geth-archive-leveldb-hash.loadbalancer.server.port=8545 - - ${NO_SSL:-traefik.http.routers.base-sepolia-op-geth-archive-leveldb-hash.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.base-sepolia-op-geth-archive-leveldb-hash.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.base-sepolia-op-geth-archive-leveldb-hash.rule=Host(`$DOMAIN`) && (Path(`/base-sepolia-archive`) || Path(`/base-sepolia-archive/`))} - - ${NO_SSL:+traefik.http.routers.base-sepolia-op-geth-archive-leveldb-hash.rule=Path(`/base-sepolia-archive`) || Path(`/base-sepolia-archive/`)} - - traefik.http.routers.base-sepolia-op-geth-archive-leveldb-hash.middlewares=base-sepolia-op-geth-archive-leveldb-hash-stripprefix, ipallowlist - - base-sepolia-archive-node: - image: ${BASE_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${BASE_SEPOLIA_KONA_VERSION:-v1.6.1} - ports: - - 15910:15910 - - 15910:15910/udp - environment: - - KONA_METRICS_ADDR=0.0.0.0 - - KONA_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST} - - KONA_NODE_L1_ETH_RPC=${BASE_SEPOLIA_L1_EXECUTION_RPC:-${ETHEREUM_SEPOLIA_EXECUTION_RPC}} - - KONA_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false} - - KONA_NODE_L2_CHAIN_ID=84532 - - KONA_NODE_L2_ENGINE_AUTH=/jwtsecret - - KONA_NODE_L2_ENGINE_RPC=http://base-sepolia-archive:8551 - - KONA_NODE_L2_ENGINE_TIMEOUT=120000 - - KONA_NODE_L2_TRUST_RPC=true - - KONA_NODE_METRICS_PORT=7300 - - KONA_NODE_MODE=Validator - - KONA_NODE_OVERRIDE_PECTRA_BLOB_SCHEDULE=1742486400 - - KONA_NODE_P2P_ADVERTISE_IP=${IP} - - KONA_NODE_P2P_LISTEN_IP=0.0.0.0 - - KONA_NODE_P2P_LISTEN_TCP_PORT=15910 - - KONA_NODE_P2P_LISTEN_UDP_PORT=15910 - - KONA_NODE_RPC_ADDR=0.0.0.0 - - KONA_NODE_RPC_PORT=9545 - entrypoint: [kona-node, node] - restart: unless-stopped - depends_on: - base-sepolia-archive: - condition: service_started - restart: true - networks: - - chains - volumes: - - .jwtsecret:/jwtsecret:ro - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=7300 - - prometheus-scrape.path=/metrics - - traefik.enable=true - - traefik.http.middlewares.base-sepolia-op-geth-archive-leveldb-hash-node-stripprefix.stripprefix.prefixes=/base-sepolia-archive/node - - traefik.http.services.base-sepolia-op-geth-archive-leveldb-hash-node.loadbalancer.server.port=9545 - - ${NO_SSL:-traefik.http.routers.base-sepolia-op-geth-archive-leveldb-hash-node.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.base-sepolia-op-geth-archive-leveldb-hash-node.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.base-sepolia-op-geth-archive-leveldb-hash-node.rule=Host(`$DOMAIN`) && PathPrefix(`/base-sepolia-archive/node`)} - - ${NO_SSL:+traefik.http.routers.base-sepolia-op-geth-archive-leveldb-hash-node.rule=PathPrefix(`/base-sepolia-archive/node`)} - - traefik.http.routers.base-sepolia-op-geth-archive-leveldb-hash-node.middlewares=base-sepolia-op-geth-archive-leveldb-hash-node-stripprefix, ipallowlist - -volumes: - base-sepolia-op-geth-archive-leveldb-hash: - -x-upstreams: - - id: $${ID} - labels: - provider: $${PROVIDER} - connection: - generic: - rpc: - url: $${RPC_URL} - ws: - frameSize: 20Mb - msgSize: 50Mb - url: $${WS_URL} - chain: base-sepolia - 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 -... \ No newline at end of file diff --git a/op/geth/base-sepolia-op-geth-pruned-pebble-path--kona.yml b/op/geth/base-sepolia-op-geth-pruned-pebble-path--kona.yml deleted file mode 100644 index 668f2fe1..00000000 --- a/op/geth/base-sepolia-op-geth-pruned-pebble-path--kona.yml +++ /dev/null @@ -1,199 +0,0 @@ ---- -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:op/geth/base-sepolia-op-geth-pruned-pebble-path--kona.yml -# -# docker compose up -d -# -# curl -X POST https://${IP}.traefik.me/base-sepolia \ -# -H "Content-Type: application/json" \ -# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' - -services: - base-sepolia: - image: ${BASE_GETH_IMAGE:-ghcr.io/base/node-geth}:${BASE_SEPOLIA_GETH_VERSION:-v0.15.6} - 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: - - 12022:12022 - - 12022:12022/udp - expose: - - 8545 - - 6060 - - 8551 - environment: - - GETH_OP_NETWORK=base-sepolia - - GETH_ROLLUP_DISABLETXPOOLGOSSIP=true - - GETH_ROLLUP_SEQUENCERHTTP=https://sepolia-sequencer.base.org - entrypoint: /bin/sh -c 'exec geth "$@"' -- - command: - - --datadir=/data - - --db.engine=pebble - - --gcmode=full - - --maxpeers=50 - - --metrics - - --metrics.addr=0.0.0.0 - - --metrics.port=6060 - - --nat=extip:${IP} - - --port=12022 - - --rpc.gascap=600000000 - - --rpc.txfeecap=0 - - --state.scheme=path - - --syncmode=snap - - --http - - --http.addr=0.0.0.0 - - --http.api=eth,net,web3,debug,admin,txpool,engine - - --http.port=8545 - - --http.vhosts=* - - --ws - - --ws.addr=0.0.0.0 - - --ws.api=eth,net,web3,debug,admin,txpool,engine - - --ws.origins=* - - --ws.port=8545 - - --authrpc.addr=0.0.0.0 - - --authrpc.jwtsecret=/jwtsecret - - --authrpc.vhosts=* - restart: unless-stopped - stop_grace_period: 5m - networks: - - chains - volumes: - - ${BASE_SEPOLIA_OP_GETH_PRUNED_PEBBLE_PATH_DATA:-base-sepolia-op-geth-pruned-pebble-path}:/data - - .jwtsecret:/jwtsecret:ro - - /slowdisk:/slowdisk - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=6060 - - prometheus-scrape.path=/debug/metrics/prometheus - - traefik.enable=true - - traefik.http.middlewares.base-sepolia-op-geth-pruned-pebble-path-stripprefix.stripprefix.prefixes=/base-sepolia - - traefik.http.services.base-sepolia-op-geth-pruned-pebble-path.loadbalancer.server.port=8545 - - ${NO_SSL:-traefik.http.routers.base-sepolia-op-geth-pruned-pebble-path.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.base-sepolia-op-geth-pruned-pebble-path.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.base-sepolia-op-geth-pruned-pebble-path.rule=Host(`$DOMAIN`) && (Path(`/base-sepolia`) || Path(`/base-sepolia/`))} - - ${NO_SSL:+traefik.http.routers.base-sepolia-op-geth-pruned-pebble-path.rule=Path(`/base-sepolia`) || Path(`/base-sepolia/`)} - - traefik.http.routers.base-sepolia-op-geth-pruned-pebble-path.middlewares=base-sepolia-op-geth-pruned-pebble-path-stripprefix, ipallowlist - - base-sepolia-node: - image: ${BASE_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${BASE_SEPOLIA_KONA_VERSION:-v1.6.1} - ports: - - 17022:17022 - - 17022:17022/udp - environment: - - KONA_METRICS_ADDR=0.0.0.0 - - KONA_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST} - - KONA_NODE_L1_ETH_RPC=${BASE_SEPOLIA_L1_EXECUTION_RPC:-${ETHEREUM_SEPOLIA_EXECUTION_RPC}} - - KONA_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false} - - KONA_NODE_L2_CHAIN_ID=84532 - - KONA_NODE_L2_ENGINE_AUTH=/jwtsecret - - KONA_NODE_L2_ENGINE_RPC=http://base-sepolia:8551 - - KONA_NODE_L2_ENGINE_TIMEOUT=120000 - - KONA_NODE_L2_TRUST_RPC=true - - KONA_NODE_METRICS_PORT=7300 - - KONA_NODE_MODE=Validator - - KONA_NODE_OVERRIDE_PECTRA_BLOB_SCHEDULE=1742486400 - - KONA_NODE_P2P_ADVERTISE_IP=${IP} - - KONA_NODE_P2P_LISTEN_IP=0.0.0.0 - - KONA_NODE_P2P_LISTEN_TCP_PORT=17022 - - KONA_NODE_P2P_LISTEN_UDP_PORT=17022 - - KONA_NODE_RPC_ADDR=0.0.0.0 - - KONA_NODE_RPC_PORT=9545 - entrypoint: [kona-node, node] - restart: unless-stopped - depends_on: - base-sepolia: - condition: service_started - restart: true - networks: - - chains - volumes: - - .jwtsecret:/jwtsecret:ro - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=7300 - - prometheus-scrape.path=/metrics - - traefik.enable=true - - traefik.http.middlewares.base-sepolia-op-geth-pruned-pebble-path-node-stripprefix.stripprefix.prefixes=/base-sepolia/node - - traefik.http.services.base-sepolia-op-geth-pruned-pebble-path-node.loadbalancer.server.port=9545 - - ${NO_SSL:-traefik.http.routers.base-sepolia-op-geth-pruned-pebble-path-node.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.base-sepolia-op-geth-pruned-pebble-path-node.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.base-sepolia-op-geth-pruned-pebble-path-node.rule=Host(`$DOMAIN`) && PathPrefix(`/base-sepolia/node`)} - - ${NO_SSL:+traefik.http.routers.base-sepolia-op-geth-pruned-pebble-path-node.rule=PathPrefix(`/base-sepolia/node`)} - - traefik.http.routers.base-sepolia-op-geth-pruned-pebble-path-node.middlewares=base-sepolia-op-geth-pruned-pebble-path-node-stripprefix, ipallowlist - -volumes: - base-sepolia-op-geth-pruned-pebble-path: - -x-upstreams: - - id: $${ID} - labels: - provider: $${PROVIDER} - connection: - generic: - rpc: - url: $${RPC_URL} - ws: - frameSize: 20Mb - msgSize: 50Mb - url: $${WS_URL} - chain: base-sepolia - 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 -... \ No newline at end of file diff --git a/op/geth/fraxtal-mainnet-op-geth-archive-leveldb-hash--kona.yml b/op/geth/fraxtal-mainnet-op-geth-archive-leveldb-hash--kona.yml deleted file mode 100644 index 6ec891a9..00000000 --- a/op/geth/fraxtal-mainnet-op-geth-archive-leveldb-hash--kona.yml +++ /dev/null @@ -1,207 +0,0 @@ ---- -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:op/geth/fraxtal-mainnet-op-geth-archive-leveldb-hash--kona.yml -# -# docker compose up -d -# -# curl -X POST https://${IP}.traefik.me/fraxtal-mainnet-archive \ -# -H "Content-Type: application/json" \ -# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' - -services: - fraxtal-mainnet-archive: - image: ${FRAXTAL_GETH_IMAGE:-ghcr.io/fraxfinance/fraxtal-op-geth}:${FRAXTAL_MAINNET_GETH_VERSION:-v1.101702.1-frax-1.3.0} - 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: - - 13290:13290 - - 13290:13290/udp - expose: - - 8545 - - 6060 - - 8551 - environment: - - GETH_BOOTNODES=enr:-J24QI8QR7VIgvQFuvLl09b9ocugoQ1WkS_AOMWKFgNX48-4P1hjgDKGeMFXZmKtfjYA2aEehxKT066riaktnxhh92OGAY5Sw_QsgmlkgnY0gmlwhCztZu2Hb3BzdGFja4P8AQCJc2VjcDI1NmsxoQM2KM0mkdH97Ze8AqwxLeqc934PKj8-xoKsyP6mAptWwIN0Y3CCdl2DdWRwgnZd,enr:-J24QGD1J-g2EPY9b7XiuwLhIoGocVp2qx2gWSfDI_CdftiPSHlgi7G6LtzkQlDskuSvRj4OXTg3vXLISubphXNNhqyGAY5Sw8GxgmlkgnY0gmlwhCzW_iGHb3BzdGFja4P8AQCJc2VjcDI1NmsxoQPvMYlJHJUsEyciuJCTkKHLE2ogZ6cs2xuPI28CGq0CTIN0Y3CCdl2DdWRwgnZd,enr:-J24QCA5I3xroUXt7Ge_Kf04VCRBnI-GbZeyBxOkkpIDGGLrVsonrbngQG1hAEnufRb1TgS6sNFCGtaZ2ZpRx7AgciGGAY5SxEy0gmlkgnY0gmlwhCLzRQyHb3BzdGFja4P8AQCJc2VjcDI1NmsxoQOaHzrtPQWYcwAcFJWFrbGlbNUsBC0VEhCcH02RbgEIwIN0Y3CCdl2DdWRwgnZd - - GETH_OVERRIDE_CANYON=0 - - GETH_OVERRIDE_ECOTONE=1717009201 - - GETH_OVERRIDE_FJORD=1733947201 - - GETH_OVERRIDE_GRANITE=1738958401 - - GETH_OVERRIDE_HOLOCENE=1744052401 - - GETH_OVERRIDE_ISTHMUS=1755716401 - - GETH_ROLLUP_DISABLETXPOOLGOSSIP=true - - GETH_ROLLUP_SEQUENCERHTTP=https://rpc.mainnet.frax.com - entrypoint: /bin/sh -c '[ -f /config/genesis.json ] && geth --db.engine=leveldb --gcmode=archive --datadir /data init --state.scheme=hash /config/genesis.json; exec geth "$@"' -- - command: - - --bootnodes=enr:-J24QI8QR7VIgvQFuvLl09b9ocugoQ1WkS_AOMWKFgNX48-4P1hjgDKGeMFXZmKtfjYA2aEehxKT066riaktnxhh92OGAY5Sw_QsgmlkgnY0gmlwhCztZu2Hb3BzdGFja4P8AQCJc2VjcDI1NmsxoQM2KM0mkdH97Ze8AqwxLeqc934PKj8-xoKsyP6mAptWwIN0Y3CCdl2DdWRwgnZd,enr:-J24QGD1J-g2EPY9b7XiuwLhIoGocVp2qx2gWSfDI_CdftiPSHlgi7G6LtzkQlDskuSvRj4OXTg3vXLISubphXNNhqyGAY5Sw8GxgmlkgnY0gmlwhCzW_iGHb3BzdGFja4P8AQCJc2VjcDI1NmsxoQPvMYlJHJUsEyciuJCTkKHLE2ogZ6cs2xuPI28CGq0CTIN0Y3CCdl2DdWRwgnZd,enr:-J24QCA5I3xroUXt7Ge_Kf04VCRBnI-GbZeyBxOkkpIDGGLrVsonrbngQG1hAEnufRb1TgS6sNFCGtaZ2ZpRx7AgciGGAY5SxEy0gmlkgnY0gmlwhCLzRQyHb3BzdGFja4P8AQCJc2VjcDI1NmsxoQOaHzrtPQWYcwAcFJWFrbGlbNUsBC0VEhCcH02RbgEIwIN0Y3CCdl2DdWRwgnZd - - --datadir=/data - - --db.engine=leveldb - - --gcmode=archive - - --maxpeers=50 - - --metrics - - --metrics.addr=0.0.0.0 - - --metrics.port=6060 - - --nat=extip:${IP} - - --networkid=252 - - --port=13290 - - --rpc.gascap=600000000 - - --rpc.txfeecap=0 - - --state.scheme=hash - - --syncmode=full - - --http - - --http.addr=0.0.0.0 - - --http.api=eth,net,web3,debug,admin,txpool,engine - - --http.port=8545 - - --http.vhosts=* - - --ws - - --ws.addr=0.0.0.0 - - --ws.api=eth,net,web3,debug,admin,txpool,engine - - --ws.origins=* - - --ws.port=8545 - - --authrpc.addr=0.0.0.0 - - --authrpc.jwtsecret=/jwtsecret - - --authrpc.vhosts=* - restart: unless-stopped - stop_grace_period: 5m - networks: - - chains - volumes: - - ${FRAXTAL_MAINNET_OP_GETH_ARCHIVE_LEVELDB_HASH_DATA:-fraxtal-mainnet-op-geth-archive-leveldb-hash}:/data - - ./op/fraxtal/mainnet:/config - - .jwtsecret:/jwtsecret:ro - - /slowdisk:/slowdisk - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=6060 - - prometheus-scrape.path=/debug/metrics/prometheus - - traefik.enable=true - - traefik.http.middlewares.fraxtal-mainnet-op-geth-archive-leveldb-hash-stripprefix.stripprefix.prefixes=/fraxtal-mainnet-archive - - traefik.http.services.fraxtal-mainnet-op-geth-archive-leveldb-hash.loadbalancer.server.port=8545 - - ${NO_SSL:-traefik.http.routers.fraxtal-mainnet-op-geth-archive-leveldb-hash.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.fraxtal-mainnet-op-geth-archive-leveldb-hash.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.fraxtal-mainnet-op-geth-archive-leveldb-hash.rule=Host(`$DOMAIN`) && (Path(`/fraxtal-mainnet-archive`) || Path(`/fraxtal-mainnet-archive/`))} - - ${NO_SSL:+traefik.http.routers.fraxtal-mainnet-op-geth-archive-leveldb-hash.rule=Path(`/fraxtal-mainnet-archive`) || Path(`/fraxtal-mainnet-archive/`)} - - traefik.http.routers.fraxtal-mainnet-op-geth-archive-leveldb-hash.middlewares=fraxtal-mainnet-op-geth-archive-leveldb-hash-stripprefix, ipallowlist - - fraxtal-mainnet-archive-node: - image: ${FRAXTAL_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${FRAXTAL_MAINNET_KONA_VERSION:-v1.6.1} - ports: - - 18290:18290 - - 18290:18290/udp - environment: - - KONA_METRICS_ADDR=0.0.0.0 - - KONA_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST} - - KONA_NODE_L1_ETH_RPC=${FRAXTAL_MAINNET_L1_EXECUTION_RPC:-${ETHEREUM_MAINNET_EXECUTION_RPC}} - - KONA_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false} - - KONA_NODE_L2_CHAIN_ID=252 - - KONA_NODE_L2_ENGINE_AUTH=/jwtsecret - - KONA_NODE_L2_ENGINE_RPC=http://fraxtal-mainnet-archive:8551 - - KONA_NODE_L2_ENGINE_TIMEOUT=120000 - - KONA_NODE_L2_TRUST_RPC=true - - KONA_NODE_METRICS_PORT=7300 - - KONA_NODE_MODE=Validator - - KONA_NODE_P2P_ADVERTISE_IP=${IP} - - KONA_NODE_P2P_BOOTNODES=enr:-J24QPGxmNmQ6Gsofjwnaaqt-RvC-2te44hHSU_wFGvCBpdnGnAuW0hKBCwzarXEmLN0TfwilwX3xS8xjEd9sQRqKXqGAY1ok0P3gmlkgnY0gmlwhDa-pcmHb3BzdGFja4P8AQCJc2VjcDI1NmsxoQJA0echCE64KVt7m1lHfRF9_QgYxqIOSoPZ1UHcEArDu4N0Y3CCJAaDdWRwgiQG,enr:-J24QHPYu7uUXH4LCJ_pjHMD3fYhluZEgFRlewqOFFcja7ACaTDp4zG4GZBJdTPmLjsqskhTQa5ldKiVu4ypZYMzR_uGAY1ok_ABgmlkgnY0gmlwhCLvv1KHb3BzdGFja4P8AQCJc2VjcDI1NmsxoQOEemNzZL5buGmwlN2naXLtz4nauCqBFeFxdmi4RL4rDIN0Y3CCJAaDdWRwgiQG,enr:-J24QBujtfGNIiE6GJrCgXEKJMs1F11wd4Y8Uvx7ZFn3Z1tyR0erNcpiW5EYIQEKQX0kL9PLJUDHWZFiaHWOTBvFg5aGAY1ok5p8gmlkgnY0gmlwhDbD-tqHb3BzdGFja4P8AQCJc2VjcDI1NmsxoQLunzKLYJLvy6cWWkLgSSdLlILgSohrV8RT3tlKGwHBi4N0Y3CCJAaDdWRwgiQG - - KONA_NODE_P2P_LISTEN_IP=0.0.0.0 - - KONA_NODE_P2P_LISTEN_TCP_PORT=18290 - - KONA_NODE_P2P_LISTEN_UDP_PORT=18290 - - KONA_NODE_RPC_ADDR=0.0.0.0 - - KONA_NODE_RPC_PORT=9545 - entrypoint: [kona-node, node] - restart: unless-stopped - depends_on: - fraxtal-mainnet-archive: - condition: service_started - restart: true - networks: - - chains - volumes: - - ./op/fraxtal/mainnet:/config - - .jwtsecret:/jwtsecret:ro - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=7300 - - prometheus-scrape.path=/metrics - - traefik.enable=true - - traefik.http.middlewares.fraxtal-mainnet-op-geth-archive-leveldb-hash-node-stripprefix.stripprefix.prefixes=/fraxtal-mainnet-archive/node - - traefik.http.services.fraxtal-mainnet-op-geth-archive-leveldb-hash-node.loadbalancer.server.port=9545 - - ${NO_SSL:-traefik.http.routers.fraxtal-mainnet-op-geth-archive-leveldb-hash-node.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.fraxtal-mainnet-op-geth-archive-leveldb-hash-node.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.fraxtal-mainnet-op-geth-archive-leveldb-hash-node.rule=Host(`$DOMAIN`) && PathPrefix(`/fraxtal-mainnet-archive/node`)} - - ${NO_SSL:+traefik.http.routers.fraxtal-mainnet-op-geth-archive-leveldb-hash-node.rule=PathPrefix(`/fraxtal-mainnet-archive/node`)} - - traefik.http.routers.fraxtal-mainnet-op-geth-archive-leveldb-hash-node.middlewares=fraxtal-mainnet-op-geth-archive-leveldb-hash-node-stripprefix, ipallowlist - -volumes: - fraxtal-mainnet-op-geth-archive-leveldb-hash: - -x-upstreams: - - id: $${ID} - labels: - provider: $${PROVIDER} - connection: - generic: - rpc: - url: $${RPC_URL} - ws: - frameSize: 20Mb - msgSize: 50Mb - url: $${WS_URL} - chain: fraxtal - 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 -... \ No newline at end of file diff --git a/op/geth/fraxtal-mainnet-op-geth-pruned-pebble-path--kona.yml b/op/geth/fraxtal-mainnet-op-geth-pruned-pebble-path--kona.yml deleted file mode 100644 index b4cf08a1..00000000 --- a/op/geth/fraxtal-mainnet-op-geth-pruned-pebble-path--kona.yml +++ /dev/null @@ -1,209 +0,0 @@ ---- -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:op/geth/fraxtal-mainnet-op-geth-pruned-pebble-path--kona.yml -# -# docker compose up -d -# -# curl -X POST https://${IP}.traefik.me/fraxtal-mainnet \ -# -H "Content-Type: application/json" \ -# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' - -services: - fraxtal-mainnet: - image: ${FRAXTAL_GETH_IMAGE:-ghcr.io/fraxfinance/fraxtal-op-geth}:${FRAXTAL_MAINNET_GETH_VERSION:-v1.101702.1-frax-1.3.0} - 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: - - 10282:10282 - - 10282:10282/udp - expose: - - 8545 - - 6060 - - 8551 - environment: - - GETH_BOOTNODES=enr:-J24QI8QR7VIgvQFuvLl09b9ocugoQ1WkS_AOMWKFgNX48-4P1hjgDKGeMFXZmKtfjYA2aEehxKT066riaktnxhh92OGAY5Sw_QsgmlkgnY0gmlwhCztZu2Hb3BzdGFja4P8AQCJc2VjcDI1NmsxoQM2KM0mkdH97Ze8AqwxLeqc934PKj8-xoKsyP6mAptWwIN0Y3CCdl2DdWRwgnZd,enr:-J24QGD1J-g2EPY9b7XiuwLhIoGocVp2qx2gWSfDI_CdftiPSHlgi7G6LtzkQlDskuSvRj4OXTg3vXLISubphXNNhqyGAY5Sw8GxgmlkgnY0gmlwhCzW_iGHb3BzdGFja4P8AQCJc2VjcDI1NmsxoQPvMYlJHJUsEyciuJCTkKHLE2ogZ6cs2xuPI28CGq0CTIN0Y3CCdl2DdWRwgnZd,enr:-J24QCA5I3xroUXt7Ge_Kf04VCRBnI-GbZeyBxOkkpIDGGLrVsonrbngQG1hAEnufRb1TgS6sNFCGtaZ2ZpRx7AgciGGAY5SxEy0gmlkgnY0gmlwhCLzRQyHb3BzdGFja4P8AQCJc2VjcDI1NmsxoQOaHzrtPQWYcwAcFJWFrbGlbNUsBC0VEhCcH02RbgEIwIN0Y3CCdl2DdWRwgnZd - - GETH_OVERRIDE_CANYON=0 - - GETH_OVERRIDE_ECOTONE=1717009201 - - GETH_OVERRIDE_FJORD=1733947201 - - GETH_OVERRIDE_GRANITE=1738958401 - - GETH_OVERRIDE_HOLOCENE=1744052401 - - GETH_OVERRIDE_ISTHMUS=1755716401 - - GETH_ROLLUP_DISABLETXPOOLGOSSIP=true - - GETH_ROLLUP_SEQUENCERHTTP=https://rpc.mainnet.frax.com - entrypoint: /bin/sh -c '[ -f /config/genesis.json ] && geth --db.engine=pebble --gcmode=full --datadir /data init --state.scheme=path /config/genesis.json; exec geth "$@"' -- - command: - - --bootnodes=enr:-J24QI8QR7VIgvQFuvLl09b9ocugoQ1WkS_AOMWKFgNX48-4P1hjgDKGeMFXZmKtfjYA2aEehxKT066riaktnxhh92OGAY5Sw_QsgmlkgnY0gmlwhCztZu2Hb3BzdGFja4P8AQCJc2VjcDI1NmsxoQM2KM0mkdH97Ze8AqwxLeqc934PKj8-xoKsyP6mAptWwIN0Y3CCdl2DdWRwgnZd,enr:-J24QGD1J-g2EPY9b7XiuwLhIoGocVp2qx2gWSfDI_CdftiPSHlgi7G6LtzkQlDskuSvRj4OXTg3vXLISubphXNNhqyGAY5Sw8GxgmlkgnY0gmlwhCzW_iGHb3BzdGFja4P8AQCJc2VjcDI1NmsxoQPvMYlJHJUsEyciuJCTkKHLE2ogZ6cs2xuPI28CGq0CTIN0Y3CCdl2DdWRwgnZd,enr:-J24QCA5I3xroUXt7Ge_Kf04VCRBnI-GbZeyBxOkkpIDGGLrVsonrbngQG1hAEnufRb1TgS6sNFCGtaZ2ZpRx7AgciGGAY5SxEy0gmlkgnY0gmlwhCLzRQyHb3BzdGFja4P8AQCJc2VjcDI1NmsxoQOaHzrtPQWYcwAcFJWFrbGlbNUsBC0VEhCcH02RbgEIwIN0Y3CCdl2DdWRwgnZd - - --datadir=/data - - --db.engine=pebble - - --gcmode=full - - --maxpeers=50 - - --metrics - - --metrics.addr=0.0.0.0 - - --metrics.port=6060 - - --nat=extip:${IP} - - --networkid=252 - - --port=10282 - - --rpc.gascap=600000000 - - --rpc.txfeecap=0 - - --state.scheme=path - - --syncmode=snap - - --http - - --http.addr=0.0.0.0 - - --http.api=eth,net,web3,debug,admin,txpool,engine - - --http.port=8545 - - --http.vhosts=* - - --ws - - --ws.addr=0.0.0.0 - - --ws.api=eth,net,web3,debug,admin,txpool,engine - - --ws.origins=* - - --ws.port=8545 - - --authrpc.addr=0.0.0.0 - - --authrpc.jwtsecret=/jwtsecret - - --authrpc.vhosts=* - restart: unless-stopped - stop_grace_period: 5m - networks: - - chains - volumes: - - ${FRAXTAL_MAINNET_OP_GETH_PRUNED_PEBBLE_PATH_DATA:-fraxtal-mainnet-op-geth-pruned-pebble-path}:/data - - ./op/fraxtal/mainnet:/config - - .jwtsecret:/jwtsecret:ro - - /slowdisk:/slowdisk - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=6060 - - prometheus-scrape.path=/debug/metrics/prometheus - - traefik.enable=true - - traefik.http.middlewares.fraxtal-mainnet-op-geth-pruned-pebble-path-stripprefix.stripprefix.prefixes=/fraxtal-mainnet - - traefik.http.services.fraxtal-mainnet-op-geth-pruned-pebble-path.loadbalancer.server.port=8545 - - ${NO_SSL:-traefik.http.routers.fraxtal-mainnet-op-geth-pruned-pebble-path.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.fraxtal-mainnet-op-geth-pruned-pebble-path.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.fraxtal-mainnet-op-geth-pruned-pebble-path.rule=Host(`$DOMAIN`) && (Path(`/fraxtal-mainnet`) || Path(`/fraxtal-mainnet/`))} - - ${NO_SSL:+traefik.http.routers.fraxtal-mainnet-op-geth-pruned-pebble-path.rule=Path(`/fraxtal-mainnet`) || Path(`/fraxtal-mainnet/`)} - - traefik.http.routers.fraxtal-mainnet-op-geth-pruned-pebble-path.middlewares=fraxtal-mainnet-op-geth-pruned-pebble-path-stripprefix, ipallowlist - - fraxtal-mainnet-node: - image: ${FRAXTAL_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${FRAXTAL_MAINNET_KONA_VERSION:-v1.6.1} - ports: - - 15282:15282 - - 15282:15282/udp - environment: - - KONA_METRICS_ADDR=0.0.0.0 - - KONA_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST} - - KONA_NODE_L1_ETH_RPC=${FRAXTAL_MAINNET_L1_EXECUTION_RPC:-${ETHEREUM_MAINNET_EXECUTION_RPC}} - - KONA_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false} - - KONA_NODE_L2_CHAIN_ID=252 - - KONA_NODE_L2_ENGINE_AUTH=/jwtsecret - - KONA_NODE_L2_ENGINE_RPC=http://fraxtal-mainnet:8551 - - KONA_NODE_L2_ENGINE_TIMEOUT=120000 - - KONA_NODE_L2_TRUST_RPC=true - - KONA_NODE_METRICS_PORT=7300 - - KONA_NODE_MODE=Validator - - KONA_NODE_P2P_ADVERTISE_IP=${IP} - - KONA_NODE_P2P_BOOTNODES=enr:-J24QPGxmNmQ6Gsofjwnaaqt-RvC-2te44hHSU_wFGvCBpdnGnAuW0hKBCwzarXEmLN0TfwilwX3xS8xjEd9sQRqKXqGAY1ok0P3gmlkgnY0gmlwhDa-pcmHb3BzdGFja4P8AQCJc2VjcDI1NmsxoQJA0echCE64KVt7m1lHfRF9_QgYxqIOSoPZ1UHcEArDu4N0Y3CCJAaDdWRwgiQG,enr:-J24QHPYu7uUXH4LCJ_pjHMD3fYhluZEgFRlewqOFFcja7ACaTDp4zG4GZBJdTPmLjsqskhTQa5ldKiVu4ypZYMzR_uGAY1ok_ABgmlkgnY0gmlwhCLvv1KHb3BzdGFja4P8AQCJc2VjcDI1NmsxoQOEemNzZL5buGmwlN2naXLtz4nauCqBFeFxdmi4RL4rDIN0Y3CCJAaDdWRwgiQG,enr:-J24QBujtfGNIiE6GJrCgXEKJMs1F11wd4Y8Uvx7ZFn3Z1tyR0erNcpiW5EYIQEKQX0kL9PLJUDHWZFiaHWOTBvFg5aGAY1ok5p8gmlkgnY0gmlwhDbD-tqHb3BzdGFja4P8AQCJc2VjcDI1NmsxoQLunzKLYJLvy6cWWkLgSSdLlILgSohrV8RT3tlKGwHBi4N0Y3CCJAaDdWRwgiQG - - KONA_NODE_P2P_LISTEN_IP=0.0.0.0 - - KONA_NODE_P2P_LISTEN_TCP_PORT=15282 - - KONA_NODE_P2P_LISTEN_UDP_PORT=15282 - - KONA_NODE_RPC_ADDR=0.0.0.0 - - KONA_NODE_RPC_PORT=9545 - entrypoint: [kona-node, node] - restart: unless-stopped - depends_on: - fraxtal-mainnet: - condition: service_started - restart: true - networks: - - chains - volumes: - - ./op/fraxtal/mainnet:/config - - .jwtsecret:/jwtsecret:ro - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=7300 - - prometheus-scrape.path=/metrics - - traefik.enable=true - - traefik.http.middlewares.fraxtal-mainnet-op-geth-pruned-pebble-path-node-stripprefix.stripprefix.prefixes=/fraxtal-mainnet/node - - traefik.http.services.fraxtal-mainnet-op-geth-pruned-pebble-path-node.loadbalancer.server.port=9545 - - ${NO_SSL:-traefik.http.routers.fraxtal-mainnet-op-geth-pruned-pebble-path-node.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.fraxtal-mainnet-op-geth-pruned-pebble-path-node.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.fraxtal-mainnet-op-geth-pruned-pebble-path-node.rule=Host(`$DOMAIN`) && PathPrefix(`/fraxtal-mainnet/node`)} - - ${NO_SSL:+traefik.http.routers.fraxtal-mainnet-op-geth-pruned-pebble-path-node.rule=PathPrefix(`/fraxtal-mainnet/node`)} - - traefik.http.routers.fraxtal-mainnet-op-geth-pruned-pebble-path-node.middlewares=fraxtal-mainnet-op-geth-pruned-pebble-path-node-stripprefix, ipallowlist - -volumes: - fraxtal-mainnet-op-geth-pruned-pebble-path: - -x-upstreams: - - id: $${ID} - labels: - provider: $${PROVIDER} - connection: - generic: - rpc: - url: $${RPC_URL} - ws: - frameSize: 20Mb - msgSize: 50Mb - url: $${WS_URL} - chain: fraxtal - 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 -... \ No newline at end of file diff --git a/op/geth/fraxtal-testnet-op-geth-archive-leveldb-hash--kona.yml b/op/geth/fraxtal-testnet-op-geth-archive-leveldb-hash--kona.yml deleted file mode 100644 index f952e610..00000000 --- a/op/geth/fraxtal-testnet-op-geth-archive-leveldb-hash--kona.yml +++ /dev/null @@ -1,202 +0,0 @@ ---- -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:op/geth/fraxtal-testnet-op-geth-archive-leveldb-hash--kona.yml -# -# docker compose up -d -# -# curl -X POST https://${IP}.traefik.me/fraxtal-testnet-archive \ -# -H "Content-Type: application/json" \ -# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' - -services: - fraxtal-testnet-archive: - image: ${FRAXTAL_GETH_IMAGE:-ghcr.io/fraxfinance/fraxtal-op-geth}:${FRAXTAL_TESTNET_GETH_VERSION:-v1.101702.1-frax-1.3.0} - 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 - - 6060 - - 8551 - environment: - - GETH_BOOTNODES=enr:-KO4QFOGWnVckCqXKTpKAPU_AZJmIbRjz8PTwPjkLgKJ9H_1bQT3fx57hU5OWeBqoLJ4Wa_VfA4paKQ_O-l7CJxj8ECGAZoNhOM7g2V0aMfGhGTaoWCAgmlkgnY0gmlwhCigGzaJc2VjcDI1NmsxoQJHFjvlp9CAbQ-YbO-QglEnykeVDLW8chF72qYUhax0T4RzbmFwwIN0Y3CCdmKDdWRwgnZi,enr:-KO4QCRQ8XyyqzjjYV2NcGWNc6R-kaMhp8KyYw-8mxoGbHsvUbBCO2H8f7PjtDE_ce85nSfcnVgHzfiqhpLvl5aSONWGAZoNdAX-g2V0aMfGhGTaoWCAgmlkgnY0gmlwhA_MbmOJc2VjcDI1NmsxoQO0Z6xvk6FhoaOAiEfRYHfjD5iBD-l0DFSn61-Y2Rf6VYRzbmFwwIN0Y3CCdmKDdWRwgnZi - - GETH_OVERRIDE_CANYON=0 - - GETH_OVERRIDE_ECOTONE=0 - - GETH_OVERRIDE_FJORD=0 - - GETH_OVERRIDE_GRANITE=0 - - GETH_OVERRIDE_HOLOCENE=0 - - GETH_OVERRIDE_ISTHMUS=0 - - GETH_ROLLUP_DISABLETXPOOLGOSSIP=true - - GETH_ROLLUP_SEQUENCERHTTP=https://rpc.testnet.frax.com - entrypoint: /bin/sh -c '[ -f /config/genesis.json ] && geth --db.engine=leveldb --gcmode=archive --datadir /data init --state.scheme=hash /config/genesis.json; exec geth "$@"' -- - command: - - --datadir=/data - - --db.engine=leveldb - - --gcmode=archive - - --maxpeers=50 - - --metrics - - --metrics.addr=0.0.0.0 - - --metrics.port=6060 - - --networkid=2523 - - --nodiscover - - --rpc.gascap=600000000 - - --rpc.txfeecap=0 - - --state.scheme=hash - - --syncmode=full - - --http - - --http.addr=0.0.0.0 - - --http.api=eth,net,web3,debug,admin,txpool,engine - - --http.port=8545 - - --http.vhosts=* - - --ws - - --ws.addr=0.0.0.0 - - --ws.api=eth,net,web3,debug,admin,txpool,engine - - --ws.origins=* - - --ws.port=8545 - - --authrpc.addr=0.0.0.0 - - --authrpc.jwtsecret=/jwtsecret - - --authrpc.vhosts=* - restart: unless-stopped - stop_grace_period: 5m - networks: - - chains - volumes: - - ${FRAXTAL_TESTNET_OP_GETH_ARCHIVE_LEVELDB_HASH_DATA:-fraxtal-testnet-op-geth-archive-leveldb-hash}:/data - - ./op/fraxtal/testnet:/config - - .jwtsecret:/jwtsecret:ro - - /slowdisk:/slowdisk - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=6060 - - prometheus-scrape.path=/debug/metrics/prometheus - - traefik.enable=true - - traefik.http.middlewares.fraxtal-testnet-op-geth-archive-leveldb-hash-stripprefix.stripprefix.prefixes=/fraxtal-testnet-archive - - traefik.http.services.fraxtal-testnet-op-geth-archive-leveldb-hash.loadbalancer.server.port=8545 - - ${NO_SSL:-traefik.http.routers.fraxtal-testnet-op-geth-archive-leveldb-hash.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.fraxtal-testnet-op-geth-archive-leveldb-hash.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.fraxtal-testnet-op-geth-archive-leveldb-hash.rule=Host(`$DOMAIN`) && (Path(`/fraxtal-testnet-archive`) || Path(`/fraxtal-testnet-archive/`))} - - ${NO_SSL:+traefik.http.routers.fraxtal-testnet-op-geth-archive-leveldb-hash.rule=Path(`/fraxtal-testnet-archive`) || Path(`/fraxtal-testnet-archive/`)} - - traefik.http.routers.fraxtal-testnet-op-geth-archive-leveldb-hash.middlewares=fraxtal-testnet-op-geth-archive-leveldb-hash-stripprefix, ipallowlist - - fraxtal-testnet-archive-node: - image: ${FRAXTAL_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${FRAXTAL_TESTNET_KONA_VERSION:-v1.6.1} - ports: - - 15294:15294 - - 15294:15294/udp - environment: - - KONA_METRICS_ADDR=0.0.0.0 - - KONA_NODE_L1_BEACON=${ETHEREUM_HOODI_BEACON_REST} - - KONA_NODE_L1_ETH_RPC=${FRAXTAL_TESTNET_L1_EXECUTION_RPC:-${ETHEREUM_HOODI_EXECUTION_RPC}} - - KONA_NODE_L1_TRUST_RPC=${ETHEREUM_HOODI_EXECUTION_TRUST:-false} - - KONA_NODE_L2_CHAIN_ID=2523 - - KONA_NODE_L2_ENGINE_AUTH=/jwtsecret - - KONA_NODE_L2_ENGINE_RPC=http://fraxtal-testnet-archive:8551 - - KONA_NODE_L2_ENGINE_TIMEOUT=120000 - - KONA_NODE_L2_TRUST_RPC=true - - KONA_NODE_METRICS_PORT=7300 - - KONA_NODE_MODE=Validator - - KONA_NODE_P2P_ADVERTISE_IP=${IP} - - KONA_NODE_P2P_BOOTNODES=enr:-J24QMswfOBuPJnTjWPN7p-jZDXlB0VIYznPmpbmdkYM6rWKXc9nP34X5iMECUJmO-r-ebFdB0lKKyCtwMx1K2iOWb6GAYv0JJTPgmlkgnY0gmlwhDaUK8yHb3BzdGFja4PaEwCJc2VjcDI1NmsxoQJ-3NmhyfH63mVHv81ZlfG95tW6RwHPh_4S5To1eqbJhYN0Y3CCJAaDdWRwgiQG,enr:-J24QAsDW6Q83Cxb_qZaKtjm4jkhYWX7S3zDOoore9_1gjgge-POCzksofNo-27mbnthX7T9m4y7tr6t5Limw52TVVqGAYv0JGdPgmlkgnY0gmlwhDavnMmHb3BzdGFja4PaEwCJc2VjcDI1NmsxoQM1128eBAblNUFycltYl2B6mvhDWuFs1ZInCkByriIWY4N0Y3CCJAaDdWRwgiQG,enr:-J24QNkAGsc3ptRO1I23guIZh6kPZfLRlkWRX5U--Fk3X27fdSnq3giOAOTsRFNDgUeuNy5wrpKBWR_5TueJTMRmg4eGAYv0JIFbgmlkgnY0gmlwhDbZXGmHb3BzdGFja4PaEwCJc2VjcDI1NmsxoQO8_h2GFnyeoW1GoxgGYtg_0qIXgO5IFdEsvXaCBh6RcIN0Y3CCJAaDdWRwgiQGenr:-J24QLWXBXHni0E8pqwsAxCpqq-W1-J9MIABLFpG3WQmNF_SGsHBLbxQXojGIFFMq904Hy9Q9uU9BDRwgm-6hmx50FOGAZoNhRvjgmlkgnY0gmlwhCigGzaHb3BzdGFja4PbEwCJc2VjcDI1NmsxoQJlIOBp-Tsu0KwuFBG8Nd_YyjvqgHJbrxqGHKfdLvQG4IN0Y3CCeMuDdWRwgnjL,enr:-J24QKkRJDmCMshdvGbg37TBi5kgVV5iHI-_o-M9aGfaSrMJHUUop6XXhSGZz-E_bBb_cUMsMClt2VWesE_I0u6zI2mGAZoNdD-IgmlkgnY0gmlwhA_MbmOHb3BzdGFja4PbEwCJc2VjcDI1NmsxoQJR7V9CwGDb4Xd7r9qu_nOluNy9HGI7E2WMQ6e60G6P8oN0Y3CCeMuDdWRwgnjL - - KONA_NODE_P2P_LISTEN_IP=0.0.0.0 - - KONA_NODE_P2P_LISTEN_TCP_PORT=15294 - - KONA_NODE_P2P_LISTEN_UDP_PORT=15294 - - KONA_NODE_RPC_ADDR=0.0.0.0 - - KONA_NODE_RPC_PORT=9545 - entrypoint: [kona-node, node] - restart: unless-stopped - depends_on: - fraxtal-testnet-archive: - condition: service_started - restart: true - networks: - - chains - volumes: - - ./op/fraxtal/testnet:/config - - .jwtsecret:/jwtsecret:ro - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=7300 - - prometheus-scrape.path=/metrics - - traefik.enable=true - - traefik.http.middlewares.fraxtal-testnet-op-geth-archive-leveldb-hash-node-stripprefix.stripprefix.prefixes=/fraxtal-testnet-archive/node - - traefik.http.services.fraxtal-testnet-op-geth-archive-leveldb-hash-node.loadbalancer.server.port=9545 - - ${NO_SSL:-traefik.http.routers.fraxtal-testnet-op-geth-archive-leveldb-hash-node.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.fraxtal-testnet-op-geth-archive-leveldb-hash-node.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.fraxtal-testnet-op-geth-archive-leveldb-hash-node.rule=Host(`$DOMAIN`) && PathPrefix(`/fraxtal-testnet-archive/node`)} - - ${NO_SSL:+traefik.http.routers.fraxtal-testnet-op-geth-archive-leveldb-hash-node.rule=PathPrefix(`/fraxtal-testnet-archive/node`)} - - traefik.http.routers.fraxtal-testnet-op-geth-archive-leveldb-hash-node.middlewares=fraxtal-testnet-op-geth-archive-leveldb-hash-node-stripprefix, ipallowlist - -volumes: - fraxtal-testnet-op-geth-archive-leveldb-hash: - -x-upstreams: - - id: $${ID} - labels: - provider: $${PROVIDER} - connection: - generic: - rpc: - url: $${RPC_URL} - ws: - frameSize: 20Mb - msgSize: 50Mb - url: $${WS_URL} - chain: fraxtal-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 -... \ No newline at end of file diff --git a/op/geth/fraxtal-testnet-op-geth-pruned-pebble-path--kona.yml b/op/geth/fraxtal-testnet-op-geth-pruned-pebble-path--kona.yml deleted file mode 100644 index 175c6e30..00000000 --- a/op/geth/fraxtal-testnet-op-geth-pruned-pebble-path--kona.yml +++ /dev/null @@ -1,204 +0,0 @@ ---- -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:op/geth/fraxtal-testnet-op-geth-pruned-pebble-path--kona.yml -# -# docker compose up -d -# -# curl -X POST https://${IP}.traefik.me/fraxtal-testnet \ -# -H "Content-Type: application/json" \ -# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' - -services: - fraxtal-testnet: - image: ${FRAXTAL_GETH_IMAGE:-ghcr.io/fraxfinance/fraxtal-op-geth}:${FRAXTAL_TESTNET_GETH_VERSION:-v1.101702.1-frax-1.3.0} - 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 - - 6060 - - 8551 - environment: - - GETH_BOOTNODES=enr:-KO4QFOGWnVckCqXKTpKAPU_AZJmIbRjz8PTwPjkLgKJ9H_1bQT3fx57hU5OWeBqoLJ4Wa_VfA4paKQ_O-l7CJxj8ECGAZoNhOM7g2V0aMfGhGTaoWCAgmlkgnY0gmlwhCigGzaJc2VjcDI1NmsxoQJHFjvlp9CAbQ-YbO-QglEnykeVDLW8chF72qYUhax0T4RzbmFwwIN0Y3CCdmKDdWRwgnZi,enr:-KO4QCRQ8XyyqzjjYV2NcGWNc6R-kaMhp8KyYw-8mxoGbHsvUbBCO2H8f7PjtDE_ce85nSfcnVgHzfiqhpLvl5aSONWGAZoNdAX-g2V0aMfGhGTaoWCAgmlkgnY0gmlwhA_MbmOJc2VjcDI1NmsxoQO0Z6xvk6FhoaOAiEfRYHfjD5iBD-l0DFSn61-Y2Rf6VYRzbmFwwIN0Y3CCdmKDdWRwgnZi - - GETH_OVERRIDE_CANYON=0 - - GETH_OVERRIDE_ECOTONE=0 - - GETH_OVERRIDE_FJORD=0 - - GETH_OVERRIDE_GRANITE=0 - - GETH_OVERRIDE_HOLOCENE=0 - - GETH_OVERRIDE_ISTHMUS=0 - - GETH_ROLLUP_DISABLETXPOOLGOSSIP=true - - GETH_ROLLUP_SEQUENCERHTTP=https://rpc.testnet.frax.com - entrypoint: /bin/sh -c '[ -f /config/genesis.json ] && geth --db.engine=pebble --gcmode=full --datadir /data init --state.scheme=path /config/genesis.json; exec geth "$@"' -- - command: - - --datadir=/data - - --db.engine=pebble - - --gcmode=full - - --maxpeers=50 - - --metrics - - --metrics.addr=0.0.0.0 - - --metrics.port=6060 - - --networkid=2523 - - --nodiscover - - --rpc.gascap=600000000 - - --rpc.txfeecap=0 - - --state.scheme=path - - --syncmode=full - - --http - - --http.addr=0.0.0.0 - - --http.api=eth,net,web3,debug,admin,txpool,engine - - --http.port=8545 - - --http.vhosts=* - - --ws - - --ws.addr=0.0.0.0 - - --ws.api=eth,net,web3,debug,admin,txpool,engine - - --ws.origins=* - - --ws.port=8545 - - --authrpc.addr=0.0.0.0 - - --authrpc.jwtsecret=/jwtsecret - - --authrpc.vhosts=* - restart: unless-stopped - stop_grace_period: 5m - networks: - - chains - volumes: - - ${FRAXTAL_TESTNET_OP_GETH_PRUNED_PEBBLE_PATH_DATA:-fraxtal-testnet-op-geth-pruned-pebble-path}:/data - - ./op/fraxtal/testnet:/config - - .jwtsecret:/jwtsecret:ro - - /slowdisk:/slowdisk - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=6060 - - prometheus-scrape.path=/debug/metrics/prometheus - - traefik.enable=true - - traefik.http.middlewares.fraxtal-testnet-op-geth-pruned-pebble-path-stripprefix.stripprefix.prefixes=/fraxtal-testnet - - traefik.http.services.fraxtal-testnet-op-geth-pruned-pebble-path.loadbalancer.server.port=8545 - - ${NO_SSL:-traefik.http.routers.fraxtal-testnet-op-geth-pruned-pebble-path.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.fraxtal-testnet-op-geth-pruned-pebble-path.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.fraxtal-testnet-op-geth-pruned-pebble-path.rule=Host(`$DOMAIN`) && (Path(`/fraxtal-testnet`) || Path(`/fraxtal-testnet/`))} - - ${NO_SSL:+traefik.http.routers.fraxtal-testnet-op-geth-pruned-pebble-path.rule=Path(`/fraxtal-testnet`) || Path(`/fraxtal-testnet/`)} - - traefik.http.routers.fraxtal-testnet-op-geth-pruned-pebble-path.middlewares=fraxtal-testnet-op-geth-pruned-pebble-path-stripprefix, ipallowlist - - fraxtal-testnet-node: - image: ${FRAXTAL_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${FRAXTAL_TESTNET_KONA_VERSION:-v1.6.1} - ports: - - 16370:16370 - - 16370:16370/udp - environment: - - KONA_METRICS_ADDR=0.0.0.0 - - KONA_NODE_L1_BEACON=${ETHEREUM_HOODI_BEACON_REST} - - KONA_NODE_L1_ETH_RPC=${FRAXTAL_TESTNET_L1_EXECUTION_RPC:-${ETHEREUM_HOODI_EXECUTION_RPC}} - - KONA_NODE_L1_TRUST_RPC=${ETHEREUM_HOODI_EXECUTION_TRUST:-false} - - KONA_NODE_L2_CHAIN_ID=2523 - - KONA_NODE_L2_ENGINE_AUTH=/jwtsecret - - KONA_NODE_L2_ENGINE_RPC=http://fraxtal-testnet:8551 - - KONA_NODE_L2_ENGINE_TIMEOUT=120000 - - KONA_NODE_L2_TRUST_RPC=true - - KONA_NODE_METRICS_PORT=7300 - - KONA_NODE_MODE=Validator - - KONA_NODE_P2P_ADVERTISE_IP=${IP} - - KONA_NODE_P2P_BOOTNODES=enr:-J24QMswfOBuPJnTjWPN7p-jZDXlB0VIYznPmpbmdkYM6rWKXc9nP34X5iMECUJmO-r-ebFdB0lKKyCtwMx1K2iOWb6GAYv0JJTPgmlkgnY0gmlwhDaUK8yHb3BzdGFja4PaEwCJc2VjcDI1NmsxoQJ-3NmhyfH63mVHv81ZlfG95tW6RwHPh_4S5To1eqbJhYN0Y3CCJAaDdWRwgiQG,enr:-J24QAsDW6Q83Cxb_qZaKtjm4jkhYWX7S3zDOoore9_1gjgge-POCzksofNo-27mbnthX7T9m4y7tr6t5Limw52TVVqGAYv0JGdPgmlkgnY0gmlwhDavnMmHb3BzdGFja4PaEwCJc2VjcDI1NmsxoQM1128eBAblNUFycltYl2B6mvhDWuFs1ZInCkByriIWY4N0Y3CCJAaDdWRwgiQG,enr:-J24QNkAGsc3ptRO1I23guIZh6kPZfLRlkWRX5U--Fk3X27fdSnq3giOAOTsRFNDgUeuNy5wrpKBWR_5TueJTMRmg4eGAYv0JIFbgmlkgnY0gmlwhDbZXGmHb3BzdGFja4PaEwCJc2VjcDI1NmsxoQO8_h2GFnyeoW1GoxgGYtg_0qIXgO5IFdEsvXaCBh6RcIN0Y3CCJAaDdWRwgiQGenr:-J24QLWXBXHni0E8pqwsAxCpqq-W1-J9MIABLFpG3WQmNF_SGsHBLbxQXojGIFFMq904Hy9Q9uU9BDRwgm-6hmx50FOGAZoNhRvjgmlkgnY0gmlwhCigGzaHb3BzdGFja4PbEwCJc2VjcDI1NmsxoQJlIOBp-Tsu0KwuFBG8Nd_YyjvqgHJbrxqGHKfdLvQG4IN0Y3CCeMuDdWRwgnjL,enr:-J24QKkRJDmCMshdvGbg37TBi5kgVV5iHI-_o-M9aGfaSrMJHUUop6XXhSGZz-E_bBb_cUMsMClt2VWesE_I0u6zI2mGAZoNdD-IgmlkgnY0gmlwhA_MbmOHb3BzdGFja4PbEwCJc2VjcDI1NmsxoQJR7V9CwGDb4Xd7r9qu_nOluNy9HGI7E2WMQ6e60G6P8oN0Y3CCeMuDdWRwgnjL - - KONA_NODE_P2P_LISTEN_IP=0.0.0.0 - - KONA_NODE_P2P_LISTEN_TCP_PORT=16370 - - KONA_NODE_P2P_LISTEN_UDP_PORT=16370 - - KONA_NODE_RPC_ADDR=0.0.0.0 - - KONA_NODE_RPC_PORT=9545 - entrypoint: [kona-node, node] - restart: unless-stopped - depends_on: - fraxtal-testnet: - condition: service_started - restart: true - networks: - - chains - volumes: - - ./op/fraxtal/testnet:/config - - .jwtsecret:/jwtsecret:ro - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=7300 - - prometheus-scrape.path=/metrics - - traefik.enable=true - - traefik.http.middlewares.fraxtal-testnet-op-geth-pruned-pebble-path-node-stripprefix.stripprefix.prefixes=/fraxtal-testnet/node - - traefik.http.services.fraxtal-testnet-op-geth-pruned-pebble-path-node.loadbalancer.server.port=9545 - - ${NO_SSL:-traefik.http.routers.fraxtal-testnet-op-geth-pruned-pebble-path-node.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.fraxtal-testnet-op-geth-pruned-pebble-path-node.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.fraxtal-testnet-op-geth-pruned-pebble-path-node.rule=Host(`$DOMAIN`) && PathPrefix(`/fraxtal-testnet/node`)} - - ${NO_SSL:+traefik.http.routers.fraxtal-testnet-op-geth-pruned-pebble-path-node.rule=PathPrefix(`/fraxtal-testnet/node`)} - - traefik.http.routers.fraxtal-testnet-op-geth-pruned-pebble-path-node.middlewares=fraxtal-testnet-op-geth-pruned-pebble-path-node-stripprefix, ipallowlist - -volumes: - fraxtal-testnet-op-geth-pruned-pebble-path: - -x-upstreams: - - id: $${ID} - labels: - provider: $${PROVIDER} - connection: - generic: - rpc: - url: $${RPC_URL} - ws: - frameSize: 20Mb - msgSize: 50Mb - url: $${WS_URL} - chain: fraxtal-testnet - 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 -... \ No newline at end of file diff --git a/op/geth/superseed-mainnet-op-geth-pruned-pebble-path--kona.yml b/op/geth/superseed-mainnet-op-geth-pruned-pebble-path--kona.yml deleted file mode 100644 index 51e7ca0e..00000000 --- a/op/geth/superseed-mainnet-op-geth-pruned-pebble-path--kona.yml +++ /dev/null @@ -1,203 +0,0 @@ ---- -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:op/geth/superseed-mainnet-op-geth-pruned-pebble-path--kona.yml -# -# docker compose up -d -# -# curl -X POST https://${IP}.traefik.me/superseed-mainnet \ -# -H "Content-Type: application/json" \ -# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' - -services: - superseed-mainnet: - image: ${SUPERSEED_GETH_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-geth}:${SUPERSEED_MAINNET_GETH_VERSION:-v1.101702.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: - - 11876:11876 - - 11876:11876/udp - expose: - - 8545 - - 6060 - - 8551 - environment: - - GETH_OVERRIDE_GRANITE=1726185601 - - GETH_OVERRIDE_HOLOCENE=1736445601 - - GETH_ROLLUP_DISABLETXPOOLGOSSIP=true - - GETH_ROLLUP_SEQUENCERHTTP=https://mainnet.superseed.xyz - entrypoint: /bin/sh -c '[ -f /config/genesis.json ] && geth --db.engine=pebble --gcmode=full --datadir /data init --state.scheme=path /config/genesis.json; exec geth "$@"' -- - command: - - --datadir=/data - - --db.engine=pebble - - --gcmode=full - - --maxpeers=50 - - --metrics - - --metrics.addr=0.0.0.0 - - --metrics.port=6060 - - --nat=extip:${IP} - - --networkid=5330 - - --port=11876 - - --rpc.gascap=600000000 - - --rpc.txfeecap=0 - - --state.scheme=path - - --syncmode=snap - - --http - - --http.addr=0.0.0.0 - - --http.api=eth,net,web3,debug,admin,txpool,engine - - --http.port=8545 - - --http.vhosts=* - - --ws - - --ws.addr=0.0.0.0 - - --ws.api=eth,net,web3,debug,admin,txpool,engine - - --ws.origins=* - - --ws.port=8545 - - --authrpc.addr=0.0.0.0 - - --authrpc.jwtsecret=/jwtsecret - - --authrpc.vhosts=* - restart: unless-stopped - stop_grace_period: 5m - networks: - - chains - volumes: - - ${SUPERSEED_MAINNET_OP_GETH_PRUNED_PEBBLE_PATH_DATA:-superseed-mainnet-op-geth-pruned-pebble-path}:/data - - ./op/superseed/mainnet:/config - - .jwtsecret:/jwtsecret:ro - - /slowdisk:/slowdisk - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=6060 - - prometheus-scrape.path=/debug/metrics/prometheus - - traefik.enable=true - - traefik.http.middlewares.superseed-mainnet-op-geth-pruned-pebble-path-stripprefix.stripprefix.prefixes=/superseed-mainnet - - traefik.http.services.superseed-mainnet-op-geth-pruned-pebble-path.loadbalancer.server.port=8545 - - ${NO_SSL:-traefik.http.routers.superseed-mainnet-op-geth-pruned-pebble-path.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.superseed-mainnet-op-geth-pruned-pebble-path.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.superseed-mainnet-op-geth-pruned-pebble-path.rule=Host(`$DOMAIN`) && (Path(`/superseed-mainnet`) || Path(`/superseed-mainnet/`))} - - ${NO_SSL:+traefik.http.routers.superseed-mainnet-op-geth-pruned-pebble-path.rule=Path(`/superseed-mainnet`) || Path(`/superseed-mainnet/`)} - - traefik.http.routers.superseed-mainnet-op-geth-pruned-pebble-path.middlewares=superseed-mainnet-op-geth-pruned-pebble-path-stripprefix, ipallowlist - - superseed-mainnet-node: - image: ${SUPERSEED_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${SUPERSEED_MAINNET_KONA_VERSION:-v1.6.1} - ports: - - 16876:16876 - - 16876:16876/udp - environment: - - KONA_METRICS_ADDR=0.0.0.0 - - KONA_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST} - - KONA_NODE_L1_ETH_RPC=${SUPERSEED_MAINNET_L1_EXECUTION_RPC:-${ETHEREUM_MAINNET_EXECUTION_RPC}} - - KONA_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false} - - KONA_NODE_L2_CHAIN_ID=5330 - - KONA_NODE_L2_ENGINE_AUTH=/jwtsecret - - KONA_NODE_L2_ENGINE_RPC=http://superseed-mainnet:8551 - - KONA_NODE_L2_ENGINE_TIMEOUT=120000 - - KONA_NODE_L2_TRUST_RPC=true - - KONA_NODE_METRICS_PORT=7300 - - KONA_NODE_MODE=Validator - - KONA_NODE_P2P_ADVERTISE_IP=${IP} - - KONA_NODE_P2P_BOOTNODES=enode://3e905f39a5c084367bbe172453cf6d81b28a49f57064b56b0eb76af75d6eafe3d578605f56c4353328194245453083e1c26e339497f732461d2187d0c4a4474e@35.203.166.40:9222?discport=30301,enode://d25ce99435982b04d60c4b41ba256b84b888626db7bee45a9419382300fbe907359ae5ef250346785bff8d3b9d07cd3e017a27e2ee3cfda3bcbb0ba762ac9674@bootnode.conduit.xyz:0?discport=30301,enode://2d4e7e9d48f4dd4efe9342706dd1b0024681bd4c3300d021f86fc75eab7865d4e0cbec6fbc883f011cfd6a57423e7e2f6e104baad2b744c3cafaec6bc7dc92c1@34.65.43.171:0?discport=30305,enode://9d7a3efefe442351217e73b3a593bcb8efffb55b4807699972145324eab5e6b382152f8d24f6301baebbfb5ecd4127bd3faab2842c04cd432bdf50ba092f6645@34.65.109.126:0?discport=30305 - - KONA_NODE_P2P_LISTEN_IP=0.0.0.0 - - KONA_NODE_P2P_LISTEN_TCP_PORT=16876 - - KONA_NODE_P2P_LISTEN_UDP_PORT=16876 - - KONA_NODE_RPC_ADDR=0.0.0.0 - - KONA_NODE_RPC_PORT=9545 - entrypoint: [kona-node, node] - restart: unless-stopped - depends_on: - superseed-mainnet: - condition: service_started - restart: true - networks: - - chains - volumes: - - ./op/superseed/mainnet:/config - - .jwtsecret:/jwtsecret:ro - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=7300 - - prometheus-scrape.path=/metrics - - traefik.enable=true - - traefik.http.middlewares.superseed-mainnet-op-geth-pruned-pebble-path-node-stripprefix.stripprefix.prefixes=/superseed-mainnet/node - - traefik.http.services.superseed-mainnet-op-geth-pruned-pebble-path-node.loadbalancer.server.port=9545 - - ${NO_SSL:-traefik.http.routers.superseed-mainnet-op-geth-pruned-pebble-path-node.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.superseed-mainnet-op-geth-pruned-pebble-path-node.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.superseed-mainnet-op-geth-pruned-pebble-path-node.rule=Host(`$DOMAIN`) && PathPrefix(`/superseed-mainnet/node`)} - - ${NO_SSL:+traefik.http.routers.superseed-mainnet-op-geth-pruned-pebble-path-node.rule=PathPrefix(`/superseed-mainnet/node`)} - - traefik.http.routers.superseed-mainnet-op-geth-pruned-pebble-path-node.middlewares=superseed-mainnet-op-geth-pruned-pebble-path-node-stripprefix, ipallowlist - -volumes: - superseed-mainnet-op-geth-pruned-pebble-path: - -x-upstreams: - - id: $${ID} - labels: - provider: $${PROVIDER} - connection: - generic: - rpc: - url: $${RPC_URL} - ws: - frameSize: 20Mb - msgSize: 50Mb - url: $${WS_URL} - chain: superseed - 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 -... \ No newline at end of file diff --git a/op/geth/superseed-sepolia-op-geth-pruned-pebble-path--kona.yml b/op/geth/superseed-sepolia-op-geth-pruned-pebble-path--kona.yml deleted file mode 100644 index 57b34499..00000000 --- a/op/geth/superseed-sepolia-op-geth-pruned-pebble-path--kona.yml +++ /dev/null @@ -1,201 +0,0 @@ ---- -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:op/geth/superseed-sepolia-op-geth-pruned-pebble-path--kona.yml -# -# docker compose up -d -# -# curl -X POST https://${IP}.traefik.me/superseed-sepolia \ -# -H "Content-Type: application/json" \ -# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' - -services: - superseed-sepolia: - image: ${SUPERSEED_GETH_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-geth}:${SUPERSEED_SEPOLIA_GETH_VERSION:-v1.101702.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 - expose: - - 8545 - - 6060 - - 8551 - environment: - - GETH_OVERRIDE_GRANITE=1732546800 - - GETH_OVERRIDE_HOLOCENE=1732633200 - - GETH_OVERRIDE_ISTHMUS=1744905600 - - GETH_ROLLUP_DISABLETXPOOLGOSSIP=true - - GETH_ROLLUP_SEQUENCERHTTP=https://sepolia.superseed.xyz - entrypoint: /bin/sh -c '[ -f /config/genesis.json ] && geth --db.engine=pebble --gcmode=full --datadir /data init --state.scheme=path /config/genesis.json; exec geth "$@"' -- - command: - - --datadir=/data - - --db.engine=pebble - - --gcmode=full - - --maxpeers=50 - - --metrics - - --metrics.addr=0.0.0.0 - - --metrics.port=6060 - - --networkid=53302 - - --nodiscover - - --rpc.gascap=600000000 - - --rpc.txfeecap=0 - - --state.scheme=path - - --syncmode=full - - --http - - --http.addr=0.0.0.0 - - --http.api=eth,net,web3,debug,admin,txpool,engine - - --http.port=8545 - - --http.vhosts=* - - --ws - - --ws.addr=0.0.0.0 - - --ws.api=eth,net,web3,debug,admin,txpool,engine - - --ws.origins=* - - --ws.port=8545 - - --authrpc.addr=0.0.0.0 - - --authrpc.jwtsecret=/jwtsecret - - --authrpc.vhosts=* - restart: unless-stopped - stop_grace_period: 5m - networks: - - chains - volumes: - - ${SUPERSEED_SEPOLIA_OP_GETH_PRUNED_PEBBLE_PATH_DATA:-superseed-sepolia-op-geth-pruned-pebble-path}:/data - - ./op/superseed/sepolia:/config - - .jwtsecret:/jwtsecret:ro - - /slowdisk:/slowdisk - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=6060 - - prometheus-scrape.path=/debug/metrics/prometheus - - traefik.enable=true - - traefik.http.middlewares.superseed-sepolia-op-geth-pruned-pebble-path-stripprefix.stripprefix.prefixes=/superseed-sepolia - - traefik.http.services.superseed-sepolia-op-geth-pruned-pebble-path.loadbalancer.server.port=8545 - - ${NO_SSL:-traefik.http.routers.superseed-sepolia-op-geth-pruned-pebble-path.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.superseed-sepolia-op-geth-pruned-pebble-path.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.superseed-sepolia-op-geth-pruned-pebble-path.rule=Host(`$DOMAIN`) && (Path(`/superseed-sepolia`) || Path(`/superseed-sepolia/`))} - - ${NO_SSL:+traefik.http.routers.superseed-sepolia-op-geth-pruned-pebble-path.rule=Path(`/superseed-sepolia`) || Path(`/superseed-sepolia/`)} - - traefik.http.routers.superseed-sepolia-op-geth-pruned-pebble-path.middlewares=superseed-sepolia-op-geth-pruned-pebble-path-stripprefix, ipallowlist - - superseed-sepolia-node: - image: ${SUPERSEED_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${SUPERSEED_SEPOLIA_KONA_VERSION:-v1.6.1} - ports: - - 17522:17522 - - 17522:17522/udp - environment: - - KONA_METRICS_ADDR=0.0.0.0 - - KONA_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST} - - KONA_NODE_L1_ETH_RPC=${SUPERSEED_SEPOLIA_L1_EXECUTION_RPC:-${ETHEREUM_SEPOLIA_EXECUTION_RPC}} - - KONA_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false} - - KONA_NODE_L2_CHAIN_ID=53302 - - KONA_NODE_L2_ENGINE_AUTH=/jwtsecret - - KONA_NODE_L2_ENGINE_RPC=http://superseed-sepolia:8551 - - KONA_NODE_L2_ENGINE_TIMEOUT=120000 - - KONA_NODE_L2_TRUST_RPC=true - - KONA_NODE_METRICS_PORT=7300 - - KONA_NODE_MODE=Validator - - KONA_NODE_OVERRIDE_PECTRA_BLOB_SCHEDULE=1742486400 - - KONA_NODE_P2P_ADVERTISE_IP=${IP} - - KONA_NODE_P2P_BOOTNODES=enode://c9fb471294f243ce4aa32f8987d743fed73fa109013996f169f81914efd2a76762f2f142bd6dcc147afe342c752a587e06ef2ea1418c99ff757986242e372f3d@34.105.58.183:9222?discport=30301,enode://d25ce99435982b04d60c4b41ba256b84b888626db7bee45a9419382300fbe907359ae5ef250346785bff8d3b9d07cd3e017a27e2ee3cfda3bcbb0ba762ac9674@bootnode.conduit.xyz:0?discport=30301,enode://2d4e7e9d48f4dd4efe9342706dd1b0024681bd4c3300d021f86fc75eab7865d4e0cbec6fbc883f011cfd6a57423e7e2f6e104baad2b744c3cafaec6bc7dc92c1@34.65.43.171:0?discport=30305,enode://9d7a3efefe442351217e73b3a593bcb8efffb55b4807699972145324eab5e6b382152f8d24f6301baebbfb5ecd4127bd3faab2842c04cd432bdf50ba092f6645@34.65.109.126:0?discport=30305 - - KONA_NODE_P2P_LISTEN_IP=0.0.0.0 - - KONA_NODE_P2P_LISTEN_TCP_PORT=17522 - - KONA_NODE_P2P_LISTEN_UDP_PORT=17522 - - KONA_NODE_RPC_ADDR=0.0.0.0 - - KONA_NODE_RPC_PORT=9545 - entrypoint: [kona-node, node] - restart: unless-stopped - depends_on: - superseed-sepolia: - condition: service_started - restart: true - networks: - - chains - volumes: - - ./op/superseed/sepolia:/config - - .jwtsecret:/jwtsecret:ro - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=7300 - - prometheus-scrape.path=/metrics - - traefik.enable=true - - traefik.http.middlewares.superseed-sepolia-op-geth-pruned-pebble-path-node-stripprefix.stripprefix.prefixes=/superseed-sepolia/node - - traefik.http.services.superseed-sepolia-op-geth-pruned-pebble-path-node.loadbalancer.server.port=9545 - - ${NO_SSL:-traefik.http.routers.superseed-sepolia-op-geth-pruned-pebble-path-node.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.superseed-sepolia-op-geth-pruned-pebble-path-node.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.superseed-sepolia-op-geth-pruned-pebble-path-node.rule=Host(`$DOMAIN`) && PathPrefix(`/superseed-sepolia/node`)} - - ${NO_SSL:+traefik.http.routers.superseed-sepolia-op-geth-pruned-pebble-path-node.rule=PathPrefix(`/superseed-sepolia/node`)} - - traefik.http.routers.superseed-sepolia-op-geth-pruned-pebble-path-node.middlewares=superseed-sepolia-op-geth-pruned-pebble-path-node-stripprefix, ipallowlist - -volumes: - superseed-sepolia-op-geth-pruned-pebble-path: - -x-upstreams: - - id: $${ID} - labels: - provider: $${PROVIDER} - connection: - generic: - rpc: - url: $${RPC_URL} - ws: - frameSize: 20Mb - msgSize: 50Mb - url: $${WS_URL} - chain: superseed-sepolia - 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 -... \ No newline at end of file diff --git a/op/geth/xlayer-mainnet-op-geth-archive-leveldb-hash--kona.yml b/op/geth/xlayer-mainnet-op-geth-archive-leveldb-hash--kona.yml deleted file mode 100644 index 5ff9b1d8..00000000 --- a/op/geth/xlayer-mainnet-op-geth-archive-leveldb-hash--kona.yml +++ /dev/null @@ -1,219 +0,0 @@ ---- -x-logging-defaults: &logging-defaults - driver: json-file - options: - max-size: "10m" - max-file: "3" -# You should use a snapshot for Xlayer -# if import of genesis fails the chainid will be 1 for ethereum mainnet - -# 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:op/geth/xlayer-mainnet-op-geth-archive-leveldb-hash--kona.yml -# -# docker compose up -d -# -# curl -X POST https://${IP}.traefik.me/xlayer-mainnet-archive \ -# -H "Content-Type: application/json" \ -# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' - -services: - xlayer-mainnet-archive-init: - image: alpine:3.21 - user: root - entrypoint: [/bin/sh, -c] - command: - - | - apk add --no-cache curl wget - mkdir -p /config - [ -f /config/genesis.json ] || wget -qO- "https://okg-pub-hk.oss-cn-hongkong.aliyuncs.com/cdn/chain/xlayer/snapshot/merged.genesis.json.mainnet.tar.gz" | tar -xzf - -O --wildcards "*.json" > /config/genesis.json - restart: no - networks: - - chains - volumes: - - ./op/xlayer/mainnet:/config - logging: *logging-defaults - - xlayer-mainnet-archive: - image: ${XLAYER_GETH_IMAGE:-xlayer/op-geth}:${XLAYER_MAINNET_GETH_VERSION:-v0.1.5.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 - expose: - - 8545 - - 6060 - - 8551 - environment: - - GENESIS_URL=https://okg-pub-hk.oss-cn-hongkong.aliyuncs.com/cdn/chain/xlayer/snapshot/merged.genesis.json.mainnet.tar.gz - - GETH_ROLLUP_DISABLETXPOOLGOSSIP=true - - GETH_ROLLUP_SEQUENCERHTTP=https://rpc.xlayer.tech - entrypoint: /bin/sh -c '[ -f /config/genesis.json ] && geth --db.engine=leveldb --gcmode=archive --datadir /data init --state.scheme=hash /config/genesis.json; exec geth "$@"' -- - command: - - --config=/config/geth.toml - - --datadir=/data - - --db.engine=leveldb - - --gcmode=archive - - --maxpeers=50 - - --metrics - - --metrics.addr=0.0.0.0 - - --metrics.port=6060 - - --nodiscover - - --rollup.enabletxpooladmission - - --rpc.gascap=600000000 - - --rpc.txfeecap=0 - - --state.scheme=hash - - --syncmode=full - - --http - - --http.addr=0.0.0.0 - - --http.api=eth,net,web3,debug,admin,txpool,engine - - --http.port=8545 - - --http.vhosts=* - - --ws - - --ws.addr=0.0.0.0 - - --ws.api=eth,net,web3,debug,admin,txpool,engine - - --ws.origins=* - - --ws.port=8545 - - --authrpc.addr=0.0.0.0 - - --authrpc.jwtsecret=/jwtsecret - - --authrpc.vhosts=* - restart: unless-stopped - stop_grace_period: 5m - depends_on: - xlayer-mainnet-archive-init: - condition: service_completed_successfully - networks: - - chains - volumes: - - ${XLAYER_MAINNET_OP_GETH_ARCHIVE_LEVELDB_HASH_DATA:-xlayer-mainnet-op-geth-archive-leveldb-hash}:/data - - ./op/xlayer/mainnet:/config - - .jwtsecret:/jwtsecret:ro - - /slowdisk:/slowdisk - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=6060 - - prometheus-scrape.path=/debug/metrics/prometheus - - traefik.enable=true - - traefik.http.middlewares.xlayer-mainnet-op-geth-archive-leveldb-hash-stripprefix.stripprefix.prefixes=/xlayer-mainnet-archive - - traefik.http.services.xlayer-mainnet-op-geth-archive-leveldb-hash.loadbalancer.server.port=8545 - - ${NO_SSL:-traefik.http.routers.xlayer-mainnet-op-geth-archive-leveldb-hash.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.xlayer-mainnet-op-geth-archive-leveldb-hash.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.xlayer-mainnet-op-geth-archive-leveldb-hash.rule=Host(`$DOMAIN`) && (Path(`/xlayer-mainnet-archive`) || Path(`/xlayer-mainnet-archive/`))} - - ${NO_SSL:+traefik.http.routers.xlayer-mainnet-op-geth-archive-leveldb-hash.rule=Path(`/xlayer-mainnet-archive`) || Path(`/xlayer-mainnet-archive/`)} - - traefik.http.routers.xlayer-mainnet-op-geth-archive-leveldb-hash.middlewares=xlayer-mainnet-op-geth-archive-leveldb-hash-stripprefix, ipallowlist - - xlayer-mainnet-archive-node: - image: ${XLAYER_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${XLAYER_MAINNET_KONA_VERSION:-v1.6.1} - ports: - - 16947:16947 - - 16947:16947/udp - environment: - - GENESIS_URL=https://okg-pub-hk.oss-cn-hongkong.aliyuncs.com/cdn/chain/xlayer/snapshot/merged.genesis.json.mainnet.tar.gz - - KONA_METRICS_ADDR=0.0.0.0 - - KONA_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST} - - KONA_NODE_L1_ETH_RPC=${XLAYER_MAINNET_L1_EXECUTION_RPC:-${ETHEREUM_MAINNET_EXECUTION_RPC}} - - KONA_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false} - - KONA_NODE_L2_CHAIN_ID=196 - - KONA_NODE_L2_ENGINE_AUTH=/jwtsecret - - KONA_NODE_L2_ENGINE_RPC=http://xlayer-mainnet-archive:8551 - - KONA_NODE_L2_ENGINE_TIMEOUT=120000 - - KONA_NODE_L2_TRUST_RPC=true - - KONA_NODE_METRICS_PORT=7300 - - KONA_NODE_MODE=Validator - - KONA_NODE_P2P_ADVERTISE_IP=${IP} - - KONA_NODE_P2P_BOOTNODES=enode://c67d7f63c5483ab8311123d2997bfe6a8aac2b117a40167cf71682f8a3e37d3b86547c786559355c4c05ae0b1a7e7a1b8fde55050b183f96728d62e276467ce1@8.210.177.150:9223,enode://28e3e305b266e01226a7cc979ab692b22507784095157453ee0e34607bb3beac9a5b00f3e3d7d3ac36164612ca25108e6b79f75e3a9ecb54a0b3e7eb3e097d37@8.210.15.172:9223,enode://b5aa43622aad25c619650a0b7f8bb030161dfbfd5664233f92d841a33b404cea3ffffdc5bc8d6667c7dc212242a52f0702825c1e51612047f75c847ab96ef7a6@8.210.69.97:9223 - - KONA_NODE_P2P_LISTEN_IP=0.0.0.0 - - KONA_NODE_P2P_LISTEN_TCP_PORT=16947 - - KONA_NODE_P2P_LISTEN_UDP_PORT=16947 - - KONA_NODE_RPC_ADDR=0.0.0.0 - - KONA_NODE_RPC_PORT=9545 - entrypoint: [kona-node, node] - restart: unless-stopped - depends_on: - xlayer-mainnet-archive: - condition: service_started - restart: true - networks: - - chains - volumes: - - ./op/xlayer/mainnet:/config - - .jwtsecret:/jwtsecret:ro - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=7300 - - prometheus-scrape.path=/metrics - - traefik.enable=true - - traefik.http.middlewares.xlayer-mainnet-op-geth-archive-leveldb-hash-node-stripprefix.stripprefix.prefixes=/xlayer-mainnet-archive/node - - traefik.http.services.xlayer-mainnet-op-geth-archive-leveldb-hash-node.loadbalancer.server.port=9545 - - ${NO_SSL:-traefik.http.routers.xlayer-mainnet-op-geth-archive-leveldb-hash-node.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.xlayer-mainnet-op-geth-archive-leveldb-hash-node.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.xlayer-mainnet-op-geth-archive-leveldb-hash-node.rule=Host(`$DOMAIN`) && PathPrefix(`/xlayer-mainnet-archive/node`)} - - ${NO_SSL:+traefik.http.routers.xlayer-mainnet-op-geth-archive-leveldb-hash-node.rule=PathPrefix(`/xlayer-mainnet-archive/node`)} - - traefik.http.routers.xlayer-mainnet-op-geth-archive-leveldb-hash-node.middlewares=xlayer-mainnet-op-geth-archive-leveldb-hash-node-stripprefix, ipallowlist - -volumes: - xlayer-mainnet-op-geth-archive-leveldb-hash: - -x-upstreams: - - id: $${ID} - labels: - provider: $${PROVIDER} - connection: - generic: - rpc: - url: $${RPC_URL} - ws: - frameSize: 20Mb - msgSize: 50Mb - url: $${WS_URL} - chain: xlayer - 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 -... \ No newline at end of file diff --git a/op/geth/xlayer-mainnet-op-geth-archive-pebble-hash--kona.yml b/op/geth/xlayer-mainnet-op-geth-archive-pebble-hash--kona.yml deleted file mode 100644 index 7d71d1bd..00000000 --- a/op/geth/xlayer-mainnet-op-geth-archive-pebble-hash--kona.yml +++ /dev/null @@ -1,219 +0,0 @@ ---- -x-logging-defaults: &logging-defaults - driver: json-file - options: - max-size: "10m" - max-file: "3" -# You should use a snapshot for Xlayer -# if import of genesis fails the chainid will be 1 for ethereum mainnet - -# 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:op/geth/xlayer-mainnet-op-geth-archive-pebble-hash--kona.yml -# -# docker compose up -d -# -# curl -X POST https://${IP}.traefik.me/xlayer-mainnet-archive \ -# -H "Content-Type: application/json" \ -# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' - -services: - xlayer-mainnet-archive-init: - image: alpine:3.21 - user: root - entrypoint: [/bin/sh, -c] - command: - - | - apk add --no-cache curl wget - mkdir -p /config - [ -f /config/genesis.json ] || wget -qO- "https://okg-pub-hk.oss-cn-hongkong.aliyuncs.com/cdn/chain/xlayer/snapshot/merged.genesis.json.mainnet.tar.gz" | tar -xzf - -O --wildcards "*.json" > /config/genesis.json - restart: no - networks: - - chains - volumes: - - ./op/xlayer/mainnet:/config - logging: *logging-defaults - - xlayer-mainnet-archive: - image: ${XLAYER_GETH_IMAGE:-xlayer/op-geth}:${XLAYER_MAINNET_GETH_VERSION:-v0.1.5.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 - expose: - - 8545 - - 6060 - - 8551 - environment: - - GENESIS_URL=https://okg-pub-hk.oss-cn-hongkong.aliyuncs.com/cdn/chain/xlayer/snapshot/merged.genesis.json.mainnet.tar.gz - - GETH_ROLLUP_DISABLETXPOOLGOSSIP=true - - GETH_ROLLUP_SEQUENCERHTTP=https://rpc.xlayer.tech - entrypoint: /bin/sh -c '[ -f /config/genesis.json ] && geth --db.engine=pebble --gcmode=archive --datadir /data init --state.scheme=hash /config/genesis.json; exec geth "$@"' -- - command: - - --config=/config/geth.toml - - --datadir=/data - - --db.engine=pebble - - --gcmode=archive - - --maxpeers=50 - - --metrics - - --metrics.addr=0.0.0.0 - - --metrics.port=6060 - - --nodiscover - - --rollup.enabletxpooladmission - - --rpc.gascap=600000000 - - --rpc.txfeecap=0 - - --state.scheme=hash - - --syncmode=full - - --http - - --http.addr=0.0.0.0 - - --http.api=eth,net,web3,debug,admin,txpool,engine - - --http.port=8545 - - --http.vhosts=* - - --ws - - --ws.addr=0.0.0.0 - - --ws.api=eth,net,web3,debug,admin,txpool,engine - - --ws.origins=* - - --ws.port=8545 - - --authrpc.addr=0.0.0.0 - - --authrpc.jwtsecret=/jwtsecret - - --authrpc.vhosts=* - restart: unless-stopped - stop_grace_period: 5m - depends_on: - xlayer-mainnet-archive-init: - condition: service_completed_successfully - networks: - - chains - volumes: - - ${XLAYER_MAINNET_OP_GETH_ARCHIVE_PEBBLE_HASH_DATA:-xlayer-mainnet-op-geth-archive-pebble-hash}:/data - - ./op/xlayer/mainnet:/config - - .jwtsecret:/jwtsecret:ro - - /slowdisk:/slowdisk - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=6060 - - prometheus-scrape.path=/debug/metrics/prometheus - - traefik.enable=true - - traefik.http.middlewares.xlayer-mainnet-op-geth-archive-pebble-hash-stripprefix.stripprefix.prefixes=/xlayer-mainnet-archive - - traefik.http.services.xlayer-mainnet-op-geth-archive-pebble-hash.loadbalancer.server.port=8545 - - ${NO_SSL:-traefik.http.routers.xlayer-mainnet-op-geth-archive-pebble-hash.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.xlayer-mainnet-op-geth-archive-pebble-hash.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.xlayer-mainnet-op-geth-archive-pebble-hash.rule=Host(`$DOMAIN`) && (Path(`/xlayer-mainnet-archive`) || Path(`/xlayer-mainnet-archive/`))} - - ${NO_SSL:+traefik.http.routers.xlayer-mainnet-op-geth-archive-pebble-hash.rule=Path(`/xlayer-mainnet-archive`) || Path(`/xlayer-mainnet-archive/`)} - - traefik.http.routers.xlayer-mainnet-op-geth-archive-pebble-hash.middlewares=xlayer-mainnet-op-geth-archive-pebble-hash-stripprefix, ipallowlist - - xlayer-mainnet-archive-node: - image: ${XLAYER_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${XLAYER_MAINNET_KONA_VERSION:-v1.6.1} - ports: - - 17934:17934 - - 17934:17934/udp - environment: - - GENESIS_URL=https://okg-pub-hk.oss-cn-hongkong.aliyuncs.com/cdn/chain/xlayer/snapshot/merged.genesis.json.mainnet.tar.gz - - KONA_METRICS_ADDR=0.0.0.0 - - KONA_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST} - - KONA_NODE_L1_ETH_RPC=${XLAYER_MAINNET_L1_EXECUTION_RPC:-${ETHEREUM_MAINNET_EXECUTION_RPC}} - - KONA_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false} - - KONA_NODE_L2_CHAIN_ID=196 - - KONA_NODE_L2_ENGINE_AUTH=/jwtsecret - - KONA_NODE_L2_ENGINE_RPC=http://xlayer-mainnet-archive:8551 - - KONA_NODE_L2_ENGINE_TIMEOUT=120000 - - KONA_NODE_L2_TRUST_RPC=true - - KONA_NODE_METRICS_PORT=7300 - - KONA_NODE_MODE=Validator - - KONA_NODE_P2P_ADVERTISE_IP=${IP} - - KONA_NODE_P2P_BOOTNODES=enode://c67d7f63c5483ab8311123d2997bfe6a8aac2b117a40167cf71682f8a3e37d3b86547c786559355c4c05ae0b1a7e7a1b8fde55050b183f96728d62e276467ce1@8.210.177.150:9223,enode://28e3e305b266e01226a7cc979ab692b22507784095157453ee0e34607bb3beac9a5b00f3e3d7d3ac36164612ca25108e6b79f75e3a9ecb54a0b3e7eb3e097d37@8.210.15.172:9223,enode://b5aa43622aad25c619650a0b7f8bb030161dfbfd5664233f92d841a33b404cea3ffffdc5bc8d6667c7dc212242a52f0702825c1e51612047f75c847ab96ef7a6@8.210.69.97:9223 - - KONA_NODE_P2P_LISTEN_IP=0.0.0.0 - - KONA_NODE_P2P_LISTEN_TCP_PORT=17934 - - KONA_NODE_P2P_LISTEN_UDP_PORT=17934 - - KONA_NODE_RPC_ADDR=0.0.0.0 - - KONA_NODE_RPC_PORT=9545 - entrypoint: [kona-node, node] - restart: unless-stopped - depends_on: - xlayer-mainnet-archive: - condition: service_started - restart: true - networks: - - chains - volumes: - - ./op/xlayer/mainnet:/config - - .jwtsecret:/jwtsecret:ro - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=7300 - - prometheus-scrape.path=/metrics - - traefik.enable=true - - traefik.http.middlewares.xlayer-mainnet-op-geth-archive-pebble-hash-node-stripprefix.stripprefix.prefixes=/xlayer-mainnet-archive/node - - traefik.http.services.xlayer-mainnet-op-geth-archive-pebble-hash-node.loadbalancer.server.port=9545 - - ${NO_SSL:-traefik.http.routers.xlayer-mainnet-op-geth-archive-pebble-hash-node.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.xlayer-mainnet-op-geth-archive-pebble-hash-node.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.xlayer-mainnet-op-geth-archive-pebble-hash-node.rule=Host(`$DOMAIN`) && PathPrefix(`/xlayer-mainnet-archive/node`)} - - ${NO_SSL:+traefik.http.routers.xlayer-mainnet-op-geth-archive-pebble-hash-node.rule=PathPrefix(`/xlayer-mainnet-archive/node`)} - - traefik.http.routers.xlayer-mainnet-op-geth-archive-pebble-hash-node.middlewares=xlayer-mainnet-op-geth-archive-pebble-hash-node-stripprefix, ipallowlist - -volumes: - xlayer-mainnet-op-geth-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: xlayer - 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 -... \ No newline at end of file diff --git a/op/geth/xlayer-mainnet-op-geth-pruned-pebble-path--kona.yml b/op/geth/xlayer-mainnet-op-geth-pruned-pebble-path--kona.yml deleted file mode 100644 index ad8680aa..00000000 --- a/op/geth/xlayer-mainnet-op-geth-pruned-pebble-path--kona.yml +++ /dev/null @@ -1,221 +0,0 @@ ---- -x-logging-defaults: &logging-defaults - driver: json-file - options: - max-size: "10m" - max-file: "3" -# You should use a snapshot for Xlayer -# if import of genesis fails the chainid will be 1 for ethereum mainnet - -# 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:op/geth/xlayer-mainnet-op-geth-pruned-pebble-path--kona.yml -# -# docker compose up -d -# -# curl -X POST https://${IP}.traefik.me/xlayer-mainnet \ -# -H "Content-Type: application/json" \ -# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' - -services: - xlayer-mainnet-init: - image: alpine:3.21 - user: root - entrypoint: [/bin/sh, -c] - command: - - | - apk add --no-cache curl wget - mkdir -p /config - [ -f /config/genesis.json ] || wget -qO- "https://okg-pub-hk.oss-cn-hongkong.aliyuncs.com/cdn/chain/xlayer/snapshot/merged.genesis.json.mainnet.tar.gz" | tar -xzf - -O --wildcards "*.json" > /config/genesis.json - restart: no - networks: - - chains - volumes: - - ./op/xlayer/mainnet:/config - logging: *logging-defaults - - xlayer-mainnet: - image: ${XLAYER_GETH_IMAGE:-xlayer/op-geth}:${XLAYER_MAINNET_GETH_VERSION:-v0.1.5.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 - expose: - - 8545 - - 6060 - - 8551 - environment: - - GENESIS_URL=https://okg-pub-hk.oss-cn-hongkong.aliyuncs.com/cdn/chain/xlayer/snapshot/merged.genesis.json.mainnet.tar.gz - - GETH_ROLLUP_DISABLETXPOOLGOSSIP=true - - GETH_ROLLUP_SEQUENCERHTTP=https://rpc.xlayer.tech - entrypoint: /bin/sh -c '[ -f /config/genesis.json ] && geth --db.engine=pebble --gcmode=full --datadir /data init --state.scheme=path /config/genesis.json; exec geth "$@"' -- - command: - - --config=/config/geth.toml - - --datadir=/data - - --db.engine=pebble - - --gcmode=full - - --maxpeers=50 - - --metrics - - --metrics.addr=0.0.0.0 - - --metrics.port=6060 - - --nodiscover - - --rollup.enabletxpooladmission - - --rpc.gascap=600000000 - - --rpc.txfeecap=0 - - --state.scheme=path - - --syncmode=full - - --http - - --http.addr=0.0.0.0 - - --http.api=eth,net,web3,debug,admin,txpool,engine - - --http.port=8545 - - --http.vhosts=* - - --ws - - --ws.addr=0.0.0.0 - - --ws.api=eth,net,web3,debug,admin,txpool,engine - - --ws.origins=* - - --ws.port=8545 - - --authrpc.addr=0.0.0.0 - - --authrpc.jwtsecret=/jwtsecret - - --authrpc.vhosts=* - restart: unless-stopped - stop_grace_period: 5m - depends_on: - xlayer-mainnet-init: - condition: service_completed_successfully - networks: - - chains - volumes: - - ${XLAYER_MAINNET_OP_GETH_PRUNED_PEBBLE_PATH_DATA:-xlayer-mainnet-op-geth-pruned-pebble-path}:/data - - ./op/xlayer/mainnet:/config - - .jwtsecret:/jwtsecret:ro - - /slowdisk:/slowdisk - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=6060 - - prometheus-scrape.path=/debug/metrics/prometheus - - traefik.enable=true - - traefik.http.middlewares.xlayer-mainnet-op-geth-pruned-pebble-path-stripprefix.stripprefix.prefixes=/xlayer-mainnet - - traefik.http.services.xlayer-mainnet-op-geth-pruned-pebble-path.loadbalancer.server.port=8545 - - ${NO_SSL:-traefik.http.routers.xlayer-mainnet-op-geth-pruned-pebble-path.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.xlayer-mainnet-op-geth-pruned-pebble-path.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.xlayer-mainnet-op-geth-pruned-pebble-path.rule=Host(`$DOMAIN`) && (Path(`/xlayer-mainnet`) || Path(`/xlayer-mainnet/`))} - - ${NO_SSL:+traefik.http.routers.xlayer-mainnet-op-geth-pruned-pebble-path.rule=Path(`/xlayer-mainnet`) || Path(`/xlayer-mainnet/`)} - - traefik.http.routers.xlayer-mainnet-op-geth-pruned-pebble-path.middlewares=xlayer-mainnet-op-geth-pruned-pebble-path-stripprefix, ipallowlist - - xlayer-mainnet-node: - image: ${XLAYER_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${XLAYER_MAINNET_KONA_VERSION:-v1.6.1} - ports: - - 19389:19389 - - 19389:19389/udp - environment: - - GENESIS_URL=https://okg-pub-hk.oss-cn-hongkong.aliyuncs.com/cdn/chain/xlayer/snapshot/merged.genesis.json.mainnet.tar.gz - - KONA_METRICS_ADDR=0.0.0.0 - - KONA_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST} - - KONA_NODE_L1_ETH_RPC=${XLAYER_MAINNET_L1_EXECUTION_RPC:-${ETHEREUM_MAINNET_EXECUTION_RPC}} - - KONA_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false} - - KONA_NODE_L2_CHAIN_ID=196 - - KONA_NODE_L2_ENGINE_AUTH=/jwtsecret - - KONA_NODE_L2_ENGINE_RPC=http://xlayer-mainnet:8551 - - KONA_NODE_L2_ENGINE_TIMEOUT=120000 - - KONA_NODE_L2_TRUST_RPC=true - - KONA_NODE_METRICS_PORT=7300 - - KONA_NODE_MODE=Validator - - KONA_NODE_P2P_ADVERTISE_IP=${IP} - - KONA_NODE_P2P_BOOTNODES=enode://c67d7f63c5483ab8311123d2997bfe6a8aac2b117a40167cf71682f8a3e37d3b86547c786559355c4c05ae0b1a7e7a1b8fde55050b183f96728d62e276467ce1@8.210.177.150:9223,enode://28e3e305b266e01226a7cc979ab692b22507784095157453ee0e34607bb3beac9a5b00f3e3d7d3ac36164612ca25108e6b79f75e3a9ecb54a0b3e7eb3e097d37@8.210.15.172:9223,enode://b5aa43622aad25c619650a0b7f8bb030161dfbfd5664233f92d841a33b404cea3ffffdc5bc8d6667c7dc212242a52f0702825c1e51612047f75c847ab96ef7a6@8.210.69.97:9223 - - KONA_NODE_P2P_LISTEN_IP=0.0.0.0 - - KONA_NODE_P2P_LISTEN_TCP_PORT=19389 - - KONA_NODE_P2P_LISTEN_UDP_PORT=19389 - - KONA_NODE_RPC_ADDR=0.0.0.0 - - KONA_NODE_RPC_PORT=9545 - entrypoint: [kona-node, node] - restart: unless-stopped - depends_on: - xlayer-mainnet: - condition: service_started - restart: true - networks: - - chains - volumes: - - ./op/xlayer/mainnet:/config - - .jwtsecret:/jwtsecret:ro - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=7300 - - prometheus-scrape.path=/metrics - - traefik.enable=true - - traefik.http.middlewares.xlayer-mainnet-op-geth-pruned-pebble-path-node-stripprefix.stripprefix.prefixes=/xlayer-mainnet/node - - traefik.http.services.xlayer-mainnet-op-geth-pruned-pebble-path-node.loadbalancer.server.port=9545 - - ${NO_SSL:-traefik.http.routers.xlayer-mainnet-op-geth-pruned-pebble-path-node.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.xlayer-mainnet-op-geth-pruned-pebble-path-node.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.xlayer-mainnet-op-geth-pruned-pebble-path-node.rule=Host(`$DOMAIN`) && PathPrefix(`/xlayer-mainnet/node`)} - - ${NO_SSL:+traefik.http.routers.xlayer-mainnet-op-geth-pruned-pebble-path-node.rule=PathPrefix(`/xlayer-mainnet/node`)} - - traefik.http.routers.xlayer-mainnet-op-geth-pruned-pebble-path-node.middlewares=xlayer-mainnet-op-geth-pruned-pebble-path-node-stripprefix, ipallowlist - -volumes: - xlayer-mainnet-op-geth-pruned-pebble-path: - -x-upstreams: - - id: $${ID} - labels: - provider: $${PROVIDER} - connection: - generic: - rpc: - url: $${RPC_URL} - ws: - frameSize: 20Mb - msgSize: 50Mb - url: $${WS_URL} - chain: xlayer - 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 -... \ No newline at end of file diff --git a/op/geth/zircuit-garfield-op-geth-archive-leveldb-hash--kona.yml b/op/geth/zircuit-garfield-op-geth-archive-leveldb-hash--kona.yml deleted file mode 100644 index 0773a1e1..00000000 --- a/op/geth/zircuit-garfield-op-geth-archive-leveldb-hash--kona.yml +++ /dev/null @@ -1,200 +0,0 @@ ---- -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:op/geth/zircuit-garfield-op-geth-archive-leveldb-hash--kona.yml -# -# docker compose up -d -# -# curl -X POST https://${IP}.traefik.me/zircuit-garfield-archive \ -# -H "Content-Type: application/json" \ -# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' - -services: - zircuit-garfield-archive: - image: ${ZIRCUIT_GETH_IMAGE:-zircuit1/l2-geth}:${ZIRCUIT_GARFIELD_GETH_VERSION:-v1.138.8} - 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 - - 6060 - - 8551 - environment: - - GETH_CONFIG=/config/gethconfig.toml - - GETH_ETHSTATS=d${DOMAIN}:${ZIRCUIT_GARFIELD_WS_SECRET}@${ZIRCUIT_GARFIELD_ETH_STATS_SERVER}:${ZIRCUIT_GARFIELD_ETH_STATS_SERVER_PORT} - - GETH_ROLLUP_DISABLETXPOOLGOSSIP=true - - GETH_ROLLUP_SEQUENCERHTTP=https://proxyd-ingress-us.garfield-testnet.zircuit.com?token=drpcV4hDaEwatB9G3zgk8gBkaH5s4TVMGeuUvlBIiVTD - - GETH_TXPOOL_GLOBALQUEUE=1024 - entrypoint: /bin/sh -c 'exec geth "$@"' -- - command: - - --datadir=/data - - --db.engine=leveldb - - --gcmode=archive - - --maxpeers=50 - - --metrics - - --metrics.addr=0.0.0.0 - - --metrics.port=6060 - - --networkid=48899 - - --nodiscover - - --rpc.gascap=600000000 - - --rpc.txfeecap=0 - - --state.scheme=hash - - --syncmode=full - - --http - - --http.addr=0.0.0.0 - - --http.api=eth,net,web3,debug,admin,txpool,engine - - --http.port=8545 - - --http.vhosts=* - - --ws - - --ws.addr=0.0.0.0 - - --ws.api=eth,net,web3,debug,admin,txpool,engine - - --ws.origins=* - - --ws.port=8545 - - --authrpc.addr=0.0.0.0 - - --authrpc.jwtsecret=/jwtsecret - - --authrpc.vhosts=* - restart: unless-stopped - stop_grace_period: 5m - networks: - - chains - volumes: - - ${ZIRCUIT_GARFIELD_OP_GETH_ARCHIVE_LEVELDB_HASH_DATA:-zircuit-garfield-op-geth-archive-leveldb-hash}:/data - - ./op/zircuit/garfield:/config - - .jwtsecret:/jwtsecret:ro - - /slowdisk:/slowdisk - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=6060 - - prometheus-scrape.path=/debug/metrics/prometheus - - traefik.enable=true - - traefik.http.middlewares.zircuit-garfield-op-geth-archive-leveldb-hash-stripprefix.stripprefix.prefixes=/zircuit-garfield-archive - - traefik.http.services.zircuit-garfield-op-geth-archive-leveldb-hash.loadbalancer.server.port=8545 - - ${NO_SSL:-traefik.http.routers.zircuit-garfield-op-geth-archive-leveldb-hash.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.zircuit-garfield-op-geth-archive-leveldb-hash.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.zircuit-garfield-op-geth-archive-leveldb-hash.rule=Host(`$DOMAIN`) && (Path(`/zircuit-garfield-archive`) || Path(`/zircuit-garfield-archive/`))} - - ${NO_SSL:+traefik.http.routers.zircuit-garfield-op-geth-archive-leveldb-hash.rule=Path(`/zircuit-garfield-archive`) || Path(`/zircuit-garfield-archive/`)} - - traefik.http.routers.zircuit-garfield-op-geth-archive-leveldb-hash.middlewares=zircuit-garfield-op-geth-archive-leveldb-hash-stripprefix, ipallowlist - - zircuit-garfield-archive-node: - image: ${ZIRCUIT_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${ZIRCUIT_GARFIELD_KONA_VERSION:-v1.6.1} - ports: - - 17296:17296 - - 17296:17296/udp - environment: - - KONA_METRICS_ADDR=0.0.0.0 - - KONA_NODE_L1_BEACON=${ETHEREUM_HOLESKY_BEACON_REST} - - KONA_NODE_L1_ETH_RPC=${ZIRCUIT_GARFIELD_L1_EXECUTION_RPC:-${ETHEREUM_HOLESKY_EXECUTION_RPC}} - - KONA_NODE_L1_TRUST_RPC=${ETHEREUM_HOLESKY_EXECUTION_TRUST:-false} - - KONA_NODE_L2_CHAIN_ID=48899 - - KONA_NODE_L2_ENGINE_AUTH=/jwtsecret - - KONA_NODE_L2_ENGINE_RPC=http://zircuit-garfield-archive:8551 - - KONA_NODE_L2_ENGINE_TIMEOUT=120000 - - KONA_NODE_L2_TRUST_RPC=true - - KONA_NODE_METRICS_PORT=7300 - - KONA_NODE_MODE=Validator - - KONA_NODE_P2P_ADVERTISE_IP=${IP} - - KONA_NODE_P2P_LISTEN_IP=0.0.0.0 - - KONA_NODE_P2P_LISTEN_TCP_PORT=17296 - - KONA_NODE_P2P_LISTEN_UDP_PORT=17296 - - KONA_NODE_RPC_ADDR=0.0.0.0 - - KONA_NODE_RPC_PORT=9545 - entrypoint: [kona-node, node] - restart: unless-stopped - depends_on: - zircuit-garfield-archive: - condition: service_started - restart: true - networks: - - chains - volumes: - - ./op/zircuit/garfield:/config - - .jwtsecret:/jwtsecret:ro - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=7300 - - prometheus-scrape.path=/metrics - - traefik.enable=true - - traefik.http.middlewares.zircuit-garfield-op-geth-archive-leveldb-hash-node-stripprefix.stripprefix.prefixes=/zircuit-garfield-archive/node - - traefik.http.services.zircuit-garfield-op-geth-archive-leveldb-hash-node.loadbalancer.server.port=9545 - - ${NO_SSL:-traefik.http.routers.zircuit-garfield-op-geth-archive-leveldb-hash-node.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.zircuit-garfield-op-geth-archive-leveldb-hash-node.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.zircuit-garfield-op-geth-archive-leveldb-hash-node.rule=Host(`$DOMAIN`) && PathPrefix(`/zircuit-garfield-archive/node`)} - - ${NO_SSL:+traefik.http.routers.zircuit-garfield-op-geth-archive-leveldb-hash-node.rule=PathPrefix(`/zircuit-garfield-archive/node`)} - - traefik.http.routers.zircuit-garfield-op-geth-archive-leveldb-hash-node.middlewares=zircuit-garfield-op-geth-archive-leveldb-hash-node-stripprefix, ipallowlist - -volumes: - zircuit-garfield-op-geth-archive-leveldb-hash: - -x-upstreams: - - id: $${ID} - labels: - provider: $${PROVIDER} - connection: - generic: - rpc: - url: $${RPC_URL} - ws: - frameSize: 20Mb - msgSize: 50Mb - url: $${WS_URL} - chain: zircuit-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 - - name: zirc_getQuarantineHistory - - name: zirc_getQuarantined - - name: zirc_isQuarantined -... \ No newline at end of file diff --git a/op/geth/zircuit-garfield-op-geth-archive-pebble-hash--kona.yml b/op/geth/zircuit-garfield-op-geth-archive-pebble-hash--kona.yml deleted file mode 100644 index 9e1f3bd6..00000000 --- a/op/geth/zircuit-garfield-op-geth-archive-pebble-hash--kona.yml +++ /dev/null @@ -1,200 +0,0 @@ ---- -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:op/geth/zircuit-garfield-op-geth-archive-pebble-hash--kona.yml -# -# docker compose up -d -# -# curl -X POST https://${IP}.traefik.me/zircuit-garfield-archive \ -# -H "Content-Type: application/json" \ -# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' - -services: - zircuit-garfield-archive: - image: ${ZIRCUIT_GETH_IMAGE:-zircuit1/l2-geth}:${ZIRCUIT_GARFIELD_GETH_VERSION:-v1.138.8} - 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 - - 6060 - - 8551 - environment: - - GETH_CONFIG=/config/gethconfig.toml - - GETH_ETHSTATS=d${DOMAIN}:${ZIRCUIT_GARFIELD_WS_SECRET}@${ZIRCUIT_GARFIELD_ETH_STATS_SERVER}:${ZIRCUIT_GARFIELD_ETH_STATS_SERVER_PORT} - - GETH_ROLLUP_DISABLETXPOOLGOSSIP=true - - GETH_ROLLUP_SEQUENCERHTTP=https://proxyd-ingress-us.garfield-testnet.zircuit.com?token=drpcV4hDaEwatB9G3zgk8gBkaH5s4TVMGeuUvlBIiVTD - - GETH_TXPOOL_GLOBALQUEUE=1024 - entrypoint: /bin/sh -c 'exec geth "$@"' -- - command: - - --datadir=/data - - --db.engine=pebble - - --gcmode=archive - - --maxpeers=50 - - --metrics - - --metrics.addr=0.0.0.0 - - --metrics.port=6060 - - --networkid=48899 - - --nodiscover - - --rpc.gascap=600000000 - - --rpc.txfeecap=0 - - --state.scheme=hash - - --syncmode=full - - --http - - --http.addr=0.0.0.0 - - --http.api=eth,net,web3,debug,admin,txpool,engine - - --http.port=8545 - - --http.vhosts=* - - --ws - - --ws.addr=0.0.0.0 - - --ws.api=eth,net,web3,debug,admin,txpool,engine - - --ws.origins=* - - --ws.port=8545 - - --authrpc.addr=0.0.0.0 - - --authrpc.jwtsecret=/jwtsecret - - --authrpc.vhosts=* - restart: unless-stopped - stop_grace_period: 5m - networks: - - chains - volumes: - - ${ZIRCUIT_GARFIELD_OP_GETH_ARCHIVE_PEBBLE_HASH_DATA:-zircuit-garfield-op-geth-archive-pebble-hash}:/data - - ./op/zircuit/garfield:/config - - .jwtsecret:/jwtsecret:ro - - /slowdisk:/slowdisk - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=6060 - - prometheus-scrape.path=/debug/metrics/prometheus - - traefik.enable=true - - traefik.http.middlewares.zircuit-garfield-op-geth-archive-pebble-hash-stripprefix.stripprefix.prefixes=/zircuit-garfield-archive - - traefik.http.services.zircuit-garfield-op-geth-archive-pebble-hash.loadbalancer.server.port=8545 - - ${NO_SSL:-traefik.http.routers.zircuit-garfield-op-geth-archive-pebble-hash.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.zircuit-garfield-op-geth-archive-pebble-hash.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.zircuit-garfield-op-geth-archive-pebble-hash.rule=Host(`$DOMAIN`) && (Path(`/zircuit-garfield-archive`) || Path(`/zircuit-garfield-archive/`))} - - ${NO_SSL:+traefik.http.routers.zircuit-garfield-op-geth-archive-pebble-hash.rule=Path(`/zircuit-garfield-archive`) || Path(`/zircuit-garfield-archive/`)} - - traefik.http.routers.zircuit-garfield-op-geth-archive-pebble-hash.middlewares=zircuit-garfield-op-geth-archive-pebble-hash-stripprefix, ipallowlist - - zircuit-garfield-archive-node: - image: ${ZIRCUIT_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${ZIRCUIT_GARFIELD_KONA_VERSION:-v1.6.1} - ports: - - 16723:16723 - - 16723:16723/udp - environment: - - KONA_METRICS_ADDR=0.0.0.0 - - KONA_NODE_L1_BEACON=${ETHEREUM_HOLESKY_BEACON_REST} - - KONA_NODE_L1_ETH_RPC=${ZIRCUIT_GARFIELD_L1_EXECUTION_RPC:-${ETHEREUM_HOLESKY_EXECUTION_RPC}} - - KONA_NODE_L1_TRUST_RPC=${ETHEREUM_HOLESKY_EXECUTION_TRUST:-false} - - KONA_NODE_L2_CHAIN_ID=48899 - - KONA_NODE_L2_ENGINE_AUTH=/jwtsecret - - KONA_NODE_L2_ENGINE_RPC=http://zircuit-garfield-archive:8551 - - KONA_NODE_L2_ENGINE_TIMEOUT=120000 - - KONA_NODE_L2_TRUST_RPC=true - - KONA_NODE_METRICS_PORT=7300 - - KONA_NODE_MODE=Validator - - KONA_NODE_P2P_ADVERTISE_IP=${IP} - - KONA_NODE_P2P_LISTEN_IP=0.0.0.0 - - KONA_NODE_P2P_LISTEN_TCP_PORT=16723 - - KONA_NODE_P2P_LISTEN_UDP_PORT=16723 - - KONA_NODE_RPC_ADDR=0.0.0.0 - - KONA_NODE_RPC_PORT=9545 - entrypoint: [kona-node, node] - restart: unless-stopped - depends_on: - zircuit-garfield-archive: - condition: service_started - restart: true - networks: - - chains - volumes: - - ./op/zircuit/garfield:/config - - .jwtsecret:/jwtsecret:ro - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=7300 - - prometheus-scrape.path=/metrics - - traefik.enable=true - - traefik.http.middlewares.zircuit-garfield-op-geth-archive-pebble-hash-node-stripprefix.stripprefix.prefixes=/zircuit-garfield-archive/node - - traefik.http.services.zircuit-garfield-op-geth-archive-pebble-hash-node.loadbalancer.server.port=9545 - - ${NO_SSL:-traefik.http.routers.zircuit-garfield-op-geth-archive-pebble-hash-node.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.zircuit-garfield-op-geth-archive-pebble-hash-node.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.zircuit-garfield-op-geth-archive-pebble-hash-node.rule=Host(`$DOMAIN`) && PathPrefix(`/zircuit-garfield-archive/node`)} - - ${NO_SSL:+traefik.http.routers.zircuit-garfield-op-geth-archive-pebble-hash-node.rule=PathPrefix(`/zircuit-garfield-archive/node`)} - - traefik.http.routers.zircuit-garfield-op-geth-archive-pebble-hash-node.middlewares=zircuit-garfield-op-geth-archive-pebble-hash-node-stripprefix, ipallowlist - -volumes: - zircuit-garfield-op-geth-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: zircuit-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 - - name: zirc_getQuarantineHistory - - name: zirc_getQuarantined - - name: zirc_isQuarantined -... \ No newline at end of file diff --git a/op/geth/zircuit-garfield-op-geth-pruned-pebble-hash--kona.yml b/op/geth/zircuit-garfield-op-geth-pruned-pebble-hash--kona.yml deleted file mode 100644 index 4af5221d..00000000 --- a/op/geth/zircuit-garfield-op-geth-pruned-pebble-hash--kona.yml +++ /dev/null @@ -1,200 +0,0 @@ ---- -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:op/geth/zircuit-garfield-op-geth-pruned-pebble-hash--kona.yml -# -# docker compose up -d -# -# curl -X POST https://${IP}.traefik.me/zircuit-garfield \ -# -H "Content-Type: application/json" \ -# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' - -services: - zircuit-garfield: - image: ${ZIRCUIT_GETH_IMAGE:-zircuit1/l2-geth}:${ZIRCUIT_GARFIELD_GETH_VERSION:-v1.138.8} - 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 - - 6060 - - 8551 - environment: - - GETH_CONFIG=/config/gethconfig.toml - - GETH_ETHSTATS=d${DOMAIN}:${ZIRCUIT_GARFIELD_WS_SECRET}@${ZIRCUIT_GARFIELD_ETH_STATS_SERVER}:${ZIRCUIT_GARFIELD_ETH_STATS_SERVER_PORT} - - GETH_ROLLUP_DISABLETXPOOLGOSSIP=true - - GETH_ROLLUP_SEQUENCERHTTP=https://proxyd-ingress-us.garfield-testnet.zircuit.com?token=drpcV4hDaEwatB9G3zgk8gBkaH5s4TVMGeuUvlBIiVTD - - GETH_TXPOOL_GLOBALQUEUE=1024 - entrypoint: /bin/sh -c 'exec geth "$@"' -- - command: - - --datadir=/data - - --db.engine=pebble - - --gcmode=full - - --maxpeers=50 - - --metrics - - --metrics.addr=0.0.0.0 - - --metrics.port=6060 - - --networkid=48899 - - --nodiscover - - --rpc.gascap=600000000 - - --rpc.txfeecap=0 - - --state.scheme=hash - - --syncmode=full - - --http - - --http.addr=0.0.0.0 - - --http.api=eth,net,web3,debug,admin,txpool,engine - - --http.port=8545 - - --http.vhosts=* - - --ws - - --ws.addr=0.0.0.0 - - --ws.api=eth,net,web3,debug,admin,txpool,engine - - --ws.origins=* - - --ws.port=8545 - - --authrpc.addr=0.0.0.0 - - --authrpc.jwtsecret=/jwtsecret - - --authrpc.vhosts=* - restart: unless-stopped - stop_grace_period: 5m - networks: - - chains - volumes: - - ${ZIRCUIT_GARFIELD_OP_GETH_PRUNED_PEBBLE_HASH_DATA:-zircuit-garfield-op-geth-pruned-pebble-hash}:/data - - ./op/zircuit/garfield:/config - - .jwtsecret:/jwtsecret:ro - - /slowdisk:/slowdisk - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=6060 - - prometheus-scrape.path=/debug/metrics/prometheus - - traefik.enable=true - - traefik.http.middlewares.zircuit-garfield-op-geth-pruned-pebble-hash-stripprefix.stripprefix.prefixes=/zircuit-garfield - - traefik.http.services.zircuit-garfield-op-geth-pruned-pebble-hash.loadbalancer.server.port=8545 - - ${NO_SSL:-traefik.http.routers.zircuit-garfield-op-geth-pruned-pebble-hash.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.zircuit-garfield-op-geth-pruned-pebble-hash.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.zircuit-garfield-op-geth-pruned-pebble-hash.rule=Host(`$DOMAIN`) && (Path(`/zircuit-garfield`) || Path(`/zircuit-garfield/`))} - - ${NO_SSL:+traefik.http.routers.zircuit-garfield-op-geth-pruned-pebble-hash.rule=Path(`/zircuit-garfield`) || Path(`/zircuit-garfield/`)} - - traefik.http.routers.zircuit-garfield-op-geth-pruned-pebble-hash.middlewares=zircuit-garfield-op-geth-pruned-pebble-hash-stripprefix, ipallowlist - - zircuit-garfield-node: - image: ${ZIRCUIT_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${ZIRCUIT_GARFIELD_KONA_VERSION:-v1.6.1} - ports: - - 17397:17397 - - 17397:17397/udp - environment: - - KONA_METRICS_ADDR=0.0.0.0 - - KONA_NODE_L1_BEACON=${ETHEREUM_HOLESKY_BEACON_REST} - - KONA_NODE_L1_ETH_RPC=${ZIRCUIT_GARFIELD_L1_EXECUTION_RPC:-${ETHEREUM_HOLESKY_EXECUTION_RPC}} - - KONA_NODE_L1_TRUST_RPC=${ETHEREUM_HOLESKY_EXECUTION_TRUST:-false} - - KONA_NODE_L2_CHAIN_ID=48899 - - KONA_NODE_L2_ENGINE_AUTH=/jwtsecret - - KONA_NODE_L2_ENGINE_RPC=http://zircuit-garfield:8551 - - KONA_NODE_L2_ENGINE_TIMEOUT=120000 - - KONA_NODE_L2_TRUST_RPC=true - - KONA_NODE_METRICS_PORT=7300 - - KONA_NODE_MODE=Validator - - KONA_NODE_P2P_ADVERTISE_IP=${IP} - - KONA_NODE_P2P_LISTEN_IP=0.0.0.0 - - KONA_NODE_P2P_LISTEN_TCP_PORT=17397 - - KONA_NODE_P2P_LISTEN_UDP_PORT=17397 - - KONA_NODE_RPC_ADDR=0.0.0.0 - - KONA_NODE_RPC_PORT=9545 - entrypoint: [kona-node, node] - restart: unless-stopped - depends_on: - zircuit-garfield: - condition: service_started - restart: true - networks: - - chains - volumes: - - ./op/zircuit/garfield:/config - - .jwtsecret:/jwtsecret:ro - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=7300 - - prometheus-scrape.path=/metrics - - traefik.enable=true - - traefik.http.middlewares.zircuit-garfield-op-geth-pruned-pebble-hash-node-stripprefix.stripprefix.prefixes=/zircuit-garfield/node - - traefik.http.services.zircuit-garfield-op-geth-pruned-pebble-hash-node.loadbalancer.server.port=9545 - - ${NO_SSL:-traefik.http.routers.zircuit-garfield-op-geth-pruned-pebble-hash-node.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.zircuit-garfield-op-geth-pruned-pebble-hash-node.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.zircuit-garfield-op-geth-pruned-pebble-hash-node.rule=Host(`$DOMAIN`) && PathPrefix(`/zircuit-garfield/node`)} - - ${NO_SSL:+traefik.http.routers.zircuit-garfield-op-geth-pruned-pebble-hash-node.rule=PathPrefix(`/zircuit-garfield/node`)} - - traefik.http.routers.zircuit-garfield-op-geth-pruned-pebble-hash-node.middlewares=zircuit-garfield-op-geth-pruned-pebble-hash-node-stripprefix, ipallowlist - -volumes: - zircuit-garfield-op-geth-pruned-pebble-hash: - -x-upstreams: - - id: $${ID} - labels: - provider: $${PROVIDER} - connection: - generic: - rpc: - url: $${RPC_URL} - ws: - frameSize: 20Mb - msgSize: 50Mb - url: $${WS_URL} - chain: zircuit-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 - - name: zirc_getQuarantineHistory - - name: zirc_getQuarantined - - name: zirc_isQuarantined -... \ No newline at end of file diff --git a/op/geth/zircuit-garfield-op-geth-pruned-pebble-path--kona.yml b/op/geth/zircuit-garfield-op-geth-pruned-pebble-path--kona.yml deleted file mode 100644 index 090954f5..00000000 --- a/op/geth/zircuit-garfield-op-geth-pruned-pebble-path--kona.yml +++ /dev/null @@ -1,202 +0,0 @@ ---- -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:op/geth/zircuit-garfield-op-geth-pruned-pebble-path--kona.yml -# -# docker compose up -d -# -# curl -X POST https://${IP}.traefik.me/zircuit-garfield \ -# -H "Content-Type: application/json" \ -# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' - -services: - zircuit-garfield: - image: ${ZIRCUIT_GETH_IMAGE:-zircuit1/l2-geth}:${ZIRCUIT_GARFIELD_GETH_VERSION:-v1.138.8} - 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 - - 6060 - - 8551 - environment: - - GETH_CONFIG=/config/gethconfig.toml - - GETH_ETHSTATS=d${DOMAIN}:${ZIRCUIT_GARFIELD_WS_SECRET}@${ZIRCUIT_GARFIELD_ETH_STATS_SERVER}:${ZIRCUIT_GARFIELD_ETH_STATS_SERVER_PORT} - - GETH_ROLLUP_DISABLETXPOOLGOSSIP=true - - GETH_ROLLUP_SEQUENCERHTTP=https://proxyd-ingress-us.garfield-testnet.zircuit.com?token=drpcV4hDaEwatB9G3zgk8gBkaH5s4TVMGeuUvlBIiVTD - - GETH_TXPOOL_GLOBALQUEUE=1024 - entrypoint: /bin/sh -c 'exec geth "$@"' -- - command: - - --datadir=/data - - --db.engine=pebble - - --gcmode=full - - --maxpeers=50 - - --metrics - - --metrics.addr=0.0.0.0 - - --metrics.port=6060 - - --networkid=48899 - - --nodiscover - - --rpc.gascap=600000000 - - --rpc.txfeecap=0 - - --state.scheme=path - - --syncmode=full - - --http - - --http.addr=0.0.0.0 - - --http.api=eth,net,web3,debug,admin,txpool,engine - - --http.port=8545 - - --http.vhosts=* - - --ws - - --ws.addr=0.0.0.0 - - --ws.api=eth,net,web3,debug,admin,txpool,engine - - --ws.origins=* - - --ws.port=8545 - - --authrpc.addr=0.0.0.0 - - --authrpc.jwtsecret=/jwtsecret - - --authrpc.vhosts=* - restart: unless-stopped - stop_grace_period: 5m - networks: - - chains - volumes: - - ${ZIRCUIT_GARFIELD_OP_GETH_PRUNED_PEBBLE_PATH_DATA:-zircuit-garfield-op-geth-pruned-pebble-path}:/data - - ./op/zircuit/garfield:/config - - .jwtsecret:/jwtsecret:ro - - /slowdisk:/slowdisk - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=6060 - - prometheus-scrape.path=/debug/metrics/prometheus - - traefik.enable=true - - traefik.http.middlewares.zircuit-garfield-op-geth-pruned-pebble-path-stripprefix.stripprefix.prefixes=/zircuit-garfield - - traefik.http.services.zircuit-garfield-op-geth-pruned-pebble-path.loadbalancer.server.port=8545 - - ${NO_SSL:-traefik.http.routers.zircuit-garfield-op-geth-pruned-pebble-path.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.zircuit-garfield-op-geth-pruned-pebble-path.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.zircuit-garfield-op-geth-pruned-pebble-path.rule=Host(`$DOMAIN`) && (Path(`/zircuit-garfield`) || Path(`/zircuit-garfield/`))} - - ${NO_SSL:+traefik.http.routers.zircuit-garfield-op-geth-pruned-pebble-path.rule=Path(`/zircuit-garfield`) || Path(`/zircuit-garfield/`)} - - traefik.http.routers.zircuit-garfield-op-geth-pruned-pebble-path.middlewares=zircuit-garfield-op-geth-pruned-pebble-path-stripprefix, ipallowlist - - zircuit-garfield-node: - image: ${ZIRCUIT_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${ZIRCUIT_GARFIELD_KONA_VERSION:-v1.6.1} - ports: - - 15072:15072 - - 15072:15072/udp - environment: - - KONA_METRICS_ADDR=0.0.0.0 - - KONA_NODE_L1_BEACON=${ETHEREUM_HOLESKY_BEACON_REST} - - KONA_NODE_L1_ETH_RPC=${ZIRCUIT_GARFIELD_L1_EXECUTION_RPC:-${ETHEREUM_HOLESKY_EXECUTION_RPC}} - - KONA_NODE_L1_TRUST_RPC=${ETHEREUM_HOLESKY_EXECUTION_TRUST:-false} - - KONA_NODE_L2_CHAIN_ID=48899 - - KONA_NODE_L2_ENGINE_AUTH=/jwtsecret - - KONA_NODE_L2_ENGINE_RPC=http://zircuit-garfield:8551 - - KONA_NODE_L2_ENGINE_TIMEOUT=120000 - - KONA_NODE_L2_TRUST_RPC=true - - KONA_NODE_METRICS_PORT=7300 - - KONA_NODE_MODE=Validator - - KONA_NODE_P2P_ADVERTISE_IP=${IP} - - KONA_NODE_P2P_LISTEN_IP=0.0.0.0 - - KONA_NODE_P2P_LISTEN_TCP_PORT=15072 - - KONA_NODE_P2P_LISTEN_UDP_PORT=15072 - - KONA_NODE_RPC_ADDR=0.0.0.0 - - KONA_NODE_RPC_PORT=9545 - entrypoint: [kona-node, node] - restart: unless-stopped - depends_on: - zircuit-garfield: - condition: service_started - restart: true - networks: - - chains - volumes: - - ./op/zircuit/garfield:/config - - .jwtsecret:/jwtsecret:ro - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=7300 - - prometheus-scrape.path=/metrics - - traefik.enable=true - - traefik.http.middlewares.zircuit-garfield-op-geth-pruned-pebble-path-node-stripprefix.stripprefix.prefixes=/zircuit-garfield/node - - traefik.http.services.zircuit-garfield-op-geth-pruned-pebble-path-node.loadbalancer.server.port=9545 - - ${NO_SSL:-traefik.http.routers.zircuit-garfield-op-geth-pruned-pebble-path-node.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.zircuit-garfield-op-geth-pruned-pebble-path-node.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.zircuit-garfield-op-geth-pruned-pebble-path-node.rule=Host(`$DOMAIN`) && PathPrefix(`/zircuit-garfield/node`)} - - ${NO_SSL:+traefik.http.routers.zircuit-garfield-op-geth-pruned-pebble-path-node.rule=PathPrefix(`/zircuit-garfield/node`)} - - traefik.http.routers.zircuit-garfield-op-geth-pruned-pebble-path-node.middlewares=zircuit-garfield-op-geth-pruned-pebble-path-node-stripprefix, ipallowlist - -volumes: - zircuit-garfield-op-geth-pruned-pebble-path: - -x-upstreams: - - id: $${ID} - labels: - provider: $${PROVIDER} - connection: - generic: - rpc: - url: $${RPC_URL} - ws: - frameSize: 20Mb - msgSize: 50Mb - url: $${WS_URL} - chain: zircuit-testnet - 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 - - name: zirc_getQuarantineHistory - - name: zirc_getQuarantined - - name: zirc_isQuarantined -... \ No newline at end of file diff --git a/op/geth/zircuit-mainnet-op-geth-archive-leveldb-hash--kona.yml b/op/geth/zircuit-mainnet-op-geth-archive-leveldb-hash--kona.yml deleted file mode 100644 index f12c7b2c..00000000 --- a/op/geth/zircuit-mainnet-op-geth-archive-leveldb-hash--kona.yml +++ /dev/null @@ -1,201 +0,0 @@ ---- -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:op/geth/zircuit-mainnet-op-geth-archive-leveldb-hash--kona.yml -# -# docker compose up -d -# -# curl -X POST https://${IP}.traefik.me/zircuit-mainnet-archive \ -# -H "Content-Type: application/json" \ -# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' - -services: - zircuit-mainnet-archive: - image: ${ZIRCUIT_GETH_IMAGE:-zircuit1/l2-geth}:${ZIRCUIT_MAINNET_GETH_VERSION:-v1.138.8} - 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 - - 6060 - - 8551 - environment: - - GETH_CONFIG=/config/gethconfig.toml - - GETH_ETHSTATS=d${DOMAIN}:${ZIRCUIT_MAINNET_WS_SECRET}@${ZIRCUIT_MAINNET_ETH_STATS_SERVER}:${ZIRCUIT_MAINNET_ETH_STATS_SERVER_PORT} - - GETH_ROLLUP_DISABLETXPOOLGOSSIP=true - - GETH_ROLLUP_SEQUENCERHTTP=https://proxyd-ingress-eu.mainnet.zircuit.com/?token=drpcvATEn3gsYCLyLw7ztFLCBwQNoDJr2QjpcsNNkksu - - GETH_TXPOOL_GLOBALQUEUE=1024 - - ZIRCUIT_NETWORK=mainnet - entrypoint: /bin/sh -c 'exec geth "$@"' -- - command: - - --datadir=/data - - --db.engine=leveldb - - --gcmode=archive - - --maxpeers=50 - - --metrics - - --metrics.addr=0.0.0.0 - - --metrics.port=6060 - - --network=mainnet - - --nodiscover - - --rpc.gascap=600000000 - - --rpc.txfeecap=0 - - --state.scheme=hash - - --syncmode=full - - --http - - --http.addr=0.0.0.0 - - --http.api=eth,net,web3,debug,admin,txpool,engine - - --http.port=8545 - - --http.vhosts=* - - --ws - - --ws.addr=0.0.0.0 - - --ws.api=eth,net,web3,debug,admin,txpool,engine - - --ws.origins=* - - --ws.port=8545 - - --authrpc.addr=0.0.0.0 - - --authrpc.jwtsecret=/jwtsecret - - --authrpc.vhosts=* - restart: unless-stopped - stop_grace_period: 5m - networks: - - chains - volumes: - - ${ZIRCUIT_MAINNET_OP_GETH_ARCHIVE_LEVELDB_HASH_DATA:-zircuit-mainnet-op-geth-archive-leveldb-hash}:/data - - ./op/zircuit/mainnet:/config - - .jwtsecret:/jwtsecret:ro - - /slowdisk:/slowdisk - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=6060 - - prometheus-scrape.path=/debug/metrics/prometheus - - traefik.enable=true - - traefik.http.middlewares.zircuit-mainnet-op-geth-archive-leveldb-hash-stripprefix.stripprefix.prefixes=/zircuit-mainnet-archive - - traefik.http.services.zircuit-mainnet-op-geth-archive-leveldb-hash.loadbalancer.server.port=8545 - - ${NO_SSL:-traefik.http.routers.zircuit-mainnet-op-geth-archive-leveldb-hash.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.zircuit-mainnet-op-geth-archive-leveldb-hash.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.zircuit-mainnet-op-geth-archive-leveldb-hash.rule=Host(`$DOMAIN`) && (Path(`/zircuit-mainnet-archive`) || Path(`/zircuit-mainnet-archive/`))} - - ${NO_SSL:+traefik.http.routers.zircuit-mainnet-op-geth-archive-leveldb-hash.rule=Path(`/zircuit-mainnet-archive`) || Path(`/zircuit-mainnet-archive/`)} - - traefik.http.routers.zircuit-mainnet-op-geth-archive-leveldb-hash.middlewares=zircuit-mainnet-op-geth-archive-leveldb-hash-stripprefix, ipallowlist - - zircuit-mainnet-archive-node: - image: ${ZIRCUIT_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${ZIRCUIT_MAINNET_KONA_VERSION:-v1.6.1} - ports: - - 19463:19463 - - 19463:19463/udp - environment: - - KONA_METRICS_ADDR=0.0.0.0 - - KONA_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST} - - KONA_NODE_L1_ETH_RPC=${ZIRCUIT_MAINNET_L1_EXECUTION_RPC:-${ETHEREUM_MAINNET_EXECUTION_RPC}} - - KONA_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false} - - KONA_NODE_L2_CHAIN_ID=48900 - - KONA_NODE_L2_ENGINE_AUTH=/jwtsecret - - KONA_NODE_L2_ENGINE_RPC=http://zircuit-mainnet-archive:8551 - - KONA_NODE_L2_ENGINE_TIMEOUT=120000 - - KONA_NODE_L2_TRUST_RPC=true - - KONA_NODE_METRICS_PORT=7300 - - KONA_NODE_MODE=Validator - - KONA_NODE_P2P_ADVERTISE_IP=${IP} - - KONA_NODE_P2P_LISTEN_IP=0.0.0.0 - - KONA_NODE_P2P_LISTEN_TCP_PORT=19463 - - KONA_NODE_P2P_LISTEN_UDP_PORT=19463 - - KONA_NODE_RPC_ADDR=0.0.0.0 - - KONA_NODE_RPC_PORT=9545 - entrypoint: [kona-node, node] - restart: unless-stopped - depends_on: - zircuit-mainnet-archive: - condition: service_started - restart: true - networks: - - chains - volumes: - - ./op/zircuit/mainnet:/config - - .jwtsecret:/jwtsecret:ro - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=7300 - - prometheus-scrape.path=/metrics - - traefik.enable=true - - traefik.http.middlewares.zircuit-mainnet-op-geth-archive-leveldb-hash-node-stripprefix.stripprefix.prefixes=/zircuit-mainnet-archive/node - - traefik.http.services.zircuit-mainnet-op-geth-archive-leveldb-hash-node.loadbalancer.server.port=9545 - - ${NO_SSL:-traefik.http.routers.zircuit-mainnet-op-geth-archive-leveldb-hash-node.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.zircuit-mainnet-op-geth-archive-leveldb-hash-node.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.zircuit-mainnet-op-geth-archive-leveldb-hash-node.rule=Host(`$DOMAIN`) && PathPrefix(`/zircuit-mainnet-archive/node`)} - - ${NO_SSL:+traefik.http.routers.zircuit-mainnet-op-geth-archive-leveldb-hash-node.rule=PathPrefix(`/zircuit-mainnet-archive/node`)} - - traefik.http.routers.zircuit-mainnet-op-geth-archive-leveldb-hash-node.middlewares=zircuit-mainnet-op-geth-archive-leveldb-hash-node-stripprefix, ipallowlist - -volumes: - zircuit-mainnet-op-geth-archive-leveldb-hash: - -x-upstreams: - - id: $${ID} - labels: - provider: $${PROVIDER} - connection: - generic: - rpc: - url: $${RPC_URL} - ws: - frameSize: 20Mb - msgSize: 50Mb - url: $${WS_URL} - chain: zircuit-mainnet - 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 - - name: zirc_getQuarantineHistory - - name: zirc_getQuarantined - - name: zirc_isQuarantined -... \ No newline at end of file diff --git a/op/geth/zircuit-mainnet-op-geth-archive-pebble-hash--kona.yml b/op/geth/zircuit-mainnet-op-geth-archive-pebble-hash--kona.yml deleted file mode 100644 index b07c6b41..00000000 --- a/op/geth/zircuit-mainnet-op-geth-archive-pebble-hash--kona.yml +++ /dev/null @@ -1,201 +0,0 @@ ---- -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:op/geth/zircuit-mainnet-op-geth-archive-pebble-hash--kona.yml -# -# docker compose up -d -# -# curl -X POST https://${IP}.traefik.me/zircuit-mainnet-archive \ -# -H "Content-Type: application/json" \ -# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' - -services: - zircuit-mainnet-archive: - image: ${ZIRCUIT_GETH_IMAGE:-zircuit1/l2-geth}:${ZIRCUIT_MAINNET_GETH_VERSION:-v1.138.8} - 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 - - 6060 - - 8551 - environment: - - GETH_CONFIG=/config/gethconfig.toml - - GETH_ETHSTATS=d${DOMAIN}:${ZIRCUIT_MAINNET_WS_SECRET}@${ZIRCUIT_MAINNET_ETH_STATS_SERVER}:${ZIRCUIT_MAINNET_ETH_STATS_SERVER_PORT} - - GETH_ROLLUP_DISABLETXPOOLGOSSIP=true - - GETH_ROLLUP_SEQUENCERHTTP=https://proxyd-ingress-eu.mainnet.zircuit.com/?token=drpcvATEn3gsYCLyLw7ztFLCBwQNoDJr2QjpcsNNkksu - - GETH_TXPOOL_GLOBALQUEUE=1024 - - ZIRCUIT_NETWORK=mainnet - entrypoint: /bin/sh -c 'exec geth "$@"' -- - command: - - --datadir=/data - - --db.engine=pebble - - --gcmode=archive - - --maxpeers=50 - - --metrics - - --metrics.addr=0.0.0.0 - - --metrics.port=6060 - - --network=mainnet - - --nodiscover - - --rpc.gascap=600000000 - - --rpc.txfeecap=0 - - --state.scheme=hash - - --syncmode=full - - --http - - --http.addr=0.0.0.0 - - --http.api=eth,net,web3,debug,admin,txpool,engine - - --http.port=8545 - - --http.vhosts=* - - --ws - - --ws.addr=0.0.0.0 - - --ws.api=eth,net,web3,debug,admin,txpool,engine - - --ws.origins=* - - --ws.port=8545 - - --authrpc.addr=0.0.0.0 - - --authrpc.jwtsecret=/jwtsecret - - --authrpc.vhosts=* - restart: unless-stopped - stop_grace_period: 5m - networks: - - chains - volumes: - - ${ZIRCUIT_MAINNET_OP_GETH_ARCHIVE_PEBBLE_HASH_DATA:-zircuit-mainnet-op-geth-archive-pebble-hash}:/data - - ./op/zircuit/mainnet:/config - - .jwtsecret:/jwtsecret:ro - - /slowdisk:/slowdisk - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=6060 - - prometheus-scrape.path=/debug/metrics/prometheus - - traefik.enable=true - - traefik.http.middlewares.zircuit-mainnet-op-geth-archive-pebble-hash-stripprefix.stripprefix.prefixes=/zircuit-mainnet-archive - - traefik.http.services.zircuit-mainnet-op-geth-archive-pebble-hash.loadbalancer.server.port=8545 - - ${NO_SSL:-traefik.http.routers.zircuit-mainnet-op-geth-archive-pebble-hash.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.zircuit-mainnet-op-geth-archive-pebble-hash.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.zircuit-mainnet-op-geth-archive-pebble-hash.rule=Host(`$DOMAIN`) && (Path(`/zircuit-mainnet-archive`) || Path(`/zircuit-mainnet-archive/`))} - - ${NO_SSL:+traefik.http.routers.zircuit-mainnet-op-geth-archive-pebble-hash.rule=Path(`/zircuit-mainnet-archive`) || Path(`/zircuit-mainnet-archive/`)} - - traefik.http.routers.zircuit-mainnet-op-geth-archive-pebble-hash.middlewares=zircuit-mainnet-op-geth-archive-pebble-hash-stripprefix, ipallowlist - - zircuit-mainnet-archive-node: - image: ${ZIRCUIT_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${ZIRCUIT_MAINNET_KONA_VERSION:-v1.6.1} - ports: - - 15588:15588 - - 15588:15588/udp - environment: - - KONA_METRICS_ADDR=0.0.0.0 - - KONA_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST} - - KONA_NODE_L1_ETH_RPC=${ZIRCUIT_MAINNET_L1_EXECUTION_RPC:-${ETHEREUM_MAINNET_EXECUTION_RPC}} - - KONA_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false} - - KONA_NODE_L2_CHAIN_ID=48900 - - KONA_NODE_L2_ENGINE_AUTH=/jwtsecret - - KONA_NODE_L2_ENGINE_RPC=http://zircuit-mainnet-archive:8551 - - KONA_NODE_L2_ENGINE_TIMEOUT=120000 - - KONA_NODE_L2_TRUST_RPC=true - - KONA_NODE_METRICS_PORT=7300 - - KONA_NODE_MODE=Validator - - KONA_NODE_P2P_ADVERTISE_IP=${IP} - - KONA_NODE_P2P_LISTEN_IP=0.0.0.0 - - KONA_NODE_P2P_LISTEN_TCP_PORT=15588 - - KONA_NODE_P2P_LISTEN_UDP_PORT=15588 - - KONA_NODE_RPC_ADDR=0.0.0.0 - - KONA_NODE_RPC_PORT=9545 - entrypoint: [kona-node, node] - restart: unless-stopped - depends_on: - zircuit-mainnet-archive: - condition: service_started - restart: true - networks: - - chains - volumes: - - ./op/zircuit/mainnet:/config - - .jwtsecret:/jwtsecret:ro - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=7300 - - prometheus-scrape.path=/metrics - - traefik.enable=true - - traefik.http.middlewares.zircuit-mainnet-op-geth-archive-pebble-hash-node-stripprefix.stripprefix.prefixes=/zircuit-mainnet-archive/node - - traefik.http.services.zircuit-mainnet-op-geth-archive-pebble-hash-node.loadbalancer.server.port=9545 - - ${NO_SSL:-traefik.http.routers.zircuit-mainnet-op-geth-archive-pebble-hash-node.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.zircuit-mainnet-op-geth-archive-pebble-hash-node.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.zircuit-mainnet-op-geth-archive-pebble-hash-node.rule=Host(`$DOMAIN`) && PathPrefix(`/zircuit-mainnet-archive/node`)} - - ${NO_SSL:+traefik.http.routers.zircuit-mainnet-op-geth-archive-pebble-hash-node.rule=PathPrefix(`/zircuit-mainnet-archive/node`)} - - traefik.http.routers.zircuit-mainnet-op-geth-archive-pebble-hash-node.middlewares=zircuit-mainnet-op-geth-archive-pebble-hash-node-stripprefix, ipallowlist - -volumes: - zircuit-mainnet-op-geth-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: zircuit-mainnet - 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 - - name: zirc_getQuarantineHistory - - name: zirc_getQuarantined - - name: zirc_isQuarantined -... \ No newline at end of file diff --git a/op/geth/zircuit-mainnet-op-geth-pruned-pebble-hash--kona.yml b/op/geth/zircuit-mainnet-op-geth-pruned-pebble-hash--kona.yml deleted file mode 100644 index e89f98bf..00000000 --- a/op/geth/zircuit-mainnet-op-geth-pruned-pebble-hash--kona.yml +++ /dev/null @@ -1,201 +0,0 @@ ---- -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:op/geth/zircuit-mainnet-op-geth-pruned-pebble-hash--kona.yml -# -# docker compose up -d -# -# curl -X POST https://${IP}.traefik.me/zircuit-mainnet \ -# -H "Content-Type: application/json" \ -# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' - -services: - zircuit-mainnet: - image: ${ZIRCUIT_GETH_IMAGE:-zircuit1/l2-geth}:${ZIRCUIT_MAINNET_GETH_VERSION:-v1.138.8} - 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 - - 6060 - - 8551 - environment: - - GETH_CONFIG=/config/gethconfig.toml - - GETH_ETHSTATS=d${DOMAIN}:${ZIRCUIT_MAINNET_WS_SECRET}@${ZIRCUIT_MAINNET_ETH_STATS_SERVER}:${ZIRCUIT_MAINNET_ETH_STATS_SERVER_PORT} - - GETH_ROLLUP_DISABLETXPOOLGOSSIP=true - - GETH_ROLLUP_SEQUENCERHTTP=https://proxyd-ingress-eu.mainnet.zircuit.com/?token=drpcvATEn3gsYCLyLw7ztFLCBwQNoDJr2QjpcsNNkksu - - GETH_TXPOOL_GLOBALQUEUE=1024 - - ZIRCUIT_NETWORK=mainnet - entrypoint: /bin/sh -c 'exec geth "$@"' -- - command: - - --datadir=/data - - --db.engine=pebble - - --gcmode=full - - --maxpeers=50 - - --metrics - - --metrics.addr=0.0.0.0 - - --metrics.port=6060 - - --network=mainnet - - --nodiscover - - --rpc.gascap=600000000 - - --rpc.txfeecap=0 - - --state.scheme=hash - - --syncmode=full - - --http - - --http.addr=0.0.0.0 - - --http.api=eth,net,web3,debug,admin,txpool,engine - - --http.port=8545 - - --http.vhosts=* - - --ws - - --ws.addr=0.0.0.0 - - --ws.api=eth,net,web3,debug,admin,txpool,engine - - --ws.origins=* - - --ws.port=8545 - - --authrpc.addr=0.0.0.0 - - --authrpc.jwtsecret=/jwtsecret - - --authrpc.vhosts=* - restart: unless-stopped - stop_grace_period: 5m - networks: - - chains - volumes: - - ${ZIRCUIT_MAINNET_OP_GETH_PRUNED_PEBBLE_HASH_DATA:-zircuit-mainnet-op-geth-pruned-pebble-hash}:/data - - ./op/zircuit/mainnet:/config - - .jwtsecret:/jwtsecret:ro - - /slowdisk:/slowdisk - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=6060 - - prometheus-scrape.path=/debug/metrics/prometheus - - traefik.enable=true - - traefik.http.middlewares.zircuit-mainnet-op-geth-pruned-pebble-hash-stripprefix.stripprefix.prefixes=/zircuit-mainnet - - traefik.http.services.zircuit-mainnet-op-geth-pruned-pebble-hash.loadbalancer.server.port=8545 - - ${NO_SSL:-traefik.http.routers.zircuit-mainnet-op-geth-pruned-pebble-hash.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.zircuit-mainnet-op-geth-pruned-pebble-hash.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.zircuit-mainnet-op-geth-pruned-pebble-hash.rule=Host(`$DOMAIN`) && (Path(`/zircuit-mainnet`) || Path(`/zircuit-mainnet/`))} - - ${NO_SSL:+traefik.http.routers.zircuit-mainnet-op-geth-pruned-pebble-hash.rule=Path(`/zircuit-mainnet`) || Path(`/zircuit-mainnet/`)} - - traefik.http.routers.zircuit-mainnet-op-geth-pruned-pebble-hash.middlewares=zircuit-mainnet-op-geth-pruned-pebble-hash-stripprefix, ipallowlist - - zircuit-mainnet-node: - image: ${ZIRCUIT_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${ZIRCUIT_MAINNET_KONA_VERSION:-v1.6.1} - ports: - - 18688:18688 - - 18688:18688/udp - environment: - - KONA_METRICS_ADDR=0.0.0.0 - - KONA_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST} - - KONA_NODE_L1_ETH_RPC=${ZIRCUIT_MAINNET_L1_EXECUTION_RPC:-${ETHEREUM_MAINNET_EXECUTION_RPC}} - - KONA_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false} - - KONA_NODE_L2_CHAIN_ID=48900 - - KONA_NODE_L2_ENGINE_AUTH=/jwtsecret - - KONA_NODE_L2_ENGINE_RPC=http://zircuit-mainnet:8551 - - KONA_NODE_L2_ENGINE_TIMEOUT=120000 - - KONA_NODE_L2_TRUST_RPC=true - - KONA_NODE_METRICS_PORT=7300 - - KONA_NODE_MODE=Validator - - KONA_NODE_P2P_ADVERTISE_IP=${IP} - - KONA_NODE_P2P_LISTEN_IP=0.0.0.0 - - KONA_NODE_P2P_LISTEN_TCP_PORT=18688 - - KONA_NODE_P2P_LISTEN_UDP_PORT=18688 - - KONA_NODE_RPC_ADDR=0.0.0.0 - - KONA_NODE_RPC_PORT=9545 - entrypoint: [kona-node, node] - restart: unless-stopped - depends_on: - zircuit-mainnet: - condition: service_started - restart: true - networks: - - chains - volumes: - - ./op/zircuit/mainnet:/config - - .jwtsecret:/jwtsecret:ro - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=7300 - - prometheus-scrape.path=/metrics - - traefik.enable=true - - traefik.http.middlewares.zircuit-mainnet-op-geth-pruned-pebble-hash-node-stripprefix.stripprefix.prefixes=/zircuit-mainnet/node - - traefik.http.services.zircuit-mainnet-op-geth-pruned-pebble-hash-node.loadbalancer.server.port=9545 - - ${NO_SSL:-traefik.http.routers.zircuit-mainnet-op-geth-pruned-pebble-hash-node.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.zircuit-mainnet-op-geth-pruned-pebble-hash-node.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.zircuit-mainnet-op-geth-pruned-pebble-hash-node.rule=Host(`$DOMAIN`) && PathPrefix(`/zircuit-mainnet/node`)} - - ${NO_SSL:+traefik.http.routers.zircuit-mainnet-op-geth-pruned-pebble-hash-node.rule=PathPrefix(`/zircuit-mainnet/node`)} - - traefik.http.routers.zircuit-mainnet-op-geth-pruned-pebble-hash-node.middlewares=zircuit-mainnet-op-geth-pruned-pebble-hash-node-stripprefix, ipallowlist - -volumes: - zircuit-mainnet-op-geth-pruned-pebble-hash: - -x-upstreams: - - id: $${ID} - labels: - provider: $${PROVIDER} - connection: - generic: - rpc: - url: $${RPC_URL} - ws: - frameSize: 20Mb - msgSize: 50Mb - url: $${WS_URL} - chain: zircuit-mainnet - 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 - - name: zirc_getQuarantineHistory - - name: zirc_getQuarantined - - name: zirc_isQuarantined -... \ No newline at end of file diff --git a/op/geth/zircuit-mainnet-op-geth-pruned-pebble-path--kona.yml b/op/geth/zircuit-mainnet-op-geth-pruned-pebble-path--kona.yml deleted file mode 100644 index e8349dc1..00000000 --- a/op/geth/zircuit-mainnet-op-geth-pruned-pebble-path--kona.yml +++ /dev/null @@ -1,203 +0,0 @@ ---- -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:op/geth/zircuit-mainnet-op-geth-pruned-pebble-path--kona.yml -# -# docker compose up -d -# -# curl -X POST https://${IP}.traefik.me/zircuit-mainnet \ -# -H "Content-Type: application/json" \ -# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' - -services: - zircuit-mainnet: - image: ${ZIRCUIT_GETH_IMAGE:-zircuit1/l2-geth}:${ZIRCUIT_MAINNET_GETH_VERSION:-v1.138.8} - 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 - - 6060 - - 8551 - environment: - - GETH_CONFIG=/config/gethconfig.toml - - GETH_ETHSTATS=d${DOMAIN}:${ZIRCUIT_MAINNET_WS_SECRET}@${ZIRCUIT_MAINNET_ETH_STATS_SERVER}:${ZIRCUIT_MAINNET_ETH_STATS_SERVER_PORT} - - GETH_ROLLUP_DISABLETXPOOLGOSSIP=true - - GETH_ROLLUP_SEQUENCERHTTP=https://proxyd-ingress-eu.mainnet.zircuit.com/?token=drpcvATEn3gsYCLyLw7ztFLCBwQNoDJr2QjpcsNNkksu - - GETH_TXPOOL_GLOBALQUEUE=1024 - - ZIRCUIT_NETWORK=mainnet - entrypoint: /bin/sh -c 'exec geth "$@"' -- - command: - - --datadir=/data - - --db.engine=pebble - - --gcmode=full - - --maxpeers=50 - - --metrics - - --metrics.addr=0.0.0.0 - - --metrics.port=6060 - - --network=mainnet - - --nodiscover - - --rpc.gascap=600000000 - - --rpc.txfeecap=0 - - --state.scheme=path - - --syncmode=full - - --http - - --http.addr=0.0.0.0 - - --http.api=eth,net,web3,debug,admin,txpool,engine - - --http.port=8545 - - --http.vhosts=* - - --ws - - --ws.addr=0.0.0.0 - - --ws.api=eth,net,web3,debug,admin,txpool,engine - - --ws.origins=* - - --ws.port=8545 - - --authrpc.addr=0.0.0.0 - - --authrpc.jwtsecret=/jwtsecret - - --authrpc.vhosts=* - restart: unless-stopped - stop_grace_period: 5m - networks: - - chains - volumes: - - ${ZIRCUIT_MAINNET_OP_GETH_PRUNED_PEBBLE_PATH_DATA:-zircuit-mainnet-op-geth-pruned-pebble-path}:/data - - ./op/zircuit/mainnet:/config - - .jwtsecret:/jwtsecret:ro - - /slowdisk:/slowdisk - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=6060 - - prometheus-scrape.path=/debug/metrics/prometheus - - traefik.enable=true - - traefik.http.middlewares.zircuit-mainnet-op-geth-pruned-pebble-path-stripprefix.stripprefix.prefixes=/zircuit-mainnet - - traefik.http.services.zircuit-mainnet-op-geth-pruned-pebble-path.loadbalancer.server.port=8545 - - ${NO_SSL:-traefik.http.routers.zircuit-mainnet-op-geth-pruned-pebble-path.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.zircuit-mainnet-op-geth-pruned-pebble-path.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.zircuit-mainnet-op-geth-pruned-pebble-path.rule=Host(`$DOMAIN`) && (Path(`/zircuit-mainnet`) || Path(`/zircuit-mainnet/`))} - - ${NO_SSL:+traefik.http.routers.zircuit-mainnet-op-geth-pruned-pebble-path.rule=Path(`/zircuit-mainnet`) || Path(`/zircuit-mainnet/`)} - - traefik.http.routers.zircuit-mainnet-op-geth-pruned-pebble-path.middlewares=zircuit-mainnet-op-geth-pruned-pebble-path-stripprefix, ipallowlist - - zircuit-mainnet-node: - image: ${ZIRCUIT_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${ZIRCUIT_MAINNET_KONA_VERSION:-v1.6.1} - ports: - - 18359:18359 - - 18359:18359/udp - environment: - - KONA_METRICS_ADDR=0.0.0.0 - - KONA_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST} - - KONA_NODE_L1_ETH_RPC=${ZIRCUIT_MAINNET_L1_EXECUTION_RPC:-${ETHEREUM_MAINNET_EXECUTION_RPC}} - - KONA_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false} - - KONA_NODE_L2_CHAIN_ID=48900 - - KONA_NODE_L2_ENGINE_AUTH=/jwtsecret - - KONA_NODE_L2_ENGINE_RPC=http://zircuit-mainnet:8551 - - KONA_NODE_L2_ENGINE_TIMEOUT=120000 - - KONA_NODE_L2_TRUST_RPC=true - - KONA_NODE_METRICS_PORT=7300 - - KONA_NODE_MODE=Validator - - KONA_NODE_P2P_ADVERTISE_IP=${IP} - - KONA_NODE_P2P_LISTEN_IP=0.0.0.0 - - KONA_NODE_P2P_LISTEN_TCP_PORT=18359 - - KONA_NODE_P2P_LISTEN_UDP_PORT=18359 - - KONA_NODE_RPC_ADDR=0.0.0.0 - - KONA_NODE_RPC_PORT=9545 - entrypoint: [kona-node, node] - restart: unless-stopped - depends_on: - zircuit-mainnet: - condition: service_started - restart: true - networks: - - chains - volumes: - - ./op/zircuit/mainnet:/config - - .jwtsecret:/jwtsecret:ro - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=7300 - - prometheus-scrape.path=/metrics - - traefik.enable=true - - traefik.http.middlewares.zircuit-mainnet-op-geth-pruned-pebble-path-node-stripprefix.stripprefix.prefixes=/zircuit-mainnet/node - - traefik.http.services.zircuit-mainnet-op-geth-pruned-pebble-path-node.loadbalancer.server.port=9545 - - ${NO_SSL:-traefik.http.routers.zircuit-mainnet-op-geth-pruned-pebble-path-node.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.zircuit-mainnet-op-geth-pruned-pebble-path-node.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.zircuit-mainnet-op-geth-pruned-pebble-path-node.rule=Host(`$DOMAIN`) && PathPrefix(`/zircuit-mainnet/node`)} - - ${NO_SSL:+traefik.http.routers.zircuit-mainnet-op-geth-pruned-pebble-path-node.rule=PathPrefix(`/zircuit-mainnet/node`)} - - traefik.http.routers.zircuit-mainnet-op-geth-pruned-pebble-path-node.middlewares=zircuit-mainnet-op-geth-pruned-pebble-path-node-stripprefix, ipallowlist - -volumes: - zircuit-mainnet-op-geth-pruned-pebble-path: - -x-upstreams: - - id: $${ID} - labels: - provider: $${PROVIDER} - connection: - generic: - rpc: - url: $${RPC_URL} - ws: - frameSize: 20Mb - msgSize: 50Mb - url: $${WS_URL} - chain: zircuit-mainnet - 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 - - name: zirc_getQuarantineHistory - - name: zirc_getQuarantined - - name: zirc_isQuarantined -... \ No newline at end of file diff --git a/op/geth/zircuit-testnet-op-geth-archive-leveldb-hash--kona.yml b/op/geth/zircuit-testnet-op-geth-archive-leveldb-hash--kona.yml deleted file mode 100644 index 29b10c59..00000000 --- a/op/geth/zircuit-testnet-op-geth-archive-leveldb-hash--kona.yml +++ /dev/null @@ -1,204 +0,0 @@ ---- -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:op/geth/zircuit-testnet-op-geth-archive-leveldb-hash--kona.yml -# -# docker compose up -d -# -# curl -X POST https://${IP}.traefik.me/zircuit-testnet-archive \ -# -H "Content-Type: application/json" \ -# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' - -services: - zircuit-testnet-archive: - image: ${ZIRCUIT_GETH_IMAGE:-zircuit1/l2-geth}:${ZIRCUIT_TESTNET_GETH_VERSION:-v1.138.8} - 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: - - 13095:13095 - - 13095:13095/udp - expose: - - 8545 - - 6060 - - 8551 - environment: - - GETH_CONFIG=/config/gethconfig.toml - - GETH_ETHSTATS=d${DOMAIN}:${ZIRCUIT_TESTNET_WS_SECRET}@${ZIRCUIT_TESTNET_ETH_STATS_SERVER}:${ZIRCUIT_TESTNET_ETH_STATS_SERVER_PORT} - - GETH_ROLLUP_DISABLETXPOOLGOSSIP=true - - GETH_ROLLUP_SEQUENCERHTTP=https://zircuit-testnet.drpc.org - - GETH_TXPOOL_GLOBALQUEUE=1024 - entrypoint: /bin/sh -c 'exec geth "$@"' -- - command: - - --datadir=/data - - --db.engine=leveldb - - --gcmode=archive - - --maxpeers=50 - - --metrics - - --metrics.addr=0.0.0.0 - - --metrics.port=6060 - - --nat=extip:${IP} - - --networkid=48899 - - --port=13095 - - --rpc.gascap=600000000 - - --rpc.txfeecap=0 - - --state.scheme=hash - - --syncmode=full - - --http - - --http.addr=0.0.0.0 - - --http.api=eth,net,web3,debug,admin,txpool,engine - - --http.port=8545 - - --http.vhosts=* - - --ws - - --ws.addr=0.0.0.0 - - --ws.api=eth,net,web3,debug,admin,txpool,engine - - --ws.origins=* - - --ws.port=8545 - - --authrpc.addr=0.0.0.0 - - --authrpc.jwtsecret=/jwtsecret - - --authrpc.vhosts=* - restart: unless-stopped - stop_grace_period: 5m - networks: - - chains - volumes: - - ${ZIRCUIT_TESTNET_OP_GETH_ARCHIVE_LEVELDB_HASH_DATA:-zircuit-testnet-op-geth-archive-leveldb-hash}:/data - - ./op/zircuit/testnet:/config - - .jwtsecret:/jwtsecret:ro - - /slowdisk:/slowdisk - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=6060 - - prometheus-scrape.path=/debug/metrics/prometheus - - traefik.enable=true - - traefik.http.middlewares.zircuit-testnet-op-geth-archive-leveldb-hash-stripprefix.stripprefix.prefixes=/zircuit-testnet-archive - - traefik.http.services.zircuit-testnet-op-geth-archive-leveldb-hash.loadbalancer.server.port=8545 - - ${NO_SSL:-traefik.http.routers.zircuit-testnet-op-geth-archive-leveldb-hash.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.zircuit-testnet-op-geth-archive-leveldb-hash.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.zircuit-testnet-op-geth-archive-leveldb-hash.rule=Host(`$DOMAIN`) && (Path(`/zircuit-testnet-archive`) || Path(`/zircuit-testnet-archive/`))} - - ${NO_SSL:+traefik.http.routers.zircuit-testnet-op-geth-archive-leveldb-hash.rule=Path(`/zircuit-testnet-archive`) || Path(`/zircuit-testnet-archive/`)} - - traefik.http.routers.zircuit-testnet-op-geth-archive-leveldb-hash.middlewares=zircuit-testnet-op-geth-archive-leveldb-hash-stripprefix, ipallowlist - - zircuit-testnet-archive-node: - image: ${ZIRCUIT_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${ZIRCUIT_TESTNET_KONA_VERSION:-v1.6.1} - ports: - - 18095:18095 - - 18095:18095/udp - environment: - - KONA_METRICS_ADDR=0.0.0.0 - - KONA_NODE_L1_BEACON=${ETHEREUM_TESTNET_BEACON_REST} - - KONA_NODE_L1_ETH_RPC=${ZIRCUIT_TESTNET_L1_EXECUTION_RPC:-${ETHEREUM_TESTNET_EXECUTION_RPC}} - - KONA_NODE_L1_TRUST_RPC=${ETHEREUM_TESTNET_EXECUTION_TRUST:-false} - - KONA_NODE_L2_CHAIN_ID=48899 - - KONA_NODE_L2_ENGINE_AUTH=/jwtsecret - - KONA_NODE_L2_ENGINE_RPC=http://zircuit-testnet-archive:8551 - - KONA_NODE_L2_ENGINE_TIMEOUT=120000 - - KONA_NODE_L2_TRUST_RPC=true - - KONA_NODE_METRICS_PORT=7300 - - KONA_NODE_MODE=Validator - - KONA_NODE_P2P_ADVERTISE_IP=${IP} - - KONA_NODE_P2P_LISTEN_IP=0.0.0.0 - - KONA_NODE_P2P_LISTEN_TCP_PORT=18095 - - KONA_NODE_P2P_LISTEN_UDP_PORT=18095 - - KONA_NODE_RPC_ADDR=0.0.0.0 - - KONA_NODE_RPC_PORT=9545 - entrypoint: [kona-node, node] - restart: unless-stopped - depends_on: - zircuit-testnet-archive: - condition: service_started - restart: true - networks: - - chains - volumes: - - ./op/zircuit/testnet:/config - - .jwtsecret:/jwtsecret:ro - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=7300 - - prometheus-scrape.path=/metrics - - traefik.enable=true - - traefik.http.middlewares.zircuit-testnet-op-geth-archive-leveldb-hash-node-stripprefix.stripprefix.prefixes=/zircuit-testnet-archive/node - - traefik.http.services.zircuit-testnet-op-geth-archive-leveldb-hash-node.loadbalancer.server.port=9545 - - ${NO_SSL:-traefik.http.routers.zircuit-testnet-op-geth-archive-leveldb-hash-node.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.zircuit-testnet-op-geth-archive-leveldb-hash-node.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.zircuit-testnet-op-geth-archive-leveldb-hash-node.rule=Host(`$DOMAIN`) && PathPrefix(`/zircuit-testnet-archive/node`)} - - ${NO_SSL:+traefik.http.routers.zircuit-testnet-op-geth-archive-leveldb-hash-node.rule=PathPrefix(`/zircuit-testnet-archive/node`)} - - traefik.http.routers.zircuit-testnet-op-geth-archive-leveldb-hash-node.middlewares=zircuit-testnet-op-geth-archive-leveldb-hash-node-stripprefix, ipallowlist - -volumes: - zircuit-testnet-op-geth-archive-leveldb-hash: - -x-upstreams: - - id: $${ID} - labels: - provider: $${PROVIDER} - connection: - generic: - rpc: - url: $${RPC_URL} - ws: - frameSize: 20Mb - msgSize: 50Mb - url: $${WS_URL} - chain: zircuit-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 - - name: zirc_getQuarantineHistory - - name: zirc_getQuarantined - - name: zirc_isQuarantined -... \ No newline at end of file diff --git a/op/geth/zircuit-testnet-op-geth-archive-pebble-hash--kona.yml b/op/geth/zircuit-testnet-op-geth-archive-pebble-hash--kona.yml deleted file mode 100644 index 1b219b8f..00000000 --- a/op/geth/zircuit-testnet-op-geth-archive-pebble-hash--kona.yml +++ /dev/null @@ -1,204 +0,0 @@ ---- -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:op/geth/zircuit-testnet-op-geth-archive-pebble-hash--kona.yml -# -# docker compose up -d -# -# curl -X POST https://${IP}.traefik.me/zircuit-testnet-archive \ -# -H "Content-Type: application/json" \ -# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' - -services: - zircuit-testnet-archive: - image: ${ZIRCUIT_GETH_IMAGE:-zircuit1/l2-geth}:${ZIRCUIT_TESTNET_GETH_VERSION:-v1.138.8} - 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: - - 11499:11499 - - 11499:11499/udp - expose: - - 8545 - - 6060 - - 8551 - environment: - - GETH_CONFIG=/config/gethconfig.toml - - GETH_ETHSTATS=d${DOMAIN}:${ZIRCUIT_TESTNET_WS_SECRET}@${ZIRCUIT_TESTNET_ETH_STATS_SERVER}:${ZIRCUIT_TESTNET_ETH_STATS_SERVER_PORT} - - GETH_ROLLUP_DISABLETXPOOLGOSSIP=true - - GETH_ROLLUP_SEQUENCERHTTP=https://zircuit-testnet.drpc.org - - GETH_TXPOOL_GLOBALQUEUE=1024 - entrypoint: /bin/sh -c 'exec geth "$@"' -- - command: - - --datadir=/data - - --db.engine=pebble - - --gcmode=archive - - --maxpeers=50 - - --metrics - - --metrics.addr=0.0.0.0 - - --metrics.port=6060 - - --nat=extip:${IP} - - --networkid=48899 - - --port=11499 - - --rpc.gascap=600000000 - - --rpc.txfeecap=0 - - --state.scheme=hash - - --syncmode=full - - --http - - --http.addr=0.0.0.0 - - --http.api=eth,net,web3,debug,admin,txpool,engine - - --http.port=8545 - - --http.vhosts=* - - --ws - - --ws.addr=0.0.0.0 - - --ws.api=eth,net,web3,debug,admin,txpool,engine - - --ws.origins=* - - --ws.port=8545 - - --authrpc.addr=0.0.0.0 - - --authrpc.jwtsecret=/jwtsecret - - --authrpc.vhosts=* - restart: unless-stopped - stop_grace_period: 5m - networks: - - chains - volumes: - - ${ZIRCUIT_TESTNET_OP_GETH_ARCHIVE_PEBBLE_HASH_DATA:-zircuit-testnet-op-geth-archive-pebble-hash}:/data - - ./op/zircuit/testnet:/config - - .jwtsecret:/jwtsecret:ro - - /slowdisk:/slowdisk - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=6060 - - prometheus-scrape.path=/debug/metrics/prometheus - - traefik.enable=true - - traefik.http.middlewares.zircuit-testnet-op-geth-archive-pebble-hash-stripprefix.stripprefix.prefixes=/zircuit-testnet-archive - - traefik.http.services.zircuit-testnet-op-geth-archive-pebble-hash.loadbalancer.server.port=8545 - - ${NO_SSL:-traefik.http.routers.zircuit-testnet-op-geth-archive-pebble-hash.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.zircuit-testnet-op-geth-archive-pebble-hash.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.zircuit-testnet-op-geth-archive-pebble-hash.rule=Host(`$DOMAIN`) && (Path(`/zircuit-testnet-archive`) || Path(`/zircuit-testnet-archive/`))} - - ${NO_SSL:+traefik.http.routers.zircuit-testnet-op-geth-archive-pebble-hash.rule=Path(`/zircuit-testnet-archive`) || Path(`/zircuit-testnet-archive/`)} - - traefik.http.routers.zircuit-testnet-op-geth-archive-pebble-hash.middlewares=zircuit-testnet-op-geth-archive-pebble-hash-stripprefix, ipallowlist - - zircuit-testnet-archive-node: - image: ${ZIRCUIT_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${ZIRCUIT_TESTNET_KONA_VERSION:-v1.6.1} - ports: - - 16499:16499 - - 16499:16499/udp - environment: - - KONA_METRICS_ADDR=0.0.0.0 - - KONA_NODE_L1_BEACON=${ETHEREUM_TESTNET_BEACON_REST} - - KONA_NODE_L1_ETH_RPC=${ZIRCUIT_TESTNET_L1_EXECUTION_RPC:-${ETHEREUM_TESTNET_EXECUTION_RPC}} - - KONA_NODE_L1_TRUST_RPC=${ETHEREUM_TESTNET_EXECUTION_TRUST:-false} - - KONA_NODE_L2_CHAIN_ID=48899 - - KONA_NODE_L2_ENGINE_AUTH=/jwtsecret - - KONA_NODE_L2_ENGINE_RPC=http://zircuit-testnet-archive:8551 - - KONA_NODE_L2_ENGINE_TIMEOUT=120000 - - KONA_NODE_L2_TRUST_RPC=true - - KONA_NODE_METRICS_PORT=7300 - - KONA_NODE_MODE=Validator - - KONA_NODE_P2P_ADVERTISE_IP=${IP} - - KONA_NODE_P2P_LISTEN_IP=0.0.0.0 - - KONA_NODE_P2P_LISTEN_TCP_PORT=16499 - - KONA_NODE_P2P_LISTEN_UDP_PORT=16499 - - KONA_NODE_RPC_ADDR=0.0.0.0 - - KONA_NODE_RPC_PORT=9545 - entrypoint: [kona-node, node] - restart: unless-stopped - depends_on: - zircuit-testnet-archive: - condition: service_started - restart: true - networks: - - chains - volumes: - - ./op/zircuit/testnet:/config - - .jwtsecret:/jwtsecret:ro - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=7300 - - prometheus-scrape.path=/metrics - - traefik.enable=true - - traefik.http.middlewares.zircuit-testnet-op-geth-archive-pebble-hash-node-stripprefix.stripprefix.prefixes=/zircuit-testnet-archive/node - - traefik.http.services.zircuit-testnet-op-geth-archive-pebble-hash-node.loadbalancer.server.port=9545 - - ${NO_SSL:-traefik.http.routers.zircuit-testnet-op-geth-archive-pebble-hash-node.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.zircuit-testnet-op-geth-archive-pebble-hash-node.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.zircuit-testnet-op-geth-archive-pebble-hash-node.rule=Host(`$DOMAIN`) && PathPrefix(`/zircuit-testnet-archive/node`)} - - ${NO_SSL:+traefik.http.routers.zircuit-testnet-op-geth-archive-pebble-hash-node.rule=PathPrefix(`/zircuit-testnet-archive/node`)} - - traefik.http.routers.zircuit-testnet-op-geth-archive-pebble-hash-node.middlewares=zircuit-testnet-op-geth-archive-pebble-hash-node-stripprefix, ipallowlist - -volumes: - zircuit-testnet-op-geth-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: zircuit-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 - - name: zirc_getQuarantineHistory - - name: zirc_getQuarantined - - name: zirc_isQuarantined -... \ No newline at end of file diff --git a/op/geth/zircuit-testnet-op-geth-pruned-pebble-hash--kona.yml b/op/geth/zircuit-testnet-op-geth-pruned-pebble-hash--kona.yml deleted file mode 100644 index 96e5c20c..00000000 --- a/op/geth/zircuit-testnet-op-geth-pruned-pebble-hash--kona.yml +++ /dev/null @@ -1,204 +0,0 @@ ---- -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:op/geth/zircuit-testnet-op-geth-pruned-pebble-hash--kona.yml -# -# docker compose up -d -# -# curl -X POST https://${IP}.traefik.me/zircuit-testnet \ -# -H "Content-Type: application/json" \ -# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' - -services: - zircuit-testnet: - image: ${ZIRCUIT_GETH_IMAGE:-zircuit1/l2-geth}:${ZIRCUIT_TESTNET_GETH_VERSION:-v1.138.8} - 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: - - 11357:11357 - - 11357:11357/udp - expose: - - 8545 - - 6060 - - 8551 - environment: - - GETH_CONFIG=/config/gethconfig.toml - - GETH_ETHSTATS=d${DOMAIN}:${ZIRCUIT_TESTNET_WS_SECRET}@${ZIRCUIT_TESTNET_ETH_STATS_SERVER}:${ZIRCUIT_TESTNET_ETH_STATS_SERVER_PORT} - - GETH_ROLLUP_DISABLETXPOOLGOSSIP=true - - GETH_ROLLUP_SEQUENCERHTTP=https://zircuit-testnet.drpc.org - - GETH_TXPOOL_GLOBALQUEUE=1024 - entrypoint: /bin/sh -c 'exec geth "$@"' -- - command: - - --datadir=/data - - --db.engine=pebble - - --gcmode=full - - --maxpeers=50 - - --metrics - - --metrics.addr=0.0.0.0 - - --metrics.port=6060 - - --nat=extip:${IP} - - --networkid=48899 - - --port=11357 - - --rpc.gascap=600000000 - - --rpc.txfeecap=0 - - --state.scheme=hash - - --syncmode=full - - --http - - --http.addr=0.0.0.0 - - --http.api=eth,net,web3,debug,admin,txpool,engine - - --http.port=8545 - - --http.vhosts=* - - --ws - - --ws.addr=0.0.0.0 - - --ws.api=eth,net,web3,debug,admin,txpool,engine - - --ws.origins=* - - --ws.port=8545 - - --authrpc.addr=0.0.0.0 - - --authrpc.jwtsecret=/jwtsecret - - --authrpc.vhosts=* - restart: unless-stopped - stop_grace_period: 5m - networks: - - chains - volumes: - - ${ZIRCUIT_TESTNET_OP_GETH_PRUNED_PEBBLE_HASH_DATA:-zircuit-testnet-op-geth-pruned-pebble-hash}:/data - - ./op/zircuit/testnet:/config - - .jwtsecret:/jwtsecret:ro - - /slowdisk:/slowdisk - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=6060 - - prometheus-scrape.path=/debug/metrics/prometheus - - traefik.enable=true - - traefik.http.middlewares.zircuit-testnet-op-geth-pruned-pebble-hash-stripprefix.stripprefix.prefixes=/zircuit-testnet - - traefik.http.services.zircuit-testnet-op-geth-pruned-pebble-hash.loadbalancer.server.port=8545 - - ${NO_SSL:-traefik.http.routers.zircuit-testnet-op-geth-pruned-pebble-hash.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.zircuit-testnet-op-geth-pruned-pebble-hash.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.zircuit-testnet-op-geth-pruned-pebble-hash.rule=Host(`$DOMAIN`) && (Path(`/zircuit-testnet`) || Path(`/zircuit-testnet/`))} - - ${NO_SSL:+traefik.http.routers.zircuit-testnet-op-geth-pruned-pebble-hash.rule=Path(`/zircuit-testnet`) || Path(`/zircuit-testnet/`)} - - traefik.http.routers.zircuit-testnet-op-geth-pruned-pebble-hash.middlewares=zircuit-testnet-op-geth-pruned-pebble-hash-stripprefix, ipallowlist - - zircuit-testnet-node: - image: ${ZIRCUIT_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${ZIRCUIT_TESTNET_KONA_VERSION:-v1.6.1} - ports: - - 16357:16357 - - 16357:16357/udp - environment: - - KONA_METRICS_ADDR=0.0.0.0 - - KONA_NODE_L1_BEACON=${ETHEREUM_TESTNET_BEACON_REST} - - KONA_NODE_L1_ETH_RPC=${ZIRCUIT_TESTNET_L1_EXECUTION_RPC:-${ETHEREUM_TESTNET_EXECUTION_RPC}} - - KONA_NODE_L1_TRUST_RPC=${ETHEREUM_TESTNET_EXECUTION_TRUST:-false} - - KONA_NODE_L2_CHAIN_ID=48899 - - KONA_NODE_L2_ENGINE_AUTH=/jwtsecret - - KONA_NODE_L2_ENGINE_RPC=http://zircuit-testnet:8551 - - KONA_NODE_L2_ENGINE_TIMEOUT=120000 - - KONA_NODE_L2_TRUST_RPC=true - - KONA_NODE_METRICS_PORT=7300 - - KONA_NODE_MODE=Validator - - KONA_NODE_P2P_ADVERTISE_IP=${IP} - - KONA_NODE_P2P_LISTEN_IP=0.0.0.0 - - KONA_NODE_P2P_LISTEN_TCP_PORT=16357 - - KONA_NODE_P2P_LISTEN_UDP_PORT=16357 - - KONA_NODE_RPC_ADDR=0.0.0.0 - - KONA_NODE_RPC_PORT=9545 - entrypoint: [kona-node, node] - restart: unless-stopped - depends_on: - zircuit-testnet: - condition: service_started - restart: true - networks: - - chains - volumes: - - ./op/zircuit/testnet:/config - - .jwtsecret:/jwtsecret:ro - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=7300 - - prometheus-scrape.path=/metrics - - traefik.enable=true - - traefik.http.middlewares.zircuit-testnet-op-geth-pruned-pebble-hash-node-stripprefix.stripprefix.prefixes=/zircuit-testnet/node - - traefik.http.services.zircuit-testnet-op-geth-pruned-pebble-hash-node.loadbalancer.server.port=9545 - - ${NO_SSL:-traefik.http.routers.zircuit-testnet-op-geth-pruned-pebble-hash-node.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.zircuit-testnet-op-geth-pruned-pebble-hash-node.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.zircuit-testnet-op-geth-pruned-pebble-hash-node.rule=Host(`$DOMAIN`) && PathPrefix(`/zircuit-testnet/node`)} - - ${NO_SSL:+traefik.http.routers.zircuit-testnet-op-geth-pruned-pebble-hash-node.rule=PathPrefix(`/zircuit-testnet/node`)} - - traefik.http.routers.zircuit-testnet-op-geth-pruned-pebble-hash-node.middlewares=zircuit-testnet-op-geth-pruned-pebble-hash-node-stripprefix, ipallowlist - -volumes: - zircuit-testnet-op-geth-pruned-pebble-hash: - -x-upstreams: - - id: $${ID} - labels: - provider: $${PROVIDER} - connection: - generic: - rpc: - url: $${RPC_URL} - ws: - frameSize: 20Mb - msgSize: 50Mb - url: $${WS_URL} - chain: zircuit-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 - - name: zirc_getQuarantineHistory - - name: zirc_getQuarantined - - name: zirc_isQuarantined -... \ No newline at end of file diff --git a/op/geth/zircuit-testnet-op-geth-pruned-pebble-path--kona.yml b/op/geth/zircuit-testnet-op-geth-pruned-pebble-path--kona.yml deleted file mode 100644 index 64f88786..00000000 --- a/op/geth/zircuit-testnet-op-geth-pruned-pebble-path--kona.yml +++ /dev/null @@ -1,206 +0,0 @@ ---- -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:op/geth/zircuit-testnet-op-geth-pruned-pebble-path--kona.yml -# -# docker compose up -d -# -# curl -X POST https://${IP}.traefik.me/zircuit-testnet \ -# -H "Content-Type: application/json" \ -# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' - -services: - zircuit-testnet: - image: ${ZIRCUIT_GETH_IMAGE:-zircuit1/l2-geth}:${ZIRCUIT_TESTNET_GETH_VERSION:-v1.138.8} - 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: - - 12804:12804 - - 12804:12804/udp - expose: - - 8545 - - 6060 - - 8551 - environment: - - GETH_CONFIG=/config/gethconfig.toml - - GETH_ETHSTATS=d${DOMAIN}:${ZIRCUIT_TESTNET_WS_SECRET}@${ZIRCUIT_TESTNET_ETH_STATS_SERVER}:${ZIRCUIT_TESTNET_ETH_STATS_SERVER_PORT} - - GETH_ROLLUP_DISABLETXPOOLGOSSIP=true - - GETH_ROLLUP_SEQUENCERHTTP=https://zircuit-testnet.drpc.org - - GETH_TXPOOL_GLOBALQUEUE=1024 - entrypoint: /bin/sh -c 'exec geth "$@"' -- - command: - - --datadir=/data - - --db.engine=pebble - - --gcmode=full - - --maxpeers=50 - - --metrics - - --metrics.addr=0.0.0.0 - - --metrics.port=6060 - - --nat=extip:${IP} - - --networkid=48899 - - --port=12804 - - --rpc.gascap=600000000 - - --rpc.txfeecap=0 - - --state.scheme=path - - --syncmode=snap - - --http - - --http.addr=0.0.0.0 - - --http.api=eth,net,web3,debug,admin,txpool,engine - - --http.port=8545 - - --http.vhosts=* - - --ws - - --ws.addr=0.0.0.0 - - --ws.api=eth,net,web3,debug,admin,txpool,engine - - --ws.origins=* - - --ws.port=8545 - - --authrpc.addr=0.0.0.0 - - --authrpc.jwtsecret=/jwtsecret - - --authrpc.vhosts=* - restart: unless-stopped - stop_grace_period: 5m - networks: - - chains - volumes: - - ${ZIRCUIT_TESTNET_OP_GETH_PRUNED_PEBBLE_PATH_DATA:-zircuit-testnet-op-geth-pruned-pebble-path}:/data - - ./op/zircuit/testnet:/config - - .jwtsecret:/jwtsecret:ro - - /slowdisk:/slowdisk - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=6060 - - prometheus-scrape.path=/debug/metrics/prometheus - - traefik.enable=true - - traefik.http.middlewares.zircuit-testnet-op-geth-pruned-pebble-path-stripprefix.stripprefix.prefixes=/zircuit-testnet - - traefik.http.services.zircuit-testnet-op-geth-pruned-pebble-path.loadbalancer.server.port=8545 - - ${NO_SSL:-traefik.http.routers.zircuit-testnet-op-geth-pruned-pebble-path.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.zircuit-testnet-op-geth-pruned-pebble-path.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.zircuit-testnet-op-geth-pruned-pebble-path.rule=Host(`$DOMAIN`) && (Path(`/zircuit-testnet`) || Path(`/zircuit-testnet/`))} - - ${NO_SSL:+traefik.http.routers.zircuit-testnet-op-geth-pruned-pebble-path.rule=Path(`/zircuit-testnet`) || Path(`/zircuit-testnet/`)} - - traefik.http.routers.zircuit-testnet-op-geth-pruned-pebble-path.middlewares=zircuit-testnet-op-geth-pruned-pebble-path-stripprefix, ipallowlist - - zircuit-testnet-node: - image: ${ZIRCUIT_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${ZIRCUIT_TESTNET_KONA_VERSION:-v1.6.1} - ports: - - 17804:17804 - - 17804:17804/udp - environment: - - KONA_METRICS_ADDR=0.0.0.0 - - KONA_NODE_L1_BEACON=${ETHEREUM_TESTNET_BEACON_REST} - - KONA_NODE_L1_ETH_RPC=${ZIRCUIT_TESTNET_L1_EXECUTION_RPC:-${ETHEREUM_TESTNET_EXECUTION_RPC}} - - KONA_NODE_L1_TRUST_RPC=${ETHEREUM_TESTNET_EXECUTION_TRUST:-false} - - KONA_NODE_L2_CHAIN_ID=48899 - - KONA_NODE_L2_ENGINE_AUTH=/jwtsecret - - KONA_NODE_L2_ENGINE_RPC=http://zircuit-testnet:8551 - - KONA_NODE_L2_ENGINE_TIMEOUT=120000 - - KONA_NODE_L2_TRUST_RPC=true - - KONA_NODE_METRICS_PORT=7300 - - KONA_NODE_MODE=Validator - - KONA_NODE_P2P_ADVERTISE_IP=${IP} - - KONA_NODE_P2P_LISTEN_IP=0.0.0.0 - - KONA_NODE_P2P_LISTEN_TCP_PORT=17804 - - KONA_NODE_P2P_LISTEN_UDP_PORT=17804 - - KONA_NODE_RPC_ADDR=0.0.0.0 - - KONA_NODE_RPC_PORT=9545 - entrypoint: [kona-node, node] - restart: unless-stopped - depends_on: - zircuit-testnet: - condition: service_started - restart: true - networks: - - chains - volumes: - - ./op/zircuit/testnet:/config - - .jwtsecret:/jwtsecret:ro - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=7300 - - prometheus-scrape.path=/metrics - - traefik.enable=true - - traefik.http.middlewares.zircuit-testnet-op-geth-pruned-pebble-path-node-stripprefix.stripprefix.prefixes=/zircuit-testnet/node - - traefik.http.services.zircuit-testnet-op-geth-pruned-pebble-path-node.loadbalancer.server.port=9545 - - ${NO_SSL:-traefik.http.routers.zircuit-testnet-op-geth-pruned-pebble-path-node.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.zircuit-testnet-op-geth-pruned-pebble-path-node.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.zircuit-testnet-op-geth-pruned-pebble-path-node.rule=Host(`$DOMAIN`) && PathPrefix(`/zircuit-testnet/node`)} - - ${NO_SSL:+traefik.http.routers.zircuit-testnet-op-geth-pruned-pebble-path-node.rule=PathPrefix(`/zircuit-testnet/node`)} - - traefik.http.routers.zircuit-testnet-op-geth-pruned-pebble-path-node.middlewares=zircuit-testnet-op-geth-pruned-pebble-path-node-stripprefix, ipallowlist - -volumes: - zircuit-testnet-op-geth-pruned-pebble-path: - -x-upstreams: - - id: $${ID} - labels: - provider: $${PROVIDER} - connection: - generic: - rpc: - url: $${RPC_URL} - ws: - frameSize: 20Mb - msgSize: 50Mb - url: $${WS_URL} - chain: zircuit-testnet - 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 - - name: zirc_getQuarantineHistory - - name: zirc_getQuarantined - - name: zirc_isQuarantined -... \ No newline at end of file diff --git a/op/reth/base-mainnet-op-reth-archive-trace--kona.yml b/op/reth/base-mainnet-op-reth-archive-trace--kona.yml deleted file mode 100644 index 092f68ae..00000000 --- a/op/reth/base-mainnet-op-reth-archive-trace--kona.yml +++ /dev/null @@ -1,182 +0,0 @@ ---- -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:op/reth/base-mainnet-op-reth-archive-trace--kona.yml -# -# docker compose up -d -# -# curl -X POST https://${IP}.traefik.me/base-mainnet-op-reth \ -# -H "Content-Type: application/json" \ -# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' - -services: - base-mainnet-op-reth: - image: ${BASE_RETH_IMAGE:-ghcr.io/base/node-reth}:${BASE_MAINNET_RETH_VERSION:-v1.1.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) - memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX) - user: root - ports: - - 14221:14221 - - 14221:14221/udp - expose: - - 8545 - - 9001 - - 8551 - entrypoint: [/app/base-reth-node, node] - command: - - --chain=base - - --datadir=/root/.local/share/reth - - --engine.cross-block-cache-size=${BASE_MAINNET_RETH_STATE_CACHE:-4096} - - --max-inbound-peers=50 - - --max-outbound-peers=50 - - --metrics=0.0.0.0:9001 - - --nat=extip:${IP} - - --port=14221 - - --rollup.sequencer-http=https://mainnet-sequencer.base.org - - --rpc-cache.max-blocks=10000 - - --rpc-cache.max-concurrent-db-requests=2048 - - --rpc.gascap=600000000 - - --rpc.max-blocks-per-filter=0 - - --rpc.max-connections=50000 - - --rpc.max-logs-per-response=0 - - --rpc.max-trace-filter-blocks=10000 - - --http - - --http.addr=0.0.0.0 - - --http.api=admin,debug,eth,net,trace,txpool,web3,rpc,reth,ots,flashbots,mev - - --http.corsdomain=* - - --http.port=8545 - - --ws - - --ws.addr=0.0.0.0 - - --ws.api=admin,debug,eth,net,trace,txpool,web3,rpc,reth,ots,flashbots,mev - - --ws.origins=* - - --ws.port=8545 - - --authrpc.addr=0.0.0.0 - - --authrpc.jwtsecret=/jwtsecret - restart: unless-stopped - stop_grace_period: 5m - networks: - - chains - volumes: - - ${BASE_MAINNET_OP_RETH_ARCHIVE_TRACE_DATA:-base-mainnet-op-reth-archive-trace}:/root/.local/share/reth - - .jwtsecret:/jwtsecret:ro - - /slowdisk:/slowdisk - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=9001 - - prometheus-scrape.path=/metrics - - traefik.enable=true - - traefik.http.middlewares.base-mainnet-op-reth-archive-trace-stripprefix.stripprefix.prefixes=/base-mainnet-op-reth - - traefik.http.services.base-mainnet-op-reth-archive-trace.loadbalancer.server.port=8545 - - ${NO_SSL:-traefik.http.routers.base-mainnet-op-reth-archive-trace.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.base-mainnet-op-reth-archive-trace.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.base-mainnet-op-reth-archive-trace.rule=Host(`$DOMAIN`) && (Path(`/base-mainnet-op-reth`) || Path(`/base-mainnet-op-reth/`))} - - ${NO_SSL:+traefik.http.routers.base-mainnet-op-reth-archive-trace.rule=Path(`/base-mainnet-op-reth`) || Path(`/base-mainnet-op-reth/`)} - - traefik.http.routers.base-mainnet-op-reth-archive-trace.middlewares=base-mainnet-op-reth-archive-trace-stripprefix, ipallowlist - shm_size: 2gb - - base-mainnet-op-reth-node: - image: ${BASE_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${BASE_MAINNET_KONA_VERSION:-v1.6.1} - ports: - - 19221:19221 - - 19221:19221/udp - environment: - - KONA_METRICS_ADDR=0.0.0.0 - - KONA_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST} - - KONA_NODE_L1_ETH_RPC=${BASE_MAINNET_L1_EXECUTION_RPC:-${ETHEREUM_MAINNET_EXECUTION_RPC}} - - KONA_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false} - - KONA_NODE_L2_CHAIN_ID=8453 - - KONA_NODE_L2_ENGINE_AUTH=/jwtsecret - - KONA_NODE_L2_ENGINE_RPC=http://base-mainnet-op-reth:8551 - - KONA_NODE_L2_ENGINE_TIMEOUT=120000 - - KONA_NODE_L2_TRUST_RPC=true - - KONA_NODE_METRICS_PORT=7300 - - KONA_NODE_MODE=Validator - - KONA_NODE_P2P_ADVERTISE_IP=${IP} - - KONA_NODE_P2P_LISTEN_IP=0.0.0.0 - - KONA_NODE_P2P_LISTEN_TCP_PORT=19221 - - KONA_NODE_P2P_LISTEN_UDP_PORT=19221 - - KONA_NODE_RPC_ADDR=0.0.0.0 - - KONA_NODE_RPC_PORT=9545 - entrypoint: [kona-node, node] - restart: unless-stopped - depends_on: - base-mainnet-op-reth: - condition: service_started - restart: true - networks: - - chains - volumes: - - .jwtsecret:/jwtsecret:ro - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=7300 - - prometheus-scrape.path=/metrics - - traefik.enable=true - - traefik.http.middlewares.base-mainnet-op-reth-archive-trace-node-stripprefix.stripprefix.prefixes=/base-mainnet-op-reth/node - - traefik.http.services.base-mainnet-op-reth-archive-trace-node.loadbalancer.server.port=9545 - - ${NO_SSL:-traefik.http.routers.base-mainnet-op-reth-archive-trace-node.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.base-mainnet-op-reth-archive-trace-node.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.base-mainnet-op-reth-archive-trace-node.rule=Host(`$DOMAIN`) && PathPrefix(`/base-mainnet-op-reth/node`)} - - ${NO_SSL:+traefik.http.routers.base-mainnet-op-reth-archive-trace-node.rule=PathPrefix(`/base-mainnet-op-reth/node`)} - - traefik.http.routers.base-mainnet-op-reth-archive-trace-node.middlewares=base-mainnet-op-reth-archive-trace-node-stripprefix, ipallowlist - -volumes: - base-mainnet-op-reth-archive-trace: - -x-upstreams: - - id: $${ID} - labels: - provider: $${PROVIDER} - connection: - generic: - rpc: - url: $${RPC_URL} - ws: - frameSize: 20Mb - msgSize: 50Mb - url: $${WS_URL} - chain: base - method-groups: - enabled: - - debug - - filter - - trace - methods: - disabled: - - name: eth_maxPriorityFeePerGas - enabled: - - name: txpool_content # TODO: should be disabled for rollup nodes -... \ No newline at end of file diff --git a/op/reth/base-mainnet-op-reth-pruned-trace--kona.yml b/op/reth/base-mainnet-op-reth-pruned-trace--kona.yml deleted file mode 100644 index c16a7033..00000000 --- a/op/reth/base-mainnet-op-reth-pruned-trace--kona.yml +++ /dev/null @@ -1,183 +0,0 @@ ---- -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:op/reth/base-mainnet-op-reth-pruned-trace--kona.yml -# -# docker compose up -d -# -# curl -X POST https://${IP}.traefik.me/base-mainnet-op-reth-pruned \ -# -H "Content-Type: application/json" \ -# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' - -services: - base-mainnet-op-reth-pruned: - image: ${BASE_RETH_IMAGE:-ghcr.io/base/node-reth}:${BASE_MAINNET_RETH_VERSION:-v1.1.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) - memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX) - user: root - ports: - - 14759:14759 - - 14759:14759/udp - expose: - - 8545 - - 9001 - - 8551 - entrypoint: [/app/base-reth-node, node] - command: - - --chain=base - - --datadir=/root/.local/share/reth - - --engine.cross-block-cache-size=${BASE_MAINNET_RETH_STATE_CACHE:-4096} - - --full - - --max-inbound-peers=50 - - --max-outbound-peers=50 - - --metrics=0.0.0.0:9001 - - --nat=extip:${IP} - - --port=14759 - - --rollup.sequencer-http=https://mainnet-sequencer.base.org - - --rpc-cache.max-blocks=10000 - - --rpc-cache.max-concurrent-db-requests=2048 - - --rpc.gascap=600000000 - - --rpc.max-blocks-per-filter=0 - - --rpc.max-connections=50000 - - --rpc.max-logs-per-response=0 - - --rpc.max-trace-filter-blocks=10000 - - --http - - --http.addr=0.0.0.0 - - --http.api=admin,debug,eth,net,trace,txpool,web3,rpc,reth,ots,flashbots,mev - - --http.corsdomain=* - - --http.port=8545 - - --ws - - --ws.addr=0.0.0.0 - - --ws.api=admin,debug,eth,net,trace,txpool,web3,rpc,reth,ots,flashbots,mev - - --ws.origins=* - - --ws.port=8545 - - --authrpc.addr=0.0.0.0 - - --authrpc.jwtsecret=/jwtsecret - restart: unless-stopped - stop_grace_period: 5m - networks: - - chains - volumes: - - ${BASE_MAINNET_OP_RETH_PRUNED_TRACE_DATA:-base-mainnet-op-reth-pruned-trace}:/root/.local/share/reth - - .jwtsecret:/jwtsecret:ro - - /slowdisk:/slowdisk - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=9001 - - prometheus-scrape.path=/metrics - - traefik.enable=true - - traefik.http.middlewares.base-mainnet-op-reth-pruned-trace-stripprefix.stripprefix.prefixes=/base-mainnet-op-reth-pruned - - traefik.http.services.base-mainnet-op-reth-pruned-trace.loadbalancer.server.port=8545 - - ${NO_SSL:-traefik.http.routers.base-mainnet-op-reth-pruned-trace.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.base-mainnet-op-reth-pruned-trace.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.base-mainnet-op-reth-pruned-trace.rule=Host(`$DOMAIN`) && (Path(`/base-mainnet-op-reth-pruned`) || Path(`/base-mainnet-op-reth-pruned/`))} - - ${NO_SSL:+traefik.http.routers.base-mainnet-op-reth-pruned-trace.rule=Path(`/base-mainnet-op-reth-pruned`) || Path(`/base-mainnet-op-reth-pruned/`)} - - traefik.http.routers.base-mainnet-op-reth-pruned-trace.middlewares=base-mainnet-op-reth-pruned-trace-stripprefix, ipallowlist - shm_size: 2gb - - base-mainnet-op-reth-pruned-node: - image: ${BASE_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${BASE_MAINNET_KONA_VERSION:-v1.6.1} - ports: - - 19759:19759 - - 19759:19759/udp - environment: - - KONA_METRICS_ADDR=0.0.0.0 - - KONA_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST} - - KONA_NODE_L1_ETH_RPC=${BASE_MAINNET_L1_EXECUTION_RPC:-${ETHEREUM_MAINNET_EXECUTION_RPC}} - - KONA_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false} - - KONA_NODE_L2_CHAIN_ID=8453 - - KONA_NODE_L2_ENGINE_AUTH=/jwtsecret - - KONA_NODE_L2_ENGINE_RPC=http://base-mainnet-op-reth-pruned:8551 - - KONA_NODE_L2_ENGINE_TIMEOUT=120000 - - KONA_NODE_L2_TRUST_RPC=true - - KONA_NODE_METRICS_PORT=7300 - - KONA_NODE_MODE=Validator - - KONA_NODE_P2P_ADVERTISE_IP=${IP} - - KONA_NODE_P2P_LISTEN_IP=0.0.0.0 - - KONA_NODE_P2P_LISTEN_TCP_PORT=19759 - - KONA_NODE_P2P_LISTEN_UDP_PORT=19759 - - KONA_NODE_RPC_ADDR=0.0.0.0 - - KONA_NODE_RPC_PORT=9545 - entrypoint: [kona-node, node] - restart: unless-stopped - depends_on: - base-mainnet-op-reth-pruned: - condition: service_started - restart: true - networks: - - chains - volumes: - - .jwtsecret:/jwtsecret:ro - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=7300 - - prometheus-scrape.path=/metrics - - traefik.enable=true - - traefik.http.middlewares.base-mainnet-op-reth-pruned-trace-node-stripprefix.stripprefix.prefixes=/base-mainnet-op-reth-pruned/node - - traefik.http.services.base-mainnet-op-reth-pruned-trace-node.loadbalancer.server.port=9545 - - ${NO_SSL:-traefik.http.routers.base-mainnet-op-reth-pruned-trace-node.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.base-mainnet-op-reth-pruned-trace-node.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.base-mainnet-op-reth-pruned-trace-node.rule=Host(`$DOMAIN`) && PathPrefix(`/base-mainnet-op-reth-pruned/node`)} - - ${NO_SSL:+traefik.http.routers.base-mainnet-op-reth-pruned-trace-node.rule=PathPrefix(`/base-mainnet-op-reth-pruned/node`)} - - traefik.http.routers.base-mainnet-op-reth-pruned-trace-node.middlewares=base-mainnet-op-reth-pruned-trace-node-stripprefix, ipallowlist - -volumes: - base-mainnet-op-reth-pruned-trace: - -x-upstreams: - - id: $${ID} - labels: - provider: $${PROVIDER} - connection: - generic: - rpc: - url: $${RPC_URL} - ws: - frameSize: 20Mb - msgSize: 50Mb - url: $${WS_URL} - chain: base - method-groups: - enabled: - - debug - - filter - - trace - methods: - disabled: - - name: eth_maxPriorityFeePerGas - enabled: - - name: txpool_content # TODO: should be disabled for rollup nodes -... \ No newline at end of file diff --git a/op/reth/base-sepolia-op-reth-archive-trace--kona.yml b/op/reth/base-sepolia-op-reth-archive-trace--kona.yml deleted file mode 100644 index 629b216e..00000000 --- a/op/reth/base-sepolia-op-reth-archive-trace--kona.yml +++ /dev/null @@ -1,183 +0,0 @@ ---- -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:op/reth/base-sepolia-op-reth-archive-trace--kona.yml -# -# docker compose up -d -# -# curl -X POST https://${IP}.traefik.me/base-sepolia-op-reth \ -# -H "Content-Type: application/json" \ -# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' - -services: - base-sepolia-op-reth: - image: ${BASE_RETH_IMAGE:-ghcr.io/base/node-reth}:${BASE_SEPOLIA_RETH_VERSION:-v1.1.0} - 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) - memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX) - user: root - ports: - - 11390:11390 - - 11390:11390/udp - expose: - - 8545 - - 9001 - - 8551 - entrypoint: [/app/base-reth-node, node] - command: - - --chain=base-sepolia - - --datadir=/root/.local/share/reth - - --engine.cross-block-cache-size=${BASE_SEPOLIA_RETH_STATE_CACHE:-4096} - - --max-inbound-peers=50 - - --max-outbound-peers=50 - - --metrics=0.0.0.0:9001 - - --nat=extip:${IP} - - --port=11390 - - --rollup.sequencer-http=https://sepolia-sequencer.base.org - - --rpc-cache.max-blocks=10000 - - --rpc-cache.max-concurrent-db-requests=2048 - - --rpc.gascap=600000000 - - --rpc.max-blocks-per-filter=0 - - --rpc.max-connections=50000 - - --rpc.max-logs-per-response=0 - - --rpc.max-trace-filter-blocks=10000 - - --http - - --http.addr=0.0.0.0 - - --http.api=admin,debug,eth,net,trace,txpool,web3,rpc,reth,ots,flashbots,mev - - --http.corsdomain=* - - --http.port=8545 - - --ws - - --ws.addr=0.0.0.0 - - --ws.api=admin,debug,eth,net,trace,txpool,web3,rpc,reth,ots,flashbots,mev - - --ws.origins=* - - --ws.port=8545 - - --authrpc.addr=0.0.0.0 - - --authrpc.jwtsecret=/jwtsecret - restart: unless-stopped - stop_grace_period: 5m - networks: - - chains - volumes: - - ${BASE_SEPOLIA_OP_RETH_ARCHIVE_TRACE_DATA:-base-sepolia-op-reth-archive-trace}:/root/.local/share/reth - - .jwtsecret:/jwtsecret:ro - - /slowdisk:/slowdisk - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=9001 - - prometheus-scrape.path=/metrics - - traefik.enable=true - - traefik.http.middlewares.base-sepolia-op-reth-archive-trace-stripprefix.stripprefix.prefixes=/base-sepolia-op-reth - - traefik.http.services.base-sepolia-op-reth-archive-trace.loadbalancer.server.port=8545 - - ${NO_SSL:-traefik.http.routers.base-sepolia-op-reth-archive-trace.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.base-sepolia-op-reth-archive-trace.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.base-sepolia-op-reth-archive-trace.rule=Host(`$DOMAIN`) && (Path(`/base-sepolia-op-reth`) || Path(`/base-sepolia-op-reth/`))} - - ${NO_SSL:+traefik.http.routers.base-sepolia-op-reth-archive-trace.rule=Path(`/base-sepolia-op-reth`) || Path(`/base-sepolia-op-reth/`)} - - traefik.http.routers.base-sepolia-op-reth-archive-trace.middlewares=base-sepolia-op-reth-archive-trace-stripprefix, ipallowlist - shm_size: 2gb - - base-sepolia-op-reth-node: - image: ${BASE_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${BASE_SEPOLIA_KONA_VERSION:-v1.6.1} - ports: - - 16390:16390 - - 16390:16390/udp - environment: - - KONA_METRICS_ADDR=0.0.0.0 - - KONA_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST} - - KONA_NODE_L1_ETH_RPC=${BASE_SEPOLIA_L1_EXECUTION_RPC:-${ETHEREUM_SEPOLIA_EXECUTION_RPC}} - - KONA_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false} - - KONA_NODE_L2_CHAIN_ID=84532 - - KONA_NODE_L2_ENGINE_AUTH=/jwtsecret - - KONA_NODE_L2_ENGINE_RPC=http://base-sepolia-op-reth:8551 - - KONA_NODE_L2_ENGINE_TIMEOUT=120000 - - KONA_NODE_L2_TRUST_RPC=true - - KONA_NODE_METRICS_PORT=7300 - - KONA_NODE_MODE=Validator - - KONA_NODE_OVERRIDE_PECTRA_BLOB_SCHEDULE=1742486400 - - KONA_NODE_P2P_ADVERTISE_IP=${IP} - - KONA_NODE_P2P_LISTEN_IP=0.0.0.0 - - KONA_NODE_P2P_LISTEN_TCP_PORT=16390 - - KONA_NODE_P2P_LISTEN_UDP_PORT=16390 - - KONA_NODE_RPC_ADDR=0.0.0.0 - - KONA_NODE_RPC_PORT=9545 - entrypoint: [kona-node, node] - restart: unless-stopped - depends_on: - base-sepolia-op-reth: - condition: service_started - restart: true - networks: - - chains - volumes: - - .jwtsecret:/jwtsecret:ro - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=7300 - - prometheus-scrape.path=/metrics - - traefik.enable=true - - traefik.http.middlewares.base-sepolia-op-reth-archive-trace-node-stripprefix.stripprefix.prefixes=/base-sepolia-op-reth/node - - traefik.http.services.base-sepolia-op-reth-archive-trace-node.loadbalancer.server.port=9545 - - ${NO_SSL:-traefik.http.routers.base-sepolia-op-reth-archive-trace-node.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.base-sepolia-op-reth-archive-trace-node.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.base-sepolia-op-reth-archive-trace-node.rule=Host(`$DOMAIN`) && PathPrefix(`/base-sepolia-op-reth/node`)} - - ${NO_SSL:+traefik.http.routers.base-sepolia-op-reth-archive-trace-node.rule=PathPrefix(`/base-sepolia-op-reth/node`)} - - traefik.http.routers.base-sepolia-op-reth-archive-trace-node.middlewares=base-sepolia-op-reth-archive-trace-node-stripprefix, ipallowlist - -volumes: - base-sepolia-op-reth-archive-trace: - -x-upstreams: - - id: $${ID} - labels: - provider: $${PROVIDER} - connection: - generic: - rpc: - url: $${RPC_URL} - ws: - frameSize: 20Mb - msgSize: 50Mb - url: $${WS_URL} - chain: base-sepolia - method-groups: - enabled: - - debug - - filter - - trace - methods: - disabled: - - name: eth_maxPriorityFeePerGas - enabled: - - name: txpool_content # TODO: should be disabled for rollup nodes -... \ No newline at end of file diff --git a/op/reth/base-sepolia-op-reth-minimal-trace--kona.yml b/op/reth/base-sepolia-op-reth-minimal-trace--kona.yml deleted file mode 100644 index a33e95b5..00000000 --- a/op/reth/base-sepolia-op-reth-minimal-trace--kona.yml +++ /dev/null @@ -1,183 +0,0 @@ ---- -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:op/reth/base-sepolia-op-reth-minimal-trace--kona.yml -# -# docker compose up -d -# -# curl -X POST https://${IP}.traefik.me/base-sepolia-op-reth-minimal \ -# -H "Content-Type: application/json" \ -# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' - -services: - base-sepolia-op-reth-minimal: - image: ${BASE_RETH_IMAGE:-ghcr.io/base/node-reth}:${BASE_SEPOLIA_RETH_VERSION:-v1.1.0} - 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) - memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX) - user: root - ports: - - 12165:12165 - - 12165:12165/udp - expose: - - 8545 - - 9001 - - 8551 - entrypoint: [/app/base-reth-node, node] - command: - - --chain=base-sepolia - - --datadir=/root/.local/share/reth - - --engine.cross-block-cache-size=${BASE_SEPOLIA_RETH_STATE_CACHE:-4096} - - --max-inbound-peers=50 - - --max-outbound-peers=50 - - --metrics=0.0.0.0:9001 - - --nat=extip:${IP} - - --port=12165 - - --rollup.sequencer-http=https://sepolia-sequencer.base.org - - --rpc-cache.max-blocks=10000 - - --rpc-cache.max-concurrent-db-requests=2048 - - --rpc.gascap=600000000 - - --rpc.max-blocks-per-filter=0 - - --rpc.max-connections=50000 - - --rpc.max-logs-per-response=0 - - --rpc.max-trace-filter-blocks=10000 - - --http - - --http.addr=0.0.0.0 - - --http.api=admin,debug,eth,net,trace,txpool,web3,rpc,reth,ots,flashbots,mev - - --http.corsdomain=* - - --http.port=8545 - - --ws - - --ws.addr=0.0.0.0 - - --ws.api=admin,debug,eth,net,trace,txpool,web3,rpc,reth,ots,flashbots,mev - - --ws.origins=* - - --ws.port=8545 - - --authrpc.addr=0.0.0.0 - - --authrpc.jwtsecret=/jwtsecret - restart: unless-stopped - stop_grace_period: 5m - networks: - - chains - volumes: - - ${BASE_SEPOLIA_OP_RETH_MINIMAL_TRACE_DATA:-base-sepolia-op-reth-minimal-trace}:/root/.local/share/reth - - .jwtsecret:/jwtsecret:ro - - /slowdisk:/slowdisk - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=9001 - - prometheus-scrape.path=/metrics - - traefik.enable=true - - traefik.http.middlewares.base-sepolia-op-reth-minimal-trace-stripprefix.stripprefix.prefixes=/base-sepolia-op-reth-minimal - - traefik.http.services.base-sepolia-op-reth-minimal-trace.loadbalancer.server.port=8545 - - ${NO_SSL:-traefik.http.routers.base-sepolia-op-reth-minimal-trace.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.base-sepolia-op-reth-minimal-trace.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.base-sepolia-op-reth-minimal-trace.rule=Host(`$DOMAIN`) && (Path(`/base-sepolia-op-reth-minimal`) || Path(`/base-sepolia-op-reth-minimal/`))} - - ${NO_SSL:+traefik.http.routers.base-sepolia-op-reth-minimal-trace.rule=Path(`/base-sepolia-op-reth-minimal`) || Path(`/base-sepolia-op-reth-minimal/`)} - - traefik.http.routers.base-sepolia-op-reth-minimal-trace.middlewares=base-sepolia-op-reth-minimal-trace-stripprefix, ipallowlist - shm_size: 2gb - - base-sepolia-op-reth-minimal-node: - image: ${BASE_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${BASE_SEPOLIA_KONA_VERSION:-v1.6.1} - ports: - - 17165:17165 - - 17165:17165/udp - environment: - - KONA_METRICS_ADDR=0.0.0.0 - - KONA_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST} - - KONA_NODE_L1_ETH_RPC=${BASE_SEPOLIA_L1_EXECUTION_RPC:-${ETHEREUM_SEPOLIA_EXECUTION_RPC}} - - KONA_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false} - - KONA_NODE_L2_CHAIN_ID=84532 - - KONA_NODE_L2_ENGINE_AUTH=/jwtsecret - - KONA_NODE_L2_ENGINE_RPC=http://base-sepolia-op-reth-minimal:8551 - - KONA_NODE_L2_ENGINE_TIMEOUT=120000 - - KONA_NODE_L2_TRUST_RPC=true - - KONA_NODE_METRICS_PORT=7300 - - KONA_NODE_MODE=Validator - - KONA_NODE_OVERRIDE_PECTRA_BLOB_SCHEDULE=1742486400 - - KONA_NODE_P2P_ADVERTISE_IP=${IP} - - KONA_NODE_P2P_LISTEN_IP=0.0.0.0 - - KONA_NODE_P2P_LISTEN_TCP_PORT=17165 - - KONA_NODE_P2P_LISTEN_UDP_PORT=17165 - - KONA_NODE_RPC_ADDR=0.0.0.0 - - KONA_NODE_RPC_PORT=9545 - entrypoint: [kona-node, node] - restart: unless-stopped - depends_on: - base-sepolia-op-reth-minimal: - condition: service_started - restart: true - networks: - - chains - volumes: - - .jwtsecret:/jwtsecret:ro - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=7300 - - prometheus-scrape.path=/metrics - - traefik.enable=true - - traefik.http.middlewares.base-sepolia-op-reth-minimal-trace-node-stripprefix.stripprefix.prefixes=/base-sepolia-op-reth-minimal/node - - traefik.http.services.base-sepolia-op-reth-minimal-trace-node.loadbalancer.server.port=9545 - - ${NO_SSL:-traefik.http.routers.base-sepolia-op-reth-minimal-trace-node.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.base-sepolia-op-reth-minimal-trace-node.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.base-sepolia-op-reth-minimal-trace-node.rule=Host(`$DOMAIN`) && PathPrefix(`/base-sepolia-op-reth-minimal/node`)} - - ${NO_SSL:+traefik.http.routers.base-sepolia-op-reth-minimal-trace-node.rule=PathPrefix(`/base-sepolia-op-reth-minimal/node`)} - - traefik.http.routers.base-sepolia-op-reth-minimal-trace-node.middlewares=base-sepolia-op-reth-minimal-trace-node-stripprefix, ipallowlist - -volumes: - base-sepolia-op-reth-minimal-trace: - -x-upstreams: - - id: $${ID} - labels: - provider: $${PROVIDER} - connection: - generic: - rpc: - url: $${RPC_URL} - ws: - frameSize: 20Mb - msgSize: 50Mb - url: $${WS_URL} - chain: base-sepolia - method-groups: - enabled: - - debug - - filter - - trace - methods: - disabled: - - name: eth_maxPriorityFeePerGas - enabled: - - name: txpool_content # TODO: should be disabled for rollup nodes -... \ No newline at end of file diff --git a/op/reth/base-sepolia-op-reth-pruned-trace--kona.yml b/op/reth/base-sepolia-op-reth-pruned-trace--kona.yml deleted file mode 100644 index 13a71b30..00000000 --- a/op/reth/base-sepolia-op-reth-pruned-trace--kona.yml +++ /dev/null @@ -1,184 +0,0 @@ ---- -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:op/reth/base-sepolia-op-reth-pruned-trace--kona.yml -# -# docker compose up -d -# -# curl -X POST https://${IP}.traefik.me/base-sepolia-op-reth-pruned \ -# -H "Content-Type: application/json" \ -# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' - -services: - base-sepolia-op-reth-pruned: - image: ${BASE_RETH_IMAGE:-ghcr.io/base/node-reth}:${BASE_SEPOLIA_RETH_VERSION:-v1.1.0} - 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) - memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX) - user: root - ports: - - 11147:11147 - - 11147:11147/udp - expose: - - 8545 - - 9001 - - 8551 - entrypoint: [/app/base-reth-node, node] - command: - - --chain=base-sepolia - - --datadir=/root/.local/share/reth - - --engine.cross-block-cache-size=${BASE_SEPOLIA_RETH_STATE_CACHE:-4096} - - --full - - --max-inbound-peers=50 - - --max-outbound-peers=50 - - --metrics=0.0.0.0:9001 - - --nat=extip:${IP} - - --port=11147 - - --rollup.sequencer-http=https://sepolia-sequencer.base.org - - --rpc-cache.max-blocks=10000 - - --rpc-cache.max-concurrent-db-requests=2048 - - --rpc.gascap=600000000 - - --rpc.max-blocks-per-filter=0 - - --rpc.max-connections=50000 - - --rpc.max-logs-per-response=0 - - --rpc.max-trace-filter-blocks=10000 - - --http - - --http.addr=0.0.0.0 - - --http.api=admin,debug,eth,net,trace,txpool,web3,rpc,reth,ots,flashbots,mev - - --http.corsdomain=* - - --http.port=8545 - - --ws - - --ws.addr=0.0.0.0 - - --ws.api=admin,debug,eth,net,trace,txpool,web3,rpc,reth,ots,flashbots,mev - - --ws.origins=* - - --ws.port=8545 - - --authrpc.addr=0.0.0.0 - - --authrpc.jwtsecret=/jwtsecret - restart: unless-stopped - stop_grace_period: 5m - networks: - - chains - volumes: - - ${BASE_SEPOLIA_OP_RETH_PRUNED_TRACE_DATA:-base-sepolia-op-reth-pruned-trace}:/root/.local/share/reth - - .jwtsecret:/jwtsecret:ro - - /slowdisk:/slowdisk - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=9001 - - prometheus-scrape.path=/metrics - - traefik.enable=true - - traefik.http.middlewares.base-sepolia-op-reth-pruned-trace-stripprefix.stripprefix.prefixes=/base-sepolia-op-reth-pruned - - traefik.http.services.base-sepolia-op-reth-pruned-trace.loadbalancer.server.port=8545 - - ${NO_SSL:-traefik.http.routers.base-sepolia-op-reth-pruned-trace.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.base-sepolia-op-reth-pruned-trace.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.base-sepolia-op-reth-pruned-trace.rule=Host(`$DOMAIN`) && (Path(`/base-sepolia-op-reth-pruned`) || Path(`/base-sepolia-op-reth-pruned/`))} - - ${NO_SSL:+traefik.http.routers.base-sepolia-op-reth-pruned-trace.rule=Path(`/base-sepolia-op-reth-pruned`) || Path(`/base-sepolia-op-reth-pruned/`)} - - traefik.http.routers.base-sepolia-op-reth-pruned-trace.middlewares=base-sepolia-op-reth-pruned-trace-stripprefix, ipallowlist - shm_size: 2gb - - base-sepolia-op-reth-pruned-node: - image: ${BASE_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${BASE_SEPOLIA_KONA_VERSION:-v1.6.1} - ports: - - 16147:16147 - - 16147:16147/udp - environment: - - KONA_METRICS_ADDR=0.0.0.0 - - KONA_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST} - - KONA_NODE_L1_ETH_RPC=${BASE_SEPOLIA_L1_EXECUTION_RPC:-${ETHEREUM_SEPOLIA_EXECUTION_RPC}} - - KONA_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false} - - KONA_NODE_L2_CHAIN_ID=84532 - - KONA_NODE_L2_ENGINE_AUTH=/jwtsecret - - KONA_NODE_L2_ENGINE_RPC=http://base-sepolia-op-reth-pruned:8551 - - KONA_NODE_L2_ENGINE_TIMEOUT=120000 - - KONA_NODE_L2_TRUST_RPC=true - - KONA_NODE_METRICS_PORT=7300 - - KONA_NODE_MODE=Validator - - KONA_NODE_OVERRIDE_PECTRA_BLOB_SCHEDULE=1742486400 - - KONA_NODE_P2P_ADVERTISE_IP=${IP} - - KONA_NODE_P2P_LISTEN_IP=0.0.0.0 - - KONA_NODE_P2P_LISTEN_TCP_PORT=16147 - - KONA_NODE_P2P_LISTEN_UDP_PORT=16147 - - KONA_NODE_RPC_ADDR=0.0.0.0 - - KONA_NODE_RPC_PORT=9545 - entrypoint: [kona-node, node] - restart: unless-stopped - depends_on: - base-sepolia-op-reth-pruned: - condition: service_started - restart: true - networks: - - chains - volumes: - - .jwtsecret:/jwtsecret:ro - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=7300 - - prometheus-scrape.path=/metrics - - traefik.enable=true - - traefik.http.middlewares.base-sepolia-op-reth-pruned-trace-node-stripprefix.stripprefix.prefixes=/base-sepolia-op-reth-pruned/node - - traefik.http.services.base-sepolia-op-reth-pruned-trace-node.loadbalancer.server.port=9545 - - ${NO_SSL:-traefik.http.routers.base-sepolia-op-reth-pruned-trace-node.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.base-sepolia-op-reth-pruned-trace-node.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.base-sepolia-op-reth-pruned-trace-node.rule=Host(`$DOMAIN`) && PathPrefix(`/base-sepolia-op-reth-pruned/node`)} - - ${NO_SSL:+traefik.http.routers.base-sepolia-op-reth-pruned-trace-node.rule=PathPrefix(`/base-sepolia-op-reth-pruned/node`)} - - traefik.http.routers.base-sepolia-op-reth-pruned-trace-node.middlewares=base-sepolia-op-reth-pruned-trace-node-stripprefix, ipallowlist - -volumes: - base-sepolia-op-reth-pruned-trace: - -x-upstreams: - - id: $${ID} - labels: - provider: $${PROVIDER} - connection: - generic: - rpc: - url: $${RPC_URL} - ws: - frameSize: 20Mb - msgSize: 50Mb - url: $${WS_URL} - chain: base-sepolia - method-groups: - enabled: - - debug - - filter - - trace - methods: - disabled: - - name: eth_maxPriorityFeePerGas - enabled: - - name: txpool_content # TODO: should be disabled for rollup nodes -... \ No newline at end of file diff --git a/op/reth/superseed-sepolia-op-reth-pruned-trace--kona.yml b/op/reth/superseed-sepolia-op-reth-pruned-trace--kona.yml deleted file mode 100644 index 732cd6f2..00000000 --- a/op/reth/superseed-sepolia-op-reth-pruned-trace--kona.yml +++ /dev/null @@ -1,185 +0,0 @@ ---- -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:op/reth/superseed-sepolia-op-reth-pruned-trace--kona.yml -# -# docker compose up -d -# -# curl -X POST https://${IP}.traefik.me/superseed-sepolia-op-reth-pruned \ -# -H "Content-Type: application/json" \ -# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' - -services: - superseed-sepolia-op-reth-pruned: - image: ${SUPERSEED_RETH_IMAGE:-ghcr.io/conduitxyz/conduit-op-reth}:${SUPERSEED_SEPOLIA_RETH_VERSION:-v2.1.0} - 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) - memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX) - user: root - expose: - - 8545 - - 9001 - - 8551 - entrypoint: [op-reth, node] - command: - - --chain=/config/genesis.json - - --config=/config/reth/reth.toml - - --datadir=/root/.local/share/reth - - --disable-discovery - - --engine.cross-block-cache-size=${SUPERSEED_SEPOLIA_RETH_STATE_CACHE:-4096} - - --full - - --max-inbound-peers=50 - - --max-outbound-peers=50 - - --metrics=0.0.0.0:9001 - - --rollup.historicalrpc=${SUPERSEED_SEPOLIA_CLASSIC_ARCHIVE_RPC:-https://sepolia.superseed.xyz} - - --rollup.sequencer-http=https://sepolia.superseed.xyz - - --rpc-cache.max-blocks=10000 - - --rpc-cache.max-concurrent-db-requests=2048 - - --rpc.gascap=600000000 - - --rpc.max-blocks-per-filter=0 - - --rpc.max-connections=50000 - - --rpc.max-logs-per-response=0 - - --rpc.max-trace-filter-blocks=10000 - - --http - - --http.addr=0.0.0.0 - - --http.api=admin,debug,eth,net,trace,txpool,web3,rpc,reth,ots,flashbots,mev - - --http.corsdomain=* - - --http.port=8545 - - --ws - - --ws.addr=0.0.0.0 - - --ws.api=admin,debug,eth,net,trace,txpool,web3,rpc,reth,ots,flashbots,mev - - --ws.origins=* - - --ws.port=8545 - - --authrpc.addr=0.0.0.0 - - --authrpc.jwtsecret=/jwtsecret - restart: unless-stopped - stop_grace_period: 5m - networks: - - chains - volumes: - - ${SUPERSEED_SEPOLIA_OP_RETH_PRUNED_TRACE_DATA:-superseed-sepolia-op-reth-pruned-trace}:/root/.local/share/reth - - ./op/superseed/sepolia:/config - - .jwtsecret:/jwtsecret:ro - - /slowdisk:/slowdisk - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=9001 - - prometheus-scrape.path=/metrics - - traefik.enable=true - - traefik.http.middlewares.superseed-sepolia-op-reth-pruned-trace-stripprefix.stripprefix.prefixes=/superseed-sepolia-op-reth-pruned - - traefik.http.services.superseed-sepolia-op-reth-pruned-trace.loadbalancer.server.port=8545 - - ${NO_SSL:-traefik.http.routers.superseed-sepolia-op-reth-pruned-trace.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.superseed-sepolia-op-reth-pruned-trace.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.superseed-sepolia-op-reth-pruned-trace.rule=Host(`$DOMAIN`) && (Path(`/superseed-sepolia-op-reth-pruned`) || Path(`/superseed-sepolia-op-reth-pruned/`))} - - ${NO_SSL:+traefik.http.routers.superseed-sepolia-op-reth-pruned-trace.rule=Path(`/superseed-sepolia-op-reth-pruned`) || Path(`/superseed-sepolia-op-reth-pruned/`)} - - traefik.http.routers.superseed-sepolia-op-reth-pruned-trace.middlewares=superseed-sepolia-op-reth-pruned-trace-stripprefix, ipallowlist - shm_size: 2gb - - superseed-sepolia-op-reth-pruned-node: - image: ${SUPERSEED_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${SUPERSEED_SEPOLIA_KONA_VERSION:-v1.6.1} - ports: - - 17399:17399 - - 17399:17399/udp - environment: - - KONA_METRICS_ADDR=0.0.0.0 - - KONA_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST} - - KONA_NODE_L1_ETH_RPC=${SUPERSEED_SEPOLIA_L1_EXECUTION_RPC:-${ETHEREUM_SEPOLIA_EXECUTION_RPC}} - - KONA_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false} - - KONA_NODE_L2_CHAIN_ID=53302 - - KONA_NODE_L2_ENGINE_AUTH=/jwtsecret - - KONA_NODE_L2_ENGINE_RPC=http://superseed-sepolia-op-reth-pruned:8551 - - KONA_NODE_L2_ENGINE_TIMEOUT=120000 - - KONA_NODE_L2_TRUST_RPC=true - - KONA_NODE_METRICS_PORT=7300 - - KONA_NODE_MODE=Validator - - KONA_NODE_OVERRIDE_PECTRA_BLOB_SCHEDULE=1742486400 - - KONA_NODE_P2P_ADVERTISE_IP=${IP} - - KONA_NODE_P2P_BOOTNODES=enode://c9fb471294f243ce4aa32f8987d743fed73fa109013996f169f81914efd2a76762f2f142bd6dcc147afe342c752a587e06ef2ea1418c99ff757986242e372f3d@34.105.58.183:9222?discport=30301,enode://d25ce99435982b04d60c4b41ba256b84b888626db7bee45a9419382300fbe907359ae5ef250346785bff8d3b9d07cd3e017a27e2ee3cfda3bcbb0ba762ac9674@bootnode.conduit.xyz:0?discport=30301,enode://2d4e7e9d48f4dd4efe9342706dd1b0024681bd4c3300d021f86fc75eab7865d4e0cbec6fbc883f011cfd6a57423e7e2f6e104baad2b744c3cafaec6bc7dc92c1@34.65.43.171:0?discport=30305,enode://9d7a3efefe442351217e73b3a593bcb8efffb55b4807699972145324eab5e6b382152f8d24f6301baebbfb5ecd4127bd3faab2842c04cd432bdf50ba092f6645@34.65.109.126:0?discport=30305 - - KONA_NODE_P2P_LISTEN_IP=0.0.0.0 - - KONA_NODE_P2P_LISTEN_TCP_PORT=17399 - - KONA_NODE_P2P_LISTEN_UDP_PORT=17399 - - KONA_NODE_RPC_ADDR=0.0.0.0 - - KONA_NODE_RPC_PORT=9545 - entrypoint: [kona-node, node] - restart: unless-stopped - depends_on: - superseed-sepolia-op-reth-pruned: - condition: service_started - restart: true - networks: - - chains - volumes: - - ./op/superseed/sepolia:/config - - .jwtsecret:/jwtsecret:ro - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=7300 - - prometheus-scrape.path=/metrics - - traefik.enable=true - - traefik.http.middlewares.superseed-sepolia-op-reth-pruned-trace-node-stripprefix.stripprefix.prefixes=/superseed-sepolia-op-reth-pruned/node - - traefik.http.services.superseed-sepolia-op-reth-pruned-trace-node.loadbalancer.server.port=9545 - - ${NO_SSL:-traefik.http.routers.superseed-sepolia-op-reth-pruned-trace-node.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.superseed-sepolia-op-reth-pruned-trace-node.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.superseed-sepolia-op-reth-pruned-trace-node.rule=Host(`$DOMAIN`) && PathPrefix(`/superseed-sepolia-op-reth-pruned/node`)} - - ${NO_SSL:+traefik.http.routers.superseed-sepolia-op-reth-pruned-trace-node.rule=PathPrefix(`/superseed-sepolia-op-reth-pruned/node`)} - - traefik.http.routers.superseed-sepolia-op-reth-pruned-trace-node.middlewares=superseed-sepolia-op-reth-pruned-trace-node-stripprefix, ipallowlist - -volumes: - superseed-sepolia-op-reth-pruned-trace: - -x-upstreams: - - id: $${ID} - labels: - provider: $${PROVIDER} - connection: - generic: - rpc: - url: $${RPC_URL} - ws: - frameSize: 20Mb - msgSize: 50Mb - url: $${WS_URL} - chain: superseed-sepolia - method-groups: - enabled: - - debug - - filter - - trace - methods: - disabled: - - name: eth_maxPriorityFeePerGas - enabled: - - name: txpool_content # TODO: should be disabled for rollup nodes -... \ No newline at end of file diff --git a/op/reth/base-mainnet-op-reth-minimal-trace--kona.yml b/op/reth/worldchain-mainnet-op-reth-pruned-trace--kona.yml similarity index 56% rename from op/reth/base-mainnet-op-reth-minimal-trace--kona.yml rename to op/reth/worldchain-mainnet-op-reth-pruned-trace--kona.yml index 9619b3ba..df452dff 100644 --- a/op/reth/base-mainnet-op-reth-minimal-trace--kona.yml +++ b/op/reth/worldchain-mainnet-op-reth-pruned-trace--kona.yml @@ -20,17 +20,17 @@ x-logging-defaults: &logging-defaults # ... # IP=$(curl ipinfo.io/ip) # DOMAIN=${IP}.traefik.me -# COMPOSE_FILE=base.yml:rpc.yml:op/reth/base-mainnet-op-reth-minimal-trace--kona.yml +# COMPOSE_FILE=base.yml:rpc.yml:op/reth/worldchain-mainnet-op-reth-pruned-trace--kona.yml # # docker compose up -d # -# curl -X POST https://${IP}.traefik.me/base-mainnet-op-reth-minimal \ +# curl -X POST https://${IP}.traefik.me/worldchain-mainnet-op-reth-pruned \ # -H "Content-Type: application/json" \ # --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' services: - base-mainnet-op-reth-minimal: - image: ${BASE_RETH_IMAGE:-ghcr.io/base/node-reth}:${BASE_MAINNET_RETH_VERSION:-v1.1.1} + worldchain-mainnet-op-reth-pruned: + image: ${WORLDCHAIN_RETH_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-reth}:${WORLDCHAIN_MAINNET_RETH_VERSION:-v2.3.2} sysctls: # TCP Performance net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle @@ -47,23 +47,24 @@ services: memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX) user: root ports: - - 11240:11240 - - 11240:11240/udp + - 10216:10216 + - 10216:10216/udp expose: - 8545 - 9001 - 8551 - entrypoint: [/app/base-reth-node, node] + entrypoint: [op-reth, node] command: - - --chain=base + - --chain=worldchain - --datadir=/root/.local/share/reth - - --engine.cross-block-cache-size=${BASE_MAINNET_RETH_STATE_CACHE:-4096} + - --engine.cross-block-cache-size=${WORLDCHAIN_MAINNET_RETH_STATE_CACHE:-4096} + - --full - --max-inbound-peers=50 - --max-outbound-peers=50 - --metrics=0.0.0.0:9001 - --nat=extip:${IP} - - --port=11240 - - --rollup.sequencer-http=https://mainnet-sequencer.base.org + - --port=10216 + - --rollup.sequencer-http=https://worldchain-mainnet.g.alchemy.com/public - --rpc-cache.max-blocks=10000 - --rpc-cache.max-concurrent-db-requests=2048 - --rpc.gascap=600000000 @@ -88,7 +89,7 @@ services: networks: - chains volumes: - - ${BASE_MAINNET_OP_RETH_MINIMAL_TRACE_DATA:-base-mainnet-op-reth-minimal-trace}:/root/.local/share/reth + - ${WORLDCHAIN_MAINNET_OP_RETH_PRUNED_TRACE_DATA:-worldchain-mainnet-op-reth-pruned-trace}:/root/.local/share/reth - .jwtsecret:/jwtsecret:ro - /slowdisk:/slowdisk logging: *logging-defaults @@ -97,42 +98,42 @@ services: - prometheus-scrape.port=9001 - prometheus-scrape.path=/metrics - traefik.enable=true - - traefik.http.middlewares.base-mainnet-op-reth-minimal-trace-stripprefix.stripprefix.prefixes=/base-mainnet-op-reth-minimal - - traefik.http.services.base-mainnet-op-reth-minimal-trace.loadbalancer.server.port=8545 - - ${NO_SSL:-traefik.http.routers.base-mainnet-op-reth-minimal-trace.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.base-mainnet-op-reth-minimal-trace.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.base-mainnet-op-reth-minimal-trace.rule=Host(`$DOMAIN`) && (Path(`/base-mainnet-op-reth-minimal`) || Path(`/base-mainnet-op-reth-minimal/`))} - - ${NO_SSL:+traefik.http.routers.base-mainnet-op-reth-minimal-trace.rule=Path(`/base-mainnet-op-reth-minimal`) || Path(`/base-mainnet-op-reth-minimal/`)} - - traefik.http.routers.base-mainnet-op-reth-minimal-trace.middlewares=base-mainnet-op-reth-minimal-trace-stripprefix, ipallowlist + - traefik.http.middlewares.worldchain-mainnet-op-reth-pruned-trace-stripprefix.stripprefix.prefixes=/worldchain-mainnet-op-reth-pruned + - traefik.http.services.worldchain-mainnet-op-reth-pruned-trace.loadbalancer.server.port=8545 + - ${NO_SSL:-traefik.http.routers.worldchain-mainnet-op-reth-pruned-trace.entrypoints=websecure} + - ${NO_SSL:-traefik.http.routers.worldchain-mainnet-op-reth-pruned-trace.tls.certresolver=myresolver} + - ${NO_SSL:-traefik.http.routers.worldchain-mainnet-op-reth-pruned-trace.rule=Host(`$DOMAIN`) && (Path(`/worldchain-mainnet-op-reth-pruned`) || Path(`/worldchain-mainnet-op-reth-pruned/`))} + - ${NO_SSL:+traefik.http.routers.worldchain-mainnet-op-reth-pruned-trace.rule=Path(`/worldchain-mainnet-op-reth-pruned`) || Path(`/worldchain-mainnet-op-reth-pruned/`)} + - traefik.http.routers.worldchain-mainnet-op-reth-pruned-trace.middlewares=worldchain-mainnet-op-reth-pruned-trace-stripprefix, ipallowlist shm_size: 2gb - base-mainnet-op-reth-minimal-node: - image: ${BASE_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${BASE_MAINNET_KONA_VERSION:-v1.6.1} + worldchain-mainnet-op-reth-pruned-node: + image: ${WORLDCHAIN_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${WORLDCHAIN_MAINNET_KONA_VERSION:-v1.6.1} ports: - - 16240:16240 - - 16240:16240/udp + - 15216:15216 + - 15216:15216/udp environment: - KONA_METRICS_ADDR=0.0.0.0 - KONA_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST} - - KONA_NODE_L1_ETH_RPC=${BASE_MAINNET_L1_EXECUTION_RPC:-${ETHEREUM_MAINNET_EXECUTION_RPC}} + - KONA_NODE_L1_ETH_RPC=${WORLDCHAIN_MAINNET_L1_EXECUTION_RPC:-${ETHEREUM_MAINNET_EXECUTION_RPC}} - KONA_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false} - - KONA_NODE_L2_CHAIN_ID=8453 + - KONA_NODE_L2_CHAIN_ID=480 - KONA_NODE_L2_ENGINE_AUTH=/jwtsecret - - KONA_NODE_L2_ENGINE_RPC=http://base-mainnet-op-reth-minimal:8551 + - KONA_NODE_L2_ENGINE_RPC=http://worldchain-mainnet-op-reth-pruned:8551 - KONA_NODE_L2_ENGINE_TIMEOUT=120000 - KONA_NODE_L2_TRUST_RPC=true - KONA_NODE_METRICS_PORT=7300 - KONA_NODE_MODE=Validator - KONA_NODE_P2P_ADVERTISE_IP=${IP} - KONA_NODE_P2P_LISTEN_IP=0.0.0.0 - - KONA_NODE_P2P_LISTEN_TCP_PORT=16240 - - KONA_NODE_P2P_LISTEN_UDP_PORT=16240 + - KONA_NODE_P2P_LISTEN_TCP_PORT=15216 + - KONA_NODE_P2P_LISTEN_UDP_PORT=15216 - KONA_NODE_RPC_ADDR=0.0.0.0 - KONA_NODE_RPC_PORT=9545 entrypoint: [kona-node, node] restart: unless-stopped depends_on: - base-mainnet-op-reth-minimal: + worldchain-mainnet-op-reth-pruned: condition: service_started restart: true networks: @@ -145,16 +146,16 @@ services: - prometheus-scrape.port=7300 - prometheus-scrape.path=/metrics - traefik.enable=true - - traefik.http.middlewares.base-mainnet-op-reth-minimal-trace-node-stripprefix.stripprefix.prefixes=/base-mainnet-op-reth-minimal/node - - traefik.http.services.base-mainnet-op-reth-minimal-trace-node.loadbalancer.server.port=9545 - - ${NO_SSL:-traefik.http.routers.base-mainnet-op-reth-minimal-trace-node.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.base-mainnet-op-reth-minimal-trace-node.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.base-mainnet-op-reth-minimal-trace-node.rule=Host(`$DOMAIN`) && PathPrefix(`/base-mainnet-op-reth-minimal/node`)} - - ${NO_SSL:+traefik.http.routers.base-mainnet-op-reth-minimal-trace-node.rule=PathPrefix(`/base-mainnet-op-reth-minimal/node`)} - - traefik.http.routers.base-mainnet-op-reth-minimal-trace-node.middlewares=base-mainnet-op-reth-minimal-trace-node-stripprefix, ipallowlist + - traefik.http.middlewares.worldchain-mainnet-op-reth-pruned-trace-node-stripprefix.stripprefix.prefixes=/worldchain-mainnet-op-reth-pruned/node + - traefik.http.services.worldchain-mainnet-op-reth-pruned-trace-node.loadbalancer.server.port=9545 + - ${NO_SSL:-traefik.http.routers.worldchain-mainnet-op-reth-pruned-trace-node.entrypoints=websecure} + - ${NO_SSL:-traefik.http.routers.worldchain-mainnet-op-reth-pruned-trace-node.tls.certresolver=myresolver} + - ${NO_SSL:-traefik.http.routers.worldchain-mainnet-op-reth-pruned-trace-node.rule=Host(`$DOMAIN`) && PathPrefix(`/worldchain-mainnet-op-reth-pruned/node`)} + - ${NO_SSL:+traefik.http.routers.worldchain-mainnet-op-reth-pruned-trace-node.rule=PathPrefix(`/worldchain-mainnet-op-reth-pruned/node`)} + - traefik.http.routers.worldchain-mainnet-op-reth-pruned-trace-node.middlewares=worldchain-mainnet-op-reth-pruned-trace-node-stripprefix, ipallowlist volumes: - base-mainnet-op-reth-minimal-trace: + worldchain-mainnet-op-reth-pruned-trace: x-upstreams: - id: $${ID} @@ -168,7 +169,7 @@ x-upstreams: frameSize: 20Mb msgSize: 50Mb url: $${WS_URL} - chain: base + chain: worldchain method-groups: enabled: - debug diff --git a/op/reth/xlayer-mainnet-op-reth-archive-trace--kona.yml b/op/reth/xlayer-mainnet-op-reth-archive-trace--kona.yml deleted file mode 100644 index c2e86595..00000000 --- a/op/reth/xlayer-mainnet-op-reth-archive-trace--kona.yml +++ /dev/null @@ -1,210 +0,0 @@ ---- -x-logging-defaults: &logging-defaults - driver: json-file - options: - max-size: "10m" - max-file: "3" -# X Layer mainnet/testnet require the official OKX reth snapshot — do NOT sync from scratch. -# Generic op-reth can't read the X Layer DB format (xlayerdb), so this uses xlayer/op-reth -# (pinned in context.yml) with the image's built-in xlayer- chain spec and the OKX -# archive reth.toml. --rpc.legacy-url (the public X Layer RPC) gap-fills history after the -# snapshot loads. node_sync=true already gives op-node consensus-layer + reth --disable-discovery. - -# 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:op/reth/xlayer-mainnet-op-reth-archive-trace--kona.yml -# -# docker compose up -d -# -# curl -X POST https://${IP}.traefik.me/xlayer-mainnet-op-reth \ -# -H "Content-Type: application/json" \ -# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' - -services: - xlayer-mainnet-op-reth-init: - image: alpine:3.21 - user: root - entrypoint: [/bin/sh, -c] - command: - - | - apk add --no-cache curl wget - mkdir -p /config - [ -f /config/genesis.json ] || wget -qO- "https://okg-pub-hk.oss-cn-hongkong.aliyuncs.com/cdn/chain/xlayer/snapshot/merged.genesis.json.mainnet.tar.gz" | tar -xzf - -O --wildcards "*.json" > /config/genesis.json - restart: no - networks: - - chains - volumes: - - ./op/xlayer/mainnet:/config - logging: *logging-defaults - - xlayer-mainnet-op-reth: - image: ${XLAYER_RETH_IMAGE:-xlayer/xlayer-reth}:${XLAYER_MAINNET_RETH_VERSION:-v0.0.6.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) - memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX) - user: root - expose: - - 8545 - - 9001 - - 8551 - environment: - - GENESIS_URL=https://okg-pub-hk.oss-cn-hongkong.aliyuncs.com/cdn/chain/xlayer/snapshot/merged.genesis.json.mainnet.tar.gz - entrypoint: [op-reth, node] - command: - - --chain=xlayer-mainnet - - --config=/config/reth/reth.toml - - --datadir=/root/.local/share/reth - - --disable-discovery - - --engine.cross-block-cache-size=${XLAYER_MAINNET_RETH_STATE_CACHE:-4096} - - --max-inbound-peers=50 - - --max-outbound-peers=50 - - --metrics=0.0.0.0:9001 - - --rollup.sequencer-http=https://rpc.xlayer.tech - - --rpc-cache.max-blocks=10000 - - --rpc-cache.max-concurrent-db-requests=2048 - - --rpc.gascap=600000000 - - --rpc.legacy-url=https://rpc.xlayer.tech - - --rpc.max-blocks-per-filter=0 - - --rpc.max-connections=50000 - - --rpc.max-logs-per-response=0 - - --rpc.max-trace-filter-blocks=10000 - - --http - - --http.addr=0.0.0.0 - - --http.api=admin,debug,eth,net,trace,txpool,web3,rpc,reth,ots,flashbots,mev - - --http.corsdomain=* - - --http.port=8545 - - --ws - - --ws.addr=0.0.0.0 - - --ws.api=admin,debug,eth,net,trace,txpool,web3,rpc,reth,ots,flashbots,mev - - --ws.origins=* - - --ws.port=8545 - - --authrpc.addr=0.0.0.0 - - --authrpc.jwtsecret=/jwtsecret - restart: unless-stopped - stop_grace_period: 5m - depends_on: - xlayer-mainnet-op-reth-init: - condition: service_completed_successfully - networks: - - chains - volumes: - - ${XLAYER_MAINNET_OP_RETH_ARCHIVE_TRACE_DATA:-xlayer-mainnet-op-reth-archive-trace}:/root/.local/share/reth - - ./op/xlayer/mainnet:/config - - .jwtsecret:/jwtsecret:ro - - /slowdisk:/slowdisk - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=9001 - - prometheus-scrape.path=/metrics - - traefik.enable=true - - traefik.http.middlewares.xlayer-mainnet-op-reth-archive-trace-stripprefix.stripprefix.prefixes=/xlayer-mainnet-op-reth - - traefik.http.services.xlayer-mainnet-op-reth-archive-trace.loadbalancer.server.port=8545 - - ${NO_SSL:-traefik.http.routers.xlayer-mainnet-op-reth-archive-trace.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.xlayer-mainnet-op-reth-archive-trace.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.xlayer-mainnet-op-reth-archive-trace.rule=Host(`$DOMAIN`) && (Path(`/xlayer-mainnet-op-reth`) || Path(`/xlayer-mainnet-op-reth/`))} - - ${NO_SSL:+traefik.http.routers.xlayer-mainnet-op-reth-archive-trace.rule=Path(`/xlayer-mainnet-op-reth`) || Path(`/xlayer-mainnet-op-reth/`)} - - traefik.http.routers.xlayer-mainnet-op-reth-archive-trace.middlewares=xlayer-mainnet-op-reth-archive-trace-stripprefix, ipallowlist - shm_size: 2gb - - xlayer-mainnet-op-reth-node: - image: ${XLAYER_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${XLAYER_MAINNET_KONA_VERSION:-v1.6.1} - ports: - - 18556:18556 - - 18556:18556/udp - environment: - - GENESIS_URL=https://okg-pub-hk.oss-cn-hongkong.aliyuncs.com/cdn/chain/xlayer/snapshot/merged.genesis.json.mainnet.tar.gz - - KONA_METRICS_ADDR=0.0.0.0 - - KONA_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST} - - KONA_NODE_L1_ETH_RPC=${XLAYER_MAINNET_L1_EXECUTION_RPC:-${ETHEREUM_MAINNET_EXECUTION_RPC}} - - KONA_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false} - - KONA_NODE_L2_CHAIN_ID=196 - - KONA_NODE_L2_ENGINE_AUTH=/jwtsecret - - KONA_NODE_L2_ENGINE_RPC=http://xlayer-mainnet-op-reth:8551 - - KONA_NODE_L2_ENGINE_TIMEOUT=120000 - - KONA_NODE_L2_TRUST_RPC=true - - KONA_NODE_METRICS_PORT=7300 - - KONA_NODE_MODE=Validator - - KONA_NODE_P2P_ADVERTISE_IP=${IP} - - KONA_NODE_P2P_BOOTNODES=enode://c67d7f63c5483ab8311123d2997bfe6a8aac2b117a40167cf71682f8a3e37d3b86547c786559355c4c05ae0b1a7e7a1b8fde55050b183f96728d62e276467ce1@8.210.177.150:9223,enode://28e3e305b266e01226a7cc979ab692b22507784095157453ee0e34607bb3beac9a5b00f3e3d7d3ac36164612ca25108e6b79f75e3a9ecb54a0b3e7eb3e097d37@8.210.15.172:9223,enode://b5aa43622aad25c619650a0b7f8bb030161dfbfd5664233f92d841a33b404cea3ffffdc5bc8d6667c7dc212242a52f0702825c1e51612047f75c847ab96ef7a6@8.210.69.97:9223 - - KONA_NODE_P2P_LISTEN_IP=0.0.0.0 - - KONA_NODE_P2P_LISTEN_TCP_PORT=18556 - - KONA_NODE_P2P_LISTEN_UDP_PORT=18556 - - KONA_NODE_RPC_ADDR=0.0.0.0 - - KONA_NODE_RPC_PORT=9545 - entrypoint: [kona-node, node] - restart: unless-stopped - depends_on: - xlayer-mainnet-op-reth: - condition: service_started - restart: true - networks: - - chains - volumes: - - ./op/xlayer/mainnet:/config - - .jwtsecret:/jwtsecret:ro - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=7300 - - prometheus-scrape.path=/metrics - - traefik.enable=true - - traefik.http.middlewares.xlayer-mainnet-op-reth-archive-trace-node-stripprefix.stripprefix.prefixes=/xlayer-mainnet-op-reth/node - - traefik.http.services.xlayer-mainnet-op-reth-archive-trace-node.loadbalancer.server.port=9545 - - ${NO_SSL:-traefik.http.routers.xlayer-mainnet-op-reth-archive-trace-node.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.xlayer-mainnet-op-reth-archive-trace-node.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.xlayer-mainnet-op-reth-archive-trace-node.rule=Host(`$DOMAIN`) && PathPrefix(`/xlayer-mainnet-op-reth/node`)} - - ${NO_SSL:+traefik.http.routers.xlayer-mainnet-op-reth-archive-trace-node.rule=PathPrefix(`/xlayer-mainnet-op-reth/node`)} - - traefik.http.routers.xlayer-mainnet-op-reth-archive-trace-node.middlewares=xlayer-mainnet-op-reth-archive-trace-node-stripprefix, ipallowlist - -volumes: - xlayer-mainnet-op-reth-archive-trace: - -x-upstreams: - - id: $${ID} - labels: - provider: $${PROVIDER} - connection: - generic: - rpc: - url: $${RPC_URL} - ws: - frameSize: 20Mb - msgSize: 50Mb - url: $${WS_URL} - chain: xlayer - method-groups: - enabled: - - debug - - filter - - trace - methods: - disabled: - - name: eth_maxPriorityFeePerGas - enabled: - - name: txpool_content # TODO: should be disabled for rollup nodes -... \ No newline at end of file diff --git a/op/reth/xlayer-testnet-op-reth-archive-trace--kona.yml b/op/reth/xlayer-testnet-op-reth-archive-trace--kona.yml deleted file mode 100644 index 2fe5b934..00000000 --- a/op/reth/xlayer-testnet-op-reth-archive-trace--kona.yml +++ /dev/null @@ -1,211 +0,0 @@ ---- -x-logging-defaults: &logging-defaults - driver: json-file - options: - max-size: "10m" - max-file: "3" -# X Layer mainnet/testnet require the official OKX reth snapshot — do NOT sync from scratch. -# Generic op-reth can't read the X Layer DB format (xlayerdb), so this uses xlayer/op-reth -# (pinned in context.yml) with the image's built-in xlayer- chain spec and the OKX -# archive reth.toml. --rpc.legacy-url (the public X Layer RPC) gap-fills history after the -# snapshot loads. node_sync=true already gives op-node consensus-layer + reth --disable-discovery. - -# 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:op/reth/xlayer-testnet-op-reth-archive-trace--kona.yml -# -# docker compose up -d -# -# curl -X POST https://${IP}.traefik.me/xlayer-testnet-op-reth \ -# -H "Content-Type: application/json" \ -# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' - -services: - xlayer-testnet-op-reth-init: - image: alpine:3.21 - user: root - entrypoint: [/bin/sh, -c] - command: - - | - apk add --no-cache curl wget - mkdir -p /config - [ -f /config/genesis.json ] || wget -qO- "https://okg-pub-hk.oss-cn-hongkong.aliyuncs.com/cdn/chain/xlayer/snapshot/merged.genesis.json.tar.gz" | tar -xzf - -O --wildcards "*.json" > /config/genesis.json - restart: no - networks: - - chains - volumes: - - ./op/xlayer/testnet:/config - logging: *logging-defaults - - xlayer-testnet-op-reth: - image: ${XLAYER_RETH_IMAGE:-xlayer/xlayer-reth}:${XLAYER_TESTNET_RETH_VERSION:-v0.0.6.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) - memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX) - user: root - expose: - - 8545 - - 9001 - - 8551 - environment: - - GENESIS_URL=https://okg-pub-hk.oss-cn-hongkong.aliyuncs.com/cdn/chain/xlayer/snapshot/merged.genesis.json.tar.gz - entrypoint: [op-reth, node] - command: - - --chain=xlayer-testnet - - --config=/config/reth/reth.toml - - --datadir=/root/.local/share/reth - - --disable-discovery - - --engine.cross-block-cache-size=${XLAYER_TESTNET_RETH_STATE_CACHE:-4096} - - --max-inbound-peers=50 - - --max-outbound-peers=50 - - --metrics=0.0.0.0:9001 - - --rollup.sequencer-http=https://testrpc.xlayer.tech - - --rpc-cache.max-blocks=10000 - - --rpc-cache.max-concurrent-db-requests=2048 - - --rpc.gascap=600000000 - - --rpc.legacy-url=https://testrpc.xlayer.tech - - --rpc.max-blocks-per-filter=0 - - --rpc.max-connections=50000 - - --rpc.max-logs-per-response=0 - - --rpc.max-trace-filter-blocks=10000 - - --http - - --http.addr=0.0.0.0 - - --http.api=admin,debug,eth,net,trace,txpool,web3,rpc,reth,ots,flashbots,mev - - --http.corsdomain=* - - --http.port=8545 - - --ws - - --ws.addr=0.0.0.0 - - --ws.api=admin,debug,eth,net,trace,txpool,web3,rpc,reth,ots,flashbots,mev - - --ws.origins=* - - --ws.port=8545 - - --authrpc.addr=0.0.0.0 - - --authrpc.jwtsecret=/jwtsecret - restart: unless-stopped - stop_grace_period: 5m - depends_on: - xlayer-testnet-op-reth-init: - condition: service_completed_successfully - networks: - - chains - volumes: - - ${XLAYER_TESTNET_OP_RETH_ARCHIVE_TRACE_DATA:-xlayer-testnet-op-reth-archive-trace}:/root/.local/share/reth - - ./op/xlayer/testnet:/config - - .jwtsecret:/jwtsecret:ro - - /slowdisk:/slowdisk - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=9001 - - prometheus-scrape.path=/metrics - - traefik.enable=true - - traefik.http.middlewares.xlayer-testnet-op-reth-archive-trace-stripprefix.stripprefix.prefixes=/xlayer-testnet-op-reth - - traefik.http.services.xlayer-testnet-op-reth-archive-trace.loadbalancer.server.port=8545 - - ${NO_SSL:-traefik.http.routers.xlayer-testnet-op-reth-archive-trace.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.xlayer-testnet-op-reth-archive-trace.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.xlayer-testnet-op-reth-archive-trace.rule=Host(`$DOMAIN`) && (Path(`/xlayer-testnet-op-reth`) || Path(`/xlayer-testnet-op-reth/`))} - - ${NO_SSL:+traefik.http.routers.xlayer-testnet-op-reth-archive-trace.rule=Path(`/xlayer-testnet-op-reth`) || Path(`/xlayer-testnet-op-reth/`)} - - traefik.http.routers.xlayer-testnet-op-reth-archive-trace.middlewares=xlayer-testnet-op-reth-archive-trace-stripprefix, ipallowlist - shm_size: 2gb - - xlayer-testnet-op-reth-node: - image: ${XLAYER_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${XLAYER_TESTNET_KONA_VERSION:-v1.6.1} - ports: - - 18466:18466 - - 18466:18466/udp - environment: - - GENESIS_URL=https://okg-pub-hk.oss-cn-hongkong.aliyuncs.com/cdn/chain/xlayer/snapshot/merged.genesis.json.tar.gz - - KONA_METRICS_ADDR=0.0.0.0 - - KONA_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST} - - KONA_NODE_L1_ETH_RPC=${XLAYER_TESTNET_L1_EXECUTION_RPC:-${ETHEREUM_SEPOLIA_EXECUTION_RPC}} - - KONA_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false} - - KONA_NODE_L2_CHAIN_ID=1952 - - KONA_NODE_L2_ENGINE_AUTH=/jwtsecret - - KONA_NODE_L2_ENGINE_RPC=http://xlayer-testnet-op-reth:8551 - - KONA_NODE_L2_ENGINE_TIMEOUT=120000 - - KONA_NODE_L2_TRUST_RPC=true - - KONA_NODE_METRICS_PORT=7300 - - KONA_NODE_MODE=Validator - - KONA_NODE_OVERRIDE_PECTRA_BLOB_SCHEDULE=1742486400 - - KONA_NODE_P2P_ADVERTISE_IP=${IP} - - KONA_NODE_P2P_BOOTNODES=enode://eaae9fe2fc758add65fe4cfd42918e898e16ab23294db88f0dcdbcab2773e75bbea6bfdaa42b3ed502dfbee1335c242c602078c4aa009264e4705caa20d3dca7@8.210.181.50:9223 - - KONA_NODE_P2P_LISTEN_IP=0.0.0.0 - - KONA_NODE_P2P_LISTEN_TCP_PORT=18466 - - KONA_NODE_P2P_LISTEN_UDP_PORT=18466 - - KONA_NODE_RPC_ADDR=0.0.0.0 - - KONA_NODE_RPC_PORT=9545 - entrypoint: [kona-node, node] - restart: unless-stopped - depends_on: - xlayer-testnet-op-reth: - condition: service_started - restart: true - networks: - - chains - volumes: - - ./op/xlayer/testnet:/config - - .jwtsecret:/jwtsecret:ro - logging: *logging-defaults - labels: - - prometheus-scrape.enabled=true - - prometheus-scrape.port=7300 - - prometheus-scrape.path=/metrics - - traefik.enable=true - - traefik.http.middlewares.xlayer-testnet-op-reth-archive-trace-node-stripprefix.stripprefix.prefixes=/xlayer-testnet-op-reth/node - - traefik.http.services.xlayer-testnet-op-reth-archive-trace-node.loadbalancer.server.port=9545 - - ${NO_SSL:-traefik.http.routers.xlayer-testnet-op-reth-archive-trace-node.entrypoints=websecure} - - ${NO_SSL:-traefik.http.routers.xlayer-testnet-op-reth-archive-trace-node.tls.certresolver=myresolver} - - ${NO_SSL:-traefik.http.routers.xlayer-testnet-op-reth-archive-trace-node.rule=Host(`$DOMAIN`) && PathPrefix(`/xlayer-testnet-op-reth/node`)} - - ${NO_SSL:+traefik.http.routers.xlayer-testnet-op-reth-archive-trace-node.rule=PathPrefix(`/xlayer-testnet-op-reth/node`)} - - traefik.http.routers.xlayer-testnet-op-reth-archive-trace-node.middlewares=xlayer-testnet-op-reth-archive-trace-node-stripprefix, ipallowlist - -volumes: - xlayer-testnet-op-reth-archive-trace: - -x-upstreams: - - id: $${ID} - labels: - provider: $${PROVIDER} - connection: - generic: - rpc: - url: $${RPC_URL} - ws: - frameSize: 20Mb - msgSize: 50Mb - url: $${WS_URL} - chain: xlayer-testnet - method-groups: - enabled: - - debug - - filter - - trace - methods: - disabled: - - name: eth_maxPriorityFeePerGas - enabled: - - name: txpool_content # TODO: should be disabled for rollup nodes -... \ No newline at end of file