From 4ddaa6d17c60b1c4f43da4140775e083e08c9f23 Mon Sep 17 00:00:00 2001 From: Nazar Hussain Date: Fri, 3 May 2024 06:18:41 +0200 Subject: [PATCH 01/12] Upgrade node js version to 22 --- .github/actions/dotenv/action.yml | 2 +- .github/workflows/benchmark.yml | 2 +- .github/workflows/binaries.yml | 2 +- .github/workflows/docs-check.yml | 2 +- .github/workflows/docs.yml | 2 +- .github/workflows/publish-dev.yml | 2 +- .github/workflows/publish-rc.yml | 2 +- .github/workflows/publish-stable.yml | 2 +- .github/workflows/test-sim-merge.yml | 2 +- .github/workflows/test-sim.yml | 12 ++++++------ .github/workflows/test.yml | 14 +++++++------- package.json | 4 ++-- packages/api/README.md | 2 +- 13 files changed, 25 insertions(+), 25 deletions(-) diff --git a/.github/actions/dotenv/action.yml b/.github/actions/dotenv/action.yml index 88c0f80b02d3..3e83d43dd0e7 100644 --- a/.github/actions/dotenv/action.yml +++ b/.github/actions/dotenv/action.yml @@ -1,5 +1,5 @@ name: "Setup env variables using .env file" description: "Load .env file from root of repo and setup for CI runner" runs: - using: "node20" + using: "node22" main: index.js diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index fe09230dc121..0240d5bd3d67 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -39,7 +39,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: - node-version: 20 + node-version: 22 check-latest: true cache: yarn - name: Node.js version diff --git a/.github/workflows/binaries.yml b/.github/workflows/binaries.yml index 83bd63caf54b..9d4e9de62647 100644 --- a/.github/workflows/binaries.yml +++ b/.github/workflows/binaries.yml @@ -42,7 +42,7 @@ jobs: sudo apt-get install -y build-essential - uses: "./.github/actions/setup-and-build" with: - node: 20 + node: 22 - run: | mkdir -p dist yarn global add caxa@3.0.1 diff --git a/.github/workflows/docs-check.yml b/.github/workflows/docs-check.yml index 0df75cdf8ab2..bd3584631407 100644 --- a/.github/workflows/docs-check.yml +++ b/.github/workflows/docs-check.yml @@ -19,7 +19,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: - node-version: 20 + node-version: 22 cache: yarn - name: Node.js version id: node diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 61a9f0eba3d1..b8f4e7b95eb0 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -31,7 +31,7 @@ jobs: - uses: actions/setup-node@v4 with: - node-version: 20 + node-version: 22 check-latest: true cache: yarn diff --git a/.github/workflows/publish-dev.yml b/.github/workflows/publish-dev.yml index af49dbdfb689..1a2cb721956c 100644 --- a/.github/workflows/publish-dev.yml +++ b/.github/workflows/publish-dev.yml @@ -23,7 +23,7 @@ jobs: fetch-depth: 0 - uses: actions/setup-node@v4 with: - node-version: 20 + node-version: 22 registry-url: "https://registry.npmjs.org" check-latest: true cache: yarn diff --git a/.github/workflows/publish-rc.yml b/.github/workflows/publish-rc.yml index 7132ce19404b..35831822bcdc 100644 --- a/.github/workflows/publish-rc.yml +++ b/.github/workflows/publish-rc.yml @@ -61,7 +61,7 @@ jobs: - uses: "./.github/actions/setup-and-build" with: - node: 20 + node: 22 - name: Generate changelog run: node scripts/generate_changelog.mjs ${{ needs.tag.outputs.prev_tag }} ${{ needs.tag.outputs.tag }} CHANGELOG.md diff --git a/.github/workflows/publish-stable.yml b/.github/workflows/publish-stable.yml index dc5018cd2cb4..741c060e4d20 100644 --- a/.github/workflows/publish-stable.yml +++ b/.github/workflows/publish-stable.yml @@ -67,7 +67,7 @@ jobs: - uses: "./.github/actions/setup-and-build" with: - node: 20 + node: 22 - name: Generate changelog run: node scripts/generate_changelog.mjs ${{ needs.tag.outputs.prev_tag }} ${{ needs.tag.outputs.tag }} CHANGELOG.md diff --git a/.github/workflows/test-sim-merge.yml b/.github/workflows/test-sim-merge.yml index 372da40ce9c9..bc30a4a10cdb 100644 --- a/.github/workflows/test-sim-merge.yml +++ b/.github/workflows/test-sim-merge.yml @@ -36,7 +36,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: - node-version: 20 + node-version: 22 check-latest: true cache: yarn - name: Node.js version diff --git a/.github/workflows/test-sim.yml b/.github/workflows/test-sim.yml index b5018284e4bd..774eca662279 100644 --- a/.github/workflows/test-sim.yml +++ b/.github/workflows/test-sim.yml @@ -37,7 +37,7 @@ jobs: - uses: actions/checkout@v4 - uses: "./.github/actions/setup-and-build" with: - node: 20 + node: 22 sim-test-multifork: name: Multifork sim test @@ -48,7 +48,7 @@ jobs: - uses: actions/checkout@v4 - uses: "./.github/actions/setup-and-build" with: - node: 20 + node: 22 - name: Load env variables uses: ./.github/actions/dotenv - name: Download required docker images before running tests @@ -77,7 +77,7 @@ jobs: - uses: actions/checkout@v4 - uses: "./.github/actions/setup-and-build" with: - node: 20 + node: 22 - name: Load env variables uses: ./.github/actions/dotenv - name: Download required docker images before running tests @@ -106,7 +106,7 @@ jobs: - uses: actions/checkout@v4 - uses: "./.github/actions/setup-and-build" with: - node: 20 + node: 22 - name: Load env variables uses: ./.github/actions/dotenv - name: Download required docker images before running tests @@ -135,7 +135,7 @@ jobs: - uses: actions/checkout@v4 - uses: "./.github/actions/setup-and-build" with: - node: 20 + node: 22 - name: Load env variables uses: ./.github/actions/dotenv - name: Download required docker images before running tests @@ -164,7 +164,7 @@ jobs: - uses: actions/checkout@v4 - uses: "./.github/actions/setup-and-build" with: - node: 20 + node: 22 - name: Load env variables uses: ./.github/actions/dotenv - name: Download required docker images before running tests diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index b89cfe6ed489..8d2a5716ff1d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -23,7 +23,7 @@ jobs: strategy: fail-fast: false matrix: - node: [20] + node: [22] steps: # - Uses YAML anchors in the future - uses: actions/checkout@v4 @@ -46,7 +46,7 @@ jobs: strategy: fail-fast: false matrix: - node: [20] + node: [22] steps: - uses: actions/checkout@v4 - uses: "./.github/actions/setup-and-build" @@ -78,7 +78,7 @@ jobs: strategy: fail-fast: false matrix: - node: [20] + node: [22] steps: - uses: actions/checkout@v4 @@ -99,7 +99,7 @@ jobs: strategy: fail-fast: false matrix: - node: [20] + node: [22] steps: - uses: actions/checkout@v4 - uses: "./.github/actions/setup-and-build" @@ -138,7 +138,7 @@ jobs: strategy: fail-fast: false matrix: - node: [20] + node: [22] steps: # - Uses YAML anchors in the future - uses: actions/checkout@v4 @@ -175,7 +175,7 @@ jobs: strategy: fail-fast: false matrix: - node: [20] + node: [22] steps: # - Uses YAML anchors in the future - uses: actions/checkout@v4 @@ -199,7 +199,7 @@ jobs: strategy: fail-fast: false matrix: - node: [20] + node: [22] steps: - uses: actions/checkout@v4 - uses: "./.github/actions/setup-and-build" diff --git a/package.json b/package.json index b16056f4e82f..3f25b84fee56 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "root", "private": true, "engines": { - "node": ">=20.1.0 <21" + "node": ">=22.0.0 <23" }, "workspaces": [ "packages/*" @@ -48,7 +48,7 @@ "@chainsafe/eslint-plugin-node": "^11.2.3", "@dapplion/benchmark": "^0.2.4", "@types/mocha": "^10.0.6", - "@types/node": "^20.11.28", + "@types/node": "^20.12.8", "@typescript-eslint/eslint-plugin": "^7.2.0", "@typescript-eslint/parser": "^7.2.0", "@vitest/coverage-v8": "^1.5.3", diff --git a/packages/api/README.md b/packages/api/README.md index 16596e91b316..39d7098d60ce 100644 --- a/packages/api/README.md +++ b/packages/api/README.md @@ -3,7 +3,7 @@ [![Discord](https://img.shields.io/discord/593655374469660673.svg?label=Discord&logo=discord)](https://discord.gg/aMxzVcr) [![ETH Beacon APIs Spec v2.1.0](https://img.shields.io/badge/ETH%20beacon--APIs-2.1.0-blue)](https://github.com/ethereum/beacon-APIs/releases/tag/v2.1.0) ![ES Version](https://img.shields.io/badge/ES-2021-yellow) -![Node Version](https://img.shields.io/badge/node-20.x-green) +![Node Version](https://img.shields.io/badge/node-22.x-green) > This package is part of [ChainSafe's Lodestar](https://lodestar.chainsafe.io) project From 5f8c97ccbdbe487396efde3ea7ff886db62a4172 Mon Sep 17 00:00:00 2001 From: Nazar Hussain Date: Fri, 3 May 2024 06:31:44 +0200 Subject: [PATCH 02/12] Update node types --- yarn.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/yarn.lock b/yarn.lock index b27b4382b397..3a17624cc397 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3023,10 +3023,10 @@ dependencies: undici-types "~5.26.4" -"@types/node@^20.11.28": - version "20.11.28" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.28.tgz#4fd5b2daff2e580c12316e457473d68f15ee6f66" - integrity sha512-M/GPWVS2wLkSkNHVeLkrF2fD5Lx5UC4PxA0uZcKc6QqbIQUJyW1jVjueJYi1z8n0I5PxYrtpnPnWglE+y9A0KA== +"@types/node@^20.12.8": + version "20.12.8" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.12.8.tgz#35897bf2bfe3469847ab04634636de09552e8256" + integrity sha512-NU0rJLJnshZWdE/097cdCBbyW1h4hEg0xpovcoAQYHl8dnEyp/NAOiE45pvc+Bd1Dt+2r94v2eGFpQJ4R7g+2w== dependencies: undici-types "~5.26.4" From 94f5991109b9c9b1759e05831f966691a7eb6f02 Mon Sep 17 00:00:00 2001 From: Nazar Hussain Date: Fri, 3 May 2024 06:36:57 +0200 Subject: [PATCH 03/12] Revert action config --- .github/actions/dotenv/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/dotenv/action.yml b/.github/actions/dotenv/action.yml index 3e83d43dd0e7..88c0f80b02d3 100644 --- a/.github/actions/dotenv/action.yml +++ b/.github/actions/dotenv/action.yml @@ -1,5 +1,5 @@ name: "Setup env variables using .env file" description: "Load .env file from root of repo and setup for CI runner" runs: - using: "node22" + using: "node20" main: index.js From f787ca42721ab7c3749bf44f2b4b097f08b6e7a9 Mon Sep 17 00:00:00 2001 From: Nazar Hussain Date: Fri, 3 May 2024 06:54:30 +0200 Subject: [PATCH 04/12] Add package from git hash --- package.json | 3 ++- yarn.lock | 12 ++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 3f25b84fee56..7150f6fc923a 100644 --- a/package.json +++ b/package.json @@ -91,6 +91,7 @@ "@puppeteer/browsers": "^2.1.0", "dns-over-http-resolver": "^2.1.1", "loupe": "^2.3.6", - "vite": "^5.2.10" + "vite": "^5.2.10", + "testcontainers/**/cpu-features": "git+ssh://git@github.com/mscdex/cpu-features.git#76160ec" } } diff --git a/yarn.lock b/yarn.lock index 3a17624cc397..5e1ee8b2a46d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5169,6 +5169,13 @@ cosmiconfig@^8.2.0: parse-json "^5.2.0" path-type "^4.0.0" +"cpu-features@git+ssh://git@github.com/mscdex/cpu-features.git#76160ec": + version "0.0.9" + resolved "git+ssh://git@github.com/mscdex/cpu-features.git#76160ec84ab617ed28be5c5d43c9edce630bad00" + dependencies: + buildcheck "~0.0.6" + nan "^2.19.0" + cpu-features@~0.0.4: version "0.0.8" resolved "https://registry.yarnpkg.com/cpu-features/-/cpu-features-0.0.8.tgz#a2d464b023b8ad09004c8cdca23b33f192f63546" @@ -9490,6 +9497,11 @@ nan@^2.16.0, nan@^2.17.0: resolved "https://registry.yarnpkg.com/nan/-/nan-2.17.0.tgz#c0150a2368a182f033e9aa5195ec76ea41a199cb" integrity sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ== +nan@^2.19.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.19.0.tgz#bb58122ad55a6c5bc973303908d5b16cfdd5a8c0" + integrity sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw== + nanoid@3.3.3: version "3.3.3" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25" From cc2d80ee561302b015f38cf7dcdbe8f808e12a22 Mon Sep 17 00:00:00 2001 From: Nazar Hussain Date: Fri, 3 May 2024 17:17:39 +0200 Subject: [PATCH 05/12] Fix the build error --- package.json | 2 +- yarn.lock | 14 +------------- 2 files changed, 2 insertions(+), 14 deletions(-) diff --git a/package.json b/package.json index 7150f6fc923a..9b37f8013872 100644 --- a/package.json +++ b/package.json @@ -92,6 +92,6 @@ "dns-over-http-resolver": "^2.1.1", "loupe": "^2.3.6", "vite": "^5.2.10", - "testcontainers/**/cpu-features": "git+ssh://git@github.com/mscdex/cpu-features.git#76160ec" + "testcontainers/**/nan": "^2.19.0" } } diff --git a/yarn.lock b/yarn.lock index 5e1ee8b2a46d..b4f83661e957 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5169,13 +5169,6 @@ cosmiconfig@^8.2.0: parse-json "^5.2.0" path-type "^4.0.0" -"cpu-features@git+ssh://git@github.com/mscdex/cpu-features.git#76160ec": - version "0.0.9" - resolved "git+ssh://git@github.com/mscdex/cpu-features.git#76160ec84ab617ed28be5c5d43c9edce630bad00" - dependencies: - buildcheck "~0.0.6" - nan "^2.19.0" - cpu-features@~0.0.4: version "0.0.8" resolved "https://registry.yarnpkg.com/cpu-features/-/cpu-features-0.0.8.tgz#a2d464b023b8ad09004c8cdca23b33f192f63546" @@ -9492,12 +9485,7 @@ n12@0.4.0: resolved "https://registry.yarnpkg.com/n12/-/n12-0.4.0.tgz#363058560b435e6857b5e039ed5eab08c5122e5e" integrity sha512-p/hj4zQ8d3pbbFLQuN1K9honUxiDDhueOWyFLw/XgBv+wZCE44bcLH4CIcsolOceJQduh4Jf7m/LfaTxyGmGtQ== -nan@^2.16.0, nan@^2.17.0: - version "2.17.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.17.0.tgz#c0150a2368a182f033e9aa5195ec76ea41a199cb" - integrity sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ== - -nan@^2.19.0: +nan@^2.16.0, nan@^2.17.0, nan@^2.19.0: version "2.19.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.19.0.tgz#bb58122ad55a6c5bc973303908d5b16cfdd5a8c0" integrity sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw== From 938fa891579074065fa1fa2e89c8462df2acbd11 Mon Sep 17 00:00:00 2001 From: Nazar Hussain Date: Tue, 7 May 2024 16:50:45 +0200 Subject: [PATCH 06/12] Update the docs for node-22 --- .devcontainer/devcontainer.json | 2 ++ README.md | 2 +- docs/pages/getting-started/installation.md | 2 +- docs/pages/tools/core-dumps.md | 4 ++-- docs/pages/tools/heap-dumps.md | 2 +- packages/beacon-node/README.md | 2 +- packages/params/README.md | 2 +- packages/prover/README.md | 2 +- packages/reqresp/README.md | 2 +- packages/types/README.md | 2 +- packages/validator/README.md | 2 +- 11 files changed, 13 insertions(+), 11 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 64937957191c..72af86de75bd 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -3,6 +3,8 @@ { "name": "Node.js & TypeScript", // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile + // Upgrade the container to Node 22 + // https://github.com/ChainSafe/lodestar/issues/6742 "image": "mcr.microsoft.com/devcontainers/typescript-node:1-20-bullseye", "features": { "ghcr.io/devcontainers/features/python:1": {} diff --git a/README.md b/README.md index be74ef7d9500..8546a467f404 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ [![Docker Image Version (latest by date)](https://img.shields.io/docker/v/chainsafe/lodestar?color=blue&label=Docker&sort=semver)](https://hub.docker.com/r/chainsafe/lodestar) [![Eth Consensus Spec v1.4.0](https://img.shields.io/badge/ETH%20consensus--spec-1.4.0-blue)](https://github.com/ethereum/consensus-specs/releases/tag/v1.4.0) ![ES Version](https://img.shields.io/badge/ES-2021-yellow) -![Node Version](https://img.shields.io/badge/node-20.x-green) +![Node Version](https://img.shields.io/badge/node-22.x-green) [![codecov](https://codecov.io/gh/ChainSafe/lodestar/graph/badge.svg)](https://codecov.io/gh/ChainSafe/lodestar) [![gitpoap badge](https://public-api.gitpoap.io/v1/repo/ChainSafe/lodestar/badge)](https://www.gitpoap.io/gh/ChainSafe/lodestar) diff --git a/docs/pages/getting-started/installation.md b/docs/pages/getting-started/installation.md index 7630f031dda0..96dfea7f9851 100644 --- a/docs/pages/getting-started/installation.md +++ b/docs/pages/getting-started/installation.md @@ -32,7 +32,7 @@ Docker is the recommended setup for Lodestar. Use our [Lodestar Quickstart scrip ### Prerequisites -Make sure to have [Yarn installed](https://classic.yarnpkg.com/en/docs/install). It is also recommended to [install NVM (Node Version Manager)](https://github.com/nvm-sh/nvm) and use the LTS version (currently v20) of [NodeJS](https://nodejs.org/en/). +Make sure to have [Yarn installed](https://classic.yarnpkg.com/en/docs/install). It is also recommended to [install NVM (Node Version Manager)](https://github.com/nvm-sh/nvm) and use the LTS version (currently v22) of [NodeJS](https://nodejs.org/en/). :::info NodeJS versions older than the current LTS are not supported by Lodestar. We recommend running the latest Node LTS. diff --git a/docs/pages/tools/core-dumps.md b/docs/pages/tools/core-dumps.md index 21f2e6a08f58..519e018e7ca5 100644 --- a/docs/pages/tools/core-dumps.md +++ b/docs/pages/tools/core-dumps.md @@ -30,7 +30,7 @@ $ which llvm-config /opt/homebrew/opt/llvm/bin/llvm-config # if this is not what comes up restart the shell $ npm install -g llnode $ llnode -(lldb) plugin load '/Users/ninja_user/.nvm/versions/node/v20.5.1/lib/node_modules/llnode/llnode.dylib' +(lldb) plugin load '/Users/ninja_user/.nvm/versions/node/v22.1.0/lib/node_modules/llnode/llnode.dylib' (lldb) settings set prompt '(llnode) ' (llnode) ``` @@ -58,7 +58,7 @@ Once you collect the core dump you can load it into `llnode` for debugging. $ llnode -f /path/to/node_debug -c /Users/ninja_user/coredumps/node.coredump (lldb) target create "node_debug" --core "node.coredump" Core file '/Users/ninja_user/coredumps/node.coredump' (x86_64) was loaded. -(lldb) plugin load '/Users/ninja_user/.nvm/versions/node/v20.5.1/lib/node_modules/llnode/llnode.dylib' +(lldb) plugin load '/Users/ninja_user/.nvm/versions/node/v22.1.0/lib/node_modules/llnode/llnode.dylib' (lldb) settings set prompt '(llnode) ' (llnode) ``` diff --git a/docs/pages/tools/heap-dumps.md b/docs/pages/tools/heap-dumps.md index 7e6bcfeda667..97f2be51dfac 100644 --- a/docs/pages/tools/heap-dumps.md +++ b/docs/pages/tools/heap-dumps.md @@ -105,7 +105,7 @@ $ git clone https://github.com/nodejs/node.git $ cd node # Use whichever version of node you prefer -$ git checkout v20.10.0 +$ git checkout v22.1.0 $ ./configure --debug # This command only builds the debug version of node and assumes diff --git a/packages/beacon-node/README.md b/packages/beacon-node/README.md index 4406973f3c1e..92e3f38787b7 100644 --- a/packages/beacon-node/README.md +++ b/packages/beacon-node/README.md @@ -3,7 +3,7 @@ [![Discord](https://img.shields.io/discord/593655374469660673.svg?label=Discord&logo=discord)](https://discord.gg/aMxzVcr) [![Eth Consensus Spec v1.4.0](https://img.shields.io/badge/ETH%20consensus--spec-1.4.0-blue)](https://github.com/ethereum/consensus-specs/releases/tag/v1.4.0) ![ES Version](https://img.shields.io/badge/ES-2021-yellow) -![Node Version](https://img.shields.io/badge/node-20.x-green) +![Node Version](https://img.shields.io/badge/node-22.x-green) > This package is part of [ChainSafe's Lodestar](https://lodestar.chainsafe.io) project diff --git a/packages/params/README.md b/packages/params/README.md index 5be334f7bc1c..730b27276f09 100644 --- a/packages/params/README.md +++ b/packages/params/README.md @@ -4,7 +4,7 @@ [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![Eth Consensus Spec v1.4.0](https://img.shields.io/badge/ETH%20consensus--spec-1.4.0-blue)](https://github.com/ethereum/consensus-specs/releases/tag/v1.4.0) ![ES Version](https://img.shields.io/badge/ES-2021-yellow) -![Node Version](https://img.shields.io/badge/node-20.x-green) +![Node Version](https://img.shields.io/badge/node-22.x-green) > This package is part of [ChainSafe's Lodestar](https://lodestar.chainsafe.io) project diff --git a/packages/prover/README.md b/packages/prover/README.md index 8d43fd861473..1c47a7b9790c 100644 --- a/packages/prover/README.md +++ b/packages/prover/README.md @@ -3,7 +3,7 @@ [![Discord](https://img.shields.io/discord/593655374469660673.svg?label=Discord&logo=discord)](https://discord.gg/aMxzVcr) [![ETH Beacon APIs Spec v2.1.0](https://img.shields.io/badge/ETH%20beacon--APIs-2.1.0-blue)](https://github.com/ethereum/beacon-APIs/releases/tag/v2.1.0) ![ES Version](https://img.shields.io/badge/ES-2021-yellow) -![Node Version](https://img.shields.io/badge/node-20.x-green) +![Node Version](https://img.shields.io/badge/node-22.x-green) > This package is part of [ChainSafe's Lodestar](https://lodestar.chainsafe.io) project diff --git a/packages/reqresp/README.md b/packages/reqresp/README.md index 8298a15187ad..dbfbf304c541 100644 --- a/packages/reqresp/README.md +++ b/packages/reqresp/README.md @@ -3,7 +3,7 @@ [![Discord](https://img.shields.io/discord/593655374469660673.svg?label=Discord&logo=discord)](https://discord.gg/aMxzVcr) [![ETH Beacon APIs Spec v2.1.0](https://img.shields.io/badge/ETH%20beacon--APIs-2.1.0-blue)](https://github.com/ethereum/beacon-APIs/releases/tag/v2.1.0) ![ES Version](https://img.shields.io/badge/ES-2021-yellow) -![Node Version](https://img.shields.io/badge/node-20.x-green) +![Node Version](https://img.shields.io/badge/node-22.x-green) > This package is part of [ChainSafe's Lodestar](https://lodestar.chainsafe.io) project diff --git a/packages/types/README.md b/packages/types/README.md index 500b75225b8f..749f93321d39 100644 --- a/packages/types/README.md +++ b/packages/types/README.md @@ -4,7 +4,7 @@ [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![Eth Consensus Spec v1.4.0](https://img.shields.io/badge/ETH%20consensus--spec-1.4.0-blue)](https://github.com/ethereum/consensus-specs/releases/tag/v1.4.0) ![ES Version](https://img.shields.io/badge/ES-2021-yellow) -![Node Version](https://img.shields.io/badge/node-20.x-green) +![Node Version](https://img.shields.io/badge/node-22.x-green) > This package is part of [ChainSafe's Lodestar](https://lodestar.chainsafe.io) project diff --git a/packages/validator/README.md b/packages/validator/README.md index a7232549f76c..b29972acf8ac 100644 --- a/packages/validator/README.md +++ b/packages/validator/README.md @@ -3,7 +3,7 @@ [![Discord](https://img.shields.io/discord/593655374469660673.svg?label=Discord&logo=discord)](https://discord.gg/aMxzVcr) [![Eth Consensus Spec v1.4.0](https://img.shields.io/badge/ETH%20consensus--spec-1.4.0-blue)](https://github.com/ethereum/consensus-specs/releases/tag/v1.4.0) ![ES Version](https://img.shields.io/badge/ES-2021-yellow) -![Node Version](https://img.shields.io/badge/node-20.x-green) +![Node Version](https://img.shields.io/badge/node-22.x-green) > This package is part of [ChainSafe's Lodestar](https://lodestar.chainsafe.io) project From 90d170444ee0e16ae2d44705c93c2c61ca3a7144 Mon Sep 17 00:00:00 2001 From: Nazar Hussain Date: Tue, 7 May 2024 16:55:26 +0200 Subject: [PATCH 07/12] Update docker version for Nodejs to 22 --- Dockerfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index a9e597c2fb9f..2520c12d037b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ # --platform=$BUILDPLATFORM is used build javascript source with host arch # Otherwise TS builds on emulated archs and can be extremely slow (+1h) -FROM --platform=${BUILDPLATFORM:-amd64} node:20-alpine as build_src +FROM --platform=${BUILDPLATFORM:-amd64} node:22-alpine as build_src ARG COMMIT WORKDIR /usr/app RUN apk update && apk add --no-cache g++ make python3 && rm -rf /var/cache/apk/* @@ -21,7 +21,7 @@ RUN cd packages/cli && GIT_COMMIT=${COMMIT} yarn write-git-data # Copy built src + node_modules to build native packages for archs different than host. # Note: This step is redundant for the host arch -FROM node:20-alpine as build_deps +FROM node:22-alpine as build_deps WORKDIR /usr/app RUN apk update && apk add --no-cache g++ make python3 && rm -rf /var/cache/apk/* @@ -35,7 +35,7 @@ RUN cd node_modules/classic-level && yarn rebuild # Copy built src + node_modules to a new layer to prune unnecessary fs # Previous layer weights 7.25GB, while this final 488MB (as of Oct 2020) -FROM node:20-alpine +FROM node:22-alpine WORKDIR /usr/app COPY --from=build_deps /usr/app . From a813d48b60ea2af699c685da115433314e77a3f8 Mon Sep 17 00:00:00 2001 From: Cayman Date: Thu, 23 May 2024 15:50:45 -0400 Subject: [PATCH 08/12] Update package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 7e2b3f897989..e262f5ef36fa 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "root", "private": true, "engines": { - "node": ">=22.0.0 <23" + "node": ">=20.1.0 <23" }, "workspaces": [ "packages/*" From 7df13a71db58df1490e9de8af8567e825b6c8d23 Mon Sep 17 00:00:00 2001 From: Cayman Date: Fri, 24 May 2024 09:14:53 -0400 Subject: [PATCH 09/12] Update package.json Co-authored-by: Nico Flaig --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index e262f5ef36fa..4bd777f5c0cb 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "root", "private": true, "engines": { - "node": ">=20.1.0 <23" + "node": ">=20.1.0 <21 || >=22 <23" }, "workspaces": [ "packages/*" From fb1983f6b7947d4d943042830c5f1193b9a752ba Mon Sep 17 00:00:00 2001 From: Nazar Hussain Date: Fri, 24 May 2024 17:59:56 +0200 Subject: [PATCH 10/12] Update readme docs --- docs/pages/getting-started/installation.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/docs/pages/getting-started/installation.md b/docs/pages/getting-started/installation.md index 96dfea7f9851..cf53916e054c 100644 --- a/docs/pages/getting-started/installation.md +++ b/docs/pages/getting-started/installation.md @@ -83,6 +83,16 @@ Lodestar should now be ready for use. See [Command Line Reference](./../reference/cli.md) for further information. +### Known Issues + +**ModuleNotFoundError: No module named 'distutils'** + +If you stump upon this issue while running Yarn, it's because Python 3.12 had removed `distutils` package. That package is required for node build tool. You can install it with following command. + +```bash +pip3 install setuptools --force-reinstall --user +``` + ## Install from NPM [not recommended] :::danger From a1f5cf535a7cc25eb41d42e6010e9173ef724cb7 Mon Sep 17 00:00:00 2001 From: Nazar Hussain Date: Fri, 24 May 2024 18:05:01 +0200 Subject: [PATCH 11/12] Add word in dictionary --- .wordlist.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/.wordlist.txt b/.wordlist.txt index 3af9d860c6d4..c5d67045b2e2 100644 --- a/.wordlist.txt +++ b/.wordlist.txt @@ -125,6 +125,7 @@ devcontainer devnet devnets devtools +distutils eg enodes enum From 422713a98a33e2c0daf143a4d5b429c727e59d68 Mon Sep 17 00:00:00 2001 From: Nazar Hussain Date: Fri, 24 May 2024 18:27:22 +0200 Subject: [PATCH 12/12] Add word in dictionary --- .wordlist.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/.wordlist.txt b/.wordlist.txt index c5d67045b2e2..5f0f71364564 100644 --- a/.wordlist.txt +++ b/.wordlist.txt @@ -62,6 +62,7 @@ Lerna MEV MacOS Metamask +ModuleNotFoundError Monorepo NPM NVM