From 6c697529819dab0a23d6d30c75a353ec066f5fef Mon Sep 17 00:00:00 2001 From: Sameer Date: Wed, 13 Nov 2024 08:57:16 +0100 Subject: [PATCH] Upgrade op node to v1.9.5 and op geth to v1.101411.1 (#46) * :arrow_up: Bump op-node to v1.9.5 and op-geth to v1.101411.1 * :whale: Do not include Lisk Sepolia hotfix by default in the Docker images * :wrench: Add support to run nodes on Lisk Sepolia --- .env | 2 +- README.md | 11 ++++++++--- docker-compose.yml | 2 +- dockerfile-lisk-sepolia.patch | 34 ++++++++++++++++++++++++++++++++++ geth/Dockerfile | 14 +++++--------- op-node-lisk-hotfix.patch | 26 ++++++++++++-------------- reth/Dockerfile | 10 +++------- 7 files changed, 64 insertions(+), 35 deletions(-) create mode 100644 dockerfile-lisk-sepolia.patch diff --git a/.env b/.env index 90f423c..5c5414d 100644 --- a/.env +++ b/.env @@ -1,2 +1,2 @@ CLIENT=${CLIENT:-geth} -HOST_DATA_DIR=./${CLIENT}-data \ No newline at end of file +HOST_DATA_DIR=./${CLIENT}-data diff --git a/README.md b/README.md index 4d371a9..f164a3d 100644 --- a/README.md +++ b/README.md @@ -53,11 +53,16 @@ cd lisk-node > - Additionally, if you have the Docker Desktop installed on your system, please make sure to set `Memory limit` to a minimum of `16 GB`.
It can be set under `Settings -> Resources -> Resource Allocation -> Memory limit`. 1. Run: -
with `op-geth`: +
**IMPORTANT**: To run the node on Lisk Sepolia, first patch the Dockerfile(s) with: + ```sh + git apply dockerfile-lisk-sepolia.patch + ``` + +
with `op-geth` execution client: ```sh docker compose up --build --detach ``` - or, with `op-reth`: + or, with `op-reth` execution client: ```sh CLIENT=reth RETH_BUILD_PROFILE=maxperf docker compose up --build --detach ``` @@ -281,4 +286,4 @@ echo Latest synced block behind by: \ $((($( date +%s )-\ $( curl -s -d '{"id":0,"jsonrpc":"2.0","method":"optimism_syncStatus"}' -H "Content-Type: application/json" http://localhost:9545 | jq -r .result.unsafe_l2.timestamp))/60)) minutes -``` \ No newline at end of file +``` diff --git a/docker-compose.yml b/docker-compose.yml index f8b62ec..5db946c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -36,4 +36,4 @@ services: env_file: # select your network here: # - .env.sepolia - - .env.mainnet \ No newline at end of file + - .env.mainnet diff --git a/dockerfile-lisk-sepolia.patch b/dockerfile-lisk-sepolia.patch new file mode 100644 index 0000000..581a80c --- /dev/null +++ b/dockerfile-lisk-sepolia.patch @@ -0,0 +1,34 @@ +diff --git a/geth/Dockerfile b/geth/Dockerfile +index 7316271..86e9a33 100644 +--- a/geth/Dockerfile ++++ b/geth/Dockerfile +@@ -9,7 +9,11 @@ RUN git clone $REPO --branch op-node/$VERSION --single-branch . && \ + git switch -c branch-$VERSION && \ + bash -c '[ "$(git rev-parse HEAD)" = "$COMMIT" ]' + +-RUN cd op-node && \ ++# Patch to handle the legacy ConfigUpdate event GAS_CONFIG_ECOTONE that shouldn't be used anymore ++# Emitted only on Lisk Sepolia from the SystemConfig contract ++COPY op-node-lisk-hotfix.patch . ++RUN git apply op-node-lisk-hotfix.patch && \ ++ cd op-node && \ + make VERSION=$VERSION op-node + + FROM golang:1.22 AS geth +diff --git a/reth/Dockerfile b/reth/Dockerfile +index 0144140..bbb833f 100644 +--- a/reth/Dockerfile ++++ b/reth/Dockerfile +@@ -9,7 +9,11 @@ RUN git clone $REPO --branch op-node/$VERSION --single-branch . && \ + git switch -c branch-$VERSION && \ + bash -c '[ "$(git rev-parse HEAD)" = "$COMMIT" ]' + +-RUN cd op-node && \ ++# Patch to handle the legacy ConfigUpdate event GAS_CONFIG_ECOTONE that shouldn't be used anymore ++# Emitted only on Lisk Sepolia from the SystemConfig contract ++COPY op-node-lisk-hotfix.patch . ++RUN git apply op-node-lisk-hotfix.patch && \ ++ cd op-node && \ + make VERSION=$VERSION op-node + + FROM rust:1.82 AS reth diff --git a/geth/Dockerfile b/geth/Dockerfile index 17abac8..7316271 100644 --- a/geth/Dockerfile +++ b/geth/Dockerfile @@ -3,17 +3,13 @@ FROM golang:1.22 AS op WORKDIR /app ENV REPO=https://github.com/ethereum-optimism/optimism.git -ENV VERSION=v1.9.4 -ENV COMMIT=2c24e652161187f3e30045eac1e176e6b53c469d +ENV VERSION=v1.9.5 +ENV COMMIT=5662448279e4fb16e073e00baeb6e458b12a59b2 RUN git clone $REPO --branch op-node/$VERSION --single-branch . && \ git switch -c branch-$VERSION && \ bash -c '[ "$(git rev-parse HEAD)" = "$COMMIT" ]' -# Patch to handle the legacy ConfigUpdate event GAS_CONFIG_ECOTONE that shouldn't be used anymore -# Emitted only on Lisk Sepolia from the SystemConfig contract -COPY op-node-lisk-hotfix.patch . -RUN git apply op-node-lisk-hotfix.patch && \ - cd op-node && \ +RUN cd op-node && \ make VERSION=$VERSION op-node FROM golang:1.22 AS geth @@ -21,8 +17,8 @@ FROM golang:1.22 AS geth WORKDIR /app ENV REPO=https://github.com/ethereum-optimism/op-geth.git -ENV VERSION=v1.101411.0 -ENV COMMIT=d5a96613c22bc46238a21d6c0f805399c26c9d4c +ENV VERSION=v1.101411.1 +ENV COMMIT=4539f2d3a77f14bdad362c24e3773dc6aad87d5b RUN git clone $REPO --branch $VERSION --single-branch . && \ git switch -c branch-$VERSION && \ bash -c '[ "$(git rev-parse HEAD)" = "$COMMIT" ]' diff --git a/op-node-lisk-hotfix.patch b/op-node-lisk-hotfix.patch index 314a1ab..c6d19d0 100644 --- a/op-node-lisk-hotfix.patch +++ b/op-node-lisk-hotfix.patch @@ -1,26 +1,24 @@ -Index: op-node/rollup/derive/system_config.go -IDEA additional info: -Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP -<+>UTF-8 -=================================================================== diff --git a/op-node/rollup/derive/system_config.go b/op-node/rollup/derive/system_config.go ---- a/op-node/rollup/derive/system_config.go (revision 7283eb987be7b4413ae5b3088f83aa6a7b83c119) -+++ b/op-node/rollup/derive/system_config.go (revision 9720ac43f8564a80866c12c7c6fd1e60986ff98e) -@@ -21,6 +21,7 @@ - SystemConfigUpdateGasConfig = common.Hash{31: 1} +index 72c4e713c..c8141d514 100644 +--- a/op-node/rollup/derive/system_config.go ++++ b/op-node/rollup/derive/system_config.go +@@ -21,7 +21,8 @@ var ( + SystemConfigUpdateFeeScalars = common.Hash{31: 1} SystemConfigUpdateGasLimit = common.Hash{31: 2} SystemConfigUpdateUnsafeBlockSigner = common.Hash{31: 3} +- SystemConfigUpdateEIP1559Params = common.Hash{31: 4} + SystemConfigUpdateGasConfigEcotone = common.Hash{31: 4} ++ SystemConfigUpdateEIP1559Params = common.Hash{31: 5} ) - + var ( -@@ -142,6 +143,9 @@ - return nil +@@ -160,6 +161,9 @@ func ProcessSystemConfigUpdateLogEvent(destSysCfg *eth.SystemConfig, ev *types.L case SystemConfigUpdateUnsafeBlockSigner: // Ignored in derivation. This configurable applies to runtime configuration outside of the derivation. -+ return nil + return nil + case SystemConfigUpdateGasConfigEcotone: + // HOTFIX: Ignore legacy ConfigUpdate event GAS_CONFIG_ECOTONE that shouldn't be used anymore - return nil ++ return nil default: return fmt.Errorf("unrecognized L1 sysCfg update type: %s", updateType) + } diff --git a/reth/Dockerfile b/reth/Dockerfile index bbb833f..be3f871 100644 --- a/reth/Dockerfile +++ b/reth/Dockerfile @@ -3,17 +3,13 @@ FROM golang:1.22 AS op WORKDIR /app ENV REPO=https://github.com/ethereum-optimism/optimism.git -ENV VERSION=v1.9.4 -ENV COMMIT=2c24e652161187f3e30045eac1e176e6b53c469d +ENV VERSION=v1.9.5 +ENV COMMIT=5662448279e4fb16e073e00baeb6e458b12a59b2 RUN git clone $REPO --branch op-node/$VERSION --single-branch . && \ git switch -c branch-$VERSION && \ bash -c '[ "$(git rev-parse HEAD)" = "$COMMIT" ]' -# Patch to handle the legacy ConfigUpdate event GAS_CONFIG_ECOTONE that shouldn't be used anymore -# Emitted only on Lisk Sepolia from the SystemConfig contract -COPY op-node-lisk-hotfix.patch . -RUN git apply op-node-lisk-hotfix.patch && \ - cd op-node && \ +RUN cd op-node && \ make VERSION=$VERSION op-node FROM rust:1.82 AS reth