diff --git a/CHANGELOG.md b/CHANGELOG.md index 7a33002bb..378d9d2fa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [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 @@ -33,8 +45,8 @@ 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. - +- Erigon command line flags. + ## [v1.1.0] - 2023-04-07 ### Added @@ -81,8 +93,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/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 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 diff --git a/docs/docs/quickstart/complete-guide.mdx b/docs/docs/quickstart/complete-guide.mdx index 54d55d784..702e23ffe 100644 --- a/docs/docs/quickstart/complete-guide.mdx +++ b/docs/docs/quickstart/complete-guide.mdx @@ -34,21 +34,21 @@ The hardware specifications of the machine we are going to use are: ### 1. Download and install Sedge on a new brand Linux machine First open a console in the Home directory. Then use `curl` or `wget` to download a binary from the releases page -(we will be using the `1.2.1` version). Check the [installation guide](install-guide) for more information or if you +(we will be using the `1.0.0` version). Check the [installation guide](install-guide) for more information or if you want to use another installation method: ``` - curl -L https://github.com/NethermindEth/sedge/releases/download/v1.2.1/sedge-v1.2.1-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.2.1/sedge-v1.2.1-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 8e39fd1c0..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.1; `` 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/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==" } } }, 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 }}