From 93c074c216b07b5dd3aaeec9f11104bd3c6d2dfa Mon Sep 17 00:00:00 2001 From: squidbear <379651+czarly@users.noreply.github.com> Date: Fri, 28 Mar 2025 07:02:23 +0100 Subject: [PATCH] moar --- .../berachain-bepolia-reth-archive-trace.yml | 77 +++++++++++++++++ .../berachain-bepolia-reth-pruned-trace.yml | 77 +++++++++++++++++ .../berachain-mainnet-reth-archive-trace.yml | 77 +++++++++++++++++ .../berachain-mainnet-reth-pruned-trace.yml | 77 +++++++++++++++++ berachain/scripts/init.sh | 82 +++++++++++++++++++ goat-testnet3.yml | 1 + ...goat-mainnet-geth-archive-leveldb-hash.yml | 73 +++++++++++++++++ .../goat-mainnet-geth-pruned-pebble-path.yml | 73 +++++++++++++++++ ...oat-testnet3-geth-archive-leveldb-hash.yml | 73 +++++++++++++++++ .../goat-testnet3-geth-pruned-pebble-path.yml | 73 +++++++++++++++++ 10 files changed, 683 insertions(+) create mode 100644 berachain/reth/berachain-bepolia-reth-archive-trace.yml create mode 100644 berachain/reth/berachain-bepolia-reth-pruned-trace.yml create mode 100644 berachain/reth/berachain-mainnet-reth-archive-trace.yml create mode 100644 berachain/reth/berachain-mainnet-reth-pruned-trace.yml create mode 100644 berachain/scripts/init.sh create mode 120000 goat-testnet3.yml create mode 100644 goat/geth/goat-mainnet-geth-archive-leveldb-hash.yml create mode 100644 goat/geth/goat-mainnet-geth-pruned-pebble-path.yml create mode 100644 goat/geth/goat-testnet3-geth-archive-leveldb-hash.yml create mode 100644 goat/geth/goat-testnet3-geth-pruned-pebble-path.yml diff --git a/berachain/reth/berachain-bepolia-reth-archive-trace.yml b/berachain/reth/berachain-bepolia-reth-archive-trace.yml new file mode 100644 index 00000000..ece11d43 --- /dev/null +++ b/berachain/reth/berachain-bepolia-reth-archive-trace.yml @@ -0,0 +1,77 @@ +services: + berachain-bepolia-archive: + image: ghcr.io/paradigmxyz/reth:${RETH_VERSION:-v1.3.4} + user: root + volumes: + - "berachain-bepolia-reth-archive-trace:/root/.local/share/reth" + - "/slowdisk:/slowdisk" + - ".jwtsecret:/jwtsecret" + - "./berachain/bepolia/config:/config" + expose: + - 8545 + - 9001 + ports: + - "10347:10347" + - "10347:10347/udp" + restart: unless-stopped + entrypoint: ["reth" "node"] + command: + - --chain bepolia + - --chain /config/eth-genesis.json + - --metrics 0.0.0.0:9001 + - --http + - --http.addr 0.0.0.0 + - --http.port 8545 + - --ws + - --ws.addr 0.0.0.0 + - --ws.port 8545 + - --ws.origins '*' + - --port 10347 + - --discovery.port 10347 + - --authrpc.addr 0.0.0.0 + - --authrpc.jwtsecret /jwtsecret + - --http.api "debug,eth,net,trace,txpool,web3,rpc,reth,admin" + - --ws.api "debug,eth,net,trace,txpool,web3,rpc,reth,admin" + - --http.corsdomain '*' + - --rpc.max-logs-per-response 1100000 + - --rpc.gascap 600000000 + --bootnodes=enode://0c5a4a3c0e81fce2974e4d317d88df783731183d534325e32e0fdf8f4b119d7889fa254d3a38890606ec300d744e2aa9c87099a4a032f5c94efe53f3fcdfecfe@34.64.176.79:30303,enode://5b037f66099d5ded86eb7e1619f6d06ceb15609e8cc345ced22a4772b06178004e1490a3cd32fd1222789de4c6e4021c2d648a3d750f6d5323e64b771bbd8de7@34.87.142.180:30303,enode://bb7e44178543431feac8f0ee3827056b7b84d8235b802a8bdbbcd4939dab7f7dd2579ff577a38b002bb0139792af67abd2dd5c9f4f85b8da6e914fa76dca82bc@35.198.150.35:30303,enode://d071fa740e063ce1bb9cdc2b7937baeff6dc4000f91588d730a731c38a6ff0d4015814812c160fab8695e46f74b9b618735368ea2f16db4d785f16d29b3fb7b0@35.203.2.210:30303,enode://0c5a4a3c0e81fce2974e4d317d88df783731183d534325e32e0fdf8f4b119d7889fa254d3a38890606ec300d744e2aa9c87099a4a032f5c94efe53f3fcdfecfe@34.64.176.79:30303 + + stop_grace_period: 1m + labels: + - "traefik.enable=true" + - "traefik.http.middlewares.berachain-bepolia-reth-archive-trace-stripprefix.stripprefix.prefixes=/berachain-bepolia-archive" + - "traefik.http.services.berachain-bepolia-reth-archive-trace.loadbalancer.server.port=8545" + - "traefik.http.routers.berachain-bepolia-reth-archive-trace.entrypoints=websecure" + - "traefik.http.routers.berachain-bepolia-reth-archive-trace.tls.certresolver=myresolver" + - "traefik.http.routers.berachain-bepolia-reth-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/berachain-bepolia-archive`)" + - "traefik.http.routers.berachain-bepolia-reth-archive-trace.middlewares=berachain-bepolia-reth-archive-trace-stripprefix, ipwhitelist" + networks: + - chains + + berachain-bepolia-node: + image: ghcr.io/berachain/beacon-kit:v1.1.3 + expose: + - 26657 #rpc + ports: + - "15347:15347" + - "15347:15347/udp" + environment: + - "MONIKER=d${DOMAIN:-local}" + - "P2P_PORT=15347" + - "CHAINNAME=bepolia" + - "CHAINID=80069" + entrypoint: /init.sh + networks: + - chains + volumes: + - "./berachain/scripts/init.sh:/init.sh" + - "berachain-bepolia-reth-archive-trace_node:/root/.beacond/data" + - "./berachain/bepolia/config:/root/.beacond/config" + - ".jwtsecret:/jwtsecret" + restart: unless-stopped + stop_grace_period: 1m + +volumes: + berachain-bepolia-reth-archive-trace: + berachain-bepolia-reth-archive-trace_node: \ No newline at end of file diff --git a/berachain/reth/berachain-bepolia-reth-pruned-trace.yml b/berachain/reth/berachain-bepolia-reth-pruned-trace.yml new file mode 100644 index 00000000..6acc2fbb --- /dev/null +++ b/berachain/reth/berachain-bepolia-reth-pruned-trace.yml @@ -0,0 +1,77 @@ +services: + berachain-bepolia: + image: ghcr.io/paradigmxyz/reth:${RETH_VERSION:-v1.3.4} + user: root + volumes: + - "berachain-bepolia-reth-pruned-trace:/root/.local/share/reth" + - "/slowdisk:/slowdisk" + - ".jwtsecret:/jwtsecret" + - "./berachain/bepolia/config:/config" + expose: + - 8545 + - 9001 + ports: + - "10274:10274" + - "10274:10274/udp" + restart: unless-stopped + entrypoint: ["reth" "node"] + command: + - --chain bepolia + - --chain /config/eth-genesis.json + - --metrics 0.0.0.0:9001 + - --http + - --http.addr 0.0.0.0 + - --http.port 8545 + - --ws + - --ws.addr 0.0.0.0 + - --ws.port 8545 + - --ws.origins '*' + - --port 10274 + - --discovery.port 10274 + - --authrpc.addr 0.0.0.0 + - --authrpc.jwtsecret /jwtsecret + - --http.api "debug,eth,net,trace,txpool,web3,rpc,reth,admin" + - --ws.api "debug,eth,net,trace,txpool,web3,rpc,reth,admin" + - --http.corsdomain '*' + - --rpc.max-logs-per-response 1100000 + - --rpc.gascap 600000000 + --bootnodes=enode://0c5a4a3c0e81fce2974e4d317d88df783731183d534325e32e0fdf8f4b119d7889fa254d3a38890606ec300d744e2aa9c87099a4a032f5c94efe53f3fcdfecfe@34.64.176.79:30303,enode://5b037f66099d5ded86eb7e1619f6d06ceb15609e8cc345ced22a4772b06178004e1490a3cd32fd1222789de4c6e4021c2d648a3d750f6d5323e64b771bbd8de7@34.87.142.180:30303,enode://bb7e44178543431feac8f0ee3827056b7b84d8235b802a8bdbbcd4939dab7f7dd2579ff577a38b002bb0139792af67abd2dd5c9f4f85b8da6e914fa76dca82bc@35.198.150.35:30303,enode://d071fa740e063ce1bb9cdc2b7937baeff6dc4000f91588d730a731c38a6ff0d4015814812c160fab8695e46f74b9b618735368ea2f16db4d785f16d29b3fb7b0@35.203.2.210:30303,enode://0c5a4a3c0e81fce2974e4d317d88df783731183d534325e32e0fdf8f4b119d7889fa254d3a38890606ec300d744e2aa9c87099a4a032f5c94efe53f3fcdfecfe@34.64.176.79:30303 + - --full + stop_grace_period: 1m + labels: + - "traefik.enable=true" + - "traefik.http.middlewares.berachain-bepolia-reth-pruned-trace-stripprefix.stripprefix.prefixes=/berachain-bepolia" + - "traefik.http.services.berachain-bepolia-reth-pruned-trace.loadbalancer.server.port=8545" + - "traefik.http.routers.berachain-bepolia-reth-pruned-trace.entrypoints=websecure" + - "traefik.http.routers.berachain-bepolia-reth-pruned-trace.tls.certresolver=myresolver" + - "traefik.http.routers.berachain-bepolia-reth-pruned-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/berachain-bepolia`)" + - "traefik.http.routers.berachain-bepolia-reth-pruned-trace.middlewares=berachain-bepolia-reth-pruned-trace-stripprefix, ipwhitelist" + networks: + - chains + + berachain-bepolia-node: + image: ghcr.io/berachain/beacon-kit:v1.1.3 + expose: + - 26657 #rpc + ports: + - "15274:15274" + - "15274:15274/udp" + environment: + - "MONIKER=d${DOMAIN:-local}" + - "P2P_PORT=15274" + - "CHAINNAME=bepolia" + - "CHAINID=80069" + entrypoint: /init.sh + networks: + - chains + volumes: + - "./berachain/scripts/init.sh:/init.sh" + - "berachain-bepolia-reth-pruned-trace_node:/root/.beacond/data" + - "./berachain/bepolia/config:/root/.beacond/config" + - ".jwtsecret:/jwtsecret" + restart: unless-stopped + stop_grace_period: 1m + +volumes: + berachain-bepolia-reth-pruned-trace: + berachain-bepolia-reth-pruned-trace_node: \ No newline at end of file diff --git a/berachain/reth/berachain-mainnet-reth-archive-trace.yml b/berachain/reth/berachain-mainnet-reth-archive-trace.yml new file mode 100644 index 00000000..8319c090 --- /dev/null +++ b/berachain/reth/berachain-mainnet-reth-archive-trace.yml @@ -0,0 +1,77 @@ +services: + berachain-mainnet-archive: + image: ghcr.io/paradigmxyz/reth:${RETH_VERSION:-v1.3.4} + user: root + volumes: + - "berachain-mainnet-reth-archive-trace:/root/.local/share/reth" + - "/slowdisk:/slowdisk" + - ".jwtsecret:/jwtsecret" + - "./berachain/mainnet/config:/config" + expose: + - 8545 + - 9001 + ports: + - "10881:10881" + - "10881:10881/udp" + restart: unless-stopped + entrypoint: ["reth" "node"] + command: + - --chain mainnet + - --chain /config/eth-genesis.json + - --metrics 0.0.0.0:9001 + - --http + - --http.addr 0.0.0.0 + - --http.port 8545 + - --ws + - --ws.addr 0.0.0.0 + - --ws.port 8545 + - --ws.origins '*' + - --port 10881 + - --discovery.port 10881 + - --authrpc.addr 0.0.0.0 + - --authrpc.jwtsecret /jwtsecret + - --http.api "debug,eth,net,trace,txpool,web3,rpc,reth,admin" + - --ws.api "debug,eth,net,trace,txpool,web3,rpc,reth,admin" + - --http.corsdomain '*' + - --rpc.max-logs-per-response 1100000 + - --rpc.gascap 600000000 + --bootnodes=enode://0c5a4a3c0e81fce2974e4d317d88df783731183d534325e32e0fdf8f4b119d7889fa254d3a38890606ec300d744e2aa9c87099a4a032f5c94efe53f3fcdfecfe@34.22.104.177:30303,enode://b6a3137d3a36ef37c4d31843775a9dc293f41bcbde33b6309c80b1771b6634827cd188285136a57474427bd8845adc2f6fe2e0b106bd58d14795b08910b9c326@34.64.247.85:30303,enode://0b6633300614bc2b9749aee0cace7a091ec5348762aee7b1d195f7616d03a9409019d9bef336624bab72e0d069cd4cf0b0de6fbbf53f04f6b6e4c5b39c6bdca6@34.22.73.21:30303,enode://552b001abebb5805fcd734ad367cd05d9078d18f23ec598d7165460fadcfc51116ad95c418f7ea9a141aa8cbc496c8bea3322b67a5de0d3380f11aab1a797513@34.64.37.55:30303,enode://5b037f66099d5ded86eb7e1619f6d06ceb15609e8cc345ced22a4772b06178004e1490a3cd32fd1222789de4c6e4021c2d648a3d750f6d5323e64b771bbd8de7@35.247.182.34:30303,enode://846db253c53753d3ea1197aec296306dc84c25f3afdf142b65cb0fe0f984de55072daa3bbf05a9aea046a38a2292403137b6eafefd5646fcf62120b74e3b898d@34.87.9.231:30303,enode://64b7f6ee9bcd942ad4949c70f2077627f078a057dfd930e6e904e12643d8952f5ae87c91e24559765393f244a72c9d5c011d7d5176e59191d38f315db85a20f5@34.126.78.49:30303,enode://cf4d19bfb8ec507427ec882bac0bac85a0c8c9ddaa0ec91b773bb614e5e09d107cd9fbe323b96f62f31c493f8f42cc5495c18b87c08560c5dea1dfd25256dcf6@35.240.200.36:30303,enode://bb7e44178543431feac8f0ee3827056b7b84d8235b802a8bdbbcd4939dab7f7dd2579ff577a38b002bb0139792af67abd2dd5c9f4f85b8da6e914fa76dca82bc@34.40.14.50:30303,enode://8fef1f5df45e7b31be00a21e1da5665d5a5f5bf4c379086b843f03eade941bdd157f08c95b31880c492577edb9a9b185df7191eaebf54ab06d5bd683b289f3af@35.246.168.217:30303,enode://ce9c87cfe089f6811d26c96913fa3ec10b938d9017fc6246684c74a33679ee34ceca9447180fb509e37bf2b706c2877a82085d34bfd83b5b520ee1288b0fc32f@34.40.28.159:30303,enode://713657eb6a53feadcbc47e634ad557326a51eb6818a3e19a00a8111492f50a666ccbf2f5d334d247ecf941e68d242ef5c3b812b63c44d381ef11f79c2cdb45c7@35.234.82.236:30303,enode://d071fa740e063ce1bb9cdc2b7937baeff6dc4000f91588d730a731c38a6ff0d4015814812c160fab8695e46f74b9b618735368ea2f16db4d785f16d29b3fb7b0@35.203.86.197:30303,enode://ffc452fe451a2e5f89fe634744aea334d92dcd30d881b76209d2db7dbf4b7ee047e7c69a5bb1633764d987a7441d9c4bc57ccdbfd6442a2f860bf953bc89a9b9@34.118.187.161:30303,enode://da94328302a1d1422209d1916744e90b6095a48b2340dcec39b22002c098bb4d58a880dab98eb26edf03fa4705d1b62f99a8c5c14e6666e4726b6d3066d8a4d7@34.95.30.190:30303,enode://19c7671a4844699b481e81a5bcfe7bafc7fefa953c16ebbe1951b1046371e73839e9058de6b7d3c934318fe7e7233dde3621c1c1018eb8b294ea3d4516147150@34.47.60.196:30303 + + stop_grace_period: 1m + labels: + - "traefik.enable=true" + - "traefik.http.middlewares.berachain-mainnet-reth-archive-trace-stripprefix.stripprefix.prefixes=/berachain-mainnet-archive" + - "traefik.http.services.berachain-mainnet-reth-archive-trace.loadbalancer.server.port=8545" + - "traefik.http.routers.berachain-mainnet-reth-archive-trace.entrypoints=websecure" + - "traefik.http.routers.berachain-mainnet-reth-archive-trace.tls.certresolver=myresolver" + - "traefik.http.routers.berachain-mainnet-reth-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/berachain-mainnet-archive`)" + - "traefik.http.routers.berachain-mainnet-reth-archive-trace.middlewares=berachain-mainnet-reth-archive-trace-stripprefix, ipwhitelist" + networks: + - chains + + berachain-bepolia-node: + image: ghcr.io/berachain/beacon-kit:v1.1.3 + expose: + - 26657 #rpc + ports: + - "15881:15881" + - "15881:15881/udp" + environment: + - "MONIKER=d${DOMAIN:-local}" + - "P2P_PORT=15881" + - "CHAINNAME=mainnet" + - "CHAINID=80094" + entrypoint: /init.sh + networks: + - chains + volumes: + - "./berachain/scripts/init.sh:/init.sh" + - "berachain-mainnet-reth-archive-trace_node:/root/.beacond/data" + - "./berachain/mainnet/config:/root/.beacond/config" + - ".jwtsecret:/jwtsecret" + restart: unless-stopped + stop_grace_period: 1m + +volumes: + berachain-mainnet-reth-archive-trace: + berachain-mainnet-reth-archive-trace_node: \ No newline at end of file diff --git a/berachain/reth/berachain-mainnet-reth-pruned-trace.yml b/berachain/reth/berachain-mainnet-reth-pruned-trace.yml new file mode 100644 index 00000000..b3ba9629 --- /dev/null +++ b/berachain/reth/berachain-mainnet-reth-pruned-trace.yml @@ -0,0 +1,77 @@ +services: + berachain-mainnet: + image: ghcr.io/paradigmxyz/reth:${RETH_VERSION:-v1.3.4} + user: root + volumes: + - "berachain-mainnet-reth-pruned-trace:/root/.local/share/reth" + - "/slowdisk:/slowdisk" + - ".jwtsecret:/jwtsecret" + - "./berachain/mainnet/config:/config" + expose: + - 8545 + - 9001 + ports: + - "10900:10900" + - "10900:10900/udp" + restart: unless-stopped + entrypoint: ["reth" "node"] + command: + - --chain mainnet + - --chain /config/eth-genesis.json + - --metrics 0.0.0.0:9001 + - --http + - --http.addr 0.0.0.0 + - --http.port 8545 + - --ws + - --ws.addr 0.0.0.0 + - --ws.port 8545 + - --ws.origins '*' + - --port 10900 + - --discovery.port 10900 + - --authrpc.addr 0.0.0.0 + - --authrpc.jwtsecret /jwtsecret + - --http.api "debug,eth,net,trace,txpool,web3,rpc,reth,admin" + - --ws.api "debug,eth,net,trace,txpool,web3,rpc,reth,admin" + - --http.corsdomain '*' + - --rpc.max-logs-per-response 1100000 + - --rpc.gascap 600000000 + --bootnodes=enode://0c5a4a3c0e81fce2974e4d317d88df783731183d534325e32e0fdf8f4b119d7889fa254d3a38890606ec300d744e2aa9c87099a4a032f5c94efe53f3fcdfecfe@34.22.104.177:30303,enode://b6a3137d3a36ef37c4d31843775a9dc293f41bcbde33b6309c80b1771b6634827cd188285136a57474427bd8845adc2f6fe2e0b106bd58d14795b08910b9c326@34.64.247.85:30303,enode://0b6633300614bc2b9749aee0cace7a091ec5348762aee7b1d195f7616d03a9409019d9bef336624bab72e0d069cd4cf0b0de6fbbf53f04f6b6e4c5b39c6bdca6@34.22.73.21:30303,enode://552b001abebb5805fcd734ad367cd05d9078d18f23ec598d7165460fadcfc51116ad95c418f7ea9a141aa8cbc496c8bea3322b67a5de0d3380f11aab1a797513@34.64.37.55:30303,enode://5b037f66099d5ded86eb7e1619f6d06ceb15609e8cc345ced22a4772b06178004e1490a3cd32fd1222789de4c6e4021c2d648a3d750f6d5323e64b771bbd8de7@35.247.182.34:30303,enode://846db253c53753d3ea1197aec296306dc84c25f3afdf142b65cb0fe0f984de55072daa3bbf05a9aea046a38a2292403137b6eafefd5646fcf62120b74e3b898d@34.87.9.231:30303,enode://64b7f6ee9bcd942ad4949c70f2077627f078a057dfd930e6e904e12643d8952f5ae87c91e24559765393f244a72c9d5c011d7d5176e59191d38f315db85a20f5@34.126.78.49:30303,enode://cf4d19bfb8ec507427ec882bac0bac85a0c8c9ddaa0ec91b773bb614e5e09d107cd9fbe323b96f62f31c493f8f42cc5495c18b87c08560c5dea1dfd25256dcf6@35.240.200.36:30303,enode://bb7e44178543431feac8f0ee3827056b7b84d8235b802a8bdbbcd4939dab7f7dd2579ff577a38b002bb0139792af67abd2dd5c9f4f85b8da6e914fa76dca82bc@34.40.14.50:30303,enode://8fef1f5df45e7b31be00a21e1da5665d5a5f5bf4c379086b843f03eade941bdd157f08c95b31880c492577edb9a9b185df7191eaebf54ab06d5bd683b289f3af@35.246.168.217:30303,enode://ce9c87cfe089f6811d26c96913fa3ec10b938d9017fc6246684c74a33679ee34ceca9447180fb509e37bf2b706c2877a82085d34bfd83b5b520ee1288b0fc32f@34.40.28.159:30303,enode://713657eb6a53feadcbc47e634ad557326a51eb6818a3e19a00a8111492f50a666ccbf2f5d334d247ecf941e68d242ef5c3b812b63c44d381ef11f79c2cdb45c7@35.234.82.236:30303,enode://d071fa740e063ce1bb9cdc2b7937baeff6dc4000f91588d730a731c38a6ff0d4015814812c160fab8695e46f74b9b618735368ea2f16db4d785f16d29b3fb7b0@35.203.86.197:30303,enode://ffc452fe451a2e5f89fe634744aea334d92dcd30d881b76209d2db7dbf4b7ee047e7c69a5bb1633764d987a7441d9c4bc57ccdbfd6442a2f860bf953bc89a9b9@34.118.187.161:30303,enode://da94328302a1d1422209d1916744e90b6095a48b2340dcec39b22002c098bb4d58a880dab98eb26edf03fa4705d1b62f99a8c5c14e6666e4726b6d3066d8a4d7@34.95.30.190:30303,enode://19c7671a4844699b481e81a5bcfe7bafc7fefa953c16ebbe1951b1046371e73839e9058de6b7d3c934318fe7e7233dde3621c1c1018eb8b294ea3d4516147150@34.47.60.196:30303 + - --full + stop_grace_period: 1m + labels: + - "traefik.enable=true" + - "traefik.http.middlewares.berachain-mainnet-reth-pruned-trace-stripprefix.stripprefix.prefixes=/berachain-mainnet" + - "traefik.http.services.berachain-mainnet-reth-pruned-trace.loadbalancer.server.port=8545" + - "traefik.http.routers.berachain-mainnet-reth-pruned-trace.entrypoints=websecure" + - "traefik.http.routers.berachain-mainnet-reth-pruned-trace.tls.certresolver=myresolver" + - "traefik.http.routers.berachain-mainnet-reth-pruned-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/berachain-mainnet`)" + - "traefik.http.routers.berachain-mainnet-reth-pruned-trace.middlewares=berachain-mainnet-reth-pruned-trace-stripprefix, ipwhitelist" + networks: + - chains + + berachain-bepolia-node: + image: ghcr.io/berachain/beacon-kit:v1.1.3 + expose: + - 26657 #rpc + ports: + - "15900:15900" + - "15900:15900/udp" + environment: + - "MONIKER=d${DOMAIN:-local}" + - "P2P_PORT=15900" + - "CHAINNAME=mainnet" + - "CHAINID=80094" + entrypoint: /init.sh + networks: + - chains + volumes: + - "./berachain/scripts/init.sh:/init.sh" + - "berachain-mainnet-reth-pruned-trace_node:/root/.beacond/data" + - "./berachain/mainnet/config:/root/.beacond/config" + - ".jwtsecret:/jwtsecret" + restart: unless-stopped + stop_grace_period: 1m + +volumes: + berachain-mainnet-reth-pruned-trace: + berachain-mainnet-reth-pruned-trace_node: \ No newline at end of file diff --git a/berachain/scripts/init.sh b/berachain/scripts/init.sh new file mode 100644 index 00000000..6ec8d59b --- /dev/null +++ b/berachain/scripts/init.sh @@ -0,0 +1,82 @@ +#!/bin/sh + +set -e # Exit on failure + +echo "MONIKER: $MONIKER" + +CHAINID=${CHAINID:-80069} +CHAINNAME=${CHAINNAME:-bepolia} +CHAIN_SPEC=testnet +if [ "$CHAINNAME" == "mainnet" ]; then + CHAIN_SPEC="mainnet" +fi + +BEACOND=${BEACOND_PATH:-beacond} +CONFIG_DIR="/root/.beacond/config" + +# Create config directory +mkdir -p "$CONFIG_DIR" + +JWTSECRET="0x$(cat /jwtsecret)" # reth and bepolia don't speak the same language +P2P_STRING="tcp:\\/\\/0\\.0\\.0\\.0\\:${P2P_PORT:-55696}" + +echo "$JWTSECRET" > "$CONFIG_DIR/jwt.hex" + +# this goes first because it won't overwrite shit + +if $BEACOND init ${MONIKER} --chain-id ${CHAINNAME}-beacon-${CHAINID} --home /root/.beacond/; then + apk add curl + + # Define variables + CONFIG_TOML_URL="https://raw.githubusercontent.com/berachain/beacon-kit/main/testing/networks/$CHAINID/config.toml" + APP_TOML_URL="https://raw.githubusercontent.com/berachain/beacon-kit/main/testing/networks/$CHAINID/app.toml" + SEEDS_URL="https://raw.githubusercontent.com/berachain/beacon-kit/main/testing/networks/$CHAINID/cl-seeds.txt" + KZG_URL="https://raw.githubusercontent.com/berachain/beacon-kit/main/testing/networks/$CHAINID/kzg-trusted-setup.json" + ETH_GENESIS_URL="https://raw.githubusercontent.com/berachain/beacon-kit/main/testing/networks/$CHAINID/eth-genesis.json" + GENESIS_URL="https://raw.githubusercontent.com/berachain/beacon-kit/main/testing/networks/$CHAINID/genesis.json" + + # Download config files + curl -sL "$GENESIS_URL" -o "$CONFIG_DIR/genesis.json" + curl -sL "$ETH_GENESIS_URL" -o "$CONFIG_DIR/eth-genesis.json" + curl -sL "$KZG_URL" -o "$CONFIG_DIR/kzg-trusted-setup.json" + curl -sL "$CONFIG_TOML_URL" -o "$CONFIG_DIR/config.toml" + curl -sL "$APP_TOML_URL" -o "$CONFIG_DIR/app.toml" + + # Update moniker if set + if [ -n "$MONIKER" ] && [ -f "$CONFIG_DIR/config.toml" ]; then + sed -i "s/^moniker = \".*\"/moniker = \"$MONIKER\"/" "$CONFIG_DIR/config.toml" + fi + + # Fetch and format SEEDS + SEEDS=$(curl -s "$SEEDS_URL" | tail -n +2 | tr '\n' ',' | sed 's/,$//') + + # Update seeds and persistent_peers + if [ -n "$SEEDS" ] && [ -f "$CONFIG_DIR/config.toml" ]; then + sed -i "s/^seeds = \".*\"/seeds = \"$SEEDS\"/" "$CONFIG_DIR/config.toml" + sed -i "s/^persistent_peers = \".*\"/persistent_peers = \"$SEEDS\"/" "$CONFIG_DIR/config.toml" + fi + + # Update RPC dial URL in app.toml + if [ -f "$CONFIG_DIR/app.toml" ]; then + sed -i "s|^rpc-dial-url = \".*\"|rpc-dial-url = \"http://berachain-bepolia:8551\"|" "$CONFIG_DIR/app.toml" + fi +else + echo "Already initialized, continuing!" >&2 +fi + + +# apply a port change to the config +sed -i "/^\[p2p\]/,/^\[/{s|^laddr = .*|laddr = \"$P2P_STRING\"|}" "$CONFIG_DIR/config.toml" +#sed -i "s/^laddr = \".*\"/laddr = \"$P2P_STRING\"/" "$CONFIG_DIR/config.toml" +sed -i 's|~/|/root/|g' "$CONFIG_DIR/config.toml" +sed -i 's|~/|/root/|g' "$CONFIG_DIR/app.toml" + +echo "$CONFIG_DIR/jwt.hex: $(cat $CONFIG_DIR/jwt.hex)" + +#cd "$CONFIG_DIR" + +# Execute beacond +#exec $BEACOND start --beacon-kit.kzg.trusted-setup-path /root/.beacond/config/kzg-trusted-setup.json --minimum-gas-prices 0atom "$@" +exec $BEACOND start --home /root/.beacond $@ +# --beacon-kit.engine.jwt-secret-path $CONFIG_DIR/jwt.hex --beacon-kit.kzg.trusted-setup-path $CONFIG_DIR/kzg-trusted-setup.json --home /root/.beacond +#--minimum-gas-prices 0atom diff --git a/goat-testnet3.yml b/goat-testnet3.yml new file mode 120000 index 00000000..c81bdaf1 --- /dev/null +++ b/goat-testnet3.yml @@ -0,0 +1 @@ +goat/geth/goat-testnet3-geth-pruned-pebble-path.yml \ No newline at end of file diff --git a/goat/geth/goat-mainnet-geth-archive-leveldb-hash.yml b/goat/geth/goat-mainnet-geth-archive-leveldb-hash.yml new file mode 100644 index 00000000..f837ae75 --- /dev/null +++ b/goat/geth/goat-mainnet-geth-archive-leveldb-hash.yml @@ -0,0 +1,73 @@ + + +services: + goat-mainnet-archive: + image: ghcr.io/goatnetwork/goat-geth:v0.3.0 + stop_grace_period: 5m + restart: unless-stopped + ports: + - "10891:10891" + - "10891:10891/udp" + environment: + - "GETH_GCMODE=archive" + - "GETH_SYNCMODE=full" + - "GETH_STATE_SCHEME=hash" + - "GETH_DB_ENGINE=leveldb" + - "GETH_NAT=extip:${IP}" + - "GETH_PORT=10891" + - "GETH_WS_PORT=8545" + - "GETH_HTTP=true" + - "GETH_HTTP_ADDR=0.0.0.0" + - "GETH_HTTP_VHOSTS=*" + - "GETH_WS=true" + - "GETH_WS_ADDR=0.0.0.0" + - "GETH_WS_ORIGINS=*" + - "GETH_HTTP_API=eth,net,debug,admin,web3" + entrypoint: ["geth"] + command: --goat=mainnet + expose: + - 8545 + volumes: + - "goat-mainnet-geth-archive-leveldb-hash:/root/.ethereum" + labels: + - "traefik.enable=true" + - "traefik.http.middlewares.goat-mainnet-geth-archive-leveldb-hash-stripprefix.stripprefix.prefixes=/goat-mainnet-archive" + - "traefik.http.services.goat-mainnet-geth-archive-leveldb-hash.loadbalancer.server.port=8545" + - "traefik.http.routers.goat-mainnet-geth-archive-leveldb-hash.entrypoints=websecure" + - "traefik.http.routers.goat-mainnet-geth-archive-leveldb-hash.tls.certresolver=myresolver" + - "traefik.http.routers.goat-mainnet-geth-archive-leveldb-hash.rule=Host(`$DOMAIN`) && PathPrefix(`/goat-mainnet-archive`)" + - "traefik.http.routers.goat-mainnet-geth-archive-leveldb-hash.middlewares=goat-mainnet-geth-archive-leveldb-hash-stripprefix, ipwhitelist" + networks: + - chains + + goat-mainnet-archive-node: + image: ghcr.io/goatnetwork/goat:v0.2.3 + stop_grace_period: 30s + restart: unless-stopped + entrypoint: ["goatd", "start"] + expose: + - 1317 + ports: + - "15891:15891" + - "15891:15891/udp" + command: + - --home /goat + - --chain-id=goat-mainnet + - --goat.geth /geth/geth.ipc + - --api.enable + - --api.address=tcp://0.0.0.0:1317 + - --p2p.external-address ${IP}:15891 + - --p2p.laddr 0.0.0.0:15891 + environment: + - "IP=${IP}" + volumes: + - "goat-mainnet-geth-archive-leveldb-hash_node:/goat" + - "goat-mainnet-geth-archive-leveldb-hash:/geth" + depends_on: + - goat-mainnet-archive + networks: + - chains + +volumes: + goat-mainnet-geth-archive-leveldb-hash: + goat-mainnet-geth-archive-leveldb-hash_node: \ No newline at end of file diff --git a/goat/geth/goat-mainnet-geth-pruned-pebble-path.yml b/goat/geth/goat-mainnet-geth-pruned-pebble-path.yml new file mode 100644 index 00000000..7a7887d1 --- /dev/null +++ b/goat/geth/goat-mainnet-geth-pruned-pebble-path.yml @@ -0,0 +1,73 @@ + + +services: + goat-mainnet: + image: ghcr.io/goatnetwork/goat-geth:v0.3.0 + stop_grace_period: 5m + restart: unless-stopped + ports: + - "10640:10640" + - "10640:10640/udp" + environment: + - "GETH_GCMODE=full" + - "GETH_SYNCMODE=snap" + - "GETH_STATE_SCHEME=path" + - "GETH_DB_ENGINE=pebble" + - "GETH_NAT=extip:${IP}" + - "GETH_PORT=10640" + - "GETH_WS_PORT=8545" + - "GETH_HTTP=true" + - "GETH_HTTP_ADDR=0.0.0.0" + - "GETH_HTTP_VHOSTS=*" + - "GETH_WS=true" + - "GETH_WS_ADDR=0.0.0.0" + - "GETH_WS_ORIGINS=*" + - "GETH_HTTP_API=eth,net,debug,admin,web3" + entrypoint: ["geth"] + command: --goat=mainnet + expose: + - 8545 + volumes: + - "goat-mainnet-geth-pruned-pebble-path:/root/.ethereum" + labels: + - "traefik.enable=true" + - "traefik.http.middlewares.goat-mainnet-geth-pruned-pebble-path-stripprefix.stripprefix.prefixes=/goat-mainnet" + - "traefik.http.services.goat-mainnet-geth-pruned-pebble-path.loadbalancer.server.port=8545" + - "traefik.http.routers.goat-mainnet-geth-pruned-pebble-path.entrypoints=websecure" + - "traefik.http.routers.goat-mainnet-geth-pruned-pebble-path.tls.certresolver=myresolver" + - "traefik.http.routers.goat-mainnet-geth-pruned-pebble-path.rule=Host(`$DOMAIN`) && PathPrefix(`/goat-mainnet`)" + - "traefik.http.routers.goat-mainnet-geth-pruned-pebble-path.middlewares=goat-mainnet-geth-pruned-pebble-path-stripprefix, ipwhitelist" + networks: + - chains + + goat-mainnet-node: + image: ghcr.io/goatnetwork/goat:v0.2.3 + stop_grace_period: 30s + restart: unless-stopped + entrypoint: ["goatd", "start"] + expose: + - 1317 + ports: + - "15640:15640" + - "15640:15640/udp" + command: + - --home /goat + - --chain-id=goat-mainnet + - --goat.geth /geth/geth.ipc + - --api.enable + - --api.address=tcp://0.0.0.0:1317 + - --p2p.external-address ${IP}:15640 + - --p2p.laddr 0.0.0.0:15640 + environment: + - "IP=${IP}" + volumes: + - "goat-mainnet-geth-pruned-pebble-path_node:/goat" + - "goat-mainnet-geth-pruned-pebble-path:/geth" + depends_on: + - goat-mainnet + networks: + - chains + +volumes: + goat-mainnet-geth-pruned-pebble-path: + goat-mainnet-geth-pruned-pebble-path_node: \ No newline at end of file diff --git a/goat/geth/goat-testnet3-geth-archive-leveldb-hash.yml b/goat/geth/goat-testnet3-geth-archive-leveldb-hash.yml new file mode 100644 index 00000000..f4adf80f --- /dev/null +++ b/goat/geth/goat-testnet3-geth-archive-leveldb-hash.yml @@ -0,0 +1,73 @@ + + +services: + goat-testnet3-archive: + image: ghcr.io/goatnetwork/goat-geth:v0.3.0 + stop_grace_period: 5m + restart: unless-stopped + ports: + - "10461:10461" + - "10461:10461/udp" + environment: + - "GETH_GCMODE=archive" + - "GETH_SYNCMODE=full" + - "GETH_STATE_SCHEME=hash" + - "GETH_DB_ENGINE=leveldb" + - "GETH_NAT=extip:${IP}" + - "GETH_PORT=10461" + - "GETH_WS_PORT=8545" + - "GETH_HTTP=true" + - "GETH_HTTP_ADDR=0.0.0.0" + - "GETH_HTTP_VHOSTS=*" + - "GETH_WS=true" + - "GETH_WS_ADDR=0.0.0.0" + - "GETH_WS_ORIGINS=*" + - "GETH_HTTP_API=eth,net,debug,admin,web3" + entrypoint: ["geth"] + command: --goat=testnet3 + expose: + - 8545 + volumes: + - "goat-testnet3-geth-archive-leveldb-hash:/root/.ethereum" + labels: + - "traefik.enable=true" + - "traefik.http.middlewares.goat-testnet3-geth-archive-leveldb-hash-stripprefix.stripprefix.prefixes=/goat-testnet3-archive" + - "traefik.http.services.goat-testnet3-geth-archive-leveldb-hash.loadbalancer.server.port=8545" + - "traefik.http.routers.goat-testnet3-geth-archive-leveldb-hash.entrypoints=websecure" + - "traefik.http.routers.goat-testnet3-geth-archive-leveldb-hash.tls.certresolver=myresolver" + - "traefik.http.routers.goat-testnet3-geth-archive-leveldb-hash.rule=Host(`$DOMAIN`) && PathPrefix(`/goat-testnet3-archive`)" + - "traefik.http.routers.goat-testnet3-geth-archive-leveldb-hash.middlewares=goat-testnet3-geth-archive-leveldb-hash-stripprefix, ipwhitelist" + networks: + - chains + + goat-testnet3-archive-node: + image: ghcr.io/goatnetwork/goat:v0.2.3 + stop_grace_period: 30s + restart: unless-stopped + entrypoint: ["goatd", "start"] + expose: + - 1317 + ports: + - "15461:15461" + - "15461:15461/udp" + command: + - --home /goat + - --chain-id=goat-testnet3 + - --goat.geth /geth/geth.ipc + - --api.enable + - --api.address=tcp://0.0.0.0:1317 + - --p2p.external-address ${IP}:15461 + - --p2p.laddr 0.0.0.0:15461 + environment: + - "IP=${IP}" + volumes: + - "goat-testnet3-geth-archive-leveldb-hash_node:/goat" + - "goat-testnet3-geth-archive-leveldb-hash:/geth" + depends_on: + - goat-testnet3-archive + networks: + - chains + +volumes: + goat-testnet3-geth-archive-leveldb-hash: + goat-testnet3-geth-archive-leveldb-hash_node: \ No newline at end of file diff --git a/goat/geth/goat-testnet3-geth-pruned-pebble-path.yml b/goat/geth/goat-testnet3-geth-pruned-pebble-path.yml new file mode 100644 index 00000000..5ad74888 --- /dev/null +++ b/goat/geth/goat-testnet3-geth-pruned-pebble-path.yml @@ -0,0 +1,73 @@ + + +services: + goat-testnet3: + image: ghcr.io/goatnetwork/goat-geth:v0.3.0 + stop_grace_period: 5m + restart: unless-stopped + ports: + - "10272:10272" + - "10272:10272/udp" + environment: + - "GETH_GCMODE=full" + - "GETH_SYNCMODE=snap" + - "GETH_STATE_SCHEME=path" + - "GETH_DB_ENGINE=pebble" + - "GETH_NAT=extip:${IP}" + - "GETH_PORT=10272" + - "GETH_WS_PORT=8545" + - "GETH_HTTP=true" + - "GETH_HTTP_ADDR=0.0.0.0" + - "GETH_HTTP_VHOSTS=*" + - "GETH_WS=true" + - "GETH_WS_ADDR=0.0.0.0" + - "GETH_WS_ORIGINS=*" + - "GETH_HTTP_API=eth,net,debug,admin,web3" + entrypoint: ["geth"] + command: --goat=testnet3 + expose: + - 8545 + volumes: + - "goat-testnet3-geth-pruned-pebble-path:/root/.ethereum" + labels: + - "traefik.enable=true" + - "traefik.http.middlewares.goat-testnet3-geth-pruned-pebble-path-stripprefix.stripprefix.prefixes=/goat-testnet3" + - "traefik.http.services.goat-testnet3-geth-pruned-pebble-path.loadbalancer.server.port=8545" + - "traefik.http.routers.goat-testnet3-geth-pruned-pebble-path.entrypoints=websecure" + - "traefik.http.routers.goat-testnet3-geth-pruned-pebble-path.tls.certresolver=myresolver" + - "traefik.http.routers.goat-testnet3-geth-pruned-pebble-path.rule=Host(`$DOMAIN`) && PathPrefix(`/goat-testnet3`)" + - "traefik.http.routers.goat-testnet3-geth-pruned-pebble-path.middlewares=goat-testnet3-geth-pruned-pebble-path-stripprefix, ipwhitelist" + networks: + - chains + + goat-testnet3-node: + image: ghcr.io/goatnetwork/goat:v0.2.3 + stop_grace_period: 30s + restart: unless-stopped + entrypoint: ["goatd", "start"] + expose: + - 1317 + ports: + - "15272:15272" + - "15272:15272/udp" + command: + - --home /goat + - --chain-id=goat-testnet3 + - --goat.geth /geth/geth.ipc + - --api.enable + - --api.address=tcp://0.0.0.0:1317 + - --p2p.external-address ${IP}:15272 + - --p2p.laddr 0.0.0.0:15272 + environment: + - "IP=${IP}" + volumes: + - "goat-testnet3-geth-pruned-pebble-path_node:/goat" + - "goat-testnet3-geth-pruned-pebble-path:/geth" + depends_on: + - goat-testnet3 + networks: + - chains + +volumes: + goat-testnet3-geth-pruned-pebble-path: + goat-testnet3-geth-pruned-pebble-path_node: \ No newline at end of file