diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 873081b34..812fede67 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -268,40 +268,6 @@ jobs: name: Windows_amd64_checksum path: ./dist/${{ steps.make_dist.outputs.archive_dir }}/build/nimbus_validator_client.sha512sum retention-days: 2 - build-macos-amd64: - name: macOS AMD64 release asset - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v2 - - name: Build project - id: make_dist - run: | - make dist-macos - cd dist - ARCHIVE=$(echo nimbus-eth2_macOS_amd64_*.tar.gz) - echo "::set-output name=archive::"${ARCHIVE} - echo "::set-output name=archive_dir::"${ARCHIVE%.tar.gz} - tar -xzf ${ARCHIVE} ${ARCHIVE%.tar.gz}/build/nimbus_beacon_node.sha512sum - tar -xzf ${ARCHIVE} ${ARCHIVE%.tar.gz}/build/nimbus_validator_client.sha512sum - - name: Upload archive artefact - uses: actions/upload-artifact@v2 - with: - name: macOS_amd64_archive - path: ./dist/${{ steps.make_dist.outputs.archive }} - retention-days: 2 - - name: Upload BN checksum artefact - uses: actions/upload-artifact@v2 - with: - name: macOS_amd64_checksum - path: ./dist/${{ steps.make_dist.outputs.archive_dir }}/build/nimbus_beacon_node.sha512sum - retention-days: 2 - - name: Upload VC checksum artefact - uses: actions/upload-artifact@v2 - with: - name: macOS_amd64_checksum - path: ./dist/${{ steps.make_dist.outputs.archive_dir }}/build/nimbus_validator_client.sha512sum - retention-days: 2 build-macos-arm64: name: macOS ARM64 release asset runs-on: ubuntu-latest @@ -338,7 +304,7 @@ jobs: retention-days: 2 prepare-release: name: Prepare release draft - needs: [build-amd64, build-arm64, build-arm, build-win64, build-macos-amd64, build-macos-arm64] + needs: [build-amd64, build-arm64, build-arm, build-win64, build-macos-arm64] runs-on: ubuntu-latest steps: - name: Download artefacts @@ -368,8 +334,6 @@ jobs: cat Linux_arm_checksum/* >> release_notes.md echo '# Windows AMD64' >> release_notes.md cat Windows_amd64_checksum/* >> release_notes.md - echo '# macOS AMD64' >> release_notes.md - cat macOS_amd64_checksum/* >> release_notes.md echo '# macOS ARM64' >> release_notes.md cat macOS_arm64_checksum/* >> release_notes.md echo '```' >> release_notes.md @@ -390,7 +354,6 @@ jobs: Linux_arm_archive/* Linux_arm_packages/* Windows_amd64_archive/* - macOS_amd64_archive/* macOS_arm64_archive/* - name: Delete artefacts uses: geekyeggo/delete-artifact@v1 @@ -408,8 +371,6 @@ jobs: Linux_arm_packages Windows_amd64_archive Windows_amd64_checksum - macOS_amd64_archive - macOS_amd64_checksum macOS_arm64_archive macOS_arm64_checksum @@ -419,7 +380,7 @@ jobs: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Build multi-arch Docker image + - name: Build multi-arch Docker images run: | REFNAME="${{ github.ref }}" TAG="${REFNAME#refs/tags/}" @@ -435,4 +396,15 @@ jobs: --amend statusim/nimbus-eth2:arm64-latest \ --amend statusim/nimbus-eth2:arm-latest docker manifest push statusim/nimbus-eth2:multiarch-latest - + docker manifest create \ + statusim/nimbus-validator-client:multiarch-${TAG} \ + --amend statusim/nimbus-validator-client:amd64-${TAG} \ + --amend statusim/nimbus-validator-client:arm64-${TAG} \ + --amend statusim/nimbus-validator-client:arm-${TAG} + docker manifest push statusim/nimbus-validator-client:multiarch-${TAG} + docker manifest create \ + statusim/nimbus-validator-client:multiarch-latest \ + --amend statusim/nimbus-validator-client:amd64-latest \ + --amend statusim/nimbus-validator-client:arm64-latest \ + --amend statusim/nimbus-validator-client:arm-latest + docker manifest push statusim/nimbus-validator-client:multiarch-latest diff --git a/CHANGELOG.md b/CHANGELOG.md index 650ebbc0f..8cf90183a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,74 @@ +2023-01-25 v23.1.1 +================== + +Nimbus `v23.1.1` is a `high-urgency` hotfix for users who have already enabled block +history pruning after upgrading to `v22.3.0`. It fixes an issue where the client may +fail to start after the database has been pruned. + +### Fixes: + +* A crash on start-up after running the client with `--history:prune` option - "backfill block must have a summary". + https://github.com/status-im/nimbus-eth2/pull/4554 + +* The `validator-monitor-details` option was accidentally enabled by default in 23.1.0, + which lead to significant increase in resource usage. + + +2023-01-18 v23.1.0 +================== + +Nimbus `v23.1.0` is a `low-urgency` upgrade, introducing support for on-the-fly database pruning making the storage requirements of Nimbus much more predictable on long-term time scales. When pruning is enabled, a typical beacon node expected to consume around 60 to 70 GB of storage. To take advantage of the new functionality without facing any downtime, users are advised to sync a fresh node through trusted node sync which now features a quicker history backfilling implementation. + +### Improvements + +* After a trusted node sync, Nimbus requires less time to complete the block + backfilling process by downloading the minimum number of historical blocks + mandated by the spec: + + https://github.com/status-im/nimbus-eth2/pull/4421 + +* Nimbus is able to sync in optimistic mode with the network even when not + paired with an execution layer client. Please note that this mode is not + suitable for validating: + + https://github.com/status-im/nimbus-eth2/pull/4458 + +* A new `--history=` configuration parameter controls the + retention of old historic blocks in the database of the client. Enabling + pruning on an existing installation will introduce a significant delay + on the first run, while history pruning is taking place, so we recommend + starting with a fresh database by executing a trusted node sync: + + https://nimbus.guide/history.html + https://github.com/status-im/nimbus-eth2/pull/4445 + +* The validator monitor is now considered out of BETA and enabled by default. + To keep the number of created metrics to a reasonable level on installations + with large number of validators, the default implies the previous behavior + of the `validator-monitor-totals` flag: + + https://github.com/status-im/nimbus-eth2/pull/4468 + +* Full support for the latest Capella/Shanghai devnets: + + https://notes.ethereum.org/@bbusa/Zhejiang#Nimbus + +### Fixes + +* Out of date metadata for the Gnosis network bootstrap nodes: + + https://github.com/status-im/nimbus-eth2/pull/4460 + +* Potential hanging of the client caused by inappropriate activation + of the TTD block detection on beacon nodes created after the merge: + + https://github.com/status-im/nimbus-eth2/pull/4486 + +* Inappropriate case-sensitivity in the `--log-level` parameter, accidentally introduced in the 22.12.0 release. + + https://github.com/status-im/nimbus-eth2/pull/4523 + + 2022-12-21 v22.12.0 =================== @@ -10,13 +81,13 @@ Nimbus `v22.12.0` is a `medium-urgency` release which improves the doppelganger non-finalization: https://github.com/status-im/nimbus-eth2/pull/4435 - + * Support for obtaining a deposit snapshot during trusted node sync from servers supporting the standardized `/eth/v1/beacon/deposit_snapshot` REST endpoint: https://github.com/status-im/nimbus-eth2/pull/4303 - + * Official docker images for the Nimbus validator client are now available: https://hub.docker.com/r/statusim/nimbus-validator-client @@ -34,25 +105,25 @@ Nimbus `v22.12.0` is a `medium-urgency` release which improves the doppelganger * The validator client will now use with the standard exit code `129` in case of detected doppelganger on the network: - + https://github.com/status-im/nimbus-eth2/pull/4398 - + ### Fixes * A potential false-positive in the doppelganger detection logic: - + https://github.com/status-im/nimbus-eth2/pull/4398 - + * A potential hang in trusted node sync: https://github.com/status-im/nimbus-eth2/pull/4303 - + ### Breaking changes: * The built-in support for the Ropsten testnet has been removed: https://github.com/status-im/nimbus-eth2/pull/4280 - + You can still connect to the Ropsten network by specifying its metadata directory on the command line through the `--network` parameter. diff --git a/beacon_chain/conf.nim b/beacon_chain/conf.nim index 5263f5808..b5d301d45 100644 --- a/beacon_chain/conf.nim +++ b/beacon_chain/conf.nim @@ -560,7 +560,7 @@ type validatorMonitorDetails* {. desc: "Publish detailed metrics for each validator individually - may incur significant overhead with large numbers of validators" - defaultValue: true + defaultValue: false name: "validator-monitor-details" .}: bool validatorMonitorTotals* {. diff --git a/beacon_chain/version.nim b/beacon_chain/version.nim index 5abb8f47c..233f1a09c 100644 --- a/beacon_chain/version.nim +++ b/beacon_chain/version.nim @@ -16,9 +16,9 @@ when not defined(nimscript): let copyrights* = "Copyright (c) 2019-" & $(now().utc.year) & " Status Research & Development GmbH" const - versionMajor* = 22 - versionMinor* = 12 - versionBuild* = 0 + versionMajor* = 23 + versionMinor* = 1 + versionBuild* = 1 versionBlob* = "stateofus" # Single word - ends up in the default graffiti diff --git a/docker/dist/binaries/Dockerfile.bn.amd64 b/docker/dist/binaries/Dockerfile.bn.amd64 index bcc43f618..a4f254a91 100644 --- a/docker/dist/binaries/Dockerfile.bn.amd64 +++ b/docker/dist/binaries/Dockerfile.bn.amd64 @@ -11,5 +11,10 @@ USER user STOPSIGNAL SIGINT COPY "nimbus-eth2/build/nimbus_beacon_node" "/home/user/nimbus_beacon_node" + +RUN mkdir -p /home/user/nimbus-eth2/build && \ + ln -s /home/user/nimbus_beacon_node /home/user/nimbus-eth2/build/nimbus_beacon_node && \ + chown -R user:user /home/user/nimbus-eth2/build + WORKDIR "/home/user/" ENTRYPOINT ["/home/user/nimbus_beacon_node"] diff --git a/docker/dist/binaries/Dockerfile.bn.arm b/docker/dist/binaries/Dockerfile.bn.arm index 2c1668c31..a94fc9474 100644 --- a/docker/dist/binaries/Dockerfile.bn.arm +++ b/docker/dist/binaries/Dockerfile.bn.arm @@ -15,5 +15,10 @@ USER user STOPSIGNAL SIGINT COPY "nimbus-eth2/build/nimbus_beacon_node" "/home/user/nimbus_beacon_node" + +RUN mkdir -p /home/user/nimbus-eth2/build && \ + ln -s /home/user/nimbus_beacon_node /home/user/nimbus-eth2/build/nimbus_beacon_node && \ + chown -R user:user /home/user/nimbus-eth2/build + WORKDIR "/home/user/" ENTRYPOINT ["/home/user/nimbus_beacon_node"] diff --git a/docker/dist/binaries/Dockerfile.bn.arm64 b/docker/dist/binaries/Dockerfile.bn.arm64 index 277478e77..2dcedb158 100644 --- a/docker/dist/binaries/Dockerfile.bn.arm64 +++ b/docker/dist/binaries/Dockerfile.bn.arm64 @@ -15,5 +15,10 @@ USER user STOPSIGNAL SIGINT COPY "nimbus-eth2/build/nimbus_beacon_node" "/home/user/nimbus_beacon_node" + +RUN mkdir -p /home/user/nimbus-eth2/build && \ + ln -s /home/user/nimbus_beacon_node /home/user/nimbus-eth2/build/nimbus_beacon_node && \ + chown -R user:user /home/user/nimbus-eth2/build + WORKDIR "/home/user/" ENTRYPOINT ["/home/user/nimbus_beacon_node"]