From 9cdb4bf33e4772d1f47f89fdd750c5a42e339795 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 12 Jul 2023 04:21:37 +0000 Subject: [PATCH 01/30] chore(deps): bump semver from 5.7.1 to 5.7.2 in /docs Bumps [semver](https://github.com/npm/node-semver) from 5.7.1 to 5.7.2. - [Release notes](https://github.com/npm/node-semver/releases) - [Changelog](https://github.com/npm/node-semver/blob/v5.7.2/CHANGELOG.md) - [Commits](https://github.com/npm/node-semver/compare/v5.7.1...v5.7.2) --- updated-dependencies: - dependency-name: semver dependency-type: indirect ... Signed-off-by: dependabot[bot] --- docs/package-lock.json | 144 ++++++++++++++++++++--------------------- 1 file changed, 72 insertions(+), 72 deletions(-) diff --git a/docs/package-lock.json b/docs/package-lock.json index e6ecd9a46..1b8cd540a 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -229,9 +229,9 @@ } }, "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "bin": { "semver": "bin/semver.js" } @@ -303,9 +303,9 @@ } }, "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "bin": { "semver": "bin/semver.js" } @@ -362,9 +362,9 @@ } }, "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "bin": { "semver": "bin/semver.js" } @@ -1615,9 +1615,9 @@ } }, "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "bin": { "semver": "bin/semver.js" } @@ -1827,9 +1827,9 @@ } }, "node_modules/@babel/preset-env/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "bin": { "semver": "bin/semver.js" } @@ -2982,9 +2982,9 @@ } }, "node_modules/@mdx-js/mdx/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "bin": { "semver": "bin/semver" } @@ -4192,9 +4192,9 @@ } }, "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "bin": { "semver": "bin/semver.js" } @@ -7889,9 +7889,9 @@ } }, "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "bin": { "semver": "bin/semver.js" } @@ -8517,9 +8517,9 @@ } }, "node_modules/package-json/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "bin": { "semver": "bin/semver.js" } @@ -10081,9 +10081,9 @@ } }, "node_modules/remark-mdx/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "bin": { "semver": "bin/semver" } @@ -10518,9 +10518,9 @@ } }, "node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -10543,9 +10543,9 @@ } }, "node_modules/semver-diff/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "bin": { "semver": "bin/semver.js" } @@ -12864,9 +12864,9 @@ }, "dependencies": { "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" } } }, @@ -12921,9 +12921,9 @@ }, "dependencies": { "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" } } }, @@ -12964,9 +12964,9 @@ }, "dependencies": { "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" } } }, @@ -13777,9 +13777,9 @@ }, "dependencies": { "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" } } }, @@ -13934,9 +13934,9 @@ }, "dependencies": { "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" } } }, @@ -14838,9 +14838,9 @@ } }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==" }, "source-map": { "version": "0.5.7", @@ -15782,9 +15782,9 @@ }, "dependencies": { "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" } } }, @@ -18432,9 +18432,9 @@ }, "dependencies": { "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" } } }, @@ -18866,9 +18866,9 @@ }, "dependencies": { "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" } } }, @@ -19963,9 +19963,9 @@ } }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==" }, "source-map": { "version": "0.5.7", @@ -20278,9 +20278,9 @@ } }, "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "requires": { "lru-cache": "^6.0.0" } @@ -20294,9 +20294,9 @@ }, "dependencies": { "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" } } }, From 991ab0f6c21dd9580d9ecda21d47cbb545b16fcd Mon Sep 17 00:00:00 2001 From: stdevMac Date: Mon, 24 Jul 2023 06:45:15 +0000 Subject: [PATCH 02/30] Update image versions to latest version. --- configs/client_images.yaml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/configs/client_images.yaml b/configs/client_images.yaml index 42e24be6e..d752b6875 100644 --- a/configs/client_images.yaml +++ b/configs/client_images.yaml @@ -4,36 +4,36 @@ execution: version: v1.12.0 besu: name: hyperledger/besu - version: 23.4.1 + version: 23.4.4 nethermind: name: nethermind/nethermind - version: 1.19.2 + version: 1.20.1 erigon: name: thorax/erigon - version: v2.46.0 + version: v2.48.1 consensus: lighthouse: name: sigp/lighthouse - version: v4.2.0 + version: v4.3.0 lodestar: name: chainsafe/lodestar - version: v1.9.0 + version: v1.9.2 teku: name: consensys/teku - version: 23.6.0 + version: 23.6.2 prysm: name: gcr.io/prysmaticlabs/prysm/beacon-chain - version: v4.0.6 + version: v4.0.7 validator: lighthouse: name: sigp/lighthouse - version: v4.2.0 + version: v4.3.0 lodestar: name: chainsafe/lodestar - version: v1.9.0 + version: v1.9.2 teku: name: consensys/teku - version: 23.6.0 + version: 23.6.2 prysm: name: gcr.io/prysmaticlabs/prysm/validator - version: v4.0.6 + version: v4.0.7 From caf64a3822a3cda0fb4dbc48e6509e582788210b Mon Sep 17 00:00:00 2001 From: Carlos Bermudez Porto <43155355+cbermudez97@users.noreply.github.com> Date: Mon, 24 Jul 2023 09:18:07 -0400 Subject: [PATCH 03/30] fix: Show command error when using containers tags (#300) * test: add new show command test case * fix: show command error when using containers tag * chore: update changelog --------- Co-authored-by: Marcos Antonio Maceo <35319980+stdevMac@users.noreply.github.com> --- CHANGELOG.md | 10 +- cli/actions/getContainers.go | 11 +- cli/actions/getContainers_test.go | 118 ++++++++++---- .../case_fullNodeTag/docker-compose.yml | 148 ++++++++++++++++++ 4 files changed, 248 insertions(+), 39 deletions(-) create mode 100644 cli/actions/testdata/getContainers_tests/case_fullNodeTag/docker-compose.yml diff --git a/CHANGELOG.md b/CHANGELOG.md index 1593a2d38..80d2660d9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [Unreleased] + +### Fixed + +- Fix show error when using containers tags. + ## [v1.2.0] - 2023-06-06 ### Added @@ -20,9 +26,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed - Change validator blocker container image to [busybox](https://hub.docker.com/_/busybox). -- Erigon command line flags. - -## [Unreleased] +- Erigon command line flags. ## [v1.1.0] - 2023-04-07 diff --git a/cli/actions/getContainers.go b/cli/actions/getContainers.go index fa101faed..d99e45e69 100644 --- a/cli/actions/getContainers.go +++ b/cli/actions/getContainers.go @@ -18,9 +18,11 @@ package actions import ( "context" "fmt" + "strings" "github.com/NethermindEth/sedge/internal/pkg/generate" "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/network" log "github.com/sirupsen/logrus" ) @@ -93,8 +95,13 @@ type ContainerData struct { func getContainerData(containerData types.ContainerJSON) (ContainerData, error) { data := ContainerData{} - sedgeNetwork, ok := containerData.NetworkSettings.Networks["sedge-network"] // FIXME: fix in case of network data renaming - if !ok { + var sedgeNetwork *network.EndpointSettings = nil + for networkName, networkSettings := range containerData.NetworkSettings.Networks { + if strings.HasPrefix(networkName, "sedge-network") { + sedgeNetwork = networkSettings + } + } + if sedgeNetwork == nil { return ContainerData{}, fmt.Errorf("failed to get sedge-network for container %s", containerData.Name) } diff --git a/cli/actions/getContainers_test.go b/cli/actions/getContainers_test.go index 726993a16..4b2f38e9f 100644 --- a/cli/actions/getContainers_test.go +++ b/cli/actions/getContainers_test.go @@ -20,6 +20,7 @@ import ( "errors" "os" "path/filepath" + "strings" "testing" "github.com/NethermindEth/sedge/cli/actions" @@ -65,11 +66,20 @@ type getContainersTestCase struct { logsOutput bytes.Buffer isErr bool expectedErrMsg string + containersTag string +} + +func nameWithTag( + name, + tag string, +) string { + return strings.Join([]string{name, tag}, "-") } func buildGetContainersDataTestCase( t *testing.T, - name string, + name, + containersTag, caseDataDir string, isErr bool, expectedErrMsg string, @@ -92,17 +102,23 @@ func buildGetContainersDataTestCase( getContainersDataOptions: actions.GetContainersDataOptions{ DockerComposePath: testCaseFinalDockerComposeFilePath, }, - expected: expected, - logsOutput: bytes.Buffer{}, - isErr: isErr, + expected: expected, + logsOutput: bytes.Buffer{}, + isErr: isErr, + containersTag: containersTag, } } func buildInspectResults( + containersTag, containerName, containerImage, containerIp string, ) types.ContainerJSON { + networkName := "sedge-network" // May change in templates + if containersTag != "" { + networkName = nameWithTag(networkName, containersTag) + } return types.ContainerJSON{ ContainerJSONBase: &types.ContainerJSONBase{ Name: containerName, @@ -112,7 +128,7 @@ func buildInspectResults( }, NetworkSettings: &types.NetworkSettings{ Networks: map[string]*network.EndpointSettings{ - "sedge-network": { // FIXME: fix in case of network data renaming + networkName: { IPAddress: containerIp, }, }, @@ -120,7 +136,10 @@ func buildInspectResults( } } -func getMockActions(t *testing.T) actions.SedgeActions { +func getMockActions( + t *testing.T, + tc getContainersTestCase, +) actions.SedgeActions { ctrl := gomock.NewController(t) dockerClient := sedge_mocks.NewMockAPIClient(ctrl) t.Cleanup( @@ -129,30 +148,18 @@ func getMockActions(t *testing.T) actions.SedgeActions { }, ) - // execution container - dockerClient.EXPECT().ContainerInspect(gomock.Any(), executionContainerName).Return(buildInspectResults( - executionContainerName, - executionContainerImage, - executionContainerIp, - ), nil).AnyTimes() - // consensus container - dockerClient.EXPECT().ContainerInspect(gomock.Any(), consensusContainerName).Return(buildInspectResults( - consensusContainerName, - consensusContainerImage, - consensusContainerIp, - ), nil).AnyTimes() - // validator container - dockerClient.EXPECT().ContainerInspect(gomock.Any(), validatorContainerName).Return(buildInspectResults( - validatorContainerName, - validatorContainerImage, - validatorContainerIp, - ), nil).AnyTimes() - // mev boost container - dockerClient.EXPECT().ContainerInspect(gomock.Any(), mevBoostContainerName).Return(buildInspectResults( - mevBoostContainerName, - mevBoostContainerImage, - mevBoostContainerIp, - ), nil).AnyTimes() + for _, container := range tc.expected.Containers { + dockerClient.EXPECT().ContainerInspect(gomock.Any(), container.Name).Return( + buildInspectResults( + tc.containersTag, + container.Name, + container.Image, + container.Ip, + ), + nil, + ).Times(1) + } + // not found containers dockerClient.EXPECT().ContainerInspect(gomock.Any(), executionNotFoundContainerName).Return(types.ContainerJSON{}, errors.New(executionNotFoundErrorMsg)).AnyTimes() dockerClient.EXPECT().ContainerInspect(gomock.Any(), consensusNotFoundContainerName).Return(types.ContainerJSON{}, errors.New(consensusNotFoundErrorMsg)).AnyTimes() @@ -173,6 +180,7 @@ func TestGetContainersData(t *testing.T) { buildGetContainersDataTestCase( t, "Full Node", + "", "case_fullNode", false, "", @@ -201,9 +209,42 @@ func TestGetContainersData(t *testing.T) { }, }, ), + buildGetContainersDataTestCase( + t, + "Full Node with Tags", + "tag", + "case_fullNodeTag", + false, + "", + actions.ContainersData{ + Containers: []actions.ContainerData{ + { + Name: nameWithTag(executionContainerName, "tag"), + Image: executionContainerImage, + Ip: executionContainerIp, + }, + { + Name: nameWithTag(mevBoostContainerName, "tag"), + Image: mevBoostContainerImage, + Ip: mevBoostContainerIp, + }, + { + Name: nameWithTag(consensusContainerName, "tag"), + Image: consensusContainerImage, + Ip: consensusContainerIp, + }, + { + Name: nameWithTag(validatorContainerName, "tag"), + Image: validatorContainerImage, + Ip: validatorContainerIp, + }, + }, + }, + ), buildGetContainersDataTestCase( t, "Execution Only", + "", "case_executionOnly", false, "", @@ -220,6 +261,7 @@ func TestGetContainersData(t *testing.T) { buildGetContainersDataTestCase( t, "Consensus Only", + "", "case_consensusOnly", false, "", @@ -236,6 +278,7 @@ func TestGetContainersData(t *testing.T) { buildGetContainersDataTestCase( t, "Validator Only", + "", "case_validatorOnly", false, "", @@ -252,6 +295,7 @@ func TestGetContainersData(t *testing.T) { buildGetContainersDataTestCase( t, "No Execution", + "", "case_noExecution", false, "", @@ -278,6 +322,7 @@ func TestGetContainersData(t *testing.T) { buildGetContainersDataTestCase( t, "No Consensus", + "", "case_noConsensus", false, "", @@ -304,6 +349,7 @@ func TestGetContainersData(t *testing.T) { buildGetContainersDataTestCase( t, "No Mev Boost", + "", "case_noMev", false, "", @@ -330,6 +376,7 @@ func TestGetContainersData(t *testing.T) { buildGetContainersDataTestCase( t, "No Validator", + "", "case_noValidator", false, "", @@ -356,32 +403,35 @@ func TestGetContainersData(t *testing.T) { buildGetContainersDataTestCase( t, "Execution Not Found", + "", "case_executionNF", true, executionNotFoundErrorMsg, - actions.ContainersData{Containers: []actions.ContainerData{{}}}, + actions.ContainersData{Containers: []actions.ContainerData{}}, ), buildGetContainersDataTestCase( t, "Consensus Not Found", + "", "case_consensusNF", true, consensusNotFoundErrorMsg, - actions.ContainersData{Containers: []actions.ContainerData{{}}}, + actions.ContainersData{Containers: []actions.ContainerData{}}, ), buildGetContainersDataTestCase( t, "Validator Not Found", + "", "case_validatorNF", true, validatorNotFoundErrorMsg, - actions.ContainersData{Containers: []actions.ContainerData{{}}}, + actions.ContainersData{Containers: []actions.ContainerData{}}, ), } - actions := getMockActions(t) for _, tc := range tcs { t.Run(tc.name, func(t *testing.T) { + actions := getMockActions(t, tc) log.SetOutput(&tc.logsOutput) containersData, err := actions.GetContainersData(tc.getContainersDataOptions) if tc.isErr { diff --git a/cli/actions/testdata/getContainers_tests/case_fullNodeTag/docker-compose.yml b/cli/actions/testdata/getContainers_tests/case_fullNodeTag/docker-compose.yml new file mode 100644 index 000000000..6a7703e20 --- /dev/null +++ b/cli/actions/testdata/getContainers_tests/case_fullNodeTag/docker-compose.yml @@ -0,0 +1,148 @@ +version: "3.9" +services: + execution: + stop_grace_period: 30s + container_name: sedge-execution-client-tag + restart: unless-stopped + image: ${EC_IMAGE_VERSION} + networks: + - sedge + volumes: + - ${EC_DATA_DIR}:/nethermind/data + - ${EC_JWT_SECRET_PATH}:/tmp/jwt/jwtsecret + ports: + - 30303:30303/tcp + - 30303:30303/udp + - 8008:8008 + - 8545:8545 + - 8551:8551 + expose: + - 8545 + - 8551 + command: + - --config=${NETWORK} + - --datadir=/nethermind/data + - --log=${NETHERMIND_LOG_LEVEL} + - --Sync.SnapSync=${EC_SNAP_SYNC_ENABLED} + - --JsonRpc.Enabled=true + - --JsonRpc.Host=0.0.0.0 + - --JsonRpc.Port=8545 + - --JsonRpc.EnabledModules=${EC_ENABLED_MODULES} + - --JsonRpc.JwtSecretFile=/tmp/jwt/jwtsecret + - --JsonRpc.EngineHost=0.0.0.0 + - --JsonRpc.EnginePort=8551 + - --Network.DiscoveryPort=30303 + - --Network.Bootnodes=enode://d860a01f9722d78051619d1e2351aba3f43f943f6f00718d1b9baa4101932a1f5011f16bb2b1bb35db20d6fe28fa0bf09636d26a87d31de9ec6203eeedb1f666@18.138.108.67:30303,enode://22a8232c3abc76a16ae9d6c3b164f98775fe226f0917b0ca871128a74a8e9630b458460865bab457221f1d448dd9791d24c4e5d88786180ac185df813a68d4de@3.209.45.79:30303,enode://8499da03c47d637b20eee24eec3c356c9a2e6148d6fe25ca195c7949ab8ec2c03e3556126b0d7ed644675e78c4318b08691b7b57de10e5f0d40d05b09238fa0a@52.187.207.27:30303,enode://103858bdb88756c71f15e9b5e09b56dc1be52f0a5021d46301dbbfb7e130029cc9d0d6f73f693bc29b665770fff7da4d34f3c6379fe12721b5d7a0bcb5ca1fc1@191.234.162.198:30303,enode://715171f50508aba88aecd1250af392a45a330af91d7b90701c436b618c86aaa1589c9184561907bebbb56439b8f8787bc01f49a7c77276c58c1b09822d75e8e8@52.231.165.108:30303,enode://5d6d7cd20d6da4bb83a1d28cadb5d409b64edf314c0335df658c1a54e32c7c4a7ab7823d57c39b6a757556e68ff1df17c748b698544a55cb488b52479a92b60f@104.42.217.25:30303,enode://2b252ab6a1d0f971d9722cb839a42cb81db019ba44c08754628ab4a823487071b5695317c8ccd085219c3a03af063495b2f1da8d18218da2d6a82981b45e6ffc@65.108.70.101:30303,enode://4aeb4ab6c14b23e2c4cfdce879c04b0748a20d8e9b59e25ded2a08143e265c6c25936e74cbc8e641e3312ca288673d91f2f93f8e277de3cfa444ecdaaf982052@157.90.35.166:30303 + - --Discovery.Bootnodes=enode://d860a01f9722d78051619d1e2351aba3f43f943f6f00718d1b9baa4101932a1f5011f16bb2b1bb35db20d6fe28fa0bf09636d26a87d31de9ec6203eeedb1f666@18.138.108.67:30303,enode://22a8232c3abc76a16ae9d6c3b164f98775fe226f0917b0ca871128a74a8e9630b458460865bab457221f1d448dd9791d24c4e5d88786180ac185df813a68d4de@3.209.45.79:30303,enode://8499da03c47d637b20eee24eec3c356c9a2e6148d6fe25ca195c7949ab8ec2c03e3556126b0d7ed644675e78c4318b08691b7b57de10e5f0d40d05b09238fa0a@52.187.207.27:30303,enode://103858bdb88756c71f15e9b5e09b56dc1be52f0a5021d46301dbbfb7e130029cc9d0d6f73f693bc29b665770fff7da4d34f3c6379fe12721b5d7a0bcb5ca1fc1@191.234.162.198:30303,enode://715171f50508aba88aecd1250af392a45a330af91d7b90701c436b618c86aaa1589c9184561907bebbb56439b8f8787bc01f49a7c77276c58c1b09822d75e8e8@52.231.165.108:30303,enode://5d6d7cd20d6da4bb83a1d28cadb5d409b64edf314c0335df658c1a54e32c7c4a7ab7823d57c39b6a757556e68ff1df17c748b698544a55cb488b52479a92b60f@104.42.217.25:30303,enode://2b252ab6a1d0f971d9722cb839a42cb81db019ba44c08754628ab4a823487071b5695317c8ccd085219c3a03af063495b2f1da8d18218da2d6a82981b45e6ffc@65.108.70.101:30303,enode://4aeb4ab6c14b23e2c4cfdce879c04b0748a20d8e9b59e25ded2a08143e265c6c25936e74cbc8e641e3312ca288673d91f2f93f8e277de3cfa444ecdaaf982052@157.90.35.166:30303 + - --Network.StaticPeers=enode://d860a01f9722d78051619d1e2351aba3f43f943f6f00718d1b9baa4101932a1f5011f16bb2b1bb35db20d6fe28fa0bf09636d26a87d31de9ec6203eeedb1f666@18.138.108.67:30303,enode://22a8232c3abc76a16ae9d6c3b164f98775fe226f0917b0ca871128a74a8e9630b458460865bab457221f1d448dd9791d24c4e5d88786180ac185df813a68d4de@3.209.45.79:30303,enode://8499da03c47d637b20eee24eec3c356c9a2e6148d6fe25ca195c7949ab8ec2c03e3556126b0d7ed644675e78c4318b08691b7b57de10e5f0d40d05b09238fa0a@52.187.207.27:30303,enode://103858bdb88756c71f15e9b5e09b56dc1be52f0a5021d46301dbbfb7e130029cc9d0d6f73f693bc29b665770fff7da4d34f3c6379fe12721b5d7a0bcb5ca1fc1@191.234.162.198:30303,enode://715171f50508aba88aecd1250af392a45a330af91d7b90701c436b618c86aaa1589c9184561907bebbb56439b8f8787bc01f49a7c77276c58c1b09822d75e8e8@52.231.165.108:30303,enode://5d6d7cd20d6da4bb83a1d28cadb5d409b64edf314c0335df658c1a54e32c7c4a7ab7823d57c39b6a757556e68ff1df17c748b698544a55cb488b52479a92b60f@104.42.217.25:30303,enode://2b252ab6a1d0f971d9722cb839a42cb81db019ba44c08754628ab4a823487071b5695317c8ccd085219c3a03af063495b2f1da8d18218da2d6a82981b45e6ffc@65.108.70.101:30303,enode://4aeb4ab6c14b23e2c4cfdce879c04b0748a20d8e9b59e25ded2a08143e265c6c25936e74cbc8e641e3312ca288673d91f2f93f8e277de3cfa444ecdaaf982052@157.90.35.166:30303 + - --HealthChecks.Enabled=true + - --Pruning.CacheMb=${NETHERMIND_PRUNING_CACHEMB} + - --Metrics.Enabled=true + - --Metrics.ExposePort=8008 + mev-boost: + image: flashbots/mev-boost:latest + networks: + - sedge + container_name: sedge-mev-boost-tag + restart: on-failure + entrypoint: + - /app/mev-boost + - -addr + - 0.0.0.0:18550 + - -${NETWORK} + - -relay-check + - -relays + - ${RELAY_URLS} + consensus: + stop_grace_period: 30s + container_name: sedge-consensus-client-tag + restart: unless-stopped + image: ${CC_IMAGE_VERSION} + depends_on: + mev-boost: + condition: service_started + networks: + - sedge + volumes: + - ${CC_DATA_DIR}:/var/lib/lighthouse + - ${CC_JWT_SECRET_PATH}:/tmp/jwt/jwtsecret + ports: + - 9000:9000/tcp + - 9000:9000/udp + - 5054:5054/tcp + - 4000:4000 + expose: + - 4000 + command: + - lighthouse + - bn + - --disable-upnp + - --datadir=/var/lib/lighthouse + - --port=9000 + - --http + - --http-address=0.0.0.0 + - --http-port=4000 + - --network=${NETWORK} + - --target-peers=${CC_PEER_COUNT} + - --execution-endpoints=${EC_AUTH_URL} + - --execution-jwt=/tmp/jwt/jwtsecret + - --eth1-endpoints=${EC_API_URL} + - --debug-level=${CC_LOG_LEVEL} + - --suggested-fee-recipient=${FEE_RECIPIENT} + - --validator-monitor-auto + - --subscribe-all-subnets + - --import-all-attestations + - --metrics + - --metrics-port=5054 + - --metrics-address=0.0.0.0 + - --checkpoint-sync-url=https://beaconstate.ethstaker.cc + - --builder=http://mev-boost:18550 + validator-blocker: + container_name: sedge-validator-blocker-tag + image: yauritux/busybox-curl:latest + networks: + - sedge + command: |- + sh -c " + echo 'Waiting 420 seconds of grace period before starting the validator'; + sleep 420; + echo 'Done'; + while true; do + response=$$(curl -s -o /dev/null -w \"%{http_code}\" ${CC_API_URL}/eth/v1/node/health) + if [ $$response -eq 200 ]; then + echo 'Endpoint is up!' + break + else + echo 'Endpoint is down, waiting 30 seconds before checking again...' + sleep 30 + fi + done + " + validator: + container_name: sedge-validator-client-tag + image: ${VL_IMAGE_VERSION} + depends_on: + validator-blocker: + condition: service_completed_successfully + networks: + - sedge + ports: + - 5056:5056 + volumes: + - ${VL_DATA_DIR}:/data + command: + - lighthouse + - vc + - --network=${NETWORK} + - --beacon-nodes=${CC_API_URL} + - --graffiti=${GRAFFITI} + - --debug-level=${VL_LOG_LEVEL} + - --validators-dir=/data/validators + - --suggested-fee-recipient=${FEE_RECIPIENT} + - --metrics + - --metrics-port=5056 + - --metrics-address=0.0.0.0 + - --builder-proposals +networks: + sedge: + name: sedge-network-tag From be74da09ef62f30ccf90e546a7ee99a00e22f9ce Mon Sep 17 00:00:00 2001 From: Carlos Bermudez Porto <43155355+cbermudez97@users.noreply.github.com> Date: Mon, 24 Jul 2023 09:28:42 -0400 Subject: [PATCH 04/30] Fix Chiado checkpoint sync (#298) * fix: chiado env templates * chore: update changelog --------- Co-authored-by: Marcos Antonio Maceo <35319980+stdevMac@users.noreply.github.com> Co-authored-by: Miguel Tenorio <46824157+AntiD2ta@users.noreply.github.com> --- CHANGELOG.md | 3 ++- templates/envs/chiado/consensus/lighthouse.tmpl | 1 + templates/envs/chiado/consensus/lodestar.tmpl | 1 + templates/envs/chiado/consensus/teku.tmpl | 1 + 4 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 80d2660d9..50a8cc7cf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,10 +5,11 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [Unreleased] +## Unreleased ### Fixed +- Issue in Chiado templates with checkpoint sync - Fix show error when using containers tags. ## [v1.2.0] - 2023-06-06 diff --git a/templates/envs/chiado/consensus/lighthouse.tmpl b/templates/envs/chiado/consensus/lighthouse.tmpl index 16aaa2f9a..e17651f04 100644 --- a/templates/envs/chiado/consensus/lighthouse.tmpl +++ b/templates/envs/chiado/consensus/lighthouse.tmpl @@ -9,6 +9,7 @@ CC_INSTANCE_NAME=Lighthouse CC_IMAGE_VERSION={{.CcImage}} CC_DATA_DIR={{.CcDataDir}} CC_JWT_SECRET_PATH={{.JWTSecretPath}} +{{if .CheckpointSyncUrl}}CHECKPOINT_SYNC_URL={{.CheckpointSyncUrl}}{{end}} {{ end }} diff --git a/templates/envs/chiado/consensus/lodestar.tmpl b/templates/envs/chiado/consensus/lodestar.tmpl index 1ef66d911..da3dd980a 100644 --- a/templates/envs/chiado/consensus/lodestar.tmpl +++ b/templates/envs/chiado/consensus/lodestar.tmpl @@ -10,4 +10,5 @@ CC_IMAGE_VERSION={{.CcImage}} CC_DATA_DIR={{.CcDataDir}} CC_JWT_SECRET_PATH={{.JWTSecretPath}} CC_LODESTAR_PRESET=gnosis +{{if .CheckpointSyncUrl}}CHECKPOINT_SYNC_URL={{.CheckpointSyncUrl}}{{end}} {{ end }} diff --git a/templates/envs/chiado/consensus/teku.tmpl b/templates/envs/chiado/consensus/teku.tmpl index 6db6e126a..d7a0560f3 100644 --- a/templates/envs/chiado/consensus/teku.tmpl +++ b/templates/envs/chiado/consensus/teku.tmpl @@ -9,4 +9,5 @@ CC_INSTANCE_NAME=Teku CC_IMAGE_VERSION={{.CcImage}} CC_DATA_DIR={{.CcDataDir}} CC_JWT_SECRET_PATH={{.JWTSecretPath}} +{{if .CheckpointSyncUrl}}CHECKPOINT_SYNC_URL={{.CheckpointSyncUrl}}{{end}} {{ end }} From 1df8b8a641543311ceccbec2a84561e9aaa32188 Mon Sep 17 00:00:00 2001 From: Carlos Bermudez Porto <43155355+cbermudez97@users.noreply.github.com> Date: Wed, 26 Jul 2023 03:35:34 -0400 Subject: [PATCH 05/30] Support Erigon in Gnosis (#299) * feat: add erigon to gnosis templates * fix: broken tests * fix: specific gnosis network tests checks * fix: gnosis network tests checks * fix: wrong network in test case --- CHANGELOG.md | 6 +++++- internal/pkg/clients/clients_test.go | 4 ++-- internal/pkg/generate/envs_test.go | 21 ++++++++++++++++++- .../pkg/generate/generate_scripts_test.go | 17 ++++++++++----- templates/envs/gnosis/env_base.tmpl | 2 +- templates/envs/gnosis/execution/erigon.tmpl | 7 +++++++ .../envs/gnosis/execution/nethermind.tmpl | 2 ++ 7 files changed, 49 insertions(+), 10 deletions(-) create mode 100644 templates/envs/gnosis/execution/erigon.tmpl diff --git a/CHANGELOG.md b/CHANGELOG.md index 50a8cc7cf..7591762f6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,11 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## Unreleased +## [Unreleased] + +### Added + +- Support for Erigon in Gnosis ### Fixed diff --git a/internal/pkg/clients/clients_test.go b/internal/pkg/clients/clients_test.go index fbd185682..ddb40428b 100644 --- a/internal/pkg/clients/clients_test.go +++ b/internal/pkg/clients/clients_test.go @@ -30,7 +30,7 @@ func TestSupportedClients(t *testing.T) { want []string isErr bool }{ - {"execution", "gnosis", []string{"nethermind"}, false}, + {"execution", "gnosis", []string{"nethermind", "erigon"}, false}, {"consensus", "gnosis", utils.Filter(AllClients["consensus"], func(c string) bool { return c != "prysm" }), false}, {"execution", "mainnet", AllClients["execution"], false}, {"consensus", "mainnet", AllClients["consensus"], false}, @@ -132,7 +132,7 @@ func TestClients(t *testing.T) { map[string][]string{ "validator": {"lighthouse", "teku", "lodestar"}, "consensus": {"lighthouse", "teku", "lodestar"}, - "execution": {"nethermind"}, + "execution": {"nethermind", "erigon"}, }, []string{"consensus", "execution", "validator"}, "gnosis", diff --git a/internal/pkg/generate/envs_test.go b/internal/pkg/generate/envs_test.go index 96858a24d..36fc0eec4 100644 --- a/internal/pkg/generate/envs_test.go +++ b/internal/pkg/generate/envs_test.go @@ -178,6 +178,26 @@ func TestGenerateEnvFile(t *testing.T) { "KEYSTORE_DIR": "./keystore", }, }, + { + name: "Check Erigon for Gnosis network", + data: &GenData{ + ExecutionClient: &clients.Client{Name: "erigon"}, + Network: "gnosis", + }, + fieldsToCheck: map[string]string{ + "EL_NETWORK": "gnosis", + }, + }, + { + name: "Check Nethermind for Gnosis network", + data: &GenData{ + ExecutionClient: &clients.Client{Name: "nethermind"}, + Network: "gnosis", + }, + fieldsToCheck: map[string]string{ + "EL_NETWORK": "xdai", + }, + }, { name: "Check wrong network", data: &GenData{ @@ -203,7 +223,6 @@ func TestGenerateEnvFile(t *testing.T) { ConsensusClient: &clients.Client{Name: "teku"}, }, fieldsToCheck: map[string]string{ - "EL_NETWORK": "xdai", "CL_NETWORK": "gnosis", }, }, diff --git a/internal/pkg/generate/generate_scripts_test.go b/internal/pkg/generate/generate_scripts_test.go index 10b44bcf7..f12ed6fbf 100644 --- a/internal/pkg/generate/generate_scripts_test.go +++ b/internal/pkg/generate/generate_scripts_test.go @@ -245,12 +245,19 @@ func defaultFunc(t *testing.T, data *GenData, compose, env io.Reader) error { envData := retrieveEnvData(t, env) if data.Network == "gnosis" { // Check that the right network is set - assert.Contains(t, envData, "EL_NETWORK") - assert.Equal(t, "xdai", clean(envData["EL_NETWORK"])) - - assert.Contains(t, envData, "CL_NETWORK") - assert.Equal(t, "gnosis", clean(envData["CL_NETWORK"])) + if data.ExecutionClient != nil { + assert.Contains(t, envData, "EL_NETWORK") + if data.ExecutionClient.Name == "nethermind" { + assert.Equal(t, "xdai", clean(envData["EL_NETWORK"])) + } else { + assert.Equal(t, "gnosis", clean(envData["EL_NETWORK"])) + } + } + if data.ConsensusClient != nil { + assert.Contains(t, envData, "CL_NETWORK") + assert.Equal(t, "gnosis", clean(envData["CL_NETWORK"])) + } } else { // Check that the right network is set assert.Contains(t, envData, "NETWORK") diff --git a/templates/envs/gnosis/env_base.tmpl b/templates/envs/gnosis/env_base.tmpl index 0ac010be0..f921ef97a 100644 --- a/templates/envs/gnosis/env_base.tmpl +++ b/templates/envs/gnosis/env_base.tmpl @@ -1,7 +1,7 @@ {{/* docker-compose_base.tmpl */}} {{ define "env" }} # --- Global configuration --- -EL_NETWORK=xdai +EL_NETWORK=gnosis CL_NETWORK=gnosis {{if .FeeRecipient}} FEE_RECIPIENT={{.FeeRecipient}}{{end}} diff --git a/templates/envs/gnosis/execution/erigon.tmpl b/templates/envs/gnosis/execution/erigon.tmpl new file mode 100644 index 000000000..d59695f92 --- /dev/null +++ b/templates/envs/gnosis/execution/erigon.tmpl @@ -0,0 +1,7 @@ +{{/* erigon.tmpl */}} +{{ define "execution" }} +# --- Execution Layer - Execution Node - configuration --- +EC_IMAGE_VERSION={{.ElImage}} +EC_DATA_DIR={{.ElDataDir}} +EC_JWT_SECRET_PATH={{.JWTSecretPath}} +{{ end }} diff --git a/templates/envs/gnosis/execution/nethermind.tmpl b/templates/envs/gnosis/execution/nethermind.tmpl index 25a605fbc..430f2c824 100644 --- a/templates/envs/gnosis/execution/nethermind.tmpl +++ b/templates/envs/gnosis/execution/nethermind.tmpl @@ -1,5 +1,7 @@ {{/* nethermind.tmpl */}} {{ define "execution" }} +EL_NETWORK=xdai + # --- Execution Layer - Execution Node - configuration --- EC_IMAGE_VERSION={{.ElImage}} NETHERMIND_LOG_LEVEL=INFO From c5f729a0dedc43a048a6f94c23e919f1e3dfcb4b Mon Sep 17 00:00:00 2001 From: Marcos Antonio Maceo <35319980+stdevMac@users.noreply.github.com> Date: Thu, 10 Aug 2023 21:22:42 +0400 Subject: [PATCH 06/30] Rename xdai to gnosis (#308) * doc: Update sedge version in complete-guide.mdx * doc: Update 1.2.0 to 1.2.1 * doc: Update CHANGELOG * Release v1.2.2 (#306) * chore(deps): bump semver from 5.7.1 to 5.7.2 in /docs Bumps [semver](https://github.com/npm/node-semver) from 5.7.1 to 5.7.2. - [Release notes](https://github.com/npm/node-semver/releases) - [Changelog](https://github.com/npm/node-semver/blob/v5.7.2/CHANGELOG.md) - [Commits](https://github.com/npm/node-semver/compare/v5.7.1...v5.7.2) --- updated-dependencies: - dependency-name: semver dependency-type: indirect ... Signed-off-by: dependabot[bot] * Update image versions to latest version. * fix: Show command error when using containers tags (#300) * test: add new show command test case * fix: show command error when using containers tag * chore: update changelog --------- Co-authored-by: Marcos Antonio Maceo <35319980+stdevMac@users.noreply.github.com> * Fix Chiado checkpoint sync (#298) * fix: chiado env templates * chore: update changelog --------- Co-authored-by: Marcos Antonio Maceo <35319980+stdevMac@users.noreply.github.com> Co-authored-by: Miguel Tenorio <46824157+AntiD2ta@users.noreply.github.com> * [docs] Update documentation and Changelog * [docs] Update documentation and Changelog * [fix] typo on doc * [fix] typo on doc --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: stdevMac Co-authored-by: Carlos Bermudez Porto <43155355+cbermudez97@users.noreply.github.com> Co-authored-by: Miguel Tenorio <46824157+AntiD2ta@users.noreply.github.com> * [patch] rename xDai to gnosis --------- Signed-off-by: dependabot[bot] Co-authored-by: Miguel Tenorio <46824157+AntiD2ta@users.noreply.github.com> Co-authored-by: AntiD2ta Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: stdevMac Co-authored-by: Carlos Bermudez Porto <43155355+cbermudez97@users.noreply.github.com> --- CHANGELOG.md | 35 ++++++++++++++++--- docs/docs/quickstart/complete-guide.mdx | 4 +-- docs/docs/quickstart/install-guide.mdx | 2 +- internal/pkg/generate/envs_test.go | 2 +- .../pkg/generate/generate_scripts_test.go | 6 +--- .../remote_files/good_file/config.yml | 2 +- .../envs/gnosis/execution/nethermind.tmpl | 2 +- 7 files changed, 37 insertions(+), 16 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7591762f6..386f39d59 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,17 +16,40 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Issue in Chiado templates with checkpoint sync - Fix show error when using containers tags. +## [v1.2.2] - 2023-07-24 + +### Changed + +- Update client images to Shapella-ready version for Gnosis. + +### Fixed + +- Issue in Chiado templates with checkpoint sync +- Fix show error when using containers tags. +- Fix chiado checkpoint sync url. + +## [v1.2.1] - 2023-06-22 + +### Changed + +- Update client images. +- Update Nethermind's configuration to show new logging format and colors. + +### Fixed + +- Missing symbol in validator-blocker container main command. + ## [v1.2.0] - 2023-06-06 ### Added -- New command to show Sedge container info: `sedge show` +- New command to show Sedge container info: `sedge show`. - Add default [checkpoint sync url]( https://checkpoint.chiadochain.net ) for Chiado. - New `--skip-pull` flag to skip pulling docker images when running `sedge run`. ### Changed -- Update client images +- Update client images. ### Fixed @@ -37,7 +60,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added -- Unit tests +- Unit tests. ### Changed @@ -79,8 +102,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Rename sedge data directory name to `sedge-data` instead of `docker-compose-scripts`. - Update mev-boost relay URLs. - Fixed validator restart failure. Validator never restarts, but has a better and safer start-up method: - - Validator waits a grace period (2 epochs) before starting. - - Validator waits for the consensus sync to finish: verifying that the `/eth/v1/node/health` consensus endpoint returns with the HTTP code 200 in the newly added `validator-blocker` docker-compose service. This replace the older track sync method. + - Validator waits a grace period (2 epochs) before starting. + - Validator waits for the consensus sync to finish: verifying that the `/eth/v1/node/health` consensus endpoint + returns with the HTTP code 200 in the newly added `validator-blocker` docker-compose service. This replace the + older track sync method. - Updated installation script for docker and docker compose in Linux flavours. - Updated Checkpoint Sync Url for Goerli. - Use new created action for JWT secret handling. diff --git a/docs/docs/quickstart/complete-guide.mdx b/docs/docs/quickstart/complete-guide.mdx index 40c421be5..702e23ffe 100644 --- a/docs/docs/quickstart/complete-guide.mdx +++ b/docs/docs/quickstart/complete-guide.mdx @@ -41,14 +41,14 @@ want to use another installation method: ``` - curl -L https://github.com/NethermindEth/sedge/releases/download/v1.1.0/sedge-v1.2.0-linux-amd64 --output sedge + curl -L https://github.com/NethermindEth/sedge/releases/download/v1.2.2/sedge-v1.2.2-linux-amd64 --output sedge ``` ``` - wget https://github.com/NethermindEth/sedge/releases/download/v1.1.0/sedge-v1.2.0-linux-amd64 -O sedge + wget https://github.com/NethermindEth/sedge/releases/download/v1.2.2/sedge-v1.2.2-linux-amd64 -O sedge ``` diff --git a/docs/docs/quickstart/install-guide.mdx b/docs/docs/quickstart/install-guide.mdx index 476f406a8..647bf11e7 100644 --- a/docs/docs/quickstart/install-guide.mdx +++ b/docs/docs/quickstart/install-guide.mdx @@ -37,7 +37,7 @@ Downloading any binary from the internet risks downloading files that malicious, - > Replace `` with the desired version number, e.g 1.2.0; `` with your OS, e.g linux; and `` with your architecture, e.g amd64. + > Replace `` with the desired version number, e.g 1.2.2; `` with your OS, e.g linux; and `` with your architecture, e.g amd64. 2. Open a console or terminal instance on the directory you downloaded the binary. 3. Set binary as executable executing `chmod +x ` in the Terminal. Replace `` with the name of the downloaded binary. diff --git a/internal/pkg/generate/envs_test.go b/internal/pkg/generate/envs_test.go index 36fc0eec4..75a1f7b06 100644 --- a/internal/pkg/generate/envs_test.go +++ b/internal/pkg/generate/envs_test.go @@ -195,7 +195,7 @@ func TestGenerateEnvFile(t *testing.T) { Network: "gnosis", }, fieldsToCheck: map[string]string{ - "EL_NETWORK": "xdai", + "EL_NETWORK": "gnosis", }, }, { diff --git a/internal/pkg/generate/generate_scripts_test.go b/internal/pkg/generate/generate_scripts_test.go index f12ed6fbf..b1720eb23 100644 --- a/internal/pkg/generate/generate_scripts_test.go +++ b/internal/pkg/generate/generate_scripts_test.go @@ -247,11 +247,7 @@ func defaultFunc(t *testing.T, data *GenData, compose, env io.Reader) error { // Check that the right network is set if data.ExecutionClient != nil { assert.Contains(t, envData, "EL_NETWORK") - if data.ExecutionClient.Name == "nethermind" { - assert.Equal(t, "xdai", clean(envData["EL_NETWORK"])) - } else { - assert.Equal(t, "gnosis", clean(envData["EL_NETWORK"])) - } + assert.Equal(t, "gnosis", clean(envData["EL_NETWORK"])) } if data.ConsensusClient != nil { diff --git a/internal/utils/testdata/remote_files/good_file/config.yml b/internal/utils/testdata/remote_files/good_file/config.yml index 9d19bf432..1eb1448f3 100644 --- a/internal/utils/testdata/remote_files/good_file/config.yml +++ b/internal/utils/testdata/remote_files/good_file/config.yml @@ -53,7 +53,7 @@ TARGET_AGGREGATORS_PER_COMMITTEE: 16 RANDOM_SUBNETS_PER_VALIDATOR: 1 # 2**8 (= 256) EPOCHS_PER_RANDOM_SUBNET_SUBSCRIPTION: 256 -# 6 (estimate from xDai mainnet) +# 6 (estimate from Gnosis mainnet) SECONDS_PER_ETH1_BLOCK: 6 # Gwei values diff --git a/templates/envs/gnosis/execution/nethermind.tmpl b/templates/envs/gnosis/execution/nethermind.tmpl index 430f2c824..d019a6824 100644 --- a/templates/envs/gnosis/execution/nethermind.tmpl +++ b/templates/envs/gnosis/execution/nethermind.tmpl @@ -1,6 +1,6 @@ {{/* nethermind.tmpl */}} {{ define "execution" }} -EL_NETWORK=xdai +EL_NETWORK=gnosis # --- Execution Layer - Execution Node - configuration --- EC_IMAGE_VERSION={{.ElImage}} From 2efc77da272dee3c3ede7d33ee7f3a823bffcdc5 Mon Sep 17 00:00:00 2001 From: nethermind-machine <76107542+nethermind-machine@users.noreply.github.com> Date: Fri, 11 Aug 2023 11:21:26 +0200 Subject: [PATCH 07/30] Update image versions to latest version. (#309) Co-authored-by: stdevMac --- configs/client_images.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/configs/client_images.yaml b/configs/client_images.yaml index d752b6875..b3c119b36 100644 --- a/configs/client_images.yaml +++ b/configs/client_images.yaml @@ -1,7 +1,7 @@ execution: geth: name: ethereum/client-go - version: v1.12.0 + version: v1.12.1 besu: name: hyperledger/besu version: 23.4.4 @@ -20,7 +20,7 @@ consensus: version: v1.9.2 teku: name: consensys/teku - version: 23.6.2 + version: 23.8.0 prysm: name: gcr.io/prysmaticlabs/prysm/beacon-chain version: v4.0.7 @@ -33,7 +33,7 @@ validator: version: v1.9.2 teku: name: consensys/teku - version: 23.6.2 + version: 23.8.0 prysm: name: gcr.io/prysmaticlabs/prysm/validator version: v4.0.7 From e6b68c7a462ba09bda9ac85ee3470d52cca78e35 Mon Sep 17 00:00:00 2001 From: Marcos Antonio Maceo <35319980+stdevMac@users.noreply.github.com> Date: Wed, 11 Oct 2023 15:30:54 +0400 Subject: [PATCH 08/30] doc: Fix typo on Docs (#318) --- docs/docs/networks/chiado.mdx | 2 +- docs/src/components/HomepageFeatures/index.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/docs/networks/chiado.mdx b/docs/docs/networks/chiado.mdx index 2d849d325..f2202cb7c 100644 --- a/docs/docs/networks/chiado.mdx +++ b/docs/docs/networks/chiado.mdx @@ -5,7 +5,7 @@ id: chiado # Chiado -Chiado is a Gnosis Chain tesnet. Gnosis Chain is an EVM based Ethereum sidechain that is designed to be a platform for +Chiado is a Gnosis Chain testnet. Gnosis Chain is an EVM based Ethereum sidechain that is designed to be a platform for decentralized prediction markets. ## Supported Execution Clients diff --git a/docs/src/components/HomepageFeatures/index.js b/docs/src/components/HomepageFeatures/index.js index 03a88efa9..995223b5c 100644 --- a/docs/src/components/HomepageFeatures/index.js +++ b/docs/src/components/HomepageFeatures/index.js @@ -8,7 +8,7 @@ const FeatureList = [ Svg: require('@site/static/img/ethereum.svg').default, description: ( <> - We fully support Mainnet, Goerli(tesnet) and Sepolia(tesnet). + We fully support Mainnet, Goerli(testnet) and Sepolia(testnet). ), @@ -18,7 +18,7 @@ const FeatureList = [ Svg: require('@site/static/img/gnosis.svg').default, description: ( <> - We fully support deployment on Gnosis and Chiado(tesnet). + We fully support deployment on Gnosis and Chiado(testnet). ), }, From 55d554db6a4cd6f71436809bd554d6281ae7e3f7 Mon Sep 17 00:00:00 2001 From: Marcos Antonio Maceo <35319980+stdevMac@users.noreply.github.com> Date: Fri, 13 Oct 2023 09:53:42 +0400 Subject: [PATCH 09/30] feat: Remove TTD of params (#315) * chore: Remove TTD of params * fix: remove patch for geth * fix: change version to 1.21 on windows tests * chore: Update go.mod, go.sum * fix: upgrade windows version to 1.21 on github actions * fix: rollback go version on go.mod * doc: update changelog * doc: update changelog --- .github/workflows/build.yml | 9 ++- .github/workflows/unit_tests.yml | 7 +- CHANGELOG.md | 12 ++- cli/cli.go | 11 --- cli/generate.go | 6 -- cli/generate_test.go | 80 ------------------- cli/sub_gen.go | 4 +- configs/init.go | 5 -- configs/types.go | 1 - docs/docs/commands/generate.mdx | 2 - docs/docs/guidelines/new-network.mdx | 1 - go.mod | 2 +- internal/pkg/env/check_variable_test.go | 9 --- internal/pkg/env/get_variable.go | 28 ------- internal/pkg/env/get_variable_test.go | 40 ---------- internal/pkg/env/regex.go | 1 - internal/pkg/env/testdata/case_2/.env | 1 - internal/pkg/generate/generate_scripts.go | 6 -- .../pkg/generate/generate_scripts_test.go | 26 +----- internal/pkg/generate/types.go | 2 - .../services/merge/consensus/lighthouse.tmpl | 3 +- .../services/merge/consensus/lodestar.tmpl | 3 +- templates/services/merge/consensus/prysm.tmpl | 3 +- templates/services/merge/consensus/teku.tmpl | 3 +- templates/services/merge/execution/besu.tmpl | 3 +- templates/services/merge/execution/geth.tmpl | 3 +- .../services/merge/execution/nethermind.tmpl | 3 +- 27 files changed, 32 insertions(+), 242 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index de212fef4..a34327c3a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -11,8 +11,13 @@ jobs: name: Build sedge strategy: matrix: - go: ["1.19"] - os: [ubuntu-latest, windows-latest, macos-latest] + include: + - os: ubuntu-latest + go: '1.19' + - os: macos-latest + go: '1.19' + - os: windows-latest + go: '1.21' runs-on: ${{ matrix.os }} steps: diff --git a/.github/workflows/unit_tests.yml b/.github/workflows/unit_tests.yml index 61751308c..3650eccef 100644 --- a/.github/workflows/unit_tests.yml +++ b/.github/workflows/unit_tests.yml @@ -11,8 +11,11 @@ jobs: name: Run unit tests strategy: matrix: - go: ["1.19"] - os: [ubuntu-latest, windows-latest] + include: + - os: ubuntu-latest + go: '1.19' + - os: windows-latest + go: '1.21' runs-on: ${{ matrix.os }} steps: diff --git a/CHANGELOG.md b/CHANGELOG.md index 99c838d67..d992220e3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Fixed + +- Remove TTD of the params, test cases, command flags and geth patch for custom testnets. + ## [v1.2.3] - 2023-08-16 ### Added @@ -109,10 +113,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Rename sedge data directory name to `sedge-data` instead of `docker-compose-scripts`. - Update mev-boost relay URLs. - Fixed validator restart failure. Validator never restarts, but has a better and safer start-up method: - - Validator waits a grace period (2 epochs) before starting. - - Validator waits for the consensus sync to finish: verifying that the `/eth/v1/node/health` consensus endpoint - returns with the HTTP code 200 in the newly added `validator-blocker` docker-compose service. This replace the - older track sync method. + - Validator waits a grace period (2 epochs) before starting. + - Validator waits for the consensus sync to finish: verifying that the `/eth/v1/node/health` consensus endpoint + returns with the HTTP code 200 in the newly added `validator-blocker` docker-compose service. This replace the + older track sync method. - Updated installation script for docker and docker compose in Linux flavours. - Updated Checkpoint Sync Url for Goerli. - Use new created action for JWT secret handling. diff --git a/cli/cli.go b/cli/cli.go index 4a9096e11..97f407db1 100644 --- a/cli/cli.go +++ b/cli/cli.go @@ -136,7 +136,6 @@ func setupFullNode(p ui.Prompter, o *CliCmdOptions, a actions.SedgeActions, deps inputCustomNetworkConfig, inputCustomChainSpec, inputCustomGenesis, - inputCustomTTD, inputCustomDeployBlock, inputExecutionBootNodes, inputConsensusBootNodes, @@ -209,7 +208,6 @@ func setupExecutionNode(p ui.Prompter, o *CliCmdOptions, a actions.SedgeActions, if o.genData.Network == NetworkCustom { if err := runPromptActions(p, o, inputCustomChainSpec, - inputCustomTTD, inputExecutionBootNodes, ); err != nil { return err @@ -662,10 +660,6 @@ func selectExecutionClient(p ui.Prompter, o *CliCmdOptions) (err error) { Type: "execution", } o.genData.ExecutionClient.SetImageOrDefault("") - // Patch Geth image if network needs TTD to be set - if o.genData.ExecutionClient.Name == "geth" && o.genData.Network == NetworkMainnet { - o.genData.ExecutionClient.Image = "ethereum/client-go:v1.10.26" - } return nil } @@ -826,11 +820,6 @@ func inputCustomGenesis(p ui.Prompter, o *CliCmdOptions) (err error) { return absPathInPlace(&o.genData.CustomGenesisPath) } -func inputCustomTTD(p ui.Prompter, o *CliCmdOptions) (err error) { - o.genData.CustomTTD, err = p.Input("Custom TTD (Terminal Total Difficulty)", "0", false, ui.DigitsStringValidator) - return -} - func inputCustomDeployBlock(p ui.Prompter, o *CliCmdOptions) (err error) { o.genData.CustomDeployBlock, err = p.Input("Custom deploy block", "0", false, ui.DigitsStringValidator) return diff --git a/cli/generate.go b/cli/generate.go index 5c30a866c..8bbcb417c 100644 --- a/cli/generate.go +++ b/cli/generate.go @@ -49,7 +49,6 @@ const ( ) type CustomFlags struct { - customTTD string customChainSpec string customNetworkConfig string customGenesis string @@ -292,7 +291,6 @@ func runGenCmd(out io.Writer, flags *GenCmdFlags, sedgeAction actions.SedgeActio ConsensusApiUrl: flags.consensusApiUrl, ECBootnodes: flags.customEnodes, CCBootnodes: flags.customEnrs, - CustomTTD: flags.customTTD, CustomChainSpecPath: flags.CustomFlags.customChainSpec, CustomNetworkConfigPath: flags.CustomFlags.customNetworkConfig, CustomGenesisPath: flags.CustomFlags.customGenesis, @@ -345,10 +343,6 @@ func valClients(allClients clients.OrderedClients, flags *GenCmdFlags, services } } executionClient.SetImageOrDefault(strings.Join(executionParts[1:], ":")) - // Patch Geth image if network needs TTD to be set - if executionClient.Name == "geth" && network != "mainnet" { - executionClient.Image = "ethereum/client-go:v1.10.26" - } if err = clients.ValidateClient(executionClient, execution); err != nil { return nil, err } diff --git a/cli/generate_test.go b/cli/generate_test.go index d43fff0a3..2f5080d7d 100644 --- a/cli/generate_test.go +++ b/cli/generate_test.go @@ -126,9 +126,6 @@ func (flags *GenCmdFlags) argsList() []string { if flags.mapAllPorts { s = append(s, "--map-all") } - if flags.customTTD != "" { - s = append(s, "--custom-ttd", flags.customTTD) - } if flags.customChainSpec != "" { s = append(s, "--custom-chainSpec", flags.customChainSpec) } @@ -1031,83 +1028,6 @@ func TestGenerateCmd(t *testing.T) { }, errors.New("invalid execution client"), }, - { - "Mainnet Network, custom ttd, should fail", - subCmd{ - name: "full-node", - }, - GenCmdFlags{ - CustomFlags: CustomFlags{ - customTTD: "some", - }, - }, - globalFlags{ - network: "mainnet", - }, - errors.New("custom flags used without --network custom"), - }, - { - "Custom Network and custom ttd, should work", - subCmd{ - name: "full-node", - }, - GenCmdFlags{ - feeRecipient: "0x0000000000000000000000000000000000000000", - CustomFlags: CustomFlags{ - customTTD: "some", - }, - }, - globalFlags{ - network: "custom", - }, - nil, - }, - { - "Custom Network and custom ttd, execution node, should work", - subCmd{ - name: "execution", - }, - GenCmdFlags{ - CustomFlags: CustomFlags{ - customTTD: "some", - }, - }, - globalFlags{ - network: "custom", - }, - nil, - }, - { - "Mainnet Network custom ChainSpec, execution node, shouldn't work", - subCmd{ - name: "execution", - }, - GenCmdFlags{ - CustomFlags: CustomFlags{ - customTTD: "some", - }, - }, - globalFlags{ - network: "mainnet", - }, - errors.New("custom flags used without --network custom"), - }, - { - "Full-node, custom TTD", - subCmd{ - name: "full-node", - }, - GenCmdFlags{ - feeRecipient: "0x0000000000000000000000000000000000000000", - CustomFlags: CustomFlags{ - customTTD: "some", - }, - }, - globalFlags{ - network: "custom", - }, - nil, - }, { "Execution ", subCmd{ diff --git a/cli/sub_gen.go b/cli/sub_gen.go index faed841c4..62c95ff25 100644 --- a/cli/sub_gen.go +++ b/cli/sub_gen.go @@ -26,7 +26,7 @@ var ErrCustomFlagsUsedWithoutCustomNetwork = errors.New("custom flags used witho func validateCustomNetwork(flags *CustomFlags, net string) error { if net != "custom" { - if len(flags.customTTD) != 0 || len(flags.customChainSpec) != 0 || len(flags.customNetworkConfig) != 0 || + if len(flags.customChainSpec) != 0 || len(flags.customNetworkConfig) != 0 || len(flags.customGenesis) != 0 || len(flags.customDeployBlock) != 0 { // TODO add error on expected place return ErrCustomFlagsUsedWithoutCustomNetwork @@ -90,7 +90,6 @@ Additionally, you can use this syntax ':' to override the cmd.Flags().StringArrayVar(&flags.elExtraFlags, "el-extra-flag", []string{}, "Additional flag to configure the execution client service in the generated docker-compose script. Example: 'sedge generate full-node --el-extra-flag \"=value1\" --el-extra-flag \"=\\\"value2\\\"\"'") cmd.Flags().StringArrayVar(&flags.clExtraFlags, "cl-extra-flag", []string{}, "Additional flag to configure the consensus client service in the generated docker-compose script. Example: 'sedge generate full-node --cl-extra-flag \"=value1\" --cl-extra-flag \"=\\\"value2\\\"\"'") cmd.Flags().StringArrayVar(&flags.vlExtraFlags, "vl-extra-flag", []string{}, "Additional flag to configure the validator client service in the generated docker-compose script. Example: 'sedge generate full-node --vl-extra-flag \"=value1\" --vl-extra-flag \"=\\\"value2\\\"\"'") - cmd.Flags().StringVar(&flags.customTTD, "custom-ttd", "", "Custom Terminal Total Difficulty to use for the execution client") cmd.Flags().StringVar(&flags.customChainSpec, "custom-chainSpec", "", "File path or url to use as custom network chainSpec for execution client.") cmd.Flags().StringVar(&flags.customNetworkConfig, "custom-config", "", "File path or url to use as custom network config file for consensus client.") cmd.Flags().StringVar(&flags.customGenesis, "custom-genesis", "", "File path or url to use as custom network genesis for consensus client.") @@ -135,7 +134,6 @@ func ExecutionSubCmd(sedgeAction actions.SedgeActions) *cobra.Command { // Bind flags cmd.Flags().StringVar(&flags.jwtPath, "jwt-secret-path", "", "Path to the JWT secret file") cmd.Flags().BoolVar(&flags.mapAllPorts, "map-all", false, "Map all clients ports to host. Use with care. Useful to allow remote access to the clients") - cmd.Flags().StringVar(&flags.customTTD, "custom-ttd", "", "Custom Terminal Total Difficulty to use for the execution client") cmd.Flags().StringVar(&flags.customChainSpec, "custom-chainSpec", "", "File path or url to use as custom network chainSpec for execution client.") cmd.Flags().StringSliceVar(&flags.customEnodes, "execution-bootnodes", []string{}, "List of comma separated enodes to use as custom network peers for execution client.") cmd.Flags().StringArrayVar(&flags.elExtraFlags, "el-extra-flag", []string{}, "Additional flag to configure the execution client service in the generated docker-compose script. Example: 'sedge generate consensus--el-extra-flag \"=value1\" --el-extra-flag \"=\\\"value2\\\"\"'") diff --git a/configs/init.go b/configs/init.go index 3ccb97447..dff6cb594 100644 --- a/configs/init.go +++ b/configs/init.go @@ -22,7 +22,6 @@ var networksConfigs map[string]NetworkConfig = map[string]NetworkConfig{ NetworkService: "merge", GenesisForkVersion: "0x00000000", SupportsMEVBoost: true, - DefaultTTD: "", DefaultECBootnodes: []string{ "enode://d860a01f9722d78051619d1e2351aba3f43f943f6f00718d1b9baa4101932a1f5011f16bb2b1bb35db20d6fe28fa0bf09636d26a87d31de9ec6203eeedb1f666@18.138.108.67:30303", "enode://22a8232c3abc76a16ae9d6c3b164f98775fe226f0917b0ca871128a74a8e9630b458460865bab457221f1d448dd9791d24c4e5d88786180ac185df813a68d4de@3.209.45.79:30303", @@ -51,7 +50,6 @@ var networksConfigs map[string]NetworkConfig = map[string]NetworkConfig{ NetworkService: "merge", GenesisForkVersion: "0x00001020", SupportsMEVBoost: true, - DefaultTTD: "10790000", DefaultECBootnodes: []string{ "enode://011f758e6552d105183b1761c5e2dea0111bc20fd5f6422bc7f91e0fabbec9a6595caf6239b37feb773dddd3f87240d99d859431891e4a642cf2a0a9e6cbb98a@51.141.78.53:30303", "enode://176b9417f511d05b6b2cf3e34b756cf0a7096b3094572a8f6ef4cdcb9d1f9d00683bf0f83347eebdf3b81c3521c2332086d9592802230bf528eaf606a1d9677b@13.93.54.137:30303", @@ -82,7 +80,6 @@ var networksConfigs map[string]NetworkConfig = map[string]NetworkConfig{ NetworkService: "merge", GenesisForkVersion: "0x90000069", SupportsMEVBoost: false, - DefaultTTD: "17000000000000000", DefaultCCBootnodes: []string{ "enr:-Iq4QMCTfIMXnow27baRUb35Q8iiFHSIDBJh6hQM5Axohhf4b6Kr_cOCu0htQ5WvVqKvFgY28893DHAg8gnBAXsAVqmGAX53x8JggmlkgnY0gmlwhLKAlv6Jc2VjcDI1NmsxoQK6S-Cii_KmfFdUJL2TANL3ksaKUnNXvTCv1tLwXs0QgIN1ZHCCIyk", "enr:-Ly4QFoZTWR8ulxGVsWydTNGdwEESueIdj-wB6UmmjUcm-AOPxnQi7wprzwcdo7-1jBW_JxELlUKJdJES8TDsbl1EdNlh2F0dG5ldHOI__78_v2bsV-EZXRoMpA2-lATkAAAcf__________gmlkgnY0gmlwhBLYJjGJc2VjcDI1NmsxoQI0gujXac9rMAb48NtMqtSTyHIeNYlpjkbYpWJw46PmYYhzeW5jbmV0cw-DdGNwgiMog3VkcIIjKA", @@ -99,7 +96,6 @@ var networksConfigs map[string]NetworkConfig = map[string]NetworkConfig{ RequireJWT: true, NetworkService: "merge", GenesisForkVersion: "0x0000006f", - DefaultTTD: "231707791542740786049188744689299064356246512", DefaultCustomConfigSrc: "https://github.com/gnosischain/configs/raw/main/chiado/config.yaml", DefaultCustomGenesisSrc: "https://github.com/gnosischain/configs/raw/main/chiado/genesis.ssz", DefaultCustomDeployBlock: "0", @@ -118,7 +114,6 @@ var networksConfigs map[string]NetworkConfig = map[string]NetworkConfig{ RequireJWT: true, NetworkService: "merge", GenesisForkVersion: "0x00000064", - DefaultTTD: "8626000000000000000000058750000000000000000000", DefaultECBootnodes: []string{ "enode://ea6d67eb3277d8ae9292fc700fa757ef6d2127c4db9712bcd5eb1341b1d937ac71cc2b15efe3a8496f4fc9fc12156d7ac73d82eb3c0f68928442116030b76f48@3.135.122.4:30303", "enode://c5e1e38709a2eb402557e82e071ccec1c6e2adedb01f7d6afdc80d25f7e9287f954fa9b742f01b1b74a5c532de9476afeb6efdcf5a683672a663204eadb15e45@3.17.46.220:30303", diff --git a/configs/types.go b/configs/types.go index 3726aab09..e7e46494a 100644 --- a/configs/types.go +++ b/configs/types.go @@ -25,7 +25,6 @@ type NetworkConfig struct { RequireJWT bool NetworkService string GenesisForkVersion string - DefaultTTD string DefaultECBootnodes []string DefaultCCBootnodes []string DefaultCustomChainSpecSrc string diff --git a/docs/docs/commands/generate.mdx b/docs/docs/commands/generate.mdx index 973187da0..eac82f83e 100644 --- a/docs/docs/commands/generate.mdx +++ b/docs/docs/commands/generate.mdx @@ -88,7 +88,6 @@ Flags: --el-extra-flag stringArray Additional flag to configure the execution client service in the generated docker-compose script. Example: 'sedge generate full-node --el-extra-flag "=value1" --el-extra-flag "=\"value2\""' --cl-extra-flag stringArray Additional flag to configure the consensus client service in the generated docker-compose script. Example: 'sedge generate full-node --cl-extra-flag "=value1" --cl-extra-flag "=\"value2\""' --vl-extra-flag stringArray Additional flag to configure the validator client service in the generated docker-compose script. Example: 'sedge generate full-node --vl-extra-flag "=value1" --vl-extra-flag "=\"value2\""' - --custom-ttd string Custom Terminal Total Difficulty to use for the execution client --custom-chainSpec string File path or url to use as custom network chainSpec for execution client. --custom-config string File path or url to use as custom network config file for consensus client. --custom-genesis string File path or url to use as custom network genesis for consensus client. @@ -163,7 +162,6 @@ Usage: Flags: --jwt-secret-path string Path to the JWT secret file --map-all Map all clients ports to host. Use with care. Useful to allow remote access to the clients - --custom-ttd string Custom Terminal Total Difficulty to use for the execution client --custom-chainSpec string File path or url to use as custom network chainSpec for execution client. --execution-bootnodes strings List of comma separated enodes to use as custom network peers for execution client. --el-extra-flag stringArray Additional flag to configure the execution client service in the generated docker-compose script. Example: 'sedge generate consensus--el-extra-flag "=value1" --el-extra-flag "=\"value2\""' diff --git a/docs/docs/guidelines/new-network.mdx b/docs/docs/guidelines/new-network.mdx index e47695c96..e7747e9b3 100644 --- a/docs/docs/guidelines/new-network.mdx +++ b/docs/docs/guidelines/new-network.mdx @@ -35,7 +35,6 @@ RELAY_URL={{if .RelayURL}}{{.RelayURL}}{{else}}https://0xafa4c6985aa049fb79dd370 RequireJWT: true, NetworkService: "merge", GenesisForkVersion: "0x90000069", - DefaultTTD: "17000000000000000", DefaultECBootnodes: []string{ "enode://9246d00bc8fd1742e5ad2428b80fc4dc45d786283e05ef6edbd9002cbc335d40998444732fbe921cb88e1d2c73d1b1de53bae6a2237996e9bfe14f871baf7066@18.168.182.86:30303", "enode://ec66ddcf1a974950bd4c782789a7e04f8aa7110a72569b6e65fcd51e937e74eed303b1ea734e4d19cfaec9fbff9b6ee65bf31dcb50ba79acce9dd63a6aca61c7@52.14.151.177:30303", }, diff --git a/go.mod b/go.mod index e199967e2..8b6584ec9 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/NethermindEth/sedge -go 1.18 +go 1.19 require ( github.com/AlecAivazis/survey/v2 v2.3.6 diff --git a/internal/pkg/env/check_variable_test.go b/internal/pkg/env/check_variable_test.go index 2a55105fb..9515af975 100644 --- a/internal/pkg/env/check_variable_test.go +++ b/internal/pkg/env/check_variable_test.go @@ -35,15 +35,6 @@ func TestCheckVariable(t *testing.T) { want bool isErr bool }{ - { - "Test case 1, mainnet, no TTD", - ReMEV, - "mainnet", - "execution", - "nethermind", - false, - false, - }, { "Test case 2, invalid network, error", ReMEV, diff --git a/internal/pkg/env/get_variable.go b/internal/pkg/env/get_variable.go index 48baaab66..96160da54 100644 --- a/internal/pkg/env/get_variable.go +++ b/internal/pkg/env/get_variable.go @@ -86,31 +86,3 @@ func GetCCBootnodes(envFilePath string) ([]string, error) { log.Warnf(configs.NoBootnodesFound, envFilePath) return nil, nil } - -/* -GetTTD : -Get TTD from the environment variables in .env. - -params :- -a. path to generated env file - -returns :- -a. []string -List of bootnodes -b. error -Error if any -*/ -func GetTTD(envFilePath string) (string, error) { - content, err := os.ReadFile(envFilePath) - if err != nil { - return "", err - } - - if m := ReTTD.FindStringSubmatch(string(content)); m != nil { - m[1] = strings.ReplaceAll(m[1], "\"", "") - return strings.Trim(m[1], "\r\n "), nil - } - - log.Warnf(configs.NoBootnodesFound, envFilePath) - return "", nil -} diff --git a/internal/pkg/env/get_variable_test.go b/internal/pkg/env/get_variable_test.go index a457049b1..bb5a6831f 100644 --- a/internal/pkg/env/get_variable_test.go +++ b/internal/pkg/env/get_variable_test.go @@ -101,46 +101,6 @@ func TestGetECBootnodes(t *testing.T) { } } -func TestGetTTD(t *testing.T) { - t.Parallel() - - tcs := []struct { - name string - testdataCase string - want string - isErr bool - }{ - { - name: "Test case 1, no TTD", - testdataCase: "case_1", - want: "", - isErr: false, - }, - { - name: "Test case 2, TTD", - testdataCase: "case_2", - want: "8000000000000000000000001000000000000", - isErr: false, - }, - } - - for _, tc := range tcs { - t.Run(tc.name, func(t *testing.T) { - testCaseEnvFilePath := filepath.Join("testdata", tc.testdataCase, ".env") - got, err := GetTTD(testCaseEnvFilePath) - - descr := fmt.Sprintf("GetTTD(%s)", testCaseEnvFilePath) - if err = utils.CheckErr(descr, tc.isErr, err); err != nil { - t.Error(err) - } - - if got != tc.want { - t.Errorf("Expected %v, got %v. Function call: %s", tc.want, got, descr) - } - }) - } -} - func TestCheckVariableBase(t *testing.T) { t.Parallel() diff --git a/internal/pkg/env/regex.go b/internal/pkg/env/regex.go index bddcadc98..4d4eb7885 100644 --- a/internal/pkg/env/regex.go +++ b/internal/pkg/env/regex.go @@ -18,7 +18,6 @@ package env import "regexp" var ( - ReTTD = regexp.MustCompile(`TTD=(.*)`) ReMEV = regexp.MustCompile(`MEV=(.*)`) ReXEEV = regexp.MustCompile(`XEE_VERSION=(.*)`) ReClBOOTNODES = regexp.MustCompile(`CC_BOOTNODES=(.*)`) diff --git a/internal/pkg/env/testdata/case_2/.env b/internal/pkg/env/testdata/case_2/.env index e17c80e21..65ec66915 100644 --- a/internal/pkg/env/testdata/case_2/.env +++ b/internal/pkg/env/testdata/case_2/.env @@ -1,3 +1,2 @@ -TTD=8000000000000000000000001000000000000 EC_BOOTNODES="enode://011f758e6552d105183b1761c5e2dea0111bc20fd5f6422bc7f91e0fabbec9a6595caf6239b37feb773dddd3f87240d99d859431891e4a642cf2a0a9e6cbb98a@51.141.78.53:30303,enode://176b9417f511d05b6b2cf3e34b756cf0a7096b3094572a8f6ef4cdcb9d1f9d00683bf0f83347eebdf3b81c3521c2332086d9592802230bf528eaf606a1d9677b@13.93.54.137:30303,enode://46add44b9f13965f7b9875ac6b85f016f341012d84f975377573800a863526f4da19ae2c620ec73d11591fa9510e992ecc03ad0751f53cc02f7c7ed6d55c7291@94.237.54.114:30313,enode://b5948a2d3e9d486c4d75bf32713221c2bd6cf86463302339299bd227dc2e276cd5a1c7ca4f43a0e9122fe9af884efed563bd2a1fd28661f3b5f5ad7bf1de5949@18.218.250.66:30303" CC_BOOTNODES="enr:-LK4QH1xnjotgXwg25IDPjrqRGFnH1ScgNHA3dv1Z8xHCp4uP3N3Jjl_aYv_WIxQRdwZvSukzbwspXZ7JjpldyeVDzMCh2F0dG5ldHOIAAAAAAAAAACEZXRoMpB53wQoAAAQIP__________gmlkgnY0gmlwhIe1te-Jc2VjcDI1NmsxoQOkcGXqbCJYbcClZ3z5f6NWhX_1YPFRYRRWQpJjwSHpVIN0Y3CCIyiDdWRwgiMo,enr:-KG4QCIzJZTY_fs_2vqWEatJL9RrtnPwDCv-jRBuO5FQ2qBrfJubWOWazri6s9HsyZdu-fRUfEzkebhf1nvO42_FVzwDhGV0aDKQed8EKAAAECD__________4JpZIJ2NIJpcISHtbYziXNlY3AyNTZrMaED4m9AqVs6F32rSCGsjtYcsyfQE2K8nDiGmocUY_iq-TSDdGNwgiMog3VkcIIjKA,enr:-Ku4QFmUkNp0g9bsLX2PfVeIyT-9WO-PZlrqZBNtEyofOOfLMScDjaTzGxIb1Ns9Wo5Pm_8nlq-SZwcQfTH2cgO-s88Bh2F0dG5ldHOIAAAAAAAAAACEZXRoMpDkvpOTAAAQIP__________gmlkgnY0gmlwhBLf22SJc2VjcDI1NmsxoQLV_jMOIxKbjHFKgrkFvwDvpexo6Nd58TK5k7ss4Vt0IoN1ZHCCG1g,enr:-LK4QLINdtobGquK7jukLDAKmsrH2ZuHM4k0TklY5jDTD4ZgfxR9weZmo5Jwu81hlKu3qPAvk24xHGBDjYs4o8f1gZ0Bh2F0dG5ldHOIAAAAAAAAAACEZXRoMpB53wQoAAAQIP__________gmlkgnY0gmlwhDRN_P6Jc2VjcDI1NmsxoQJuNujTgsJUHUgVZML3pzrtgNtYg7rQ4K1tkWERgl0DdoN0Y3CCIyiDdWRwgiMo,enr:-LK4QMzPq4Q7w5R-rnGQDcI8BYky6oPVBGQTbS1JJLVtNi_8PzBLV7Bdzsoame9nJK5bcJYpGHn4SkaDN2CM6tR5G_4Bh2F0dG5ldHOIAAAAAAAAAACEZXRoMpB53wQoAAAQIP__________gmlkgnY0gmlwhAN4yvyJc2VjcDI1NmsxoQKa8Qnp_P2clLIP6VqLKOp_INvEjLszalEnW0LoBZo4YYN0Y3CCI4yDdWRwgiOM,enr:-LK4QLM_pPHa78R8xlcU_s40Y3XhFjlb3kPddW9lRlY67N5qeFE2Wo7RgzDgRs2KLCXODnacVHMFw1SfpsW3R474RZEBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpB53wQoAAAQIP__________gmlkgnY0gmlwhANBY-yJc2VjcDI1NmsxoQNsZkFXgKbTzuxF7uwxlGauTGJelE6HD269CcFlZ_R7A4N0Y3CCI4yDdWRwgiOM,enr:-KK4QH0RsNJmIG0EX9LSnVxMvg-CAOr3ZFF92hunU63uE7wcYBjG1cFbUTvEa5G_4nDJkRhUq9q2ck9xY-VX1RtBsruBtIRldGgykIL0pysBABAg__________-CaWSCdjSCaXCEEnXQ0YlzZWNwMjU2azGhA1grTzOdMgBvjNrk-vqWtTZsYQIi0QawrhoZrsn5Hd56g3RjcIIjKIN1ZHCCIyg" diff --git a/internal/pkg/generate/generate_scripts.go b/internal/pkg/generate/generate_scripts.go index 8b86272de..3c54f75e8 100644 --- a/internal/pkg/generate/generate_scripts.go +++ b/internal/pkg/generate/generate_scripts.go @@ -216,11 +216,6 @@ func ComposeFile(gd *GenData, at io.Writer) error { } } - ttd := gd.CustomTTD - if len(ttd) == 0 { - ttd = configs.NetworksConfigs()[gd.Network].DefaultTTD - } - // Check for CL Bootnode nodes if len(gd.CCBootnodes) == 0 { gd.CCBootnodes = configs.NetworksConfigs()[gd.Network].DefaultCCBootnodes @@ -251,7 +246,6 @@ func ComposeFile(gd *GenData, at io.Writer) error { data := DockerComposeData{ Services: gd.Services, Network: gd.Network, - TTD: ttd, XeeVersion: xeeVersion, Mev: gd.MevBoostService || (mevSupported && gd.Mev), MevBoostOnValidator: gd.MevBoostService || (mevSupported && gd.Mev) || gd.MevBoostOnValidator, diff --git a/internal/pkg/generate/generate_scripts_test.go b/internal/pkg/generate/generate_scripts_test.go index b1720eb23..fd67799c8 100644 --- a/internal/pkg/generate/generate_scripts_test.go +++ b/internal/pkg/generate/generate_scripts_test.go @@ -104,26 +104,6 @@ func checkCCBootnodesOnConsensus(t *testing.T, data *GenData, compose, env io.Re return nil } -func checkTTDOnExecution(t *testing.T, data *GenData, compose, env io.Reader) error { - composeData := retrieveComposeData(t, compose) - customTTD := data.CustomTTD - if customTTD == "" { - customTTD = configs.NetworksConfigs()[data.Network].DefaultTTD - } - if customTTD != "" { - if composeData.Services.Execution != nil && data.ExecutionClient.Name == "besu" { - checkFlagOnCommands(t, composeData.Services.Execution.Command, "--override-genesis-config=terminalTotalDifficulty="+customTTD) - } - if composeData.Services.Execution != nil && data.ExecutionClient.Name == "nethermind" { - checkFlagOnCommands(t, composeData.Services.Execution.Command, "--Merge.TerminalTotalDifficulty="+customTTD) - } - if composeData.Services.Execution != nil && data.ExecutionClient.Name == "geth" { - checkFlagOnCommands(t, composeData.Services.Execution.Command, "--override.terminaltotaldifficulty="+customTTD) - } - } - return nil -} - func checkECBootnodesOnExecution(t *testing.T, data *GenData, compose, env io.Reader) error { composeData := retrieveComposeData(t, compose) if len(data.ECBootnodes) == 0 { @@ -452,7 +432,7 @@ func customFlagsTestCases(t *testing.T) (tests []genTestData) { if utils.Contains(validatorClients, consensusCl) { tests = append(tests, genTestData{ - Description: fmt.Sprintf(baseDescription+"customTTD tests, execution: %s, consensus: %s, validator: %s, network: %s, all", executionCl, consensusCl, consensusCl, network), + Description: fmt.Sprintf(baseDescription+"execution: %s, consensus: %s, validator: %s, network: %s, all", executionCl, consensusCl, consensusCl, network), GenerationData: &GenData{ ExecutionClient: &clients.Client{Name: executionCl}, ConsensusClient: &clients.Client{Name: consensusCl}, @@ -460,7 +440,7 @@ func customFlagsTestCases(t *testing.T) (tests []genTestData) { Network: network, Services: []string{execution, consensus, validator}, }, - CheckFunctions: []CheckFunc{checkTTDOnExecution, defaultFunc, checkECBootnodesOnExecution, checkValidatorBlocker}, + CheckFunctions: []CheckFunc{defaultFunc, checkECBootnodesOnExecution, checkValidatorBlocker}, }, genTestData{ Description: fmt.Sprintf(baseDescription+"ecBootnodes tests, execution: %s, consensus: %s, validator: %s, network: %s, no validator", executionCl, consensusCl, consensusCl, network), @@ -471,7 +451,7 @@ func customFlagsTestCases(t *testing.T) (tests []genTestData) { ConsensusClient: &clients.Client{Name: consensusCl}, Network: network, }, - CheckFunctions: []CheckFunc{defaultFunc, checkECBootnodesOnExecution, checkTTDOnExecution, checkValidatorBlocker}, + CheckFunctions: []CheckFunc{defaultFunc, checkECBootnodesOnExecution, checkValidatorBlocker}, }, genTestData{ Description: fmt.Sprintf(baseDescription+"ccBootnodes tests, execution: %s, consensus: %s, validator: %s, network: %s, Execution Client not Valid", executionCl, consensusCl, consensusCl, network), diff --git a/internal/pkg/generate/types.go b/internal/pkg/generate/types.go index ead35407b..cc00ba359 100644 --- a/internal/pkg/generate/types.go +++ b/internal/pkg/generate/types.go @@ -69,7 +69,6 @@ type GenData struct { LoggingDriver string ECBootnodes []string CCBootnodes []string - CustomTTD string CustomChainSpecPath string CustomNetworkConfigPath string CustomGenesisPath string @@ -86,7 +85,6 @@ type GenData struct { type DockerComposeData struct { Services []string Network string - TTD string XeeVersion bool Mev bool MevBoostOnValidator bool diff --git a/templates/services/merge/consensus/lighthouse.tmpl b/templates/services/merge/consensus/lighthouse.tmpl index eac17f87d..bef6e8eda 100644 --- a/templates/services/merge/consensus/lighthouse.tmpl +++ b/templates/services/merge/consensus/lighthouse.tmpl @@ -38,8 +38,7 @@ - --boot-nodes={{.CCBootnodes}}{{end}} - --execution-endpoints=${EC_AUTH_URL} - --execution-jwt=/tmp/jwt/jwtsecret - - --eth1-endpoints=${EC_API_URL}{{range $url := .FallbackELUrls}},{{$url}}{{end}}{{if .TTD}} - - --terminal-total-difficulty-override={{.TTD}}{{end}} + - --eth1-endpoints=${EC_API_URL}{{range $url := .FallbackELUrls}},{{$url}}{{end}} - --debug-level=${CC_LOG_LEVEL}{{with .FeeRecipient}} - --suggested-fee-recipient=${FEE_RECIPIENT}{{end}} - --validator-monitor-auto diff --git a/templates/services/merge/consensus/lodestar.tmpl b/templates/services/merge/consensus/lodestar.tmpl index 86a074abb..bf1750eca 100644 --- a/templates/services/merge/consensus/lodestar.tmpl +++ b/templates/services/merge/consensus/lodestar.tmpl @@ -31,8 +31,7 @@ - --network={{if .SplittedNetwork}}${CL_NETWORK}{{else}}${NETWORK}{{end}}{{end}} - --eth1=true - --eth1.providerUrls=${EC_API_URL}{{range $url := .FallbackELUrls}},{{$url}}{{end}} - - --execution.urls=${EC_AUTH_URL}{{if .TTD}} - - --terminal-total-difficulty-override={{.TTD}}{{end}} + - --execution.urls=${EC_AUTH_URL} - --logFile=/var/lib/lodestart/consensus/logs/beacon.log - --logFileLevel=${CC_LOG_LEVEL}{{with .FeeRecipient}} - --suggestedFeeRecipient=${FEE_RECIPIENT}{{end}} diff --git a/templates/services/merge/consensus/prysm.tmpl b/templates/services/merge/consensus/prysm.tmpl index c41a45545..3e5970cfc 100644 --- a/templates/services/merge/consensus/prysm.tmpl +++ b/templates/services/merge/consensus/prysm.tmpl @@ -26,8 +26,7 @@ - --contract-deployment-block={{.CustomDeployBlock}}{{end}}{{if .CustomGenesisPath}} - --genesis-state=/network_config/genesis.ssz{{end}}{{else}} - --{{if .SplittedNetwork}}${CL_NETWORK}{{else}}${NETWORK}{{end}}{{end}}{{range $enr := .CCBootnodesList}} - - --bootstrap-node={{$enr}}{{end}}{{if .TTD}} - - --terminal-total-difficulty-override={{.TTD}}{{end}} + - --bootstrap-node={{$enr}}{{end}} - --p2p-tcp-port={{.ClDiscoveryPort}} - --p2p-udp-port={{.ClDiscoveryPort}} - --jwt-secret=/tmp/jwt/jwtsecret diff --git a/templates/services/merge/consensus/teku.tmpl b/templates/services/merge/consensus/teku.tmpl index 52e8531f5..91d06c2f1 100644 --- a/templates/services/merge/consensus/teku.tmpl +++ b/templates/services/merge/consensus/teku.tmpl @@ -46,8 +46,7 @@ - --data-storage-non-canonical-blocks-enabled=false - --ee-endpoint=${EC_AUTH_URL}{{with .FeeRecipient}} - --validators-proposer-default-fee-recipient=${FEE_RECIPIENT}{{end}} - - --ee-jwt-secret-file=/tmp/jwt/jwtsecret{{if .TTD}} - - --Xnetwork-total-terminal-difficulty-override={{.TTD}}{{end}} + - --ee-jwt-secret-file=/tmp/jwt/jwtsecret - --metrics-enabled=true - --metrics-host-allowlist=* - --metrics-interface=0.0.0.0 diff --git a/templates/services/merge/execution/besu.tmpl b/templates/services/merge/execution/besu.tmpl index 4d7084927..90d15601e 100644 --- a/templates/services/merge/execution/besu.tmpl +++ b/templates/services/merge/execution/besu.tmpl @@ -21,8 +21,7 @@ expose: - {{.ElApiPort}} - {{.ElAuthPort}} - command:{{if .TTD}} - - --override-genesis-config=terminalTotalDifficulty={{.TTD}}{{end}} + command: - --sync-mode=X_SNAP - --data-storage-format=BONSAI{{if .CustomChainSpecPath}} - --genesis-file=/nethermind/custom_config/chainspec.json{{else}} diff --git a/templates/services/merge/execution/geth.tmpl b/templates/services/merge/execution/geth.tmpl index 4d0db7f60..49cf1a065 100644 --- a/templates/services/merge/execution/geth.tmpl +++ b/templates/services/merge/execution/geth.tmpl @@ -21,8 +21,7 @@ - {{.ElApiPort}} - {{.ElWsPort}} - {{.ElAuthPort}} - command:{{if .TTD}} - - --override.terminaltotaldifficulty={{.TTD}}{{end}}{{if .ECBootnodes}} + command:{{if .ECBootnodes}} - --bootnodes={{.ECBootnodes}}{{end}} - --syncmode=${EC_SYNC_MODE} - --http diff --git a/templates/services/merge/execution/nethermind.tmpl b/templates/services/merge/execution/nethermind.tmpl index 1440240c9..c661115f5 100644 --- a/templates/services/merge/execution/nethermind.tmpl +++ b/templates/services/merge/execution/nethermind.tmpl @@ -28,8 +28,7 @@ - --Init.ChainSpecPath=/nethermind/custom_config/chainspec.json{{end}} - --config={{if .CustomNetwork}}none{{else}}{{if .SplittedNetwork}}${EL_NETWORK}{{else}}${NETWORK}{{end}}{{end}} - --datadir=/nethermind/data - - --log=${NETHERMIND_LOG_LEVEL}{{if .TTD}} - - --Merge.TerminalTotalDifficulty={{.TTD}}{{end}} + - --log=${NETHERMIND_LOG_LEVEL} - --JsonRpc.Enabled=true - --JsonRpc.Host=0.0.0.0 - --JsonRpc.Port={{.ElApiPort}} From 23bcdfe50510111f885e1c8c322e44a286931c2d Mon Sep 17 00:00:00 2001 From: nethermind-machine <76107542+nethermind-machine@users.noreply.github.com> Date: Fri, 13 Oct 2023 08:27:47 +0200 Subject: [PATCH 10/30] chore: Update image versions to latest version. (#313) Co-authored-by: AntiD2ta --- configs/client_images.yaml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/configs/client_images.yaml b/configs/client_images.yaml index b3c119b36..c38942661 100644 --- a/configs/client_images.yaml +++ b/configs/client_images.yaml @@ -1,20 +1,20 @@ execution: geth: name: ethereum/client-go - version: v1.12.1 + version: v1.13.3 besu: name: hyperledger/besu version: 23.4.4 nethermind: name: nethermind/nethermind - version: 1.20.1 + version: 1.21.0 erigon: name: thorax/erigon - version: v2.48.1 + version: v2.52.4 consensus: lighthouse: name: sigp/lighthouse - version: v4.3.0 + version: v4.5.0 lodestar: name: chainsafe/lodestar version: v1.9.2 @@ -23,11 +23,11 @@ consensus: version: 23.8.0 prysm: name: gcr.io/prysmaticlabs/prysm/beacon-chain - version: v4.0.7 + version: v4.0.8 validator: lighthouse: name: sigp/lighthouse - version: v4.3.0 + version: v4.5.0 lodestar: name: chainsafe/lodestar version: v1.9.2 @@ -36,4 +36,4 @@ validator: version: 23.8.0 prysm: name: gcr.io/prysmaticlabs/prysm/validator - version: v4.0.7 + version: v4.0.8 From 2d20170d4918068476f424ba04bbd0e1721803b8 Mon Sep 17 00:00:00 2001 From: Marcos Antonio Maceo <35319980+stdevMac@users.noreply.github.com> Date: Fri, 13 Oct 2023 11:16:23 +0400 Subject: [PATCH 11/30] Add flag for latest version (#316) * feat: Add logic for flag --latest * feat: Add tests for flag --latest on generation * docs: Update documentation for latest tag * doc: fix error identing error * fix: upgrade windows version to 1.21 on github actions * chore: update message for --latest command * doc: udpate documentation of --latest flag on generation * doc: update changelog * fix: latest tag error on generation * fix: update tests for generation * format: make format * chore: adjust go.mod --------- Co-authored-by: Miguel Tenorio <46824157+AntiD2ta@users.noreply.github.com> --- CHANGELOG.md | 5 +++ cli/actions/generation_test.go | 42 +++++++++++++++++ cli/generate.go | 2 + cli/generate_test.go | 55 +++++++++++++++++++++++ cli/sub_gen.go | 4 ++ docs/docs/commands/generate.mdx | 4 ++ docs/docs/quickstart/complete-guide.mdx | 14 ++++++ go.mod | 3 +- go.sum | 6 ++- internal/pkg/generate/generate_scripts.go | 13 ++++-- internal/pkg/generate/types.go | 1 + 11 files changed, 142 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d992220e3..3155e47f3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] + +### Added + +- New `--latest` flag to `sedge generate` subcommands to use the latest version of the image in the clients. + ### Fixed - Remove TTD of the params, test cases, command flags and geth patch for custom testnets. diff --git a/cli/actions/generation_test.go b/cli/actions/generation_test.go index 7af59de28..af6896b9b 100644 --- a/cli/actions/generation_test.go +++ b/cli/actions/generation_test.go @@ -29,6 +29,8 @@ import ( "testing" "time" + "github.com/distribution/reference" + "github.com/NethermindEth/sedge/cli/actions" "github.com/NethermindEth/sedge/configs" "github.com/NethermindEth/sedge/internal/pkg/clients" @@ -250,6 +252,17 @@ func TestGenerateDockerCompose(t *testing.T) { ContainerTag: "sampleTag", }, }, + genTestData{ + name: fmt.Sprintf("execution: %s, consensus: %s, validator: %s, network: %s, no validator, with latest", executionCl, consensusCl, consensusCl, network), + genData: generate.GenData{ + ExecutionClient: &clients.Client{Name: executionCl, Type: "execution"}, + ConsensusClient: &clients.Client{Name: consensusCl, Type: "consensus"}, + Services: []string{"execution", "consensus"}, + Network: network, + ContainerTag: "sampleTag", + LatestVersion: true, + }, + }, ) } } @@ -303,6 +316,16 @@ func TestGenerateDockerCompose(t *testing.T) { assert.Equal(t, services.DefaultSedgeExecutionClient+"-sampleTag", cmpData.Services.Execution.ContainerName) } + // Check ecImage has the right format + ecImageVersion := envData["EC_IMAGE_VERSION"] + named, err := reference.ParseNormalizedNamed(ecImageVersion) + assert.NoError(t, err, "invalid image", ecImageVersion) + + // Test that the execution image is set to latest if flag --latest is provided + if tc.genData.LatestVersion { + assert.True(t, strings.HasSuffix(named.String(), ":latest")) + } + // Check that mev-boost service is not set when execution only if tc.genData.ValidatorClient == nil && tc.genData.ConsensusClient == nil { assert.Nil(t, cmpData.Services.Mevboost) @@ -326,6 +349,15 @@ func TestGenerateDockerCompose(t *testing.T) { assert.True(t, contains(t, cmpData.Services.Consensus.Command, tc.genData.CheckpointSyncUrl), "Checkpoint Sync URL not found in consensus service command: %s", cmpData.Services.Consensus.Command) } + // Check ccImage has the right format + ccImageVersion := envData["CC_IMAGE_VERSION"] + named, err := reference.ParseNormalizedNamed(ccImageVersion) + assert.NoError(t, err, "invalid image", ccImageVersion) + + // Test that the consensus image is set to latest if flag --latest is provided + if tc.genData.LatestVersion { + assert.True(t, strings.HasSuffix(named.String(), ":latest")) + } // Validate Execution API and AUTH URLs apiEndpoint, authEndpoint := envData["EC_API_URL"], envData["EC_AUTH_URL"] if tc.genData.ExecutionApiUrl != "" { @@ -378,6 +410,16 @@ func TestGenerateDockerCompose(t *testing.T) { prysmURL = strings.TrimPrefix(prysmURL, "http://") prysmURL = strings.TrimPrefix(prysmURL, "https://") + // Check vlImage has the right format + vlImageVersion := envData["VL_IMAGE_VERSION"] + named, err := reference.ParseNormalizedNamed(vlImageVersion) + assert.NoError(t, err, "invalid image", vlImageVersion) + + // Test that the consensus image is set to latest if flag --latest is provided + if tc.genData.LatestVersion { + assert.True(t, strings.HasSuffix(named.String(), ":latest")) + } + // Check Consensus API URL is set and is valid uri, err := url.ParseRequestURI(envData["CC_API_URL"]) assert.Nil(t, err) diff --git a/cli/generate.go b/cli/generate.go index 8bbcb417c..d6fb62f8d 100644 --- a/cli/generate.go +++ b/cli/generate.go @@ -82,6 +82,7 @@ type GenCmdFlags struct { waitEpoch int customEnodes []string customEnrs []string + latestVersion bool } func GenerateCmd(sedgeAction actions.SedgeActions) *cobra.Command { @@ -298,6 +299,7 @@ func runGenCmd(out io.Writer, flags *GenCmdFlags, sedgeAction actions.SedgeActio CustomDeployBlockPath: flags.CustomFlags.customDeployBlock, MevBoostOnValidator: flags.mevBoostOnVal, ContainerTag: containerTag, + LatestVersion: flags.latestVersion, } _, err = sedgeAction.Generate(actions.GenerateOptions{ GenerationData: gd, diff --git a/cli/generate_test.go b/cli/generate_test.go index 2f5080d7d..ce2b6c767 100644 --- a/cli/generate_test.go +++ b/cli/generate_test.go @@ -147,6 +147,9 @@ func (flags *GenCmdFlags) argsList() []string { if len(flags.fallbackEL) > 0 { s = append(s, "--fallback-execution-urls", strings.Join(flags.fallbackEL, ",")) } + if flags.latestVersion { + s = append(s, "--latest") + } return s } @@ -1255,6 +1258,58 @@ func TestGenerateCmd(t *testing.T) { }, nil, }, + { + "Full node - Latest version of clients", + subCmd{ + name: "full-node", + }, + GenCmdFlags{ + noValidator: true, + executionName: "nethermind", + consensusName: "teku", + latestVersion: true, + }, + globalFlags{ + network: "mainnet", + }, + nil, + }, + { + "Execution - Latest version of clients", + subCmd{ + name: "execution", + }, + GenCmdFlags{ + latestVersion: true, + }, + globalFlags{}, + nil, + }, + { + "Consensus - Latest version of clients", + subCmd{ + name: "consensus", + }, + GenCmdFlags{ + latestVersion: true, + executionApiUrl: "https://localhost:8545", + executionAuthUrl: "https://localhost:8545", + }, + globalFlags{}, + nil, + }, + { + "Validator - Latest version of clients", + subCmd{ + name: "validator", + }, + GenCmdFlags{ + latestVersion: true, + consensusApiUrl: "https://localhost:8000/api/endpoint", + }, + globalFlags{}, + nil, + }, } // TODO: Add test cases for Execution fallback urls diff --git a/cli/sub_gen.go b/cli/sub_gen.go index 62c95ff25..f9284d0bb 100644 --- a/cli/sub_gen.go +++ b/cli/sub_gen.go @@ -77,6 +77,7 @@ Additionally, you can use this syntax ':' to override the cmd.Flags().StringVarP(&flags.consensusName, "consensus", "c", "", "Consensus engine client, e.g. teku, lodestar, prysm, lighthouse, Nimbus. Additionally, you can use this syntax ':' to override the docker image used for the client. If you want to use the default docker image, just use the client name") cmd.Flags().StringVarP(&flags.executionName, "execution", "e", "", "Execution engine client, e.g. geth, nethermind, besu, erigon. Additionally, you can use this syntax ':' to override the docker image used for the client. If you want to use the default docker image, just use the client name") cmd.Flags().StringVarP(&flags.validatorName, "validator", "v", "", "Validator engine client, e.g. teku, lodestar, prysm, lighthouse, Nimbus. Additionally, you can use this syntax ':' to override the docker image used for the client. If you want to use the default docker image, just use the client name") + cmd.Flags().BoolVar(&flags.latestVersion, "latest", false, "Use the latest version of clients. This sets the \"latest\" tag on the client's docker images. Latest version might not work.") cmd.Flags().StringVar(&flags.checkpointSyncUrl, "checkpoint-sync-url", "", "Initial state endpoint (trusted synced consensus endpoint) for the consensus client to sync from a finalized checkpoint. Provide faster sync process for the consensus client and protect it from long-range attacks affored by Weak Subjetivity. Each network has a default checkpoint sync url.") cmd.Flags().StringVar(&flags.feeRecipient, "fee-recipient", "", "Suggested fee recipient. Is a 20-byte Ethereum address which the execution layer might choose to set as the coinbase and the recipient of other fees or rewards. There is no guarantee that an execution node will use the suggested fee recipient to collect fees, it may use any address it chooses. It is assumed that an honest execution node will use the suggested fee recipient, but users should note this trust assumption") cmd.Flags().BoolVar(&flags.noMev, "no-mev-boost", false, "Not use mev-boost if supported") @@ -132,6 +133,7 @@ func ExecutionSubCmd(sedgeAction actions.SedgeActions) *cobra.Command { } // Bind flags + cmd.Flags().BoolVar(&flags.latestVersion, "latest", false, "Use the latest version of clients. This sets the \"latest\" tag on the client's docker images. Latest version might not work.") cmd.Flags().StringVar(&flags.jwtPath, "jwt-secret-path", "", "Path to the JWT secret file") cmd.Flags().BoolVar(&flags.mapAllPorts, "map-all", false, "Map all clients ports to host. Use with care. Useful to allow remote access to the clients") cmd.Flags().StringVar(&flags.customChainSpec, "custom-chainSpec", "", "File path or url to use as custom network chainSpec for execution client.") @@ -175,6 +177,7 @@ func ConsensusSubCmd(sedgeAction actions.SedgeActions) *cobra.Command { }, } // Bind flags + cmd.Flags().BoolVar(&flags.latestVersion, "latest", false, "Use the latest version of clients. This sets the \"latest\" tag on the client's docker images. Latest version might not work.") cmd.Flags().StringVar(&flags.executionApiUrl, "execution-api-url", "", "Execution API endpoint for the consensus client. Example: 'sedge generate consensus -r --execution-api-url=https://api.url.endpoint'") cmd.Flags().StringVar(&flags.executionAuthUrl, "execution-auth-url", "", "Execution AUTH endpoint for the consensus client. Example: 'sedge generate consensus -r --execution-auth-url=https://auth.url.endpoint'") cmd.Flags().StringVar(&flags.checkpointSyncUrl, "checkpoint-sync-url", "", "Initial state endpoint (trusted synced consensus endpoint) for the consensus client to sync from a finalized checkpoint. Provide faster sync process for the consensus client and protect it from long-range attacks affored by Weak Subjetivity. Each network has a default checkpoint sync url.") @@ -234,6 +237,7 @@ func ValidatorSubCmd(sedgeAction actions.SedgeActions) *cobra.Command { }, } // Bind flags + cmd.Flags().BoolVar(&flags.latestVersion, "latest", false, "Use the latest version of clients. This sets the \"latest\" tag on the client's docker images. Latest version might not work.") cmd.Flags().StringVar(&flags.consensusApiUrl, "consensus-url", "", "Consensus endpoint for the validator client to connect to. Example: 'sedge generate validator --consensus-url http://localhost:4000'") cmd.Flags().StringVar(&flags.feeRecipient, "fee-recipient", "", "Suggested fee recipient. Is a 20-byte Ethereum address which the execution layer might choose to set as the coinbase and the recipient of other fees or rewards. There is no guarantee that an execution node will use the suggested fee recipient to collect fees, it may use any address it chooses. It is assumed that an honest execution node will use the suggested fee recipient, but users should note this trust assumption") cmd.Flags().StringVar(&flags.graffiti, "graffiti", "", "Graffiti to be used by the validator") diff --git a/docs/docs/commands/generate.mdx b/docs/docs/commands/generate.mdx index eac82f83e..4bb7967c3 100644 --- a/docs/docs/commands/generate.mdx +++ b/docs/docs/commands/generate.mdx @@ -75,6 +75,7 @@ Flags: -c, --consensus string Consensus engine client, e.g. teku, lodestar, prysm, lighthouse, Nimbus. Additionally, you can use this syntax ':' to override the docker image used for the client. If you want to use the default docker image, just use the client name -e, --execution string Execution engine client, e.g. geth, nethermind, besu, erigon. Additionally, you can use this syntax ':' to override the docker image used for the client. If you want to use the default docker image, just use the client name -v, --validator string Validator engine client, e.g. teku, lodestar, prysm, lighthouse, Nimbus. Additionally, you can use this syntax ':' to override the docker image used for the client. If you want to use the default docker image, just use the client name + --latest Use the latest version of clients. This sets the "latest" tag on the client's docker images. Latest version might not work. --checkpoint-sync-url string Initial state endpoint (trusted synced consensus endpoint) for the consensus client to sync from a finalized checkpoint. Provide faster sync process for the consensus client and protect it from long-range attacks affored by Weak Subjetivity. Each network has a default checkpoint sync url. --fee-recipient string Suggested fee recipient. Is a 20-byte Ethereum address which the execution layer might choose to set as the coinbase and the recipient of other fees or rewards. There is no guarantee that an execution node will use the suggested fee recipient to collect fees, it may use any address it chooses. It is assumed that an honest execution node will use the suggested fee recipient, but users should note this trust assumption --no-mev-boost Not use mev-boost if supported @@ -123,6 +124,7 @@ Usage: sedge generate consensus [flags] --execution-api-url --execution-auth-url [args] Flags: + --latest Use the latest version of clients. This sets the "latest" tag on the client's docker images. Latest version might not work. --execution-api-url string Execution API endpoint for the consensus client. Example: 'sedge generate consensus -r --execution-api-url=https://api.url.endpoint' --execution-auth-url string Execution AUTH endpoint for the consensus client. Example: 'sedge generate consensus -r --execution-auth-url=https://auth.url.endpoint' --checkpoint-sync-url string Initial state endpoint (trusted synced consensus endpoint) for the consensus client to sync from a finalized checkpoint. Provide faster sync process for the consensus client and protect it from long-range attacks affored by Weak Subjetivity. Each network has a default checkpoint sync url. @@ -160,6 +162,7 @@ Usage: sedge generate execution [flags] [args] Flags: + --latest Use the latest version of clients. This sets the "latest" tag on the client's docker images. Latest version might not work. --jwt-secret-path string Path to the JWT secret file --map-all Map all clients ports to host. Use with care. Useful to allow remote access to the clients --custom-chainSpec string File path or url to use as custom network chainSpec for execution client. @@ -197,6 +200,7 @@ Usage: sedge generate validator [flags] --consensus-url [args] Flags: + --latest Use the latest version of clients. This sets the "latest" tag on the client's docker images. Latest version might not work. --consensus-url string Consensus endpoint for the validator client to connect to. Example: 'sedge generate validator --consensus-url http://localhost:4000' --fee-recipient string Suggested fee recipient. Is a 20-byte Ethereum address which the execution layer might choose to set as the coinbase and the recipient of other fees or rewards. There is no guarantee that an execution node will use the suggested fee recipient to collect fees, it may use any address it chooses. It is assumed that an honest execution node will use the suggested fee recipient, but users should note this trust assumption --graffiti string Graffiti to be used by the validator diff --git a/docs/docs/quickstart/complete-guide.mdx b/docs/docs/quickstart/complete-guide.mdx index a5d5f08da..b4c47ece6 100644 --- a/docs/docs/quickstart/complete-guide.mdx +++ b/docs/docs/quickstart/complete-guide.mdx @@ -141,6 +141,20 @@ You can learn more about `sedge generate` if you check [here in our documentatio ::: +:::info + +If you want to use the client's latest version and avoid using the fixed version tested by us, you can generate the +setup using the following command: `sedge generate full-node --latest`. If you want to learn +more, you can check [here in our documentation](/docs/commands/generate). + +The `--latest` flag can be used for the `full-node`, `execution`, `consensus` and `validator` commands. + +You can update your client's versions using the following commands if the clients release any version: +1. Run `docker compose -f /path/to/docker-compose.yml pull` to update the images. +2. Run `docker compose -f /path/to/docker-compose.yml up -d` to restart the containers. + +::: + ##### 2.2.2 Generate validator keystore Running the `sedge keys` command will generate a keystore folder with validator keys inside. This keystore contains a `deposit_data.json` that can be used to register the validator. diff --git a/go.mod b/go.mod index 8b6584ec9..87c2fcd4f 100644 --- a/go.mod +++ b/go.mod @@ -8,6 +8,7 @@ require ( github.com/antonfisher/nested-logrus-formatter v1.3.1 github.com/cenkalti/backoff/v4 v4.2.0 github.com/compose-spec/compose-go v1.12.0 + github.com/distribution/reference v0.5.0 github.com/docker/docker v23.0.3+incompatible github.com/golang/mock v1.6.0 github.com/google/go-github/v47 v47.1.0 @@ -37,7 +38,7 @@ require ( github.com/creack/pty v1.1.18 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/distribution/distribution/v3 v3.0.0-20230223072852-e5d5810851d1 // indirect - github.com/docker/distribution v2.8.2+incompatible // indirect + github.com/docker/distribution v2.8.3+incompatible // indirect github.com/docker/go-connections v0.4.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/ferranbt/fastssz v0.1.3 // indirect diff --git a/go.sum b/go.sum index 943480dea..a87956197 100644 --- a/go.sum +++ b/go.sum @@ -23,8 +23,10 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/distribution/v3 v3.0.0-20230223072852-e5d5810851d1 h1:OtfRoaZ54jKZ7jl9WuxqekousLR9T63iJf0y2EdC2S4= github.com/distribution/distribution/v3 v3.0.0-20230223072852-e5d5810851d1/go.mod h1:r5XLH1cp+Wau2jxdptkYsFvvvzPPQTIe8eUuQ0vq30Q= -github.com/docker/distribution v2.8.2+incompatible h1:T3de5rq0dB1j30rp0sA2rER+m322EBzniBPB6ZIzuh8= -github.com/docker/distribution v2.8.2+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= +github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= +github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= +github.com/docker/distribution v2.8.3+incompatible h1:AtKxIZ36LoNK51+Z6RpzLpddBirtxJnzDrHLEKxTAYk= +github.com/docker/distribution v2.8.3+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= github.com/docker/docker v23.0.3+incompatible h1:9GhVsShNWz1hO//9BNg/dpMnZW25KydO4wtVxWAIbho= github.com/docker/docker v23.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= diff --git a/internal/pkg/generate/generate_scripts.go b/internal/pkg/generate/generate_scripts.go index 3c54f75e8..7cc39bc03 100644 --- a/internal/pkg/generate/generate_scripts.go +++ b/internal/pkg/generate/generate_scripts.go @@ -401,11 +401,11 @@ func EnvFile(gd *GenData, at io.Writer) error { data := EnvData{ Services: gd.Services, Mev: gd.MevBoostService || (mevSupported && gd.Mev) || gd.MevBoostOnValidator, - ElImage: imageOrEmpty(cls[execution]), + ElImage: imageOrEmpty(cls[execution], gd.LatestVersion), ElDataDir: "./" + configs.ExecutionDir, - CcImage: imageOrEmpty(cls[consensus]), + CcImage: imageOrEmpty(cls[consensus], gd.LatestVersion), CcDataDir: "./" + configs.ConsensusDir, - VlImage: imageOrEmpty(cls[validator]), + VlImage: imageOrEmpty(cls[validator], gd.LatestVersion), VlDataDir: "./" + configs.ValidatorDir, ExecutionApiURL: executionApiUrl, ExecutionAuthURL: executionAuthUrl, @@ -574,8 +574,13 @@ func joinIfNotEmpty(strs ...string) string { } // imageOrEmpty returns the image of the client if it is not nil, otherwise returns an empty string -func imageOrEmpty(cls *clients.Client) string { +func imageOrEmpty(cls *clients.Client, latest bool) string { if cls != nil { + if latest { + splits := strings.Split(cls.Image, ":") + splits[len(splits)-1] = "latest" + return strings.Join(splits, ":") + } return cls.Image } return "" diff --git a/internal/pkg/generate/types.go b/internal/pkg/generate/types.go index cc00ba359..81e4a6491 100644 --- a/internal/pkg/generate/types.go +++ b/internal/pkg/generate/types.go @@ -79,6 +79,7 @@ type GenData struct { ExecutionAuthUrl string ConsensusApiUrl string ContainerTag string + LatestVersion bool } // DockerComposeData : Struct Data object to be applied to docker-compose script From d28c33a36e6a81c46980268ff4e241bab81b0bab Mon Sep 17 00:00:00 2001 From: Carlos Bermudez Porto <43155355+cbermudez97@users.noreply.github.com> Date: Fri, 13 Oct 2023 09:39:21 -0400 Subject: [PATCH 12/30] feat: Update Network Configs (#314) * feat: update network configs * chore: update changelog --------- Co-authored-by: Marcos Antonio Maceo Reyes --- CHANGELOG.md | 13 +++++-- cli/actions/jwt_secrets.go | 2 +- configs/init.go | 80 +++++--------------------------------- configs/networks_test.go | 2 +- configs/types.go | 2 +- 5 files changed, 21 insertions(+), 78 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3155e47f3..bc801a7a3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Remove TTD of the params, test cases, command flags and geth patch for custom testnets. +### Changed + +- Remove default bootnodes for networks managed by clients. +- Remove custom configurations for Chiado and instead use the clients configuration. + ## [v1.2.3] - 2023-08-16 ### Added @@ -118,10 +123,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Rename sedge data directory name to `sedge-data` instead of `docker-compose-scripts`. - Update mev-boost relay URLs. - Fixed validator restart failure. Validator never restarts, but has a better and safer start-up method: - - Validator waits a grace period (2 epochs) before starting. - - Validator waits for the consensus sync to finish: verifying that the `/eth/v1/node/health` consensus endpoint - returns with the HTTP code 200 in the newly added `validator-blocker` docker-compose service. This replace the - older track sync method. + - Validator waits a grace period (2 epochs) before starting. + - Validator waits for the consensus sync to finish: verifying that the `/eth/v1/node/health` consensus endpoint + returns with the HTTP code 200 in the newly added `validator-blocker` docker-compose service. This replace the + older track sync method. - Updated installation script for docker and docker compose in Linux flavours. - Updated Checkpoint Sync Url for Goerli. - Use new created action for JWT secret handling. diff --git a/cli/actions/jwt_secrets.go b/cli/actions/jwt_secrets.go index 77c2e8cc3..0b71d8fa3 100644 --- a/cli/actions/jwt_secrets.go +++ b/cli/actions/jwt_secrets.go @@ -38,7 +38,7 @@ func (s *sedgeActions) CreateJWTSecrets(options CreateJWTSecretOptions) (string, // Generate JWT secret if necessary var err error jwtPath := options.JWTPath - if jwtPath == "" && configs.NetworksConfigs()[options.Network].RequireJWT { + if jwtPath == "" && !configs.NetworksConfigs()[options.Network].NoJWT { return handleJWTSecret(options.GenerationPath) } else if filepath.IsAbs(jwtPath) { // Ensure jwtPath is absolute if jwtPath, err = filepath.Abs(jwtPath); err != nil { diff --git a/configs/init.go b/configs/init.go index dff6cb594..f3a53b669 100644 --- a/configs/init.go +++ b/configs/init.go @@ -18,21 +18,10 @@ package configs var networksConfigs map[string]NetworkConfig = map[string]NetworkConfig{ NetworkMainnet: { Name: NetworkMainnet, - RequireJWT: true, NetworkService: "merge", GenesisForkVersion: "0x00000000", SupportsMEVBoost: true, - DefaultECBootnodes: []string{ - "enode://d860a01f9722d78051619d1e2351aba3f43f943f6f00718d1b9baa4101932a1f5011f16bb2b1bb35db20d6fe28fa0bf09636d26a87d31de9ec6203eeedb1f666@18.138.108.67:30303", - "enode://22a8232c3abc76a16ae9d6c3b164f98775fe226f0917b0ca871128a74a8e9630b458460865bab457221f1d448dd9791d24c4e5d88786180ac185df813a68d4de@3.209.45.79:30303", - "enode://8499da03c47d637b20eee24eec3c356c9a2e6148d6fe25ca195c7949ab8ec2c03e3556126b0d7ed644675e78c4318b08691b7b57de10e5f0d40d05b09238fa0a@52.187.207.27:30303", - "enode://103858bdb88756c71f15e9b5e09b56dc1be52f0a5021d46301dbbfb7e130029cc9d0d6f73f693bc29b665770fff7da4d34f3c6379fe12721b5d7a0bcb5ca1fc1@191.234.162.198:30303", - "enode://715171f50508aba88aecd1250af392a45a330af91d7b90701c436b618c86aaa1589c9184561907bebbb56439b8f8787bc01f49a7c77276c58c1b09822d75e8e8@52.231.165.108:30303", - "enode://5d6d7cd20d6da4bb83a1d28cadb5d409b64edf314c0335df658c1a54e32c7c4a7ab7823d57c39b6a757556e68ff1df17c748b698544a55cb488b52479a92b60f@104.42.217.25:30303", - "enode://2b252ab6a1d0f971d9722cb839a42cb81db019ba44c08754628ab4a823487071b5695317c8ccd085219c3a03af063495b2f1da8d18218da2d6a82981b45e6ffc@65.108.70.101:30303", - "enode://4aeb4ab6c14b23e2c4cfdce879c04b0748a20d8e9b59e25ded2a08143e265c6c25936e74cbc8e641e3312ca288673d91f2f93f8e277de3cfa444ecdaaf982052@157.90.35.166:30303", - }, - CheckpointSyncURL: "https://beaconstate.ethstaker.cc", + CheckpointSyncURL: "https://beaconstate.ethstaker.cc", RelayURLs: []string{ "https://0xa7ab7a996c8584251c8f925da3170bdfd6ebc75d50f5ddc4050a6fdc77f2a3b5fce2cc750d0865e05d7228af97d69561@agnostic-relay.net", "https://0x9000009807ed12c1f08bf4e81c6da3ba8e3fc3d953898ce0102433094e5f22f21102ec057841fcb81978ed1ea0fa8246@builder-relay-mainnet.blocknative.com", @@ -46,26 +35,10 @@ var networksConfigs map[string]NetworkConfig = map[string]NetworkConfig{ }, NetworkGoerli: { Name: NetworkGoerli, - RequireJWT: true, NetworkService: "merge", GenesisForkVersion: "0x00001020", SupportsMEVBoost: true, - DefaultECBootnodes: []string{ - "enode://011f758e6552d105183b1761c5e2dea0111bc20fd5f6422bc7f91e0fabbec9a6595caf6239b37feb773dddd3f87240d99d859431891e4a642cf2a0a9e6cbb98a@51.141.78.53:30303", - "enode://176b9417f511d05b6b2cf3e34b756cf0a7096b3094572a8f6ef4cdcb9d1f9d00683bf0f83347eebdf3b81c3521c2332086d9592802230bf528eaf606a1d9677b@13.93.54.137:30303", - "enode://46add44b9f13965f7b9875ac6b85f016f341012d84f975377573800a863526f4da19ae2c620ec73d11591fa9510e992ecc03ad0751f53cc02f7c7ed6d55c7291@94.237.54.114:30313", - "enode://b5948a2d3e9d486c4d75bf32713221c2bd6cf86463302339299bd227dc2e276cd5a1c7ca4f43a0e9122fe9af884efed563bd2a1fd28661f3b5f5ad7bf1de5949@18.218.250.66:30303", - }, - DefaultCCBootnodes: []string{ - "enr:-LK4QH1xnjotgXwg25IDPjrqRGFnH1ScgNHA3dv1Z8xHCp4uP3N3Jjl_aYv_WIxQRdwZvSukzbwspXZ7JjpldyeVDzMCh2F0dG5ldHOIAAAAAAAAAACEZXRoMpB53wQoAAAQIP__________gmlkgnY0gmlwhIe1te-Jc2VjcDI1NmsxoQOkcGXqbCJYbcClZ3z5f6NWhX_1YPFRYRRWQpJjwSHpVIN0Y3CCIyiDdWRwgiMo", - "enr:-KG4QCIzJZTY_fs_2vqWEatJL9RrtnPwDCv-jRBuO5FQ2qBrfJubWOWazri6s9HsyZdu-fRUfEzkebhf1nvO42_FVzwDhGV0aDKQed8EKAAAECD__________4JpZIJ2NIJpcISHtbYziXNlY3AyNTZrMaED4m9AqVs6F32rSCGsjtYcsyfQE2K8nDiGmocUY_iq-TSDdGNwgiMog3VkcIIjKA", - "enr:-Ku4QFmUkNp0g9bsLX2PfVeIyT-9WO-PZlrqZBNtEyofOOfLMScDjaTzGxIb1Ns9Wo5Pm_8nlq-SZwcQfTH2cgO-s88Bh2F0dG5ldHOIAAAAAAAAAACEZXRoMpDkvpOTAAAQIP__________gmlkgnY0gmlwhBLf22SJc2VjcDI1NmsxoQLV_jMOIxKbjHFKgrkFvwDvpexo6Nd58TK5k7ss4Vt0IoN1ZHCCG1g", - "enr:-LK4QLINdtobGquK7jukLDAKmsrH2ZuHM4k0TklY5jDTD4ZgfxR9weZmo5Jwu81hlKu3qPAvk24xHGBDjYs4o8f1gZ0Bh2F0dG5ldHOIAAAAAAAAAACEZXRoMpB53wQoAAAQIP__________gmlkgnY0gmlwhDRN_P6Jc2VjcDI1NmsxoQJuNujTgsJUHUgVZML3pzrtgNtYg7rQ4K1tkWERgl0DdoN0Y3CCIyiDdWRwgiMo", - "enr:-LK4QMzPq4Q7w5R-rnGQDcI8BYky6oPVBGQTbS1JJLVtNi_8PzBLV7Bdzsoame9nJK5bcJYpGHn4SkaDN2CM6tR5G_4Bh2F0dG5ldHOIAAAAAAAAAACEZXRoMpB53wQoAAAQIP__________gmlkgnY0gmlwhAN4yvyJc2VjcDI1NmsxoQKa8Qnp_P2clLIP6VqLKOp_INvEjLszalEnW0LoBZo4YYN0Y3CCI4yDdWRwgiOM", - "enr:-LK4QLM_pPHa78R8xlcU_s40Y3XhFjlb3kPddW9lRlY67N5qeFE2Wo7RgzDgRs2KLCXODnacVHMFw1SfpsW3R474RZEBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpB53wQoAAAQIP__________gmlkgnY0gmlwhANBY-yJc2VjcDI1NmsxoQNsZkFXgKbTzuxF7uwxlGauTGJelE6HD269CcFlZ_R7A4N0Y3CCI4yDdWRwgiOM", - "enr:-KK4QH0RsNJmIG0EX9LSnVxMvg-CAOr3ZFF92hunU63uE7wcYBjG1cFbUTvEa5G_4nDJkRhUq9q2ck9xY-VX1RtBsruBtIRldGgykIL0pysBABAg__________-CaWSCdjSCaXCEEnXQ0YlzZWNwMjU2azGhA1grTzOdMgBvjNrk-vqWtTZsYQIi0QawrhoZrsn5Hd56g3RjcIIjKIN1ZHCCIyg", - }, - CheckpointSyncURL: "https://goerli.checkpoint-sync.ethpandaops.io", + CheckpointSyncURL: "https://goerli.checkpoint-sync.ethpandaops.io", RelayURLs: []string{ "https://0xafa4c6985aa049fb79dd37010438cfebeb0f2bd42b115b89dd678dab0670c1de38da0c4e9138c9290a398ecd9a0b3110@builder-relay-goerli.flashbots.net", "https://0x821f2a65afb70e7f2e820a925a9b4c80a159620582c1766b1b09729fec178b11ea22abb3a51f07b288be815a1a2ff516@bloxroute.max-profit.builder.goerli.blxrbdn.com", @@ -76,63 +49,28 @@ var networksConfigs map[string]NetworkConfig = map[string]NetworkConfig{ }, NetworkSepolia: { Name: NetworkSepolia, - RequireJWT: true, NetworkService: "merge", GenesisForkVersion: "0x90000069", - SupportsMEVBoost: false, - DefaultCCBootnodes: []string{ - "enr:-Iq4QMCTfIMXnow27baRUb35Q8iiFHSIDBJh6hQM5Axohhf4b6Kr_cOCu0htQ5WvVqKvFgY28893DHAg8gnBAXsAVqmGAX53x8JggmlkgnY0gmlwhLKAlv6Jc2VjcDI1NmsxoQK6S-Cii_KmfFdUJL2TANL3ksaKUnNXvTCv1tLwXs0QgIN1ZHCCIyk", - "enr:-Ly4QFoZTWR8ulxGVsWydTNGdwEESueIdj-wB6UmmjUcm-AOPxnQi7wprzwcdo7-1jBW_JxELlUKJdJES8TDsbl1EdNlh2F0dG5ldHOI__78_v2bsV-EZXRoMpA2-lATkAAAcf__________gmlkgnY0gmlwhBLYJjGJc2VjcDI1NmsxoQI0gujXac9rMAb48NtMqtSTyHIeNYlpjkbYpWJw46PmYYhzeW5jbmV0cw-DdGNwgiMog3VkcIIjKA", - "enr:-KG4QE5OIg5ThTjkzrlVF32WT_-XT14WeJtIz2zoTqLLjQhYAmJlnk4ItSoH41_2x0RX0wTFIe5GgjRzU2u7Q1fN4vADhGV0aDKQqP7o7pAAAHAyAAAAAAAAAIJpZIJ2NIJpcISlFsStiXNlY3AyNTZrMaEC-Rrd_bBZwhKpXzFCrStKp1q_HmGOewxY3KwM8ofAj_ODdGNwgiMog3VkcIIjKA", - "enr:-L64QC9Hhov4DhQ7mRukTOz4_jHm4DHlGL726NWH4ojH1wFgEwSin_6H95Gs6nW2fktTWbPachHJ6rUFu0iJNgA0SB2CARqHYXR0bmV0c4j__________4RldGgykDb6UBOQAABx__________-CaWSCdjSCaXCEA-2vzolzZWNwMjU2azGhA17lsUg60R776rauYMdrAz383UUgESoaHEzMkvm4K6k6iHN5bmNuZXRzD4N0Y3CCIyiDdWRwgiMo", - }, - CheckpointSyncURL: "https://sepolia.checkpoint-sync.ethpandaops.io", + SupportsMEVBoost: true, + CheckpointSyncURL: "https://sepolia.checkpoint-sync.ethpandaops.io", RelayURLs: []string{ "https://0x845bd072b7cd566f02faeb0a4033ce9399e42839ced64e8b2adcfc859ed1e8e1a5a293336a49feac6d9a5edb779be53a@builder-relay-sepolia.flashbots.net", }, }, NetworkChiado: { - Name: NetworkChiado, - RequireJWT: true, - NetworkService: "merge", - GenesisForkVersion: "0x0000006f", - DefaultCustomConfigSrc: "https://github.com/gnosischain/configs/raw/main/chiado/config.yaml", - DefaultCustomGenesisSrc: "https://github.com/gnosischain/configs/raw/main/chiado/genesis.ssz", - DefaultCustomDeployBlock: "0", - DefaultCCBootnodes: []string{ - "enr:-L64QOijsdi9aVIawMb5h5PWueaPM9Ai6P17GNPFlHzz7MGJQ8tFMdYrEx8WQitNKLG924g2Q9cCdzg54M0UtKa3QIKCMxaHYXR0bmV0c4j__________4RldGgykDE2cEMCAABv__________-CaWSCdjSCaXCEi5AaWYlzZWNwMjU2azGhA8CjTkD4m1s8FbKCN18LgqlYcE65jrT148vFtwd9U62SiHN5bmNuZXRzD4N0Y3CCIyiDdWRwgiMo", - "enr:-L64QKYKGQj5ybkfBxyFU5IEVzP7oJkGHJlie4W8BCGAYEi4P0mmMksaasiYF789mVW_AxYVNVFUjg9CyzmdvpyWQ1KCMlmHYXR0bmV0c4j__________4RldGgykDE2cEMCAABv__________-CaWSCdjSCaXCEi5CtNolzZWNwMjU2azGhAuA7BAwIijy1z81AO9nz_MOukA1ER68rGA67PYQ5pF1qiHN5bmNuZXRzD4N0Y3CCIyiDdWRwgiMo", - "enr:-Ly4QJJUnV9BxP_rw2Bv7E9iyw4sYS2b4OQZIf4Mu_cA6FljJvOeSTQiCUpbZhZjR4R0VseBhdTzrLrlHrAuu_OeZqgJh2F0dG5ldHOI__________-EZXRoMpAxNnBDAgAAb___________gmlkgnY0gmlwhIuQGnOJc2VjcDI1NmsxoQPT_u3IjDtB2r-nveH5DhUmlM8F2IgLyxhmwmqW4L5k3ohzeW5jbmV0cw-DdGNwgiMog3VkcIIjKA", - "enr:-MK4QCkOyqOTPX1_-F-5XVFjPclDUc0fj3EeR8FJ5-hZjv6ARuGlFspM0DtioHn1r6YPUXkOg2g3x6EbeeKdsrvVBYmGAYQKrixeh2F0dG5ldHOIAAAAAAAAAACEZXRoMpAxNnBDAgAAb___________gmlkgnY0gmlwhIuQGlWJc2VjcDI1NmsxoQKdW3-DgLExBkpLGMRtuM88wW_gZkC7Yeg0stYDTrlynYhzeW5jbmV0cwCDdGNwgiMog3VkcIIjKA==", - "enr:-Ly4QLYLNqrjvSxD3lpAPBUNlxa6cIbe79JqLZLFcZZjWoCjZcw-85agLUErHiygG2weRSCLnd5V460qTbLbwJQsfZkoh2F0dG5ldHOI__________-EZXRoMpAxNnBDAgAAb___________gmlkgnY0gmlwhKq7mu-Jc2VjcDI1NmsxoQP900YAYa9kdvzlSKGjVo-F3XVzATjOYp3BsjLjSophO4hzeW5jbmV0cw-DdGNwgiMog3VkcIIjKA", - "enr:-Ly4QCGeYvTCNOGKi0mKRUd45rLj96b4pH98qG7B9TCUGXGpHZALtaL2-XfjASQyhbCqENccI4PGXVqYTIehNT9KJMQgh2F0dG5ldHOI__________-EZXRoMpAxNnBDAgAAb___________gmlkgnY0gmlwhIuQrVSJc2VjcDI1NmsxoQP9iDchx2PGl3JyJ29B9fhLCvVMN6n23pPAIIeFV-sHOIhzeW5jbmV0cw-DdGNwgiMog3VkcIIjKA", - }, - CheckpointSyncURL: "https://checkpoint.chiadochain.net", + Name: NetworkChiado, + NetworkService: "merge", + GenesisForkVersion: "0x0000006f", + CheckpointSyncURL: "https://checkpoint.chiadochain.net", }, NetworkGnosis: { Name: NetworkGnosis, - RequireJWT: true, NetworkService: "merge", GenesisForkVersion: "0x00000064", - DefaultECBootnodes: []string{ - "enode://ea6d67eb3277d8ae9292fc700fa757ef6d2127c4db9712bcd5eb1341b1d937ac71cc2b15efe3a8496f4fc9fc12156d7ac73d82eb3c0f68928442116030b76f48@3.135.122.4:30303", - "enode://c5e1e38709a2eb402557e82e071ccec1c6e2adedb01f7d6afdc80d25f7e9287f954fa9b742f01b1b74a5c532de9476afeb6efdcf5a683672a663204eadb15e45@3.17.46.220:30303", - }, - DefaultCCBootnodes: []string{ - "enr:-Ly4QMU1y81COwm1VZgxGF4_eZ21ub9-GHF6dXZ29aEJ0oZpcV2Rysw-viaEKfpcpu9ZarILJLxFZjcKOjE0Sybs3MQBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpCCS-QxAgAAZP__________gmlkgnY0gmlwhANLnx-Jc2VjcDI1NmsxoQKoaYT8I-wf2I_f_ii6EgoSSXj5T3bhiDyW-7ZLsY3T64hzeW5jbmV0cwCDdGNwgiMog3VkcIIjKA", - "enr:-Ly4QBf76jLiCA_pDXoZjhyRbuwzFOscFY-MIKkPnmHPQbvaKhIDZutfe38G9ibzgQP0RKrTo3vcWOy4hf_8wOZ-U5MBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpCCS-QxAgAAZP__________gmlkgnY0gmlwhBLGgjaJc2VjcDI1NmsxoQLGeo0Q4lDvxIjHjnkAqEuETTaFIjsNrEcSpdDhcHXWFYhzeW5jbmV0cwCDdGNwgiMog3VkcIIjKA", - "enr:-Ly4QLjZUWdqUO_RwyDqCAccIK5-MbLRD6A2c7oBuVbBgBnWDkEf0UKJVAaJqi2pO101WVQQLYSnYgz1Q3pRhYdrlFoBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpCCS-QxAgAAZP__________gmlkgnY0gmlwhANA8sSJc2VjcDI1NmsxoQK4TC_EK1jSs0VVPUpOjIo1rhJmff2SLBPFOWSXMwdLVYhzeW5jbmV0cwCDdGNwgiMog3VkcIIjKA", - "enr:-Ly4QKwX2rTFtKWKQHSGQFhquxsxL1jewO8JB1MG-jgHqAZVFWxnb3yMoQqnYSV1bk25-_jiLuhIulxar3RBWXEDm6EBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpCCS-QxAgAAZP__________gmlkgnY0gmlwhAN-qZeJc2VjcDI1NmsxoQI7EPGMpecl0QofLp4Wy_lYNCCChUFEH6kY7k-oBGkPFIhzeW5jbmV0cwCDdGNwgiMog3VkcIIjKA", - "enr:-Ly4QPoChSQTleJROee1-k-4HOEgKqL9kLksE-tEiVqcY9kwF9V53aBg-MruD7Yx4Aks3LAeJpKXAS4ntMrIdqvQYc8Ch2F0dG5ldHOIAAAAAAAAAACEZXRoMpCCS-QxAgAAZP__________gmlkgnY0gmlwhGsWBHiJc2VjcDI1NmsxoQKwGQrwOSBJB_DtQOkFZVAY4YQfMAbUVxFpL5WgrzEddYhzeW5jbmV0cwCDdGNwgiMog3VkcIIjKA", - "enr:-Ly4QBbaKRSX4SncCOxTTL611Kxlz-zYFrIn-k_63jGIPK_wbvFghVUHJICPCxufgTX5h79jvgfPr-2hEEQEdziGQ5MCh2F0dG5ldHOIAAAAAAAAAACEZXRoMpCCS-QxAgAAZP__________gmlkgnY0gmlwhAMazo6Jc2VjcDI1NmsxoQKt-kbM9isuWp8djhyEq6-4MLv1Sy7dOXeMOMdPgwu9LohzeW5jbmV0cwCDdGNwgiMog3VkcIIjKA", - "enr:-Ly4QKJ5BzgFyJ6BaTlGY0C8ROzl508U3GA6qxdG5Gn2hxdke6nQO187pYlLvhp82Dez4PQn436Fts1F0WAm-_5l2LACh2F0dG5ldHOIAAAAAAAAAACEZXRoMpCCS-QxAgAAZP__________gmlkgnY0gmlwhA-YLVKJc2VjcDI1NmsxoQI8_Lvr6p_TkcAu8KorKacfUEnoOon0tdO0qWhriPdBP4hzeW5jbmV0cwCDdGNwgiMog3VkcIIjKA", - "enr:-Ly4QJMtoiX2bPnVbiQOJCLbtUlqdqZk7kCJQln_W1bp1vOHcxWowE-iMXkKC4_uOb0o73wAW71WYi80Dlsg-7a5wiICh2F0dG5ldHOIAAAAAAAAAACEZXRoMpCCS-QxAgAAZP__________gmlkgnY0gmlwhDbP3KmJc2VjcDI1NmsxoQNvcfKYUqcemLFlpKxl7JcQJwQ3L9unYL44gY2aEiRnI4hzeW5jbmV0cwCDdGNwgiMog3VkcIIjKA", - }, - CheckpointSyncURL: "https://checkpoint.gnosischain.com", + CheckpointSyncURL: "https://checkpoint.gnosischain.com", }, NetworkCustom: { Name: NetworkCustom, - RequireJWT: true, NetworkService: "merge", GenesisForkVersion: "0x00000000", // TODO: only affects keystores generation, ensure the deposit method does not conflict over this. }, diff --git a/configs/networks_test.go b/configs/networks_test.go index 7e680d571..90bed5cd5 100644 --- a/configs/networks_test.go +++ b/configs/networks_test.go @@ -72,7 +72,7 @@ func TestSupportMEVBoost(t *testing.T) { { name: "Valid network, sepolia", network: "sepolia", - want: false, + want: true, }, { name: "Valid network, gnosis", diff --git a/configs/types.go b/configs/types.go index e7e46494a..cb3af28b0 100644 --- a/configs/types.go +++ b/configs/types.go @@ -22,7 +22,7 @@ type LogConfig struct { type NetworkConfig struct { Name string - RequireJWT bool + NoJWT bool NetworkService string GenesisForkVersion string DefaultECBootnodes []string From 6fc2cdf0c638931bd316467d9417150d3a2143b9 Mon Sep 17 00:00:00 2001 From: Marcos Antonio Maceo <35319980+stdevMac@users.noreply.github.com> Date: Mon, 16 Oct 2023 12:30:25 +0400 Subject: [PATCH 13/30] feat: Add holesky network (#320) * adding holesky to necessary files * changed versions in /configs/client_images.yaml * commented out checkpoint sync url for holesky since it does not work yet * feat: Bump images for holesky * fix: Remove checkpoint sync for holesky for now * fix: Remove custom config for holesky * fix: Update nethermind version to 1.21.0-rc * chore: rollback checkpoint sync on consensus * chore: remove prysm from holesky * chore: remove ttd params on holesky * chore: update enr on holesky config * tests: add tests for holesky * doc: update documentation * doc: update changelog * format: make format * doc: update changelog * chore: remove bootnodes --------- Co-authored-by: Satya Pandya --- CHANGELOG.md | 1 + README.md | 10 ++ cli/actions/importKeys.go | 2 +- cli/cli.go | 3 +- cli/cli_test.go | 146 +++++++++++++++++- cli/generate.go | 2 +- cli/keys.go | 2 +- cli/sub_gen.go | 1 + configs/client_images.yaml | 10 +- configs/init.go | 7 + configs/networks.go | 4 +- docs/docs/commands/clients.mdx | 62 +++++--- docs/docs/commands/generate.mdx | 8 +- docs/docs/commands/keys.mdx | 2 +- docs/src/components/HomepageFeatures/index.js | 2 +- internal/utils/networks_test.go | 2 +- .../envs/holesky/consensus/lighthouse.tmpl | 13 ++ .../envs/holesky/consensus/lodestar.tmpl | 14 ++ templates/envs/holesky/consensus/teku.tmpl | 13 ++ templates/envs/holesky/env_base.tmpl | 11 ++ templates/envs/holesky/execution/besu.tmpl | 8 + templates/envs/holesky/execution/erigon.tmpl | 7 + templates/envs/holesky/execution/geth.tmpl | 9 ++ .../envs/holesky/execution/nethermind.tmpl | 8 + .../envs/holesky/validator/lighthouse.tmpl | 12 ++ .../envs/holesky/validator/lodestar.tmpl | 13 ++ templates/envs/holesky/validator/teku.tmpl | 12 ++ 27 files changed, 340 insertions(+), 44 deletions(-) create mode 100644 templates/envs/holesky/consensus/lighthouse.tmpl create mode 100644 templates/envs/holesky/consensus/lodestar.tmpl create mode 100644 templates/envs/holesky/consensus/teku.tmpl create mode 100644 templates/envs/holesky/env_base.tmpl create mode 100644 templates/envs/holesky/execution/besu.tmpl create mode 100644 templates/envs/holesky/execution/erigon.tmpl create mode 100644 templates/envs/holesky/execution/geth.tmpl create mode 100644 templates/envs/holesky/execution/nethermind.tmpl create mode 100644 templates/envs/holesky/validator/lighthouse.tmpl create mode 100644 templates/envs/holesky/validator/lodestar.tmpl create mode 100644 templates/envs/holesky/validator/teku.tmpl diff --git a/CHANGELOG.md b/CHANGELOG.md index bc801a7a3..88d443cd7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - New `--latest` flag to `sedge generate` subcommands to use the latest version of the image in the clients. +- Integrate Holesky network. ### Fixed diff --git a/README.md b/README.md index 29901de5e..c0cde5cd8 100644 --- a/README.md +++ b/README.md @@ -29,6 +29,7 @@ Sedge is a one-click node setup tool for PoS network/chain validators and nodes - [Mainnet](#mainnet) - [Sepolia](#sepolia) - [Goerli](#goerli) + - [Holesky](#holesky) - [Gnosis](#gnosis) - [Chiado (Gnosis testnet)](#chiado-gnosis-testnet) - [CL clients with Mev-Boost](#cl-clients-with-mev-boost) @@ -156,6 +157,15 @@ Users acknowledge that no warranty is being made of a successful installation. S | Erigon | Prysm | Prysm | | Besu | Teku | Teku | +### Holesky + +| Execution | Consensus | Validator | +| ---------- |------------|------------| +| Geth | Lighthouse | Lighthouse | +| Nethermind | Lodestar | Lodestar | +| Erigon | Teku | Teku | +| Besu | | | + ### Gnosis | Execution | Consensus | Validator | diff --git a/cli/actions/importKeys.go b/cli/actions/importKeys.go index 55d2ba14f..d12cfb290 100644 --- a/cli/actions/importKeys.go +++ b/cli/actions/importKeys.go @@ -229,7 +229,7 @@ func setupLodestarValidatorImport(dockerClient client.APIClient, serviceManager // CMD var preset string switch options.Network { - case "mainnet", "goerli", "sepolia": + case "mainnet", "goerli", "sepolia", "holesky": preset = "mainnet" case "gnosis", "chiado": preset = "gnosis" diff --git a/cli/cli.go b/cli/cli.go index 97f407db1..1903ac560 100644 --- a/cli/cli.go +++ b/cli/cli.go @@ -44,6 +44,7 @@ const ( NetworkSepolia = "sepolia" NetworkGnosis = "gnosis" NetworkChiado = "chiado" + NetworkHolesky = "holesky" NetworkCustom = "custom" NodeTypeFullNode = "full-node" @@ -615,7 +616,7 @@ func runPromptActions(p ui.Prompter, o *CliCmdOptions, actions ...promptAction) } func selectNetwork(p ui.Prompter, o *CliCmdOptions) error { - options := []string{NetworkMainnet, NetworkGoerli, NetworkSepolia, NetworkGnosis, NetworkChiado} + options := []string{NetworkMainnet, NetworkGoerli, NetworkSepolia, NetworkGnosis, NetworkChiado, NetworkHolesky} index, err := p.Select("Select network", "", options) if err != nil { return err diff --git a/cli/cli_test.go b/cli/cli_test.go index f82701e66..6316ed53a 100644 --- a/cli/cli_test.go +++ b/cli/cli_test.go @@ -55,6 +55,15 @@ func TestCli(t *testing.T) { GnosisClients["consensus"] = append(GnosisClients["consensus"], "randomize") GnosisClients["validator"] = append(GnosisClients["validator"], "randomize") + HoleskyClients := map[string][]string{ + "execution": clients.AllClients["execution"], + "consensus": utils.Filter(clients.AllClients["consensus"], func(c string) bool { return c != "prysm" }), + "validator": utils.Filter(clients.AllClients["validator"], func(c string) bool { return c != "prysm" }), + } + HoleskyClients["execution"] = append(HoleskyClients["execution"], "randomize") + HoleskyClients["consensus"] = append(HoleskyClients["consensus"], "randomize") + HoleskyClients["validator"] = append(HoleskyClients["validator"], "randomize") + tests := []struct { name string setup func(*testing.T, *sedge_mocks.MockSedgeActions, *sedge_mocks.MockPrompter, *sedge_mocks.MockDependenciesManager) @@ -94,7 +103,7 @@ func TestCli(t *testing.T) { } sedgeActions.EXPECT().GetCommandRunner().Return(&test.SimpleCMDRunner{}) gomock.InOrder( - prompter.EXPECT().Select("Select network", "", []string{NetworkMainnet, NetworkGoerli, NetworkSepolia, NetworkGnosis, NetworkChiado}).Return(0, nil), + prompter.EXPECT().Select("Select network", "", []string{NetworkMainnet, NetworkGoerli, NetworkSepolia, NetworkGnosis, NetworkChiado, NetworkHolesky}).Return(0, nil), prompter.EXPECT().Select("Select node type", "", []string{NodeTypeFullNode, NodeTypeExecution, NodeTypeConsensus, NodeTypeValidator}).Return(0, nil), prompter.EXPECT().Input("Generation path", configs.DefaultAbsSedgeDataPath, false, nil).Return(generationPath, nil), prompter.EXPECT().Input("Container tag, sedge will add to each container and the network, a suffix with the tag", "", false, nil).Return("tag", nil), @@ -164,7 +173,7 @@ func TestCli(t *testing.T) { JWTSecretPath: filepath.Join(generationPath, "jwtsecret"), } gomock.InOrder( - prompter.EXPECT().Select("Select network", "", []string{NetworkMainnet, NetworkGoerli, NetworkSepolia, NetworkGnosis, NetworkChiado}).Return(0, nil), + prompter.EXPECT().Select("Select network", "", []string{NetworkMainnet, NetworkGoerli, NetworkSepolia, NetworkGnosis, NetworkChiado, NetworkHolesky}).Return(0, nil), prompter.EXPECT().Select("Select node type", "", []string{NodeTypeFullNode, NodeTypeExecution, NodeTypeConsensus, NodeTypeValidator}).Return(0, nil), prompter.EXPECT().Input("Generation path", configs.DefaultAbsSedgeDataPath, false, nil).Return(generationPath, nil), prompter.EXPECT().Input("Container tag, sedge will add to each container and the network, a suffix with the tag", "", false, nil).Return("tag", nil), @@ -183,6 +192,49 @@ func TestCli(t *testing.T) { ) }, }, + { + name: "full node without validator holesky", + setup: func(t *testing.T, sedgeActions *sedge_mocks.MockSedgeActions, prompter *sedge_mocks.MockPrompter, depsMgr *sedge_mocks.MockDependenciesManager) { + generationPath := t.TempDir() + genData := generate.GenData{ + Services: []string{"execution", "consensus"}, + ExecutionClient: &clients.Client{ + Name: "nethermind", + Type: "execution", + Image: configs.ClientImages.Execution.Nethermind.String(), + }, + ConsensusClient: &clients.Client{ + Name: "lodestar", + Type: "consensus", + Image: configs.ClientImages.Consensus.Lodestar.String(), + }, + Network: "holesky", + CheckpointSyncUrl: "https://checkpoint-sync.holesky.ethpandaops.io/", + FeeRecipient: "0x2d07a21ebadde0c13e6b91022a7e5722eb6bf5d5", + MapAllPorts: true, + ContainerTag: "tag", + JWTSecretPath: filepath.Join(generationPath, "jwtsecret"), + } + gomock.InOrder( + prompter.EXPECT().Select("Select network", "", []string{NetworkMainnet, NetworkGoerli, NetworkSepolia, NetworkGnosis, NetworkChiado, NetworkHolesky}).Return(5, nil), + prompter.EXPECT().Select("Select node type", "", []string{NodeTypeFullNode, NodeTypeExecution, NodeTypeConsensus, NodeTypeValidator}).Return(0, nil), + prompter.EXPECT().Input("Generation path", configs.DefaultAbsSedgeDataPath, false, nil).Return(generationPath, nil), + prompter.EXPECT().Input("Container tag, sedge will add to each container and the network, a suffix with the tag", "", false, nil).Return("tag", nil), + prompter.EXPECT().Confirm("Do you want to set up a validator?", true).Return(false, nil), + prompter.EXPECT().Select("Select execution client", "", HoleskyClients["execution"]).Return(0, nil), + prompter.EXPECT().Select("Select consensus client", "", HoleskyClients["consensus"]).Return(2, nil), + prompter.EXPECT().InputURL("Checkpoint sync URL", configs.NetworksConfigs()[genData.Network].CheckpointSyncURL, false).Return("https://checkpoint-sync.holesky.ethpandaops.io/", nil), + prompter.EXPECT().EthAddress("Please enter the Fee Recipient address (press enter to skip it)", "", false).Return("0x2d07a21ebadde0c13e6b91022a7e5722eb6bf5d5", nil), + prompter.EXPECT().Confirm("Do you want to expose all ports?", false).Return(true, nil), + prompter.EXPECT().Select("Select JWT source", "", []string{SourceTypeCreate, SourceTypeExisting}).Return(0, nil), + sedgeActions.EXPECT().Generate(gomock.Eq(actions.GenerateOptions{ + GenerationPath: generationPath, + GenerationData: genData, + })).Return(genData, nil), + prompter.EXPECT().Confirm("Run services now?", false).Return(false, nil), + ) + }, + }, { name: "execution node", setup: func(t *testing.T, sedgeActions *sedge_mocks.MockSedgeActions, prompter *sedge_mocks.MockPrompter, depsMgr *sedge_mocks.MockDependenciesManager) { @@ -200,7 +252,50 @@ func TestCli(t *testing.T) { } gomock.InOrder( - prompter.EXPECT().Select("Select network", "", []string{NetworkMainnet, NetworkGoerli, NetworkSepolia, NetworkGnosis, NetworkChiado}).Return(0, nil), + prompter.EXPECT().Select("Select network", "", []string{NetworkMainnet, NetworkGoerli, NetworkSepolia, NetworkGnosis, NetworkChiado, NetworkHolesky}).Return(0, nil), + prompter.EXPECT().Select("Select node type", "", []string{NodeTypeFullNode, NodeTypeExecution, NodeTypeConsensus, NodeTypeValidator}).Return(1, nil), + prompter.EXPECT().Input("Generation path", configs.DefaultAbsSedgeDataPath, false, nil).Return(generationPath, nil), + prompter.EXPECT().Input("Container tag, sedge will add to each container and the network, a suffix with the tag", "", false, nil).Return("tag", nil), + prompter.EXPECT().Select("Select execution client", "", ETHClients["execution"]).Return(0, nil), + prompter.EXPECT().Confirm("Do you want to expose all ports?", false).Return(true, nil), + prompter.EXPECT().Select("Select JWT source", "", []string{SourceTypeCreate, SourceTypeExisting, SourceTypeSkip}).Return(2, nil), + sedgeActions.EXPECT().Generate(gomock.Eq(actions.GenerateOptions{ + GenerationPath: generationPath, + GenerationData: genData, + })).Return(genData, nil), + prompter.EXPECT().Confirm("Run services now?", false).Return(true, nil), + depsMgr.EXPECT().Check([]string{dependencies.Docker}).Return([]string{dependencies.Docker}, nil), + depsMgr.EXPECT().DockerEngineIsOn().Return(nil), + depsMgr.EXPECT().DockerComposeIsInstalled().Return(nil), + sedgeActions.EXPECT().SetupContainers(actions.SetupContainersOptions{ + GenerationPath: generationPath, + Services: []string{"execution"}, + }), + sedgeActions.EXPECT().RunContainers(actions.RunContainersOptions{ + GenerationPath: generationPath, + Services: []string{"execution"}, + }), + ) + }, + }, + { + name: "execution node holesky", + setup: func(t *testing.T, sedgeActions *sedge_mocks.MockSedgeActions, prompter *sedge_mocks.MockPrompter, depsMgr *sedge_mocks.MockDependenciesManager) { + generationPath := t.TempDir() + genData := generate.GenData{ + Services: []string{"execution"}, + ExecutionClient: &clients.Client{ + Name: "nethermind", + Type: "execution", + Image: configs.ClientImages.Execution.Nethermind.String(), + }, + Network: "holesky", + MapAllPorts: true, + ContainerTag: "tag", + } + + gomock.InOrder( + prompter.EXPECT().Select("Select network", "", []string{NetworkMainnet, NetworkGoerli, NetworkSepolia, NetworkGnosis, NetworkChiado, NetworkHolesky}).Return(5, nil), prompter.EXPECT().Select("Select node type", "", []string{NodeTypeFullNode, NodeTypeExecution, NodeTypeConsensus, NodeTypeValidator}).Return(1, nil), prompter.EXPECT().Input("Generation path", configs.DefaultAbsSedgeDataPath, false, nil).Return(generationPath, nil), prompter.EXPECT().Input("Container tag, sedge will add to each container and the network, a suffix with the tag", "", false, nil).Return("tag", nil), @@ -249,7 +344,7 @@ func TestCli(t *testing.T) { } gomock.InOrder( - prompter.EXPECT().Select("Select network", "", []string{NetworkMainnet, NetworkGoerli, NetworkSepolia, NetworkGnosis, NetworkChiado}).Return(1, nil), + prompter.EXPECT().Select("Select network", "", []string{NetworkMainnet, NetworkGoerli, NetworkSepolia, NetworkGnosis, NetworkChiado, NetworkHolesky}).Return(1, nil), prompter.EXPECT().Select("Select node type", "", []string{NodeTypeFullNode, NodeTypeExecution, NodeTypeConsensus, NodeTypeValidator}).Return(2, nil), prompter.EXPECT().Input("Generation path", configs.DefaultAbsSedgeDataPath, false, nil).Return(generationPath, nil), prompter.EXPECT().Input("Container tag, sedge will add to each container and the network, a suffix with the tag", "", false, nil).Return("tag", nil), @@ -269,6 +364,47 @@ func TestCli(t *testing.T) { ) }, }, + { + name: "consensus node holesky", + setup: func(t *testing.T, sedgeActions *sedge_mocks.MockSedgeActions, prompter *sedge_mocks.MockPrompter, depsMgr *sedge_mocks.MockDependenciesManager) { + generationPath := t.TempDir() + genData := generate.GenData{ + Services: []string{"consensus"}, + ConsensusClient: &clients.Client{ + Name: "lodestar", + Type: "consensus", + Image: configs.ClientImages.Consensus.Lodestar.String(), + }, + Network: NetworkHolesky, + CheckpointSyncUrl: "https://checkpoint-sync.holesky.ethpandaops.io/", + FeeRecipient: "0x2d07a21ebadde0c13e8b91022a7e5732eb6bf5d5", + MapAllPorts: false, + ExecutionApiUrl: "http://execution:5051", + ExecutionAuthUrl: "http://execution:5051", + ContainerTag: "tag", + JWTSecretPath: filepath.Join(generationPath, "jwtsecret"), + } + + gomock.InOrder( + prompter.EXPECT().Select("Select network", "", []string{NetworkMainnet, NetworkGoerli, NetworkSepolia, NetworkGnosis, NetworkChiado, NetworkHolesky}).Return(5, nil), + prompter.EXPECT().Select("Select node type", "", []string{NodeTypeFullNode, NodeTypeExecution, NodeTypeConsensus, NodeTypeValidator}).Return(2, nil), + prompter.EXPECT().Input("Generation path", configs.DefaultAbsSedgeDataPath, false, nil).Return(generationPath, nil), + prompter.EXPECT().Input("Container tag, sedge will add to each container and the network, a suffix with the tag", "", false, nil).Return("tag", nil), + prompter.EXPECT().Select("Select consensus client", "", HoleskyClients["consensus"]).Return(2, nil), + prompter.EXPECT().InputURL("Checkpoint sync URL", configs.NetworksConfigs()[genData.Network].CheckpointSyncURL, false).Return("https://checkpoint-sync.holesky.ethpandaops.io/", nil), + prompter.EXPECT().InputURL("Execution API URL", "", true).Return("http://execution:5051", nil), + prompter.EXPECT().InputURL("Execution Auth API URL", "", true).Return("http://execution:5051", nil), + prompter.EXPECT().EthAddress("Please enter the Fee Recipient address (press enter to skip it)", "", false).Return("0x2d07a21ebadde0c13e8b91022a7e5732eb6bf5d5", nil), + prompter.EXPECT().Confirm("Do you want to expose all ports?", false).Return(false, nil), + prompter.EXPECT().Select("Select JWT source", "", []string{SourceTypeCreate, SourceTypeExisting, SourceTypeSkip}).Return(0, nil), + sedgeActions.EXPECT().Generate(gomock.Eq(actions.GenerateOptions{ + GenerationPath: generationPath, + GenerationData: genData, + })).Return(genData, nil), + prompter.EXPECT().Confirm("Run services now?", false).Return(false, nil), + ) + }, + }, { name: "validator mainnet", setup: func(t *testing.T, sedgeActions *sedge_mocks.MockSedgeActions, prompter *sedge_mocks.MockPrompter, depsMgr *sedge_mocks.MockDependenciesManager) { @@ -292,7 +428,7 @@ func TestCli(t *testing.T) { } gomock.InOrder( - prompter.EXPECT().Select("Select network", "", []string{NetworkMainnet, NetworkGoerli, NetworkSepolia, NetworkGnosis, NetworkChiado}).Return(0, nil), + prompter.EXPECT().Select("Select network", "", []string{NetworkMainnet, NetworkGoerli, NetworkSepolia, NetworkGnosis, NetworkChiado, NetworkHolesky}).Return(0, nil), prompter.EXPECT().Select("Select node type", "", []string{NodeTypeFullNode, NodeTypeExecution, NodeTypeConsensus, NodeTypeValidator}).Return(3, nil), prompter.EXPECT().Input("Generation path", configs.DefaultAbsSedgeDataPath, false, nil).Return(generationPath, nil), prompter.EXPECT().Input("Container tag, sedge will add to each container and the network, a suffix with the tag", "", false, nil).Return("tag", nil), diff --git a/cli/generate.go b/cli/generate.go index d6fb62f8d..3b96e1a20 100644 --- a/cli/generate.go +++ b/cli/generate.go @@ -111,7 +111,7 @@ You can generate: cmd.AddCommand(MevBoostSubCmd(sedgeAction)) cmd.PersistentFlags().StringVarP(&generationPath, "path", "p", configs.DefaultAbsSedgeDataPath, "generation path for sedge data. Default is sedge-data") - cmd.PersistentFlags().StringVarP(&network, "network", "n", "mainnet", "Target network. e.g. mainnet, goerli, sepolia, etc.") + cmd.PersistentFlags().StringVarP(&network, "network", "n", "mainnet", "Target network. e.g. mainnet, goerli, sepolia, holesky, gnosis, chiado, etc.") cmd.PersistentFlags().StringVar(&logging, "logging", "json", fmt.Sprintf("Docker logging driver used by all the services. Set 'none' to use the default docker logging driver. Possible values: %v", configs.ValidLoggingFlags())) cmd.PersistentFlags().StringVar(&containerTag, "container-tag", "", "Container tag to use. If defined, sedge will add to each container and the network, a suffix with the tag. e.g. sedge-validator-client -> sedge-validator-client-.") return cmd diff --git a/cli/keys.go b/cli/keys.go index 3ceeb0d5f..d7d5bc9a3 100644 --- a/cli/keys.go +++ b/cli/keys.go @@ -181,7 +181,7 @@ func KeysCmd(cmdRunner commands.CommandRunner, p ui.Prompter) *cobra.Command { }, } // Flag binds - cmd.Flags().StringVarP(&flags.network, "network", "n", "mainnet", "Target network. e.g. mainnet, goerli, sepolia etc.") + cmd.Flags().StringVarP(&flags.network, "network", "n", "mainnet", "Target network. e.g. mainnet, goerli, sepolia, holesky, gnosis, chiado etc.") cmd.Flags().StringVarP(&flags.path, "path", "p", configs.DefaultAbsSedgeDataPath, "Absolute path to keystore folder. e.g. /home/user/keystore") cmd.Flags().StringVar(&flags.eth1WithdrawalAddress, "eth1-withdrawal-address", "", "If this field is set and valid, the given Eth1 address will be used to create the withdrawal credentials. Otherwise, it will generate withdrawal credentials with the mnemonic-derived withdrawal public key in EIP-2334 format.") cmd.Flags().StringVar(&flags.mnemonicPath, "mnemonic-path", "", "Path to file with a existing mnemonic to use.") diff --git a/cli/sub_gen.go b/cli/sub_gen.go index f9284d0bb..eab966d56 100644 --- a/cli/sub_gen.go +++ b/cli/sub_gen.go @@ -273,6 +273,7 @@ func MevBoostSubCmd(sedgeAction actions.SedgeActions) *cobra.Command { // Bind flags cmd.Flags().StringSliceVar(&flags.relayURLs, "relay-urls", []string{}, "List of comma separated relay URLs used to connect to mev relay. Example: 'sedge generate mev-boost --relay-urls=https://0xac6e77dfe25ecd6110b8e780608cce0dab71fdd5ebea22a16c0205200f2f8e2e3ad3b71d3499c54ad14d6c21b41a37ae@boost-relay.flashbots.net,https://0xa1559ace749633b997cb3fdacffb890aeebdb0f5a3b6aaa7eeeaf1a38af0a8fe88b9e4b1f61f236d2e64d95733327a62@relay.ultrasound.money'") cmd.Flags().StringVarP(&flags.mevImage, "mev-boost-image", "m", "", "Custom docker image to use for Mev Boost. Example: 'sedge generate mev-boost --mev-boost-image flashbots/mev-boost:latest-portable'") + cmd.Flags().StringVarP(&network, "network", "n", "mainnet", "Target network. e.g. mainnet, goerli, sepolia etc.") cmd.Flags().SortFlags = false return cmd } diff --git a/configs/client_images.yaml b/configs/client_images.yaml index c38942661..3e23b2256 100644 --- a/configs/client_images.yaml +++ b/configs/client_images.yaml @@ -4,7 +4,7 @@ execution: version: v1.13.3 besu: name: hyperledger/besu - version: 23.4.4 + version: 23.7.2 nethermind: name: nethermind/nethermind version: 1.21.0 @@ -17,10 +17,10 @@ consensus: version: v4.5.0 lodestar: name: chainsafe/lodestar - version: v1.9.2 + version: v1.11.1 teku: name: consensys/teku - version: 23.8.0 + version: 23.9.0 prysm: name: gcr.io/prysmaticlabs/prysm/beacon-chain version: v4.0.8 @@ -30,10 +30,10 @@ validator: version: v4.5.0 lodestar: name: chainsafe/lodestar - version: v1.9.2 + version: v1.11.1 teku: name: consensys/teku - version: 23.8.0 + version: 23.9.0 prysm: name: gcr.io/prysmaticlabs/prysm/validator version: v4.0.8 diff --git a/configs/init.go b/configs/init.go index f3a53b669..25110ef76 100644 --- a/configs/init.go +++ b/configs/init.go @@ -69,6 +69,13 @@ var networksConfigs map[string]NetworkConfig = map[string]NetworkConfig{ GenesisForkVersion: "0x00000064", CheckpointSyncURL: "https://checkpoint.gnosischain.com", }, + NetworkHolesky: { + Name: NetworkHolesky, + NetworkService: "merge", + GenesisForkVersion: "0x00017000", + SupportsMEVBoost: false, + CheckpointSyncURL: "https://checkpoint-sync.holesky.ethpandaops.io/", + }, NetworkCustom: { Name: NetworkCustom, NetworkService: "merge", diff --git a/configs/networks.go b/configs/networks.go index 46058f135..afd327c2e 100644 --- a/configs/networks.go +++ b/configs/networks.go @@ -28,6 +28,7 @@ const ( NetworkSepolia = "sepolia" NetworkGnosis = "gnosis" NetworkChiado = "chiado" + NetworkHolesky = "holesky" NetworkCustom = "custom" ) @@ -35,7 +36,7 @@ var ErrInvalidNetwork = errors.New("invalid network") func NetworkCheck(value string) error { switch value { - case NetworkMainnet, NetworkGoerli, NetworkSepolia, NetworkGnosis, NetworkChiado, NetworkCustom: + case NetworkMainnet, NetworkGoerli, NetworkSepolia, NetworkGnosis, NetworkChiado, NetworkHolesky, NetworkCustom: return nil default: return fmt.Errorf("%w: %s", ErrInvalidNetwork, value) @@ -50,6 +51,7 @@ func NetworkSupported() []string { NetworkSepolia, NetworkGnosis, NetworkChiado, + NetworkHolesky, NetworkCustom, } } diff --git a/docs/docs/commands/clients.mdx b/docs/docs/commands/clients.mdx index 7512ce0fd..41b2a1218 100644 --- a/docs/docs/commands/clients.mdx +++ b/docs/docs/commands/clients.mdx @@ -30,48 +30,66 @@ The execution of `sedge clients` will result in an output like this, that will s ``` $ sedge clients -2022-00-00 00:00:00 -- [INFO] [Logger Init] Log level: info -2022-00-00 00:00:00 -- [INFO] You are running the latest version of sedge. Version: v0.5.1 -2022-00-00 00:00:00 -- [INFO] Listing supported clients for network chiado +2023-10-13 14:13:44 -- [INFO] [Logger Init] Log level: info +2023-10-13 14:13:45 -- [INFO] You are running the latest version of sedge. Version: v1.2.3 +2023-10-13 14:13:45 -- [INFO] Listing supported clients for network chiado # Execution Clients Consensus Clients Validator Clients === =================== =================== =================== 1 nethermind lighthouse lighthouse - 2 - lodestar lodestar - 3 - teku teku + 2 - teku teku + 3 - lodestar lodestar -2022-00-00 00:00:00 -- [INFO] Listing supported clients for network gnosis +2023-10-13 14:13:45 -- [INFO] Listing supported clients for network custom # Execution Clients Consensus Clients Validator Clients === =================== =================== =================== 1 nethermind lighthouse lighthouse - 2 - lodestar lodestar + 2 - prysm prysm 3 - teku teku + 4 - lodestar lodestar + +2023-10-13 14:13:45 -- [INFO] Listing supported clients for network gnosis + + # Execution Clients Consensus Clients Validator Clients +=== =================== =================== =================== + 1 nethermind lighthouse lighthouse + 2 erigon teku teku + 3 - lodestar lodestar + +2023-10-13 14:13:45 -- [INFO] Listing supported clients for network goerli -2022-00-00 00:00:00 -- [INFO] Listing supported clients for network goerli + # Execution Clients Consensus Clients Validator Clients +=== =================== =================== =================== + 1 nethermind lighthouse lighthouse + 2 geth prysm prysm + 3 erigon teku teku + 4 besu lodestar lodestar + +2023-10-13 14:13:45 -- [INFO] Listing supported clients for network holesky # Execution Clients Consensus Clients Validator Clients === =================== =================== =================== - 1 besu lighthouse lighthouse - 2 erigon lodestar lodestar - 3 geth prysm prysm - 4 nethermind teku teku + 1 nethermind lighthouse lighthouse + 2 geth teku teku + 3 erigon lodestar lodestar + 4 besu - - -2022-00-00 00:00:00 -- [INFO] Listing supported clients for network mainnet +2023-10-13 14:13:45 -- [INFO] Listing supported clients for network mainnet # Execution Clients Consensus Clients Validator Clients === =================== =================== =================== - 1 besu lighthouse lighthouse - 2 erigon lodestar lodestar - 3 geth prysm prysm - 4 nethermind teku teku + 1 nethermind lighthouse lighthouse + 2 geth prysm prysm + 3 erigon teku teku + 4 besu lodestar lodestar -2022-00-00 00:00:00 -- [INFO] Listing supported clients for network sepolia +2023-10-13 14:13:45 -- [INFO] Listing supported clients for network sepolia # Execution Clients Consensus Clients Validator Clients === =================== =================== =================== - 1 besu lighthouse lighthouse - 2 erigon lodestar lodestar - 3 geth prysm prysm - 4 nethermind teku teku + 1 nethermind lighthouse lighthouse + 2 geth prysm prysm + 3 erigon teku teku + 4 besu lodestar lodestar ``` \ No newline at end of file diff --git a/docs/docs/commands/generate.mdx b/docs/docs/commands/generate.mdx index 4bb7967c3..456eb31aa 100644 --- a/docs/docs/commands/generate.mdx +++ b/docs/docs/commands/generate.mdx @@ -37,7 +37,7 @@ Flags: --container-tag string Container tag to use. If defined, sedge will add to each container and the network, a suffix with the tag. e.g. sedge-validator-client -> sedge-validator-client-. -h, --help help for generate --logging string Docker logging driver used by all the services. Set 'none' to use the default docker logging driver. Possible values: [none json] (default "json") - -n, --network string Target network. e.g. mainnet, goerli, sepolia, etc. (default "mainnet") + -n, --network string Target network. e.g. mainnet, goerli, sepolia, holesky, gnosis, chiado, etc. (default "mainnet") -p, --path string generation path for sedge data. Default is sedge-data (default "/path/to/sedge-data") Global Flags: @@ -102,7 +102,7 @@ Global Flags: --container-tag string Container tag to use. If defined, sedge will add to each container and the network, a suffix with the tag. e.g. sedge-validator-client -> sedge-validator-client-. --log-level string Set Log Level, e.g panic, fatal, error, warn, warning, info, debug, trace (default "info") --logging string Docker logging driver used by all the services. Set 'none' to use the default docker logging driver. Possible values: [none json] (default "json") - -n, --network string Target network. e.g. mainnet, goerli, sepolia, etc. (default "mainnet") + -n, --network string Target network. e.g. mainnet, goerli, sepolia, holesky, gnosis, chiado, etc. (default "mainnet") -p, --path string generation path for sedge data. Default is sedge-data (default "/path/to/sedge/sedge-data") ``` @@ -174,7 +174,7 @@ Global Flags: --container-tag string Container tag to use. If defined, sedge will add to each container and the network, a suffix with the tag. e.g. sedge-validator-client -> sedge-validator-client-. --log-level string Set Log Level, e.g panic, fatal, error, warn, warning, info, debug, trace (default "info") --logging string Docker logging driver used by all the services. Set 'none' to use the default docker logging driver. Possible values: [none json] (default "json") - -n, --network string Target network. e.g. mainnet, goerli, sepolia, etc. (default "mainnet") + -n, --network string Target network. e.g. mainnet, goerli, sepolia, holesky, gnosis, chiado, etc. (default "mainnet") -p, --path string generation path for sedge data. Default is sedge-data (default "/path/to/sedge/sedge-data") ``` @@ -216,7 +216,7 @@ Global Flags: --container-tag string Container tag to use. If defined, sedge will add to each container and the network, a suffix with the tag. e.g. sedge-validator-client -> sedge-validator-client-. --log-level string Set Log Level, e.g panic, fatal, error, warn, warning, info, debug, trace (default "info") --logging string Docker logging driver used by all the services. Set 'none' to use the default docker logging driver. Possible values: [none json] (default "json") - -n, --network string Target network. e.g. mainnet, goerli, sepolia, etc. (default "mainnet") + -n, --network string Target network. e.g. mainnet, goerli, sepolia, holesky, gnosis, chiado, etc. (default "mainnet") -p, --path string generation path for sedge data. Default is sedge-data (default "/path/to/sedge/sedge-data") ``` diff --git a/docs/docs/commands/keys.mdx b/docs/docs/commands/keys.mdx index ba6d6a920..2921b05ae 100644 --- a/docs/docs/commands/keys.mdx +++ b/docs/docs/commands/keys.mdx @@ -29,7 +29,7 @@ Flags: -h, --help help for keys -i, --install Install dependencies if not installed without asking --mnemonic-path string Path to file with a existing mnemonic to use. - -n, --network string Target network. e.g. mainnet, goerli, sepolia etc. (default "mainnet") + -n, --network string Target network. e.g. mainnet, goerli, sepolia, holesky, gnosis, chiado etc. (default "mainnet") --num-validators int Number of validators to generate. This number will be used in addition to the existing flag as the end index for the generated keystores. (default -1) --passphrase-path string Path to file with a keystores passphrase to use. -p, --path string Absolute path to keystore folder. e.g. /home/user/keystore (default "./docker-compose-scripts") diff --git a/docs/src/components/HomepageFeatures/index.js b/docs/src/components/HomepageFeatures/index.js index 995223b5c..b79f5a12f 100644 --- a/docs/src/components/HomepageFeatures/index.js +++ b/docs/src/components/HomepageFeatures/index.js @@ -8,7 +8,7 @@ const FeatureList = [ Svg: require('@site/static/img/ethereum.svg').default, description: ( <> - We fully support Mainnet, Goerli(testnet) and Sepolia(testnet). + We fully support Mainnet, Goerli(testnet), Sepolia(testnet) and Holesky(testnet). ), diff --git a/internal/utils/networks_test.go b/internal/utils/networks_test.go index d8509725b..8e0ce0f82 100644 --- a/internal/utils/networks_test.go +++ b/internal/utils/networks_test.go @@ -21,7 +21,7 @@ import ( "testing" ) -var networks = []string{"mainnet", "custom", "goerli", "sepolia", "chiado", "gnosis"} +var networks = []string{"mainnet", "custom", "goerli", "sepolia", "chiado", "gnosis", "holesky"} func TestSupportedNetworks(t *testing.T) { names, err := SupportedNetworks() diff --git a/templates/envs/holesky/consensus/lighthouse.tmpl b/templates/envs/holesky/consensus/lighthouse.tmpl new file mode 100644 index 000000000..de9a9116d --- /dev/null +++ b/templates/envs/holesky/consensus/lighthouse.tmpl @@ -0,0 +1,13 @@ +{{/* lighthouse.tmpl */}} +{{ define "consensus" }} +# --- Consensus Layer - Beacon Node - configuration --- +CC_PEER_COUNT=50 +CC_LOG_LEVEL=info +EC_API_URL={{.ExecutionApiURL}} +EC_AUTH_URL={{.ExecutionAuthURL}} +CC_INSTANCE_NAME=Lighthouse +CC_IMAGE_VERSION={{.CcImage}} +CC_DATA_DIR={{.CcDataDir}} +CC_JWT_SECRET_PATH={{.JWTSecretPath}} +{{if .CheckpointSyncUrl}}CHECKPOINT_SYNC_URL={{.CheckpointSyncUrl}}{{end}} +{{ end }} \ No newline at end of file diff --git a/templates/envs/holesky/consensus/lodestar.tmpl b/templates/envs/holesky/consensus/lodestar.tmpl new file mode 100644 index 000000000..c78448baf --- /dev/null +++ b/templates/envs/holesky/consensus/lodestar.tmpl @@ -0,0 +1,14 @@ +{{/* lodestar.tmpl */}} +{{ define "consensus" }} +# --- Consensus Layer - Beacon Node - configuration --- +CC_PEER_COUNT=50 +CC_LOG_LEVEL=info +EC_API_URL={{.ExecutionApiURL}} +EC_AUTH_URL={{.ExecutionAuthURL}} +CC_INSTANCE_NAME=Lodestar +CC_IMAGE_VERSION={{.CcImage}} +CC_DATA_DIR={{.CcDataDir}} +CC_LODESTAR_PRESET=mainnet +CC_JWT_SECRET_PATH={{.JWTSecretPath}} +{{if .CheckpointSyncUrl}}CHECKPOINT_SYNC_URL={{.CheckpointSyncUrl}}{{end}} +{{ end }} diff --git a/templates/envs/holesky/consensus/teku.tmpl b/templates/envs/holesky/consensus/teku.tmpl new file mode 100644 index 000000000..3bf338468 --- /dev/null +++ b/templates/envs/holesky/consensus/teku.tmpl @@ -0,0 +1,13 @@ +{{/* teku.tmpl */}} +{{ define "consensus" }} +# --- Consensus Layer - Beacon Node - configuration --- +CC_PEER_COUNT=50 +CC_LOG_LEVEL=info +EC_API_URL={{.ExecutionApiURL}} +EC_AUTH_URL={{.ExecutionAuthURL}} +CC_INSTANCE_NAME=Teku +CC_IMAGE_VERSION={{.CcImage}} +CC_DATA_DIR={{.CcDataDir}} +CC_JWT_SECRET_PATH={{.JWTSecretPath}} +{{if .CheckpointSyncUrl}}CHECKPOINT_SYNC_URL={{.CheckpointSyncUrl}}{{end}} +{{ end }} \ No newline at end of file diff --git a/templates/envs/holesky/env_base.tmpl b/templates/envs/holesky/env_base.tmpl new file mode 100644 index 000000000..1e3ab6d3d --- /dev/null +++ b/templates/envs/holesky/env_base.tmpl @@ -0,0 +1,11 @@ +{{/* docker-compose_base.tmpl */}} +{{ define "env" }} +# --- Global configuration --- +NETWORK=holesky +# --- {{if .WithMevBoostClient}}RELAY_URLS={{.RelayURLs}}{{end}} --- +{{if .FeeRecipient}} +FEE_RECIPIENT={{.FeeRecipient}}{{end}} +{{template "execution" .}} +{{template "consensus" .}} +{{template "validator" .}} +{{ end }} \ No newline at end of file diff --git a/templates/envs/holesky/execution/besu.tmpl b/templates/envs/holesky/execution/besu.tmpl new file mode 100644 index 000000000..b9c05f713 --- /dev/null +++ b/templates/envs/holesky/execution/besu.tmpl @@ -0,0 +1,8 @@ +{{/* besu.tmpl */}} +{{ define "execution" }} +# --- Execution Layer - Execution Node - configuration --- +EC_IMAGE_VERSION={{.ElImage}} +EC_ENABLED_MODULES=ETH,NET,CLIQUE,DEBUG,MINER,NET,PERM,ADMIN,EEA,TXPOOL,PRIV,WEB3 +EC_DATA_DIR={{.ElDataDir}} +EC_JWT_SECRET_PATH={{.JWTSecretPath}} +{{ end }} \ No newline at end of file diff --git a/templates/envs/holesky/execution/erigon.tmpl b/templates/envs/holesky/execution/erigon.tmpl new file mode 100644 index 000000000..d59695f92 --- /dev/null +++ b/templates/envs/holesky/execution/erigon.tmpl @@ -0,0 +1,7 @@ +{{/* erigon.tmpl */}} +{{ define "execution" }} +# --- Execution Layer - Execution Node - configuration --- +EC_IMAGE_VERSION={{.ElImage}} +EC_DATA_DIR={{.ElDataDir}} +EC_JWT_SECRET_PATH={{.JWTSecretPath}} +{{ end }} diff --git a/templates/envs/holesky/execution/geth.tmpl b/templates/envs/holesky/execution/geth.tmpl new file mode 100644 index 000000000..84d69323e --- /dev/null +++ b/templates/envs/holesky/execution/geth.tmpl @@ -0,0 +1,9 @@ +{{/* geth.tmpl */}} +{{ define "execution" }} +# --- Execution Layer - Execution Node - configuration --- +EC_IMAGE_VERSION={{.ElImage}} +GETH_LOG_LEVEL=3 +EC_DATA_DIR={{.ElDataDir}} +EC_SYNC_MODE=snap +EC_JWT_SECRET_PATH={{.JWTSecretPath}} +{{ end }} \ No newline at end of file diff --git a/templates/envs/holesky/execution/nethermind.tmpl b/templates/envs/holesky/execution/nethermind.tmpl new file mode 100644 index 000000000..e6092b35f --- /dev/null +++ b/templates/envs/holesky/execution/nethermind.tmpl @@ -0,0 +1,8 @@ +{{/* nethermind.tmpl */}} +{{ define "execution" }} +# --- Execution Layer - Execution Node - configuration --- +EC_IMAGE_VERSION={{.ElImage}} +NETHERMIND_LOG_LEVEL=INFO +EC_DATA_DIR={{.ElDataDir}} +EC_JWT_SECRET_PATH={{.JWTSecretPath}} +{{ end }} \ No newline at end of file diff --git a/templates/envs/holesky/validator/lighthouse.tmpl b/templates/envs/holesky/validator/lighthouse.tmpl new file mode 100644 index 000000000..b9c3ab327 --- /dev/null +++ b/templates/envs/holesky/validator/lighthouse.tmpl @@ -0,0 +1,12 @@ +{{/* lighthouse.tmpl */}} +{{ define "validator" }} +# --- Consensus Layer - Validator Node - configuration --- +CC_API_URL={{.ConsensusApiURL}} +GRAFFITI={{.Graffiti}} +VL_LOG_LEVEL=info +VL_INSTANCE_NAME=LighthouseValidator +VL_IMAGE_VERSION={{.VlImage}} +KEYSTORE_DIR={{.KeystoreDir}} +VL_DATA_DIR={{.VlDataDir}} +# --- MEV=true, not sure if MEV is enabled on holesky --- +{{ end }} \ No newline at end of file diff --git a/templates/envs/holesky/validator/lodestar.tmpl b/templates/envs/holesky/validator/lodestar.tmpl new file mode 100644 index 000000000..38d1420b4 --- /dev/null +++ b/templates/envs/holesky/validator/lodestar.tmpl @@ -0,0 +1,13 @@ +{{/* lodestar.tmpl */}} +{{ define "validator" }} +# --- Consensus Layer - Validator Node - configuration --- +CC_API_URL={{.ConsensusApiURL}} +GRAFFITI={{.Graffiti}} +VL_LOG_LEVEL=info +VL_INSTANCE_NAME=LodestarValidator +VL_IMAGE_VERSION={{.VlImage}} +KEYSTORE_DIR={{.KeystoreDir}} +VL_DATA_DIR={{.VlDataDir}} +# --- MEV=true, not sure if MEV is enabled on holesky --- +VL_LODESTAR_PRESET=mainnet +{{ end }} diff --git a/templates/envs/holesky/validator/teku.tmpl b/templates/envs/holesky/validator/teku.tmpl new file mode 100644 index 000000000..03020a171 --- /dev/null +++ b/templates/envs/holesky/validator/teku.tmpl @@ -0,0 +1,12 @@ +{{/* teku.tmpl */}} +{{ define "validator" }} +# --- Consensus Layer - Validator Node - configuration --- +CC_API_URL={{.ConsensusApiURL}} +GRAFFITI={{.Graffiti}} +VL_LOG_LEVEL=info +VL_INSTANCE_NAME=TekuValidator +VL_IMAGE_VERSION={{.VlImage}} +KEYSTORE_DIR={{.KeystoreDir}} +VL_DATA_DIR={{.VlDataDir}} +# --- MEV=true, not sure if MEV is enabled on holesky --- +{{ end }} \ No newline at end of file From 07606de64fb8229a8911e680edb69246619f77d5 Mon Sep 17 00:00:00 2001 From: nethermind-machine <76107542+nethermind-machine@users.noreply.github.com> Date: Mon, 16 Oct 2023 10:36:18 +0200 Subject: [PATCH 14/30] Update image versions to latest version. (#321) Co-authored-by: AntiD2ta --- configs/client_images.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/configs/client_images.yaml b/configs/client_images.yaml index 3e23b2256..b439cb5df 100644 --- a/configs/client_images.yaml +++ b/configs/client_images.yaml @@ -10,14 +10,14 @@ execution: version: 1.21.0 erigon: name: thorax/erigon - version: v2.52.4 + version: v2.52.5 consensus: lighthouse: name: sigp/lighthouse version: v4.5.0 lodestar: name: chainsafe/lodestar - version: v1.11.1 + version: v1.11.3 teku: name: consensys/teku version: 23.9.0 @@ -30,7 +30,7 @@ validator: version: v4.5.0 lodestar: name: chainsafe/lodestar - version: v1.11.1 + version: v1.11.3 teku: name: consensys/teku version: 23.9.0 From b684e944b5bc38d301e51fa5619e8390174cd985 Mon Sep 17 00:00:00 2001 From: Marcos Antonio Maceo <35319980+stdevMac@users.noreply.github.com> Date: Wed, 18 Oct 2023 16:15:44 +0400 Subject: [PATCH 15/30] feat: Mev container display on holesky, even if not supported (#322) * fix: mev container display on holesky, even if not supported * chore: add tests for SupportMevBoost --- internal/pkg/generate/generate_scripts.go | 12 ++++++------ internal/pkg/generate/generate_scripts_test.go | 5 ++++- templates/envs/holesky/env_base.tmpl | 1 - templates/envs/holesky/validator/lighthouse.tmpl | 1 - templates/envs/holesky/validator/lodestar.tmpl | 1 - templates/envs/holesky/validator/teku.tmpl | 1 - 6 files changed, 10 insertions(+), 11 deletions(-) diff --git a/internal/pkg/generate/generate_scripts.go b/internal/pkg/generate/generate_scripts.go index 7cc39bc03..424bd4bc9 100644 --- a/internal/pkg/generate/generate_scripts.go +++ b/internal/pkg/generate/generate_scripts.go @@ -156,7 +156,7 @@ func ComposeFile(gd *GenData, at io.Writer) error { } cls := mapClients(gd) - + networkConfig := configs.NetworksConfigs()[gd.Network] for tmpKind, client := range cls { var name string if client == nil { @@ -166,7 +166,7 @@ func ComposeFile(gd *GenData, at io.Writer) error { } tmp, err := templates.Services.ReadFile(strings.Join([]string{ "services", - configs.NetworksConfigs()[gd.Network].NetworkService, + networkConfig.NetworkService, tmpKind, name + ".tmpl", }, "/")) @@ -247,7 +247,7 @@ func ComposeFile(gd *GenData, at io.Writer) error { Services: gd.Services, Network: gd.Network, XeeVersion: xeeVersion, - Mev: gd.MevBoostService || (mevSupported && gd.Mev), + Mev: networkConfig.SupportsMEVBoost && (gd.MevBoostService || (mevSupported && gd.Mev)), MevBoostOnValidator: gd.MevBoostService || (mevSupported && gd.Mev) || gd.MevBoostOnValidator, MevPort: gd.Ports["MevPort"], MevBoostEndpoint: gd.MevBoostEndpoint, @@ -311,13 +311,13 @@ func EnvFile(gd *GenData, at io.Writer) error { } cls := mapClients(gd) - + networkConfig := configs.NetworksConfigs()[gd.Network] for tmpKind, client := range cls { var tmp []byte if client == nil { tmp, err = templates.Services.ReadFile(strings.Join([]string{ "services", - configs.NetworksConfigs()[gd.Network].NetworkService, + networkConfig.NetworkService, tmpKind, "empty.tmpl", }, "/")) @@ -400,7 +400,7 @@ func EnvFile(gd *GenData, at io.Writer) error { data := EnvData{ Services: gd.Services, - Mev: gd.MevBoostService || (mevSupported && gd.Mev) || gd.MevBoostOnValidator, + Mev: networkConfig.SupportsMEVBoost && (gd.MevBoostService || (mevSupported && gd.Mev) || gd.MevBoostOnValidator), ElImage: imageOrEmpty(cls[execution], gd.LatestVersion), ElDataDir: "./" + configs.ExecutionDir, CcImage: imageOrEmpty(cls[consensus], gd.LatestVersion), diff --git a/internal/pkg/generate/generate_scripts_test.go b/internal/pkg/generate/generate_scripts_test.go index fd67799c8..38ad4355b 100644 --- a/internal/pkg/generate/generate_scripts_test.go +++ b/internal/pkg/generate/generate_scripts_test.go @@ -220,7 +220,10 @@ func defaultFunc(t *testing.T, data *GenData, compose, env io.Reader) error { if utils.Contains(data.Services, configConsensus) { assert.NotNil(t, composeData.Services.ConfigConsensus) } - + networkConfig := configs.NetworksConfigs()[data.Network] + if !networkConfig.SupportsMEVBoost { + assert.Nil(t, composeData.Services.Mevboost) + } // load .env file envData := retrieveEnvData(t, env) if data.Network == "gnosis" { diff --git a/templates/envs/holesky/env_base.tmpl b/templates/envs/holesky/env_base.tmpl index 1e3ab6d3d..95c0b8c70 100644 --- a/templates/envs/holesky/env_base.tmpl +++ b/templates/envs/holesky/env_base.tmpl @@ -2,7 +2,6 @@ {{ define "env" }} # --- Global configuration --- NETWORK=holesky -# --- {{if .WithMevBoostClient}}RELAY_URLS={{.RelayURLs}}{{end}} --- {{if .FeeRecipient}} FEE_RECIPIENT={{.FeeRecipient}}{{end}} {{template "execution" .}} diff --git a/templates/envs/holesky/validator/lighthouse.tmpl b/templates/envs/holesky/validator/lighthouse.tmpl index b9c3ab327..49b040fdd 100644 --- a/templates/envs/holesky/validator/lighthouse.tmpl +++ b/templates/envs/holesky/validator/lighthouse.tmpl @@ -8,5 +8,4 @@ VL_INSTANCE_NAME=LighthouseValidator VL_IMAGE_VERSION={{.VlImage}} KEYSTORE_DIR={{.KeystoreDir}} VL_DATA_DIR={{.VlDataDir}} -# --- MEV=true, not sure if MEV is enabled on holesky --- {{ end }} \ No newline at end of file diff --git a/templates/envs/holesky/validator/lodestar.tmpl b/templates/envs/holesky/validator/lodestar.tmpl index 38d1420b4..3b1ab5cba 100644 --- a/templates/envs/holesky/validator/lodestar.tmpl +++ b/templates/envs/holesky/validator/lodestar.tmpl @@ -8,6 +8,5 @@ VL_INSTANCE_NAME=LodestarValidator VL_IMAGE_VERSION={{.VlImage}} KEYSTORE_DIR={{.KeystoreDir}} VL_DATA_DIR={{.VlDataDir}} -# --- MEV=true, not sure if MEV is enabled on holesky --- VL_LODESTAR_PRESET=mainnet {{ end }} diff --git a/templates/envs/holesky/validator/teku.tmpl b/templates/envs/holesky/validator/teku.tmpl index 03020a171..7ca5f6461 100644 --- a/templates/envs/holesky/validator/teku.tmpl +++ b/templates/envs/holesky/validator/teku.tmpl @@ -8,5 +8,4 @@ VL_INSTANCE_NAME=TekuValidator VL_IMAGE_VERSION={{.VlImage}} KEYSTORE_DIR={{.KeystoreDir}} VL_DATA_DIR={{.VlDataDir}} -# --- MEV=true, not sure if MEV is enabled on holesky --- {{ end }} \ No newline at end of file From a8a452516d4a9f1ad9ef6d43f934953b7720900e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Oct 2023 14:22:04 +0200 Subject: [PATCH 16/30] chore(deps): bump postcss from 8.4.17 to 8.4.31 in /docs (#317) Bumps [postcss](https://github.com/postcss/postcss) from 8.4.17 to 8.4.31. - [Release notes](https://github.com/postcss/postcss/releases) - [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/postcss/postcss/compare/8.4.17...8.4.31) --- updated-dependencies: - dependency-name: postcss dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- docs/package-lock.json | 38 ++++++++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/docs/package-lock.json b/docs/package-lock.json index 1b8cd540a..85fc28ca6 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -8198,9 +8198,15 @@ } }, "node_modules/nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -8754,9 +8760,9 @@ } }, "node_modules/postcss": { - "version": "8.4.17", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.17.tgz", - "integrity": "sha512-UNxNOLQydcOFi41yHNMcKRZ39NeXlr8AxGuZJsdub8vIb12fHzcq37DTU/QtbI6WLxNg2gF9Z+8qtRwTj1UI1Q==", + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", "funding": [ { "type": "opencollective", @@ -8765,10 +8771,14 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { - "nanoid": "^3.3.4", + "nanoid": "^3.3.6", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" }, @@ -18651,9 +18661,9 @@ } }, "nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==" }, "negotiator": { "version": "0.6.3", @@ -19046,11 +19056,11 @@ } }, "postcss": { - "version": "8.4.17", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.17.tgz", - "integrity": "sha512-UNxNOLQydcOFi41yHNMcKRZ39NeXlr8AxGuZJsdub8vIb12fHzcq37DTU/QtbI6WLxNg2gF9Z+8qtRwTj1UI1Q==", + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", "requires": { - "nanoid": "^3.3.4", + "nanoid": "^3.3.6", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" } From 6220bd77680c1d23bb973aae76d3ab440fa7b881 Mon Sep 17 00:00:00 2001 From: nethermind-machine <76107542+nethermind-machine@users.noreply.github.com> Date: Wed, 18 Oct 2023 14:32:01 +0200 Subject: [PATCH 17/30] feat: Update image versions to latest version. (#324) Co-authored-by: AntiD2ta --- configs/client_images.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/configs/client_images.yaml b/configs/client_images.yaml index b439cb5df..08d8b5429 100644 --- a/configs/client_images.yaml +++ b/configs/client_images.yaml @@ -1,7 +1,7 @@ execution: geth: name: ethereum/client-go - version: v1.13.3 + version: v1.13.4 besu: name: hyperledger/besu version: 23.7.2 @@ -23,7 +23,7 @@ consensus: version: 23.9.0 prysm: name: gcr.io/prysmaticlabs/prysm/beacon-chain - version: v4.0.8 + version: v4.1.0 validator: lighthouse: name: sigp/lighthouse @@ -36,4 +36,4 @@ validator: version: 23.9.0 prysm: name: gcr.io/prysmaticlabs/prysm/validator - version: v4.0.8 + version: v4.1.0 From e3cfc67dc3be8f69d9a0aa375bef3824da416bed Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Oct 2023 14:45:25 +0200 Subject: [PATCH 18/30] chore(deps): bump @babel/traverse from 7.19.3 to 7.23.2 in /docs (#323) Bumps [@babel/traverse](https://github.com/babel/babel/tree/HEAD/packages/babel-traverse) from 7.19.3 to 7.23.2. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.23.2/packages/babel-traverse) --- updated-dependencies: - dependency-name: "@babel/traverse" dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- docs/package-lock.json | 383 +++++++++++++++++++++++++++-------------- 1 file changed, 251 insertions(+), 132 deletions(-) diff --git a/docs/package-lock.json b/docs/package-lock.json index 85fc28ca6..4a0758606 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -181,16 +181,81 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", "dependencies": { - "@babel/highlight": "^7.18.6" + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" }, "engines": { "node": ">=6.9.0" } }, + "node_modules/@babel/code-frame/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/code-frame/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/code-frame/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/@babel/compat-data": { "version": "7.19.3", "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.3.tgz", @@ -237,12 +302,13 @@ } }, "node_modules/@babel/generator": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.3.tgz", - "integrity": "sha512-fqVZnmp1ncvZU757UzDheKZpfPgatqY59XtW2/j/18H7u76akb8xqvjw82f+i2UKd/ksYsSick/BCLQUUtJ/qQ==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", + "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", "dependencies": { - "@babel/types": "^7.19.3", + "@babel/types": "^7.23.0", "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" }, "engines": { @@ -370,9 +436,9 @@ } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", "engines": { "node": ">=6.9.0" } @@ -389,23 +455,23 @@ } }, "node_modules/@babel/helper-function-name": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", - "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dependencies": { - "@babel/template": "^7.18.10", - "@babel/types": "^7.19.0" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -525,28 +591,28 @@ } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz", - "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "engines": { "node": ">=6.9.0" } @@ -587,12 +653,12 @@ } }, "node_modules/@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", + "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", "js-tokens": "^4.0.0" }, "engines": { @@ -664,9 +730,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.3.tgz", - "integrity": "sha512-pJ9xOlNWHiy9+FuFP09DEAFbAn4JskgRsVcc169w2xRBC3FRGuQEwjeIMMND9L2zc0iEhO/tGv4Zq+km+hxNpQ==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", + "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", "bin": { "parser": "bin/babel-parser.js" }, @@ -1908,31 +1974,31 @@ } }, "node_modules/@babel/template": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", - "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.18.10", - "@babel/types": "^7.18.10" + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.3.tgz", - "integrity": "sha512-qh5yf6149zhq2sgIXmwjnsvmnNQC2iw70UFjp4olxucKrWd/dvlUsBI88VSLUsnMNF7/vnOiA+nk1+yLoCqROQ==", - "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.3", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.19.3", - "@babel/types": "^7.19.3", + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", + "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.0", + "@babel/types": "^7.23.0", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -1941,12 +2007,12 @@ } }, "node_modules/@babel/types": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.3.tgz", - "integrity": "sha512-hGCaQzIY22DJlDh9CH7NOxgKkFjBk0Cw9xDO1Xmh2151ti7wiGfQ3LauXzL4HP1fmFlTX6XjpRETTpUcv7wQLw==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", + "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", "dependencies": { - "@babel/helper-string-parser": "^7.18.10", - "@babel/helper-validator-identifier": "^7.19.1", + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" }, "engines": { @@ -2897,12 +2963,12 @@ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.15", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", - "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", + "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, "node_modules/@leichtgewicht/ip-codec": { @@ -12839,11 +12905,63 @@ } }, "@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", "requires": { - "@babel/highlight": "^7.18.6" + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } } }, "@babel/compat-data": { @@ -12881,12 +12999,13 @@ } }, "@babel/generator": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.3.tgz", - "integrity": "sha512-fqVZnmp1ncvZU757UzDheKZpfPgatqY59XtW2/j/18H7u76akb8xqvjw82f+i2UKd/ksYsSick/BCLQUUtJ/qQ==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", + "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", "requires": { - "@babel/types": "^7.19.3", + "@babel/types": "^7.23.0", "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" }, "dependencies": { @@ -12981,9 +13100,9 @@ } }, "@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==" + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==" }, "@babel/helper-explode-assignable-expression": { "version": "7.18.6", @@ -12994,20 +13113,20 @@ } }, "@babel/helper-function-name": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", - "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "requires": { - "@babel/template": "^7.18.10", - "@babel/types": "^7.19.0" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" } }, "@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "requires": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" } }, "@babel/helper-member-expression-to-functions": { @@ -13094,22 +13213,22 @@ } }, "@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "requires": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" } }, "@babel/helper-string-parser": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz", - "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==" + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==" }, "@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==" + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==" }, "@babel/helper-validator-option": { "version": "7.18.6", @@ -13138,12 +13257,12 @@ } }, "@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", + "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", "requires": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", "js-tokens": "^4.0.0" }, "dependencies": { @@ -13199,9 +13318,9 @@ } }, "@babel/parser": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.3.tgz", - "integrity": "sha512-pJ9xOlNWHiy9+FuFP09DEAFbAn4JskgRsVcc169w2xRBC3FRGuQEwjeIMMND9L2zc0iEhO/tGv4Zq+km+hxNpQ==" + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", + "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==" }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { "version": "7.18.6", @@ -14003,39 +14122,39 @@ } }, "@babel/template": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", - "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.18.10", - "@babel/types": "^7.18.10" + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" } }, "@babel/traverse": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.3.tgz", - "integrity": "sha512-qh5yf6149zhq2sgIXmwjnsvmnNQC2iw70UFjp4olxucKrWd/dvlUsBI88VSLUsnMNF7/vnOiA+nk1+yLoCqROQ==", - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.3", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.19.3", - "@babel/types": "^7.19.3", + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", + "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", + "requires": { + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.0", + "@babel/types": "^7.23.0", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.3.tgz", - "integrity": "sha512-hGCaQzIY22DJlDh9CH7NOxgKkFjBk0Cw9xDO1Xmh2151ti7wiGfQ3LauXzL4HP1fmFlTX6XjpRETTpUcv7wQLw==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", + "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", "requires": { - "@babel/helper-string-parser": "^7.18.10", - "@babel/helper-validator-identifier": "^7.19.1", + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" } }, @@ -14777,12 +14896,12 @@ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" }, "@jridgewell/trace-mapping": { - "version": "0.3.15", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", - "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", + "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, "@leichtgewicht/ip-codec": { From 6398d2febb3e10d74463dcffedfa8fb0dc55156b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Oct 2023 15:19:08 +0200 Subject: [PATCH 19/30] chore(deps): bump golang.org/x/net from 0.7.0 to 0.17.0 (#319) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.7.0 to 0.17.0. - [Commits](https://github.com/golang/net/compare/v0.7.0...v0.17.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 10 +++++----- go.sum | 20 ++++++++++---------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/go.mod b/go.mod index 87c2fcd4f..ee81e6919 100644 --- a/go.mod +++ b/go.mod @@ -71,12 +71,12 @@ require ( github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xeipuuv/gojsonschema v1.2.0 // indirect - golang.org/x/crypto v0.6.0 // indirect + golang.org/x/crypto v0.14.0 // indirect golang.org/x/mod v0.8.0 // indirect - golang.org/x/net v0.7.0 // indirect - golang.org/x/sys v0.5.0 // indirect - golang.org/x/term v0.5.0 // indirect - golang.org/x/text v0.7.0 // indirect + golang.org/x/net v0.17.0 // indirect + golang.org/x/sys v0.13.0 // indirect + golang.org/x/term v0.13.0 // indirect + golang.org/x/text v0.13.0 // indirect golang.org/x/time v0.0.0-20220609170525-579cf78fd858 // indirect golang.org/x/tools v0.6.0 // indirect ) diff --git a/go.sum b/go.sum index a87956197..acc89cf47 100644 --- a/go.sum +++ b/go.sum @@ -174,8 +174,8 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.6.0 h1:qfktjS5LUO+fFKeJXZ+ikTRijMmljikvG68fpMMruSc= -golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= +golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc= +golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= @@ -187,8 +187,8 @@ golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g= -golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -208,16 +208,16 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220422013727-9388b58f7150/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= -golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= +golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210503060354-a79de5458b56/go.mod h1:tfny5GFUkzUvx4ps4ajbZsCe5lw1metzhBm9T3x7oIY= -golang.org/x/term v0.5.0 h1:n2a8QNdAb0sZNpU9R1ALUXBbY+w51fCQDN+7EdxNBsY= -golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.13.0 h1:bb+I9cTfFazGW51MZqBVmZy7+JEJMouUHTUSKVQLBek= +golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo= -golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.0.0-20220609170525-579cf78fd858 h1:Dpdu/EMxGMFgq0CeYMh4fazTD2vtlZRYE7wyynxJb9U= golang.org/x/time v0.0.0-20220609170525-579cf78fd858/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= From 7e2f313aeaa8ab7b8279c48eddf253a58b39867e Mon Sep 17 00:00:00 2001 From: Ahmad Bitar <33181301+smartprogrammer93@users.noreply.github.com> Date: Fri, 27 Oct 2023 01:01:53 +0300 Subject: [PATCH 20/30] [Docs] Fix logs docs page (#327) * Update logs.mdx * Update logs.mdx --- docs/docs/commands/logs.mdx | 20 +------------------- 1 file changed, 1 insertion(+), 19 deletions(-) diff --git a/docs/docs/commands/logs.mdx b/docs/docs/commands/logs.mdx index 0ef4861e7..967668d3e 100644 --- a/docs/docs/commands/logs.mdx +++ b/docs/docs/commands/logs.mdx @@ -5,7 +5,7 @@ id: logs # Logs -Running `sedge logs` will shut down running containers using docker compose CLI. +Running `sedge logs` will get running container logs using docker compose CLI. ## Help @@ -27,21 +27,3 @@ Flags: Global Flags: --logLevel string Set Log Level (default "info") ``` - -## Execution Example - -The execution of `sedge down` will close and remove all the opened containers and networks used by sedge. - -``` -$ sedge down -2022-00-00 00:00:00 -- [INFO] [Logger Init] Log level: info -2022-00-00 00:00:00 -- [INFO] You are running the latest version of sedge. Version: v0.5.1 -[sudo] password for maceo: -[+] Running 7/7 - ⠿ Container execution-client Removed 93.8s - ⠿ Container validator-client Removed 0.0s - ⠿ Container consensus-client Removed 3.8s - ⠿ Container validator-import-client Removed 0.0s - ⠿ Network docker-compose-scripts_default Removed 0.2s - ⠿ Network sedge_network Removed 0.1s -``` From b44c7f98574f026ae2c45de7ea1e9ea107eb7c1f Mon Sep 17 00:00:00 2001 From: nethermind-machine <76107542+nethermind-machine@users.noreply.github.com> Date: Fri, 27 Oct 2023 00:12:44 +0200 Subject: [PATCH 21/30] Update image versions to latest version. (#328) Co-authored-by: stdevMac --- configs/client_images.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/configs/client_images.yaml b/configs/client_images.yaml index 08d8b5429..e2e7b7463 100644 --- a/configs/client_images.yaml +++ b/configs/client_images.yaml @@ -7,10 +7,10 @@ execution: version: 23.7.2 nethermind: name: nethermind/nethermind - version: 1.21.0 + version: 1.21.1 erigon: name: thorax/erigon - version: v2.52.5 + version: v2.53.1 consensus: lighthouse: name: sigp/lighthouse @@ -23,7 +23,7 @@ consensus: version: 23.9.0 prysm: name: gcr.io/prysmaticlabs/prysm/beacon-chain - version: v4.1.0 + version: v4.1.1 validator: lighthouse: name: sigp/lighthouse @@ -36,4 +36,4 @@ validator: version: 23.9.0 prysm: name: gcr.io/prysmaticlabs/prysm/validator - version: v4.1.0 + version: v4.1.1 From e65464e8825ba20f20dc8fc77dd5641dcab6432d Mon Sep 17 00:00:00 2001 From: Marcos Antonio Maceo <35319980+stdevMac@users.noreply.github.com> Date: Sun, 5 Nov 2023 12:35:33 +0400 Subject: [PATCH 22/30] chore: Add workflow dispatch for images update action (#331) --- .github/workflows/check-version.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/check-version.yml b/.github/workflows/check-version.yml index e3735395c..f87ae37fd 100644 --- a/.github/workflows/check-version.yml +++ b/.github/workflows/check-version.yml @@ -4,6 +4,7 @@ on: push: branches: - develop + workflow_dispatch: jobs: build: From 1091d74340c8011a0a95fc822ffb0df8fe55f353 Mon Sep 17 00:00:00 2001 From: Marcos Antonio Maceo <35319980+stdevMac@users.noreply.github.com> Date: Thu, 7 Dec 2023 20:00:16 +0400 Subject: [PATCH 23/30] Fix holesky config (#338) * chore: update images * fix: run teku using root * chore: update latest imags of clients --- configs/client_images.yaml | 16 ++++++++-------- templates/services/merge/consensus/teku.tmpl | 4 ++-- templates/services/merge/validator/teku.tmpl | 4 ++-- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/configs/client_images.yaml b/configs/client_images.yaml index e2e7b7463..e76021133 100644 --- a/configs/client_images.yaml +++ b/configs/client_images.yaml @@ -1,26 +1,26 @@ execution: geth: name: ethereum/client-go - version: v1.13.4 + version: v1.13.5 besu: name: hyperledger/besu - version: 23.7.2 + version: 23.10.2 nethermind: name: nethermind/nethermind - version: 1.21.1 + version: 1.23.0 erigon: name: thorax/erigon - version: v2.53.1 + version: v2.55.1 consensus: lighthouse: name: sigp/lighthouse version: v4.5.0 lodestar: name: chainsafe/lodestar - version: v1.11.3 + version: v1.12.0 teku: name: consensys/teku - version: 23.9.0 + version: 23.11.0 prysm: name: gcr.io/prysmaticlabs/prysm/beacon-chain version: v4.1.1 @@ -30,10 +30,10 @@ validator: version: v4.5.0 lodestar: name: chainsafe/lodestar - version: v1.11.3 + version: v1.12.0 teku: name: consensys/teku - version: 23.9.0 + version: 23.11.0 prysm: name: gcr.io/prysmaticlabs/prysm/validator version: v4.1.1 diff --git a/templates/services/merge/consensus/teku.tmpl b/templates/services/merge/consensus/teku.tmpl index 91d06c2f1..adfdaf20a 100644 --- a/templates/services/merge/consensus/teku.tmpl +++ b/templates/services/merge/consensus/teku.tmpl @@ -1,7 +1,7 @@ {{/* teku.tmpl */}} {{ define "consensus" }} - consensus:{{if and (ge .UID 0) (ge .GID 0)}} - user: "{{.UID}}:{{.GID}}"{{end}} + consensus: + user: "root:root" stop_grace_period: 30s container_name: sedge-consensus-client{{if .ContainerTag}}-{{.ContainerTag}}{{end}} restart: unless-stopped diff --git a/templates/services/merge/validator/teku.tmpl b/templates/services/merge/validator/teku.tmpl index ad7b34703..5455ba496 100644 --- a/templates/services/merge/validator/teku.tmpl +++ b/templates/services/merge/validator/teku.tmpl @@ -1,7 +1,7 @@ {{/* teku.tmpl */}} {{ define "validator" }} - validator:{{if and (ge .UID 0) (ge .GID 0)}} - user: "{{.UID}}:{{.GID}}"{{end}} + validator: + user: "root:root" container_name: sedge-validator-client{{if .ContainerTag}}-{{.ContainerTag}}{{end}} image: ${VL_IMAGE_VERSION} depends_on: From 2fb6af6300b8f1552be65b6fa70b434c2adbe93a Mon Sep 17 00:00:00 2001 From: Marcos Antonio Maceo <35319980+stdevMac@users.noreply.github.com> Date: Thu, 7 Dec 2023 20:09:21 +0400 Subject: [PATCH 24/30] Add prysm to holesky (#337) * feat: Add prysm to holesky * docs: Add prysm for holesky in docs * fix: tests --- README.md | 2 +- cli/cli_test.go | 15 +++------------ docs/docs/commands/clients.mdx | 2 +- templates/envs/holesky/consensus/prysm.tmpl | 13 +++++++++++++ templates/envs/holesky/validator/prysm.tmpl | 13 +++++++++++++ 5 files changed, 31 insertions(+), 14 deletions(-) create mode 100644 templates/envs/holesky/consensus/prysm.tmpl create mode 100644 templates/envs/holesky/validator/prysm.tmpl diff --git a/README.md b/README.md index c0cde5cd8..062054293 100644 --- a/README.md +++ b/README.md @@ -164,7 +164,7 @@ Users acknowledge that no warranty is being made of a successful installation. S | Geth | Lighthouse | Lighthouse | | Nethermind | Lodestar | Lodestar | | Erigon | Teku | Teku | -| Besu | | | +| Besu | Prysm | Prysm | ### Gnosis diff --git a/cli/cli_test.go b/cli/cli_test.go index 6316ed53a..94a11f47b 100644 --- a/cli/cli_test.go +++ b/cli/cli_test.go @@ -55,15 +55,6 @@ func TestCli(t *testing.T) { GnosisClients["consensus"] = append(GnosisClients["consensus"], "randomize") GnosisClients["validator"] = append(GnosisClients["validator"], "randomize") - HoleskyClients := map[string][]string{ - "execution": clients.AllClients["execution"], - "consensus": utils.Filter(clients.AllClients["consensus"], func(c string) bool { return c != "prysm" }), - "validator": utils.Filter(clients.AllClients["validator"], func(c string) bool { return c != "prysm" }), - } - HoleskyClients["execution"] = append(HoleskyClients["execution"], "randomize") - HoleskyClients["consensus"] = append(HoleskyClients["consensus"], "randomize") - HoleskyClients["validator"] = append(HoleskyClients["validator"], "randomize") - tests := []struct { name string setup func(*testing.T, *sedge_mocks.MockSedgeActions, *sedge_mocks.MockPrompter, *sedge_mocks.MockDependenciesManager) @@ -221,8 +212,8 @@ func TestCli(t *testing.T) { prompter.EXPECT().Input("Generation path", configs.DefaultAbsSedgeDataPath, false, nil).Return(generationPath, nil), prompter.EXPECT().Input("Container tag, sedge will add to each container and the network, a suffix with the tag", "", false, nil).Return("tag", nil), prompter.EXPECT().Confirm("Do you want to set up a validator?", true).Return(false, nil), - prompter.EXPECT().Select("Select execution client", "", HoleskyClients["execution"]).Return(0, nil), - prompter.EXPECT().Select("Select consensus client", "", HoleskyClients["consensus"]).Return(2, nil), + prompter.EXPECT().Select("Select execution client", "", ETHClients["execution"]).Return(0, nil), + prompter.EXPECT().Select("Select consensus client", "", ETHClients["consensus"]).Return(3, nil), prompter.EXPECT().InputURL("Checkpoint sync URL", configs.NetworksConfigs()[genData.Network].CheckpointSyncURL, false).Return("https://checkpoint-sync.holesky.ethpandaops.io/", nil), prompter.EXPECT().EthAddress("Please enter the Fee Recipient address (press enter to skip it)", "", false).Return("0x2d07a21ebadde0c13e6b91022a7e5722eb6bf5d5", nil), prompter.EXPECT().Confirm("Do you want to expose all ports?", false).Return(true, nil), @@ -390,7 +381,7 @@ func TestCli(t *testing.T) { prompter.EXPECT().Select("Select node type", "", []string{NodeTypeFullNode, NodeTypeExecution, NodeTypeConsensus, NodeTypeValidator}).Return(2, nil), prompter.EXPECT().Input("Generation path", configs.DefaultAbsSedgeDataPath, false, nil).Return(generationPath, nil), prompter.EXPECT().Input("Container tag, sedge will add to each container and the network, a suffix with the tag", "", false, nil).Return("tag", nil), - prompter.EXPECT().Select("Select consensus client", "", HoleskyClients["consensus"]).Return(2, nil), + prompter.EXPECT().Select("Select consensus client", "", ETHClients["consensus"]).Return(3, nil), prompter.EXPECT().InputURL("Checkpoint sync URL", configs.NetworksConfigs()[genData.Network].CheckpointSyncURL, false).Return("https://checkpoint-sync.holesky.ethpandaops.io/", nil), prompter.EXPECT().InputURL("Execution API URL", "", true).Return("http://execution:5051", nil), prompter.EXPECT().InputURL("Execution Auth API URL", "", true).Return("http://execution:5051", nil), diff --git a/docs/docs/commands/clients.mdx b/docs/docs/commands/clients.mdx index 41b2a1218..fe563688c 100644 --- a/docs/docs/commands/clients.mdx +++ b/docs/docs/commands/clients.mdx @@ -73,7 +73,7 @@ $ sedge clients 1 nethermind lighthouse lighthouse 2 geth teku teku 3 erigon lodestar lodestar - 4 besu - - + 4 besu prysm prysm 2023-10-13 14:13:45 -- [INFO] Listing supported clients for network mainnet diff --git a/templates/envs/holesky/consensus/prysm.tmpl b/templates/envs/holesky/consensus/prysm.tmpl new file mode 100644 index 000000000..c26d55016 --- /dev/null +++ b/templates/envs/holesky/consensus/prysm.tmpl @@ -0,0 +1,13 @@ +{{/* prysm.tmpl */}} +{{ define "consensus" }} +# --- Consensus Layer - Beacon Node - configuration --- +CC_PEER_COUNT=50 +CC_LOG_LEVEL=info +EC_API_URL={{.ExecutionApiURL}} +EC_AUTH_URL={{.ExecutionAuthURL}} +CC_INSTANCE_NAME=Prysm +CC_IMAGE_VERSION={{.CcImage}} +CC_DATA_DIR={{.CcDataDir}} +CC_JWT_SECRET_PATH={{.JWTSecretPath}} +{{if .CheckpointSyncUrl}}CHECKPOINT_SYNC_URL={{.CheckpointSyncUrl}}{{end}} +{{ end }} \ No newline at end of file diff --git a/templates/envs/holesky/validator/prysm.tmpl b/templates/envs/holesky/validator/prysm.tmpl new file mode 100644 index 000000000..91122fbf1 --- /dev/null +++ b/templates/envs/holesky/validator/prysm.tmpl @@ -0,0 +1,13 @@ +{{/* prysm.tmpl */}} +{{ define "validator" }} +# --- Consensus Layer - Validator Node - configuration --- +CC_API_URL={{.ConsensusApiURL}} +CC_ADD_API_URL={{.ConsensusAdditionalApiURL}} +GRAFFITI={{.Graffiti}} +VL_LOG_LEVEL=info +VL_INSTANCE_NAME=PrysmValidator +VL_IMAGE_VERSION={{.VlImage}} +KEYSTORE_DIR={{.KeystoreDir}} +WALLET_DIR=./wallet +VL_DATA_DIR={{.VlDataDir}} +{{ end }} From d0059f9604994e1fa1c10d88639fd8cb4f53adb7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 7 Dec 2023 20:31:15 +0400 Subject: [PATCH 25/30] chore(deps): bump github.com/docker/docker (#329) Bumps [github.com/docker/docker](https://github.com/docker/docker) from 23.0.3+incompatible to 24.0.7+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v23.0.3...v24.0.7) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Marcos Antonio Maceo <35319980+stdevMac@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index ee81e6919..298008296 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,7 @@ require ( github.com/cenkalti/backoff/v4 v4.2.0 github.com/compose-spec/compose-go v1.12.0 github.com/distribution/reference v0.5.0 - github.com/docker/docker v23.0.3+incompatible + github.com/docker/docker v24.0.7+incompatible github.com/golang/mock v1.6.0 github.com/google/go-github/v47 v47.1.0 github.com/google/uuid v1.3.0 diff --git a/go.sum b/go.sum index acc89cf47..db80d4f44 100644 --- a/go.sum +++ b/go.sum @@ -27,8 +27,8 @@ github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= github.com/docker/distribution v2.8.3+incompatible h1:AtKxIZ36LoNK51+Z6RpzLpddBirtxJnzDrHLEKxTAYk= github.com/docker/distribution v2.8.3+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/docker v23.0.3+incompatible h1:9GhVsShNWz1hO//9BNg/dpMnZW25KydO4wtVxWAIbho= -github.com/docker/docker v23.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v24.0.7+incompatible h1:Wo6l37AuwP3JaMnZa226lzVXGA3F9Ig1seQen0cKYlM= +github.com/docker/docker v24.0.7+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= From 8543b6eaa1832621709963fb2764f7c6a2d417bc Mon Sep 17 00:00:00 2001 From: Marcos Antonio Maceo Reyes Date: Sun, 10 Dec 2023 16:33:32 +0400 Subject: [PATCH 26/30] [docs] update changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 88d443cd7..901cc5926 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [v1.3.0] - 2023-12-11 ### Added From a47c62fcdf67002bc616717b28c961b911a9df10 Mon Sep 17 00:00:00 2001 From: Marcos Antonio Maceo Reyes Date: Sun, 10 Dec 2023 20:44:01 +0400 Subject: [PATCH 27/30] [docs] update docs for version v1.3.0 --- docs/docs/commands/cli.mdx | 2 +- docs/docs/commands/clients.mdx | 2 +- docs/docs/commands/deps.mdx | 2 +- docs/docs/commands/down.mdx | 2 +- docs/docs/commands/importKey.mdx | 2 +- docs/docs/commands/networks.mdx | 2 +- docs/docs/commands/run.mdx | 6 +-- docs/docs/commands/show.mdx | 2 +- docs/docs/commands/slashingExport.mdx | 8 ++-- docs/docs/commands/slashingImport.mdx | 8 ++-- docs/docs/commands/version.mdx | 2 +- docs/docs/guidelines/new-network.mdx | 18 ++++---- docs/docs/networks/chiado.mdx | 2 +- docs/docs/networks/gnosis.mdx | 2 +- docs/docs/networks/holesky.mdx | 59 +++++++++++++++++++++++++ docs/docs/quickstart/complete-guide.mdx | 4 +- docs/docs/quickstart/index.md | 6 ++- docs/docs/quickstart/install-guide.mdx | 2 +- 18 files changed, 97 insertions(+), 34 deletions(-) create mode 100644 docs/docs/networks/holesky.mdx diff --git a/docs/docs/commands/cli.mdx b/docs/docs/commands/cli.mdx index ce5c132ea..cb6778870 100644 --- a/docs/docs/commands/cli.mdx +++ b/docs/docs/commands/cli.mdx @@ -42,7 +42,7 @@ This is an example of what you can expect: ``` sedge cli 2023-03-20 21:54:08 -- [INFO] [Logger Init] Log level: info -2023-03-20 21:54:08 -- [INFO] You are running the latest version of sedge. Version: v0.6.0 +2023-03-20 21:54:08 -- [INFO] You are running the latest version of sedge. Version: v1.3.0 ? Select network goerli ? Select node type full-node ? Generation path /root/sedge-data diff --git a/docs/docs/commands/clients.mdx b/docs/docs/commands/clients.mdx index fe563688c..2e703b792 100644 --- a/docs/docs/commands/clients.mdx +++ b/docs/docs/commands/clients.mdx @@ -31,7 +31,7 @@ The execution of `sedge clients` will result in an output like this, that will s ``` $ sedge clients 2023-10-13 14:13:44 -- [INFO] [Logger Init] Log level: info -2023-10-13 14:13:45 -- [INFO] You are running the latest version of sedge. Version: v1.2.3 +2023-10-13 14:13:45 -- [INFO] You are running the latest version of sedge. Version: v1.3.0 2023-10-13 14:13:45 -- [INFO] Listing supported clients for network chiado # Execution Clients Consensus Clients Validator Clients diff --git a/docs/docs/commands/deps.mdx b/docs/docs/commands/deps.mdx index 89ad37b4a..4615d86ad 100644 --- a/docs/docs/commands/deps.mdx +++ b/docs/docs/commands/deps.mdx @@ -75,7 +75,7 @@ The execution of `sedge deps check` will result in an output like this if everyt ``` $ sedge deps check 2023-03-21 02:56:04 -- [INFO] [Logger Init] Log level: info -2023-03-21 02:56:05 -- [INFO] You are running the latest version of sedge. Version: v0.6.0 +2023-03-21 02:56:05 -- [INFO] You are running the latest version of sedge. Version: v1.3.0 2023-03-21 02:56:05 -- [INFO] docker is installed 2023-03-21 02:56:06 -- [INFO] All dependencies are installed and running ``` diff --git a/docs/docs/commands/down.mdx b/docs/docs/commands/down.mdx index 612accc34..73019f32a 100644 --- a/docs/docs/commands/down.mdx +++ b/docs/docs/commands/down.mdx @@ -38,7 +38,7 @@ The execution of `sedge down` will close and remove all the opened containers an ``` $ sedge down 2022-00-00 00:00:00 -- [INFO] [Logger Init] Log level: info -2022-00-00 00:00:00 -- [INFO] You are running the latest version of sedge. Version: v0.5.1 +2022-00-00 00:00:00 -- [INFO] You are running the latest version of sedge. Version: v1.3.0 [sudo] password for maceo: [+] Running 7/7 ⠿ Container execution-client Removed 93.8s diff --git a/docs/docs/commands/importKey.mdx b/docs/docs/commands/importKey.mdx index 6acadda73..bf2f2b3c6 100644 --- a/docs/docs/commands/importKey.mdx +++ b/docs/docs/commands/importKey.mdx @@ -78,7 +78,7 @@ To import the validator keys, and start the validator client after the import, r ```shell $ sedge import-key --from keystore -n sepolia --start-validator prysm 2023-01-26 11:59:34 -- [INFO] [Logger Init] Log level: info -2023-01-26 11:59:34 -- [INFO] You are running the latest version of sedge. Version: v0.6.0 +2023-01-26 11:59:34 -- [INFO] You are running the latest version of sedge. Version: v1.3.0 # highlight-next-line 2023-01-26 11:59:34 -- [WARN] The keys path is not the default one, copying the keys to the default path /root/sedge/example/sedge-data/keystore 2023-01-26 11:59:34 -- [INFO] Importing validator keys diff --git a/docs/docs/commands/networks.mdx b/docs/docs/commands/networks.mdx index 9930ef4b5..d756fa4a3 100644 --- a/docs/docs/commands/networks.mdx +++ b/docs/docs/commands/networks.mdx @@ -29,7 +29,7 @@ Global Flags: ``` $ sedge networks 2022-00-00 00:00:00 -- [INFO] [Logger Init] Log level: info -2022-00-00 00:00:00 -- [INFO] You are running the latest version of sedge. Version: v0.5.1 +2022-00-00 00:00:00 -- [INFO] You are running the latest version of sedge. Version: v1.3.0 2022-00-00 00:00:00 -- [INFO] Listing supported networks # Supported Networks diff --git a/docs/docs/commands/run.mdx b/docs/docs/commands/run.mdx index a56701ddb..de33be74f 100644 --- a/docs/docs/commands/run.mdx +++ b/docs/docs/commands/run.mdx @@ -58,7 +58,7 @@ the following command to start all services in the default generation path $ sedge run Using config file: /root/.sedge.yaml 2022-12-29 19:55:55 -- [INFO] [Logger Init] Logging configuration: {Level:debug} -2022-12-29 19:55:55 -- [INFO] You are running the latest version of sedge. Version: v0.6.0 +2022-12-29 19:55:55 -- [INFO] You are running the latest version of sedge. Version: v1.3.0 2022-12-29 20:40:24 -- [INFO] Checking dependencies: docker 2022-12-29 20:40:24 -- [INFO] All dependencies are installed on host machine 2022-12-29 19:55:55 -- [INFO] Setting up containers @@ -109,7 +109,7 @@ start the validator. $ sedge run --services execution,consensus Using config file: /root/.sedge.yaml 2022-12-29 21:03:29 -- [INFO] [Logger Init] Logging configuration: {Level:debug} -2022-12-29 21:03:29 -- [INFO] You are running the latest version of sedge. Version: v0.6.0 +2022-12-29 21:03:29 -- [INFO] You are running the latest version of sedge. Version: v1.3.0 2022-12-29 21:03:29 -- [INFO] Checking dependencies: docker 2022-12-29 21:03:29 -- [INFO] All dependencies are installed on host machine 2022-12-29 21:03:29 -- [INFO] Setting up containers @@ -154,7 +154,7 @@ Now you can start the validator client like follow: $ sedge run --services validator Using config file: /root/.sedge.yaml 2022-12-29 21:24:12 -- [INFO] [Logger Init] Logging configuration: {Level:debug} -2022-12-29 21:24:12 -- [INFO] You are running the latest version of sedge. Version: v0.6.0 +2022-12-29 21:24:12 -- [INFO] You are running the latest version of sedge. Version: v1.3.0 2022-12-29 21:24:12 -- [INFO] Checking dependencies: docker 2022-12-29 21:24:12 -- [INFO] All dependencies are installed on host machine 2022-12-29 21:24:12 -- [INFO] Setting up containers diff --git a/docs/docs/commands/show.mdx b/docs/docs/commands/show.mdx index 278cb504e..4a3f9f07c 100644 --- a/docs/docs/commands/show.mdx +++ b/docs/docs/commands/show.mdx @@ -29,7 +29,7 @@ Global Flags: ``` $ sedge show 2023-00-00 00:00:00 -- [INFO] [Logger Init] Log level: info -2023-00-00 00:00:00 -- [INFO] You are running the latest version of sedge. Version: v1.1.0 +2023-00-00 00:00:00 -- [INFO] You are running the latest version of sedge. Version: v1.3.0 2023-00-00 00:00:00 -- [INFO] Showing existing containers information 2023-00-00 00:00:00 -- [INFO] containers: - name: sedge-execution-client diff --git a/docs/docs/commands/slashingExport.mdx b/docs/docs/commands/slashingExport.mdx index d98e0b310..88d9e0833 100644 --- a/docs/docs/commands/slashingExport.mdx +++ b/docs/docs/commands/slashingExport.mdx @@ -59,7 +59,7 @@ This is an example of exporting slashing protection data from a setup using sepo ```shell $ sedge slashing-export lighthouse -n sepolia --out slashing-protection.json 2023-01-06 15:47:56 -- [INFO] [Logger Init] Log level: info -2023-01-06 15:47:57 -- [INFO] You are running the latest version of sedge. Version: v0.6.0 +2023-01-06 15:47:57 -- [INFO] You are running the latest version of sedge. Version: v1.3.0 2023-01-06 15:47:57 -- [INFO] Exporting slashing data from client lighthouse # highlight-next-line 2023-01-06 15:47:57 -- [INFO] The slashing protection container is starting... @@ -72,7 +72,7 @@ Notice in this case the validator client remains stopped because it has been sto ```shell $ sedge slashing-export lighthouse -n sepolia --out slashing-protection.json --start-validator 2023-01-06 15:51:11 -- [INFO] [Logger Init] Log level: info -2023-01-06 15:51:11 -- [INFO] You are running the latest version of sedge. Version: v0.6.0 +2023-01-06 15:51:11 -- [INFO] You are running the latest version of sedge. Version: v1.3.0 2023-01-06 15:51:11 -- [INFO] Exporting slashing data from client lighthouse 2023-01-06 15:51:11 -- [INFO] The slashing protection container is starting... 2023-01-06 15:51:12 -- [INFO] The slashing container ends successfully. @@ -87,7 +87,7 @@ Another case may be exporting the slashing data protection when the validator is ```shell $ sedge slashing-export lighthouse -n sepolia --out slashing-protection.json 2023-01-06 15:51:46 -- [INFO] [Logger Init] Log level: info -2023-01-06 15:51:46 -- [INFO] You are running the latest version of sedge. Version: v0.6.0 +2023-01-06 15:51:46 -- [INFO] You are running the latest version of sedge. Version: v1.3.0 # highlight-next-line 2023-01-06 15:51:46 -- [INFO] Stopping validator client # highlight-next-line @@ -108,7 +108,7 @@ In this case, the validator client is stopped before the export and started agai ```shell $ sedge slashing-export lighthouse -n sepolia --out slashing-protection.json --stop-validator 2023-01-06 15:52:07 -- [INFO] [Logger Init] Log level: info -2023-01-06 15:52:07 -- [INFO] You are running the latest version of sedge. Version: v0.6.0 +2023-01-06 15:52:07 -- [INFO] You are running the latest version of sedge. Version: v1.3.0 # highlight-next-line 2023-01-06 15:52:07 -- [INFO] Stopping validator client # highlight-next-line diff --git a/docs/docs/commands/slashingImport.mdx b/docs/docs/commands/slashingImport.mdx index 805b31c7e..004fe0fb6 100644 --- a/docs/docs/commands/slashingImport.mdx +++ b/docs/docs/commands/slashingImport.mdx @@ -58,7 +58,7 @@ This is an example of importing slashing protection data to a setup using sepoli ```shell $ sedge slashing-import prysm -f slashing-export.json -n sepolia 2023-01-06 14:59:11 -- [INFO] [Logger Init] Log level: info -2023-01-06 14:59:11 -- [INFO] You are running the latest version of sedge. Version: v0.6.0 +2023-01-06 14:59:11 -- [INFO] You are running the latest version of sedge. Version: v1.3.0 # highlight-next-line 2023-01-06 14:59:11 -- [INFO] Importing slashing data to client prysm from slashing-export.json # highlight-next-line @@ -72,7 +72,7 @@ Notice in this case the validator client remains stopped because it has been sto ```shell $ sedge slashing-import prysm -f slashing-export.json -n sepolia --start-validator 2023-01-06 15:08:05 -- [INFO] [Logger Init] Log level: info -2023-01-06 15:08:06 -- [INFO] You are running the latest version of sedge. Version: v0.6.0 +2023-01-06 15:08:06 -- [INFO] You are running the latest version of sedge. Version: v1.3.0 2023-01-06 15:08:06 -- [INFO] Importing slashing data to client prysm from slashing-export.json 2023-01-06 15:08:06 -- [INFO] The slashing protection container is starting... 2023-01-06 15:08:06 -- [INFO] The slashing container ends successfully. @@ -87,7 +87,7 @@ Another case may be importing the slashing data protection when the validator is ```shell $ sedge slashing-import prysm -f slashing-export.json -n sepolia 2023-01-06 15:10:27 -- [INFO] [Logger Init] Log level: info -2023-01-06 15:10:27 -- [INFO] You are running the latest version of sedge. Version: v0.6.0 +2023-01-06 15:10:27 -- [INFO] You are running the latest version of sedge. Version: v1.3.0 # highlight-next-line 2023-01-06 15:10:27 -- [INFO] Stopping validator client... # highlight-next-line @@ -108,7 +108,7 @@ In this case, the validator client is stopped before the import and started agai ```shell $ sedge slashing-import prysm -f slashing-export.json -n sepolia --stop-validator 2023-01-06 15:12:22 -- [INFO] [Logger Init] Log level: info -2023-01-06 15:12:22 -- [INFO] You are running the latest version of sedge. Version: v0.6.0 +2023-01-06 15:12:22 -- [INFO] You are running the latest version of sedge. Version: v1.3.0 # highlight-next-line 2023-01-06 15:12:22 -- [INFO] Stopping validator client... # highlight-next-line diff --git a/docs/docs/commands/version.mdx b/docs/docs/commands/version.mdx index 99314b59e..827d7c16b 100644 --- a/docs/docs/commands/version.mdx +++ b/docs/docs/commands/version.mdx @@ -29,6 +29,6 @@ Global Flags: ``` $ sedge version 2022-00-00 00:00:00 -- [INFO] [Logger Init] Log level: info -2022-00-00 00:00:00 -- [INFO] You are running the latest version of sedge. Version: v0.5.1 +2022-00-00 00:00:00 -- [INFO] You are running the latest version of sedge. Version: v1.3.0 sedge v0.5.1 ``` \ No newline at end of file diff --git a/docs/docs/guidelines/new-network.mdx b/docs/docs/guidelines/new-network.mdx index e7747e9b3..26e59084c 100644 --- a/docs/docs/guidelines/new-network.mdx +++ b/docs/docs/guidelines/new-network.mdx @@ -31,15 +31,15 @@ RELAY_URL={{if .RelayURL}}{{.RelayURL}}{{else}}https://0xafa4c6985aa049fb79dd370 4. Create an entry on `configs/init.go`, in the method `InitNetworksConfigs()` with the network information, for example: ``` { - Name: NetworkSepolia, - RequireJWT: true, - NetworkService: "merge", - GenesisForkVersion: "0x90000069", - DefaultECBootnodes: []string{ - "enode://9246d00bc8fd1742e5ad2428b80fc4dc45d786283e05ef6edbd9002cbc335d40998444732fbe921cb88e1d2c73d1b1de53bae6a2237996e9bfe14f871baf7066@18.168.182.86:30303", "enode://ec66ddcf1a974950bd4c782789a7e04f8aa7110a72569b6e65fcd51e937e74eed303b1ea734e4d19cfaec9fbff9b6ee65bf31dcb50ba79acce9dd63a6aca61c7@52.14.151.177:30303", - }, - DefaultCCBootnodes: []string{ - "enr:-Iq4QMCTfIMXnow27baRUb35Q8iiFHSIDBJh6hQM5Axohhf4b6Kr_cOCu0htQ5WvVqKvFgY28893DHAg8gnBAXsAVqmGAX53x8JggmlkgnY0gmlwhLKAlv6Jc2VjcDI1NmsxoQK6S-Cii_KmfFdUJL2TANL3ksaKUnNXvTCv1tLwXs0QgIN1ZHCCIyk", "enr:-Ly4QFoZTWR8ulxGVsWydTNGdwEESueIdj-wB6UmmjUcm-AOPxnQi7wprzwcdo7-1jBW_JxELlUKJdJES8TDsbl1EdNlh2F0dG5ldHOI__78_v2bsV-EZXRoMpA2-lATkAAAcf__________gmlkgnY0gmlwhBLYJjGJc2VjcDI1NmsxoQI0gujXac9rMAb48NtMqtSTyHIeNYlpjkbYpWJw46PmYYhzeW5jbmV0cw-DdGNwgiMog3VkcIIjKA", "enr:-KG4QE5OIg5ThTjkzrlVF32WT_-XT14WeJtIz2zoTqLLjQhYAmJlnk4ItSoH41_2x0RX0wTFIe5GgjRzU2u7Q1fN4vADhGV0aDKQqP7o7pAAAHAyAAAAAAAAAIJpZIJ2NIJpcISlFsStiXNlY3AyNTZrMaEC-Rrd_bBZwhKpXzFCrStKp1q_HmGOewxY3KwM8ofAj_ODdGNwgiMog3VkcIIjKA", "enr:-L64QC9Hhov4DhQ7mRukTOz4_jHm4DHlGL726NWH4ojH1wFgEwSin_6H95Gs6nW2fktTWbPachHJ6rUFu0iJNgA0SB2CARqHYXR0bmV0c4j__________4RldGgykDb6UBOQAABx__________-CaWSCdjSCaXCEA-2vzolzZWNwMjU2azGhA17lsUg60R776rauYMdrAz383UUgESoaHEzMkvm4K6k6iHN5bmNuZXRzD4N0Y3CCIyiDdWRwgiMo", + NetworkSepolia: { + Name: NetworkSepolia, + NetworkService: "merge", + GenesisForkVersion: "0x90000069", + SupportsMEVBoost: true, + CheckpointSyncURL: "https://sepolia.checkpoint-sync.ethpandaops.io", + RelayURLs: []string{ + "https://0x845bd072b7cd566f02faeb0a4033ce9399e42839ced64e8b2adcfc859ed1e8e1a5a293336a49feac6d9a5edb779be53a@builder-relay-sepolia.flashbots.net", + }, }, }, ``` diff --git a/docs/docs/networks/chiado.mdx b/docs/docs/networks/chiado.mdx index f2202cb7c..a2040c1e4 100644 --- a/docs/docs/networks/chiado.mdx +++ b/docs/docs/networks/chiado.mdx @@ -1,5 +1,5 @@ --- -sidebar_position: 5 +sidebar_position: 6 id: chiado --- diff --git a/docs/docs/networks/gnosis.mdx b/docs/docs/networks/gnosis.mdx index 2f00f0a04..5b7606b2c 100644 --- a/docs/docs/networks/gnosis.mdx +++ b/docs/docs/networks/gnosis.mdx @@ -1,5 +1,5 @@ --- -sidebar_position: 4 +sidebar_position: 5 id: gnosis --- diff --git a/docs/docs/networks/holesky.mdx b/docs/docs/networks/holesky.mdx new file mode 100644 index 000000000..862fbd7a4 --- /dev/null +++ b/docs/docs/networks/holesky.mdx @@ -0,0 +1,59 @@ +--- +sidebar_position: 4 +id: holesky +--- + +# Holesky + +Holesky is Ethereum's public testnet that serves as a technical experimentation platform for Ethereum's infrastructure, staking designs, and protocol-level developments. This testing environment brings its own set of validators, a dedicated block explorer, and an ecosystem of faucets. + +## Supported Execution Clients +- [Nethermind](https://docs.nethermind.io/) +- [Geth](https://geth.ethereum.org/docs/) +- [Erigon](https://github.com/ledgerwatch/erigon) +- [Besu](https://besu.hyperledger.org/en/stable/) + +## Supported Consensus Clients +- [Lighthouse](https://lighthouse-book.sigmaprime.io/) +- [Lodestar](https://chainsafe.github.io/lodestar/) +- [Prysm](https://docs.prylabs.network/docs/getting-started/) +- [Teku](https://docs.teku.consensys.net/en/latest/) + +## Supported Validator Clients +- [Lighthouse](https://lighthouse-book.sigmaprime.io/) +- [Lodestar](https://chainsafe.github.io/lodestar/) +- [Prysm](https://docs.prylabs.network/docs/getting-started/) +- [Teku](https://docs.teku.consensys.net/en/latest/) + + +## Generating a Full Node + +To generate a setup of a full node (without a validator node) with random clients, you only need to add the `--no-validator` to `sedge generate full-node`. For example: + +```bash +sedge generate full-node --no-validator --network=holesky +``` + +## Generating a Full Node with a Validator + +To generate a setup of a validator with random clients, you need to omit the `--no-validator` flag. For example: + +```bash +sedge generate full-node --network=holesky +``` + +## Create keystore for validator + +To create a keystore for a validator, you need to run the following command: + +```bash +sedge keys --network holesky +``` + +## Running your setup + +Once you have generated your setup, you can run it with the following command: + +``` +sedge run +``` \ No newline at end of file diff --git a/docs/docs/quickstart/complete-guide.mdx b/docs/docs/quickstart/complete-guide.mdx index b4c47ece6..d7e637e41 100644 --- a/docs/docs/quickstart/complete-guide.mdx +++ b/docs/docs/quickstart/complete-guide.mdx @@ -41,14 +41,14 @@ want to use another installation method: ``` - curl -L https://github.com/NethermindEth/sedge/releases/download/v1.2.3/sedge-v1.2.3-linux-amd64 --output sedge + curl -L https://github.com/NethermindEth/sedge/releases/download/v1.3.0/sedge-v1.3.0-linux-amd64 --output sedge ``` ``` - wget https://github.com/NethermindEth/sedge/releases/download/v1.2.3/sedge-v1.2.3-linux-amd64 -O sedge + wget https://github.com/NethermindEth/sedge/releases/download/v1.3.0/sedge-v1.3.0-linux-amd64 -O sedge ``` diff --git a/docs/docs/quickstart/index.md b/docs/docs/quickstart/index.md index ec7b74ddb..887f2cef7 100644 --- a/docs/docs/quickstart/index.md +++ b/docs/docs/quickstart/index.md @@ -4,8 +4,12 @@ keywords: - sedge - installation - validator - - goerli - mainnet + - goerli + - sepolia + - holesky + - chiado + - gnosis - Ethereum - mev-boost --- diff --git a/docs/docs/quickstart/install-guide.mdx b/docs/docs/quickstart/install-guide.mdx index 647bf11e7..9f00a5d6d 100644 --- a/docs/docs/quickstart/install-guide.mdx +++ b/docs/docs/quickstart/install-guide.mdx @@ -37,7 +37,7 @@ Downloading any binary from the internet risks downloading files that malicious, - > Replace `` with the desired version number, e.g 1.2.2; `` with your OS, e.g linux; and `` with your architecture, e.g amd64. + > Replace `` with the desired version number, e.g 1.3.0; `` with your OS, e.g linux; and `` with your architecture, e.g amd64. 2. Open a console or terminal instance on the directory you downloaded the binary. 3. Set binary as executable executing `chmod +x ` in the Terminal. Replace `` with the name of the downloaded binary. From 80413783d992f9ebc5adfbf0b75b1dfdcdf79707 Mon Sep 17 00:00:00 2001 From: Marcos Antonio Maceo <35319980+stdevMac@users.noreply.github.com> Date: Mon, 11 Dec 2023 23:45:42 +0400 Subject: [PATCH 28/30] docs: update main docs page to holds holesky Co-authored-by: Miguel Tenorio <46824157+AntiD2ta@users.noreply.github.com> --- docs/src/components/HomepageFeatures/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/src/components/HomepageFeatures/index.js b/docs/src/components/HomepageFeatures/index.js index b79f5a12f..2d612e1fb 100644 --- a/docs/src/components/HomepageFeatures/index.js +++ b/docs/src/components/HomepageFeatures/index.js @@ -8,7 +8,7 @@ const FeatureList = [ Svg: require('@site/static/img/ethereum.svg').default, description: ( <> - We fully support Mainnet, Goerli(testnet), Sepolia(testnet) and Holesky(testnet). + We fully support Mainnet, and Testnets (Goerli, Sepolia, and Holesky). ), From 0081a9fa04e8be2a9ddd3cf20d416a347917572d Mon Sep 17 00:00:00 2001 From: Marcos Antonio Maceo <35319980+stdevMac@users.noreply.github.com> Date: Mon, 11 Dec 2023 23:55:39 +0400 Subject: [PATCH 29/30] docs: add new info section on latest comment at quickstart page Co-authored-by: Miguel Tenorio <46824157+AntiD2ta@users.noreply.github.com> --- docs/docs/quickstart/complete-guide.mdx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/docs/quickstart/complete-guide.mdx b/docs/docs/quickstart/complete-guide.mdx index d7e637e41..91c2e8b8c 100644 --- a/docs/docs/quickstart/complete-guide.mdx +++ b/docs/docs/quickstart/complete-guide.mdx @@ -149,6 +149,10 @@ more, you can check [here in our documentation](/docs/commands/generate). The `--latest` flag can be used for the `full-node`, `execution`, `consensus` and `validator` commands. +::: + +:::info + You can update your client's versions using the following commands if the clients release any version: 1. Run `docker compose -f /path/to/docker-compose.yml pull` to update the images. 2. Run `docker compose -f /path/to/docker-compose.yml up -d` to restart the containers. From 0a3e6a978c0ff4de7b5df73c5958c5b275c25d6b Mon Sep 17 00:00:00 2001 From: Marcos Antonio Maceo <35319980+stdevMac@users.noreply.github.com> Date: Mon, 11 Dec 2023 23:57:51 +0400 Subject: [PATCH 30/30] docs: update CHANGELOG Co-authored-by: Miguel Tenorio <46824157+AntiD2ta@users.noreply.github.com> --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 901cc5926..3433c9be9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Remove default bootnodes for networks managed by clients. - Remove custom configurations for Chiado and instead use the clients configuration. +- Update client images. ## [v1.2.3] - 2023-08-16