diff --git a/bsc/config/config.toml b/bsc/config/config.toml index a118b2e3..ecb305cd 100644 --- a/bsc/config/config.toml +++ b/bsc/config/config.toml @@ -27,13 +27,14 @@ OracleThreshold = 1000 [Node] IPCPath = "geth.ipc" -HTTPHost = "localhost" +HTTPHost = "0.0.0.0" InsecureUnlockAllowed = false HTTPPort = 8545 -HTTPVirtualHosts = ["localhost"] -HTTPModules = ["eth", "net", "web3", "txpool", "parlia"] -WSPort = 8546 -WSModules = ["net", "web3", "eth"] +HTTPVirtualHosts = ["*"] +HTTPModules = ["eth", "net", "web3", "txpool", "parlia", "debug", "admin"] +WSHost = "0.0.0.0" +WSPort = 8545 +WSModules = ["net", "web3", "eth", "debug"] [Node.P2P] MaxPeers = 200 diff --git a/celo/alfajores/rollup.json b/celo/alfajores/rollup.json index 4a0a5cef..15418759 100644 --- a/celo/alfajores/rollup.json +++ b/celo/alfajores/rollup.json @@ -38,6 +38,11 @@ "da_commitment_type": "GenericCommitment", "da_challenge_window": 1, "da_resolve_window": 1 + }, + "chain_op_config": { + "eip1559Elasticity": 5, + "eip1559Denominator": 400, + "eip1559DenominatorCanyon": 400 } } diff --git a/drpc-beacon-proxy-sepolia.yml b/drpc-beacon-proxy-sepolia.yml new file mode 100644 index 00000000..46c5ea09 --- /dev/null +++ b/drpc-beacon-proxy-sepolia.yml @@ -0,0 +1,18 @@ +services: + drpc-beacon-proxy-sepolia: + build: ./drpc-beacon-proxy/ + expose: + - "80:80" + environment: + DKEY: "${DRPC_API_KEY}" + TARGET_URL: https://lb.drpc.org/rest/eth-beacon-chain-sepolia + labels: + - "traefik.enable=true" + - "traefik.http.middlewares.drpc-beacon-proxy-sepolia-stripprefix.stripprefix.prefixes=/drpc-beacon-proxy-sepolia" + - "traefik.http.services.drpc-beacon-proxy-sepolia.loadbalancer.server.port=80" + - "traefik.http.routers.drpc-beacon-proxy-sepolia.entrypoints=websecure" + - "traefik.http.routers.drpc-beacon-proxy-sepolia.tls.certresolver=myresolver" + - "traefik.http.routers.drpc-beacon-proxy-sepolia.rule=Host(`$DOMAIN`) && PathPrefix(`/drpc-beacon-proxy-sepolia`)" + - "traefik.http.routers.drpc-beacon-proxy-sepolia.middlewares=drpc-beacon-proxy-sepolia-stripprefix, ipwhitelist" + networks: + - chains diff --git a/drpc-free.yml b/drpc-free.yml index 1e6753bf..6da50bd0 100644 --- a/drpc-free.yml +++ b/drpc-free.yml @@ -2,7 +2,7 @@ version: '3.1' services: dshackle-free: - image: drpcorg/dshackle:0.64.3 + image: drpcorg/dshackle:${DRPC_VERSION:-0.64.3} restart: unless-stopped volumes: - ./free_configs:/etc/dshackle diff --git a/drpc.yml b/drpc.yml index a79d773b..c1401ba2 100644 --- a/drpc.yml +++ b/drpc.yml @@ -2,7 +2,7 @@ version: '3.1' services: dshackle: - image: drpcorg/dshackle:0.64.3 + image: drpcorg/dshackle:${DRPC_VERSION:-0.64.3} restart: unless-stopped volumes: - ./main_configs:/etc/dshackle diff --git a/groq.sh b/groq.sh new file mode 100644 index 00000000..ce1ac7f3 --- /dev/null +++ b/groq.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +# Determine the script's base directory +BASEDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" + +# Load environment variables from .env file +if [ -f "$BASEDIR/.env" ]; then + source "$BASEDIR/.env" +fi + +# Ensure GROQ_API_KEY is set +if [ -z "$GROQ_API_KEY" ]; then + echo "Error: GROQ_API_KEY is not set. Please define it in $BASEDIR/.env" + exit 1 +fi + +# Validate input argument +if [ -z "$1" ] || [ ! -f "$BASEDIR/rpc/$1.yml" ]; then + echo "Error: Either no argument provided or $BASEDIR/rpc/$1.yml does not exist." + exit 1 +fi + +# Build the container +docker build -t rpc_sync_checker "$BASEDIR/groq" + +# Run logs.sh and feed logs into the sync checker container +"$BASEDIR/logs.sh" "$1" | docker run --rm -i -e GROQ_API_KEY="$GROQ_API_KEY" rpc_sync_checker diff --git a/groq/Dockerfile b/groq/Dockerfile new file mode 100644 index 00000000..ca66e307 --- /dev/null +++ b/groq/Dockerfile @@ -0,0 +1,8 @@ +FROM python:3.11 + +WORKDIR /app + +COPY rpc_sync_checker.py /app/ +RUN pip install groq + +CMD ["python", "/app/rpc_sync_checker.py"] \ No newline at end of file diff --git a/groq/rpc_sync_checker.py b/groq/rpc_sync_checker.py new file mode 100644 index 00000000..859928ed --- /dev/null +++ b/groq/rpc_sync_checker.py @@ -0,0 +1,21 @@ +import os +import sys +from groq import Groq + +def check_sync_progress(logs): + client = Groq(api_key=os.environ.get("GROQ_API_KEY")) + + response = client.chat.completions.create( + messages=[ + {"role": "system", "content": "You are an assistant trained to analyze blockchain RPC logs."}, + {"role": "user", "content": f"Based on the following logs, is the RPC node progressing in its sync? Answer only '0' for yes and '1' for no.\n\n{logs}"} + ], + model="llama-3.3-70b-versatile", + ) + + return response.choices[0].message.content.strip() + +if __name__ == "__main__": + logs = sys.stdin.read() # Read input from STDIN + result = check_sync_progress(logs) + print(result) diff --git a/nodeexporter.yml b/nodeexporter.yml index edca3544..a7221f51 100644 --- a/nodeexporter.yml +++ b/nodeexporter.yml @@ -1,6 +1,6 @@ services: nodeexporter: - image: prom/node-exporter:v1.2.2 + image: prom/node-exporter:v1.3.1 container_name: nodeexporter volumes: - /proc:/host/proc:ro diff --git a/op-celo-alfajores-fullnode.yml b/op-celo-alfajores-fullnode.yml index c684f449..3a0dec7c 100644 --- a/op-celo-alfajores-fullnode.yml +++ b/op-celo-alfajores-fullnode.yml @@ -1,52 +1,52 @@ services: - init: - image: us-west1-docker.pkg.dev/devopsre/celo-blockchain-public/op-geth@sha256:13fa55221309e4e453fd8c383d51aa6d065695f14a64ab25c85aa7d9301173e0 - volumes: - - "op-celo-alfajores-fullnode:/datadir" - - "./celo/alfajores:/config" - command: init --datadir /datadir /config/genesis.json - op-celo-alfajores-fullnode: - image: us-west1-docker.pkg.dev/devopsre/celo-blockchain-public/op-geth@sha256:13fa55221309e4e453fd8c383d51aa6d065695f14a64ab25c85aa7d9301173e0 - depends_on: - - init + image: us-west1-docker.pkg.dev/devopsre/celo-blockchain-public/op-geth:celo-v2.0.0 volumes: - "op-celo-alfajores-fullnode:/datadir" - ".jwtsecret:/jwtsecret" + - "./celo/alfajores/:/chainconfig" ports: - "10955:10955" - "10955:10955/udp" - command: | - --datadir=/datadir - --networkid=44787 - --gcmode=full - --snapshot=true - --maxpeers=60 - --port=10955 - --authrpc.addr=0.0.0.0 - --authrpc.port=8551 - --authrpc.jwtsecret=/jwtsecret - --authrpc.vhosts='*' - --http - --http.addr=0.0.0.0 - --http.port=8545 - --http.api=eth,net,web3,debug,txpool,engine,admin - --http.vhosts='*' - --http.corsdomain='*' - --ws - --rollup.historicalrpc=https://alfajores-forno.cel1.alfajores.celo-testnet.org - --ws.addr=0.0.0.0 - --ws.port=8545 - --ws.api=eth,net,web3,debug,txpool,engine,admin - --verbosity=3 - --bootnodes=enode://ac0f42fa46f8cc10bd02a103894d71d495537465133e7c442bc02dc76721a5f41761cc2d8c69e7ba1b33e14e28f516436864d3e0836e2dcdaf032387f72447dd@34.83.164.192:30303,enode://596002969b8b269a4fa34b4709b9600b64201e7d02e2f5f1350affd021b0cbda6ce2b913ebe24f0fb1edcf66b6c730a8a3b02cd940f4de995f73d3b290a0fc92@34.82.177.77:30303,enode://3619455064ef1ce667171bba1df80cfd4c097f018cf0205aaad496f0d509611b7c40396893d9e490ee390cd098888279e177a4d9bb09c58387bb0a6031d237f1@34.19.90.27:30303,enode://e3c54db6004a92d4ee87504f073f3234a25759b485274cc224037e3e5ee792f3b482c3f4fffcb764af6e1859a1aea9710b71e1991e32c1dee7f40352124bb182@35.233.249.87:30303,enode://674410b34fd54c8406a4f945292b96111688d4bab49aecdc34b4f1b346891f4673dcb03ed44c38ab467ef7bec0b20f6031ad88aa1d35ce1333b343d00fa19fb1@34.168.43.76:30303 expose: - 8545 + - 8546 - 8551 networks: - chains restart: always stop_grace_period: 5m + environment: + - NETWORK_NAME=alfajores + - GETH_BOOTNODES=enode://ac0f42fa46f8cc10bd02a103894d71d495537465133e7c442bc02dc76721a5f41761cc2d8c69e7ba1b33e14e28f516436864d3e0836e2dcdaf032387f72447dd@34.83.164.192:30303,enode://596002969b8b269a4fa34b4709b9600b64201e7d02e2f5f1350affd021b0cbda6ce2b913ebe24f0fb1edcf66b6c730a8a3b02cd940f4de995f73d3b290a0fc92@34.82.177.77:30303,enode://3619455064ef1ce667171bba1df80cfd4c097f018cf0205aaad496f0d509611b7c40396893d9e490ee390cd098888279e177a4d9bb09c58387bb0a6031d237f1@34.19.90.27:30303,enode://e3c54db6004a92d4ee87504f073f3234a25759b485274cc224037e3e5ee792f3b482c3f4fffcb764af6e1859a1aea9710b71e1991e32c1dee7f40352124bb182@35.233.249.87:30303,enode://674410b34fd54c8406a4f945292b96111688d4bab49aecdc34b4f1b346891f4673dcb03ed44c38ab467ef7bec0b20f6031ad88aa1d35ce1333b343d00fa19fb1@34.168.43.76:30303 + command: > + --datadir=/datadir + --networkid=44787 + --http + --http.corsdomain="*" + --http.vhosts="*" + --http.addr=0.0.0.0 + --http.port=8545 + --http.api=web3,debug,eth,txpool,net,engine + --ws + --ws.addr=0.0.0.0 + --ws.port=8545 + --ws.origins="*" + --ws.api=debug,eth,txpool,net,engine,web3 + --syncmode="full" + --gcmode="full" + --authrpc.vhosts="*" + --authrpc.addr=0.0.0.0 + --authrpc.port=8551 + --authrpc.jwtsecret=/jwtsecret + --rollup.sequencerhttp=https://sequencer.alfajores.celo-testnet.org + --rollup.disabletxpoolgossip=true + --port="10955" + --discovery.port="10955" + --snapshot=true + --verbosity=3 + --history.transactions=0 + --rollup.historicalrpc=${OP_GETH_HISTORICAL_RPC:-https://sequencer.alfajores.celo-testnet.org} labels: - "traefik.enable=true" - "traefik.http.middlewares.op-celo-alfajores-stripprefix.stripprefix.prefixes=/op-celo-alfajores" @@ -58,10 +58,9 @@ services: op-celo-alfajores-fullnode-node: - image: us-west1-docker.pkg.dev/devopsre/celo-blockchain-public/op-node:celo9 + image: us-west1-docker.pkg.dev/devopsre/celo-blockchain-public/op-node:celo-v2.0.0 depends_on: - op-celo-alfajores-fullnode - - op-celo-alfajores-key-generator expose: - 8545 # RPC - 39395 # P2P TCP @@ -73,30 +72,34 @@ services: ports: - "39395:39395" - "39395:39395/udp" - command: | + environment: + - HEALTHCHECK__REFERENCE_RPC_PROVIDER=https://alfajores-forno.celo-testnet.org + - OP_NODE_P2P_LISTEN_TCP_PORT=39395 + - OP_NODE_P2P_LISTEN_UDP_PORT=39395 + - OP_NODE_P2P_STATIC=/ip4/35.197.25.52/tcp/9222/p2p/16Uiu2HAmQEdyLRSAVZDr5SqbJ1RnKmNDhtQJcEKmemrVxe4FxKwR,/ip4/34.105.22.4/tcp/9222/p2p/16Uiu2HAm1SZBDSugT5MMu7vBY8auDgfZFNhoDeXPLc9Me5FsAxwT,/ip4/34.83.209.168/tcp/9222/p2p/16Uiu2HAmGJAiUX6HLSo4nLh8T984qxzokwL23cVsYuNZy2SrK7C6,/ip4/34.83.214.149/tcp/9222/p2p/16Uiu2HAmAko2Kr3eAjM7tnshtEhYrxQYfKUvN2kwiygeFoBAoi8S,/ip4/34.169.5.52/tcp/9222/p2p/16Uiu2HAmKc6YKHzYgsjBDaj36uAufxpgZFgrzDqVBt6zTPwdhhJD + - OP_NODE_ALTDA_ENABLED=true + - OP_NODE_ALTDA_DA_SERVICE=true + - OP_NODE_ALTDA_VERIFY_ON_READ=false + - OP_NODE_ALTDA_DA_SERVER=https://eigenda-proxy.alfajores.celo-testnet.org + - OP_NODE_L2_ENGINE_AUTH=/jwtsecret + command: > op-node - --l1.trustrpc=true - --l1=${OP_CELO_ALFAJORES_HOLESKY_RPC:-https://ethereum-holesky-rpc.publicnode.com} - --l1.beacon=${OP_CELO_ALFAJORES_HOLESKY_BEACON_REST:-https://ethereum-holesky-beacon-api.publicnode.com} + --l1="${OP_CELO_ALFAJORES_HOLESKY_RPC:-https://ethereum-holesky-rpc.publicnode.com}" --l2=http://op-celo-alfajores-fullnode:8551 - --l2.jwt-secret=/jwtsecret - --rollup.load-protocol-versions=true - --rollup.config=/config/rollup.json - --verifier.l1-confs=4 --rpc.addr=0.0.0.0 --rpc.port=9545 - --p2p.listen.tcp=39395 - --p2p.listen.udp=39395 - --p2p.priv.path=/config/p2p_node_key_txt - --p2p.static=/ip4/35.197.25.52/tcp/9222/p2p/16Uiu2HAmQEdyLRSAVZDr5SqbJ1RnKmNDhtQJcEKmemrVxe4FxKwR,/ip4/34.105.22.4/tcp/9222/p2p/16Uiu2HAm1SZBDSugT5MMu7vBY8auDgfZFNhoDeXPLc9Me5FsAxwT,/ip4/34.83.209.168/tcp/9222/p2p/16Uiu2HAmGJAiUX6HLSo4nLh8T984qxzokwL23cVsYuNZy2SrK7C6,/ip4/34.83.214.149/tcp/9222/p2p/16Uiu2HAmAko2Kr3eAjM7tnshtEhYrxQYfKUvN2kwiygeFoBAoi8S,/ip4/34.169.5.52/tcp/9222/p2p/16Uiu2HAmKc6YKHzYgsjBDaj36uAufxpgZFgrzDqVBt6zTPwdhhJD - --altda.enabled=true - --altda.da-server=https://eigenda-proxy.alfajores.celo-testnet.org - --altda.da-service=true - --altda.verify-on-read=false + --l1.trustrpc + --l1.rpckind=basic + --l1.beacon="${OP_CELO_ALFAJORES_HOLESKY_BEACON_REST:-https://ethereum-holesky-beacon-api.publicnode.com}" + --syncmode=execution-layer + --p2p.priv.path=/chainconfigs/p2p_node_key_txt + --rollup.config=/chainconfigs/rollup.json + --rollup.load-protocol-versions=true + --rollup.halt=major restart: always volumes: - .jwtsecret:/jwtsecret - - "./celo/alfajores:/config" + - ./celo/alfajores/:/chainconfigs/ stop_grace_period: 30s op-celo-alfajores-key-generator: @@ -107,7 +110,6 @@ services: command: "[ -f /config/p2p_node_key_txt ] && exit 0 || cast w n | grep -i 'Private Key' | awk -F ': ' '{print $2}' | sed 's/0x//' > /config/p2p_node_key_txt" - volumes: op-celo-alfajores-fullnode: diff --git a/op-lisk-sepolia.yml b/op-lisk-sepolia.yml index 5d3e48a5..04d7135a 100644 --- a/op-lisk-sepolia.yml +++ b/op-lisk-sepolia.yml @@ -6,9 +6,9 @@ services: context: ./op dockerfile: Dockerfile args: - OP_VERSION: v1.10.2 - OP_PATCH: sepolia/lisk/op-node.patch - GETH_VERSION: v1.101411.4 + OP_VERSION: v1.12.0 + # OP_PATCH: sepolia/lisk/op-node.patch + GETH_VERSION: v1.101503.0 expose: - 8545 # RPC / Websocket - 54521 # P2P TCP (currently unused) @@ -39,7 +39,8 @@ services: - "GETH_OVERRIDE_ECOTONE=1708534800" - "GETH_OVERRIDE_FJORD=1716998400" - "GETH_OVERRIDE_GRANITE=1723478400" - - "GETH_OVERRIDE_HOLOCENE=1732633200" + - "GETH_OVERRIDE_HOLOCENE=1732633200" + - "GETH_OVERRIDE_PECTRA=1741159776" - "GETH_BOOTNODES=enr:-Iu4QI5BdaTmfMhNKXd-vSniNRSCXk-a3m3nQbe9TCV3puGtCr6FvX6-Vr0Uvx4tYVilGCIYdQNf6fK8O2MKxVqjYJ8BgmlkgnY0gmlwhCKN6PiJc2VjcDI1NmsxoQLBQIaRwlvNxrRKcGtxKmh4JS_orkawS44D4KIORICoi4N0Y3CCIy\ uDdWRwgiMr" labels: @@ -59,9 +60,9 @@ uDdWRwgiMr" context: ./op dockerfile: Dockerfile args: - OP_VERSION: v1.10.2 - OP_PATCH: sepolia/lisk/op-node.patch - GETH_VERSION: v1.101411.4 + OP_VERSION: v1.12.0 + # OP_PATCH: sepolia/lisk/op-node.patch + GETH_VERSION: v1.101503.0 depends_on: - op-lisk-sepolia expose: @@ -113,6 +114,7 @@ uDdWRwgiMr" - "OP_NODE_OVERRIDE_FJORD=1716998400" - "OP_NODE_OVERRIDE_GRANITE=1723478400" - "OP_NODE_OVERRIDE_HOLOCENE=1732633200" + - "OP_NODE_OVERRICE_PECTRA=1741159776" networks: - chains diff --git a/op-manta-pacific.yml b/op-manta-pacific.yml index aac63f6a..eaa4304d 100644 --- a/op-manta-pacific.yml +++ b/op-manta-pacific.yml @@ -37,10 +37,32 @@ services: - "traefik.http.routers.manta-pacific-mainnet.middlewares=manta-pacific-mainnet-stripprefix, ipwhitelist" + # manta-pacific-da: + # stop_signal: SIGINT + # restart: unless-stopped + # user: root + # image: "ghcr.io/celestiaorg/celestia-node:v0.12.1" + # command: celestia light start --gateway --core.ip consensus.lunaroasis.net --gateway.addr light --gateway.port 23537 + # environment: + # - NODE_TYPE=light + # volumes: + # - manta-pacific-celestia-light:/home/celestia/.celestia-light/ + # expose: + # - 26658 # core rpc + # - 26657 # rpc + # ports: + # - "23537:23537" # gateway + # healthcheck: + # test: ["CMD", "curl", "-f", "http://localhost:23537/header/1"] + # interval: 10s + # timeout: 5s + # retries: 5 + # start_period: 30s + manta-pacific-node: depends_on: - manta-pacific - image: "public.ecr.aws/i6b2w2n6/op-node:5.2.0" + image: "public.ecr.aws/i6b2w2n6/op-node:celestia-3.0.0-dencun" stop_signal: SIGINT stop_grace_period: 30s networks: @@ -49,6 +71,8 @@ services: OP_NODE_S3_BUCKET: "caldera-celestia-cache-prod" OP_NODE_NAMESPACE_ID: 866269ddf77dbc40ed9d OP_NODE_S3_REGION: 'us-west-2' + # OP_NODE_DA_RPC: "http://manta-pacific-da:26658" + # OP_NODE_AUTH_TOKEN: ${OP_NODE_AUTH_TOKEN} CELESTIA_LEGACY_MODE: "true" OP_NODE_OVERRIDE_CANYON: "1726783200" OP_NODE_OVERRIDE_DELTA: "1726783200" diff --git a/op-mode-mainnet-pbss.yml b/op-mode-mainnet-pbss.yml index eda52803..622308d7 100644 --- a/op-mode-mainnet-pbss.yml +++ b/op-mode-mainnet-pbss.yml @@ -2,7 +2,6 @@ version: '3.1' services: op-mode-mainnet: # this is Optimism's geth client - #image: stakesquid/op-mode-mainnet:v0.1 build: context: ./op expose: @@ -24,7 +23,6 @@ services: - "GETH_ROLLUP_SEQUENCERHTTP=https://rpc-mode-mainnet-0.t.conduit.xyz" - "GETH_GCMODE=full" - "GETH_SYNCMODE=snap" - #- "GETH_NODISCOVER=true" - "GETH_STATE_SCHEME=path" - "GETH_DB_ENGINE=pebble" - "P2P_PORT=34542" @@ -35,6 +33,8 @@ services: - "GETH_OVERRIDE_DELTA=1708560000" - "GETH_OVERRIDE_ECOTONE=1710374401" - "GETH_OVERRIDE_FJORD=1720627201" + - "GETH_OVERRIDE_GRANITE=1726070401" + - "GETH_OVERRIDE_HOLOCENE=1736445601" labels: - "traefik.enable=true" - "traefik.http.middlewares.mode-stripprefix.stripprefix.prefixes=/mode-mainnet" @@ -68,7 +68,6 @@ services: - .jwtsecret:/jwtsecret stop_grace_period: 30s environment: - #- "OP_NODE_NETWORK=mode-mainnet-0" - "OP_NODE_SYNCMODE=execution-layer" - "OP_NODE_L1_ETH_RPC=${MODE_MAINNET_L1_ENDPOINT}" - "OP_NODE_L2_ENGINE_AUTH_RAW=${JWTSECRET}" @@ -100,6 +99,8 @@ services: - "OP_NODE_OVERRIDE_DELTA=1708560000" - "OP_NODE_OVERRIDE_ECOTONE=1710374401" - "OP_NODE_OVERRIDE_FJORD=1720627201" + - "OP_NODE_OVERRIDE_GRANITE=1726070401" + - "OP_NODE_OVERRIDE_HOLOCENE=1736445601" networks: - chains diff --git a/op-wheel.sh b/op-wheel.sh new file mode 100755 index 00000000..025ff182 --- /dev/null +++ b/op-wheel.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +# USAGE: +# ./op-wheel.sh engine set-forkchoice --unsafe=0x111AC7F --safe=0x111AC7F --finalized=0x111AC7F --engine=http://op-lisk-sepolia:8551/ --engine.open=http://op-lisk-sepolia:8545 --engine.jwt-secret-path=/jwtsecret + +docker run -it --rm --network rpc_chains -v /root/rpc/.jwtsecret:/jwtsecret golang:latest bash -c 'git clone https://github.com/ethereum-optimism/optimism.git && cd optimism && go run ./op-wheel/cmd "$@"' -- "$@" + diff --git a/op-zircuit-mainnet.cfg b/op-zircuit-mainnet.cfg index f77e35da..6329d82f 100644 --- a/op-zircuit-mainnet.cfg +++ b/op-zircuit-mainnet.cfg @@ -11,6 +11,7 @@ - name: txpool_content - name: zirc_getQuarantineHistory - name: zirc_getQuarantined + - name: zirc_isQuarantined connection: generic: rpc: diff --git a/op-zircuit-mainnet.yml b/op-zircuit-mainnet.yml index 806e3458..8e7a1a80 100644 --- a/op-zircuit-mainnet.yml +++ b/op-zircuit-mainnet.yml @@ -1,6 +1,6 @@ services: op-zircuit-client: - image: zircuit1/l2-geth:94186328850b5def97c195a2737c1d28265ef74b + image: zircuit1/l2-geth:e81568966f2a42a57b1347fb1dffdd5257dde73a volumes: - "op-zircuit:/db" - "./zircuit/mainnet/genesis.json:/genesis.json" @@ -15,7 +15,7 @@ services: - "--rollup.disabletxpoolgossip=true" - "--http.api=eth,net,web3,debug" environment: - FORK_TRIGGER: "false" + FORK_TRIGGER: "true" ETH_STATS_ENABLED: 1 ETH_STATS_NODE: "d${DOMAIN}" ETH_STATS_SERVER: ethstats-ap.mainnet.zircuit.com @@ -54,7 +54,7 @@ services: op-zircuit-node: depends_on: - op-zircuit-client - image: zircuit1/op-node:94186328850b5def97c195a2737c1d28265ef74b + image: zircuit1/op-node:e81568966f2a42a57b1347fb1dffdd5257dde73a ports: - "43778:43778" - "43778:43778/udp" diff --git a/op-zircuit-testnet.cfg b/op-zircuit-testnet.cfg new file mode 100644 index 00000000..6329d82f --- /dev/null +++ b/op-zircuit-testnet.cfg @@ -0,0 +1,22 @@ + - id: ${ID} + chain: ${CHAIN} + labels: + provider: ${PROVIDER} + method-groups: + enabled: + - debug + - filter + methods: + enabled: + - name: txpool_content + - name: zirc_getQuarantineHistory + - name: zirc_getQuarantined + - name: zirc_isQuarantined + connection: + generic: + rpc: + url: "${RPC_URL}" + ws: + frameSize: 20Mb + msgSize: 50Mb + url: "${WS_URL}" diff --git a/op-zircuit-testnet.yml b/op-zircuit-testnet.yml index 91814268..aa62411a 100644 --- a/op-zircuit-testnet.yml +++ b/op-zircuit-testnet.yml @@ -1,6 +1,6 @@ services: op-zircuit-testnet-client: - image: zircuit1/l2-geth:${ZIRCUIT_TESTNET_VERSION:-8ea4db5d6e952f63c2912d2794bbfd8eda55f471} + image: zircuit1/l2-geth:${ZIRCUIT_TESTNET_VERSION:-e81568966f2a42a57b1347fb1dffdd5257dde73a} volumes: - "op-zircuit-testnet:/db" - "./zircuit/testnet/genesis.json:/genesis.json" @@ -53,7 +53,7 @@ services: op-zircuit-testnet-node: depends_on: - op-zircuit-testnet-client - image: zircuit1/op-node:${ZIRCUIT_TESTNET_VERSION:-8ea4db5d6e952f63c2912d2794bbfd8eda55f471} + image: zircuit1/op-node:${ZIRCUIT_TESTNET_VERSION:-e81568966f2a42a57b1347fb1dffdd5257dde73a} ports: - "20209:20209" - "20209:20209/udp" diff --git a/show-status.sh b/show-status.sh index 363e988a..c5a36700 100755 --- a/show-status.sh +++ b/show-status.sh @@ -1,3 +1,4 @@ + #!/bin/bash BASEPATH="$(dirname "$0")" @@ -7,39 +8,41 @@ IFS=':' read -ra parts <<< $COMPOSE_FILE blacklist=("drpc.yml" "drpc-free.yml" "base.yml" "rpc.yml" "monitoring.yml" "ftp.yml" "backup-http.yml") +# Flag to track if any invocation failed +any_failure=false + for part in "${parts[@]}"; do include=true for word in "${blacklist[@]}"; do - if echo "$part" | grep -qE "$word"; then - #echo "The path $path contains a blacklisted word: $word" - include=false - fi + if echo "$part" | grep -qE "$word"; then + include=false + fi done # Check if any parameters were passed if [ $# -gt 0 ]; then - # Put parameters into an array (list) - params=("$@") + # Put parameters into an array (list) + params=("$@") + + # Check if a string is part of the list + if [[ " ${params[@]} " =~ " $1 " ]]; then + include=$include # don't change anything + else + include=false + fi + fi - # Check if a string is part of the list - if [[ " ${params[@]} " =~ " ${part%.yml} " ]]; then - include=$include # don't change anything - else - include=false - fi - fi - if $include; then - result=$($BASEPATH/sync-status.sh "${part%.yml}") - #if [ "$1" = "${part%.yml}" ]; then - # echo "${result}" - # exit 0 - #else - echo "${part%.yml}: $result" - #fi + result=$($BASEPATH/sync-status.sh "${part%.yml}") + if [ $? -ne 0 ]; then + any_failure=true + fi + + echo "${part%.yml}: $result" fi done - - - +# If any invocation failed, return a failure exit code +if $any_failure; then + exit 1 +fi diff --git a/sonic.yml b/sonic.yml index 1a13a1b3..cd70de28 100644 --- a/sonic.yml +++ b/sonic.yml @@ -4,6 +4,8 @@ services: build: context: ./sonic dockerfile: Dockerfile + args: + VERSION: ${SONIC_VERSION:-v2.0.3} stop_grace_period: 3m volumes: - "sonic:/var/sonic" diff --git a/sonic/Dockerfile b/sonic/Dockerfile index fc032a78..197d31d4 100644 --- a/sonic/Dockerfile +++ b/sonic/Dockerfile @@ -7,11 +7,13 @@ FROM golang:1.22 as builder +ARG VERSION + RUN apt-get update && apt-get install -y git musl-dev make -RUN cd /go && git clone https://github.com/Fantom-foundation/Sonic.git && cd Sonic && git fetch --tags && git checkout -b v2.0.1 tags/v2.0.1 +RUN cd /go && git clone https://github.com/0xsoniclabs/sonic.git && cd sonic && git fetch --tags && git checkout -b ${VERSION} tags/${VERSION} -WORKDIR /go/Sonic +WORKDIR /go/sonic ARG GOPROXY RUN go mod download @@ -19,8 +21,8 @@ RUN make all FROM golang:1.22 -COPY --from=builder /go/Sonic/build/sonicd /usr/local/bin/ -COPY --from=builder /go/Sonic/build/sonictool /usr/local/bin/ +COPY --from=builder /go/sonic/build/sonicd /usr/local/bin/ +COPY --from=builder /go/sonic/build/sonictool /usr/local/bin/ COPY ./entrypoint.sh /entrypoint.sh diff --git a/thundercore/mainnet/override.yaml b/thundercore/mainnet/override.yaml index a9e695d1..f4f5aa56 100644 --- a/thundercore/mainnet/override.yaml +++ b/thundercore/mainnet/override.yaml @@ -33,7 +33,7 @@ rpc: - net - web3 maxDelayBlock: 120 - suspendBuffer: 60s + suspendBuffer: 31622400s logs: blockRange: -1 logRequests: True @@ -65,4 +65,4 @@ profiling: port: 9998 resourceMonitor: enable: true - interval: 10s \ No newline at end of file + interval: 10s diff --git a/zircuit/mainnet/genesis.json b/zircuit/mainnet/genesis.json index 9ba81784..ab72a746 100644 --- a/zircuit/mainnet/genesis.json +++ b/zircuit/mainnet/genesis.json @@ -20,6 +20,8 @@ "regolithTime": 0, "canyonTime": 0, "ecotoneTime": 0, + "monoFeeBlock": 10895293, + "cancunTime": 1741726801, "terminalTotalDifficulty": 0, "terminalTotalDifficultyPassed": true, "optimism": { @@ -15324,5 +15326,4 @@ "baseFeePerGas": "0x3b9aca00", "excessBlobGas": null, "blobGasUsed": null -} - +} \ No newline at end of file diff --git a/zircuit/mainnet/rollup.json b/zircuit/mainnet/rollup.json index cc5b3ee4..8dfaf98d 100644 --- a/zircuit/mainnet/rollup.json +++ b/zircuit/mainnet/rollup.json @@ -26,9 +26,11 @@ "canyon_time": 0, "delta_time": 0, "ecotone_time": 0, + "hyrax_time": 1741726801, + "l2cancun_time": 1741726801, + "prevrandao_disabling_time": 1741726801, "batch_inbox_address": "0xff00000000000000000000000000000000048900", "deposit_contract_address": "0x17bfafa932d2e23bd9b909fd5b4d2e2a27043fb1", "l1_system_config_address": "0x30f82a1ca89226e8b8815d6ebb728e3b18a428ff", "protocol_versions_address": "0x0000000000000000000000000000000000000000" -} - +} \ No newline at end of file diff --git a/zircuit/testnet/genesis.json b/zircuit/testnet/genesis.json old mode 100755 new mode 100644 index 429eda63..9840ad51 --- a/zircuit/testnet/genesis.json +++ b/zircuit/testnet/genesis.json @@ -29,7 +29,9 @@ }, "canyonTime": 1711297396, "shanghaiTime": 1711297396, - "ecotoneTime": 1720008000 + "ecotoneTime": 1720008000, + "monoFeeBlock": 20829888, + "cancunTime": 1741557600 }, "nonce": "0x0", "timestamp": "0x655261e0", diff --git a/zircuit/testnet/rollup.json b/zircuit/testnet/rollup.json index 01254894..e3ec24b9 100644 --- a/zircuit/testnet/rollup.json +++ b/zircuit/testnet/rollup.json @@ -29,5 +29,8 @@ "canyon_time": 1711297396, "delta_time": 1720008000, "ecotone_time": 1720008000, - "protocol_versions_address": "0x0000000000000000000000000000000000000000" + "protocol_versions_address": "0x0000000000000000000000000000000000000000", + "hyrax_time": 1741557600, + "l2cancun_time": 1741557600, + "prevrandao_disabling_time": 1741557600 }