diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e66676dfe..dc0a4a525 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -155,6 +155,85 @@ jobs: ./dist/*.deb ./dist/*.rpm retention-days: 2 + build-arm: + name: Linux ARM release asset + runs-on: ubuntu-latest + steps: + - name: Install packages + env: + DEBIAN_FRONTEND: "noninteractive" + TZ: "Etc/UTC" + run: | + sudo apt-get -qq update + sudo apt-get -qq -y install binfmt-support qemu-user-static + - name: Checkout code + uses: actions/checkout@v2 + - name: Build project + id: make_dist + run: | + make dist-arm + cd dist + ARCHIVE=$(echo nimbus-eth2_Linux_arm32v7_*.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: Linux_arm_archive + path: ./dist/${{ steps.make_dist.outputs.archive }} + retention-days: 2 + - name: Upload BN checksum artefact + uses: actions/upload-artifact@v2 + with: + name: Linux_arm_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: Linux_arm_checksum + path: ./dist/${{ steps.make_dist.outputs.archive_dir }}/build/nimbus_validator_client.sha512sum + retention-days: 2 + - name: Login to Docker Hub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build and push a Docker images for end users + run: | + cd dist + tar -xzf ${{ steps.make_dist.outputs.archive }} + mv ${{ steps.make_dist.outputs.archive_dir }} ../docker/dist/binaries/nimbus-eth2 + cd ../docker/dist/binaries + REFNAME="${{ github.ref }}" + TAG="${REFNAME#refs/tags/}" + cp -a /usr/bin/qemu-arm-static . + DOCKER_BUILDKIT=1 docker build -f Dockerfile.bn.arm -t statusim/nimbus-eth2:arm-${TAG} -t statusim/nimbus-eth2:arm-latest . + docker push statusim/nimbus-eth2:arm-${TAG} + docker push statusim/nimbus-eth2:arm-latest + + DOCKER_BUILDKIT=1 docker build -f Dockerfile.vc.arm -t statusim/nimbus-validator-client:arm-${TAG} -t statusim/nimbus-validator-client:arm-latest . + docker push statusim/nimbus-validator-client:arm-${TAG} + docker push statusim/nimbus-validator-client:arm-latest + + - name: Setup ruby # Needed for fpm + uses: ruby/setup-ruby@v1 + with: + ruby-version: '3.1' # Not needed with a .ruby-version file + - name: Create RPM/DEB + run: | + scripts/make_packages.sh -b nimbus_beacon_node -t dist/*.tar.gz --install-fpm + scripts/make_packages.sh -b nimbus_validator_client -t dist/*.tar.gz --install-fpm + - name: Upload DEB + uses: actions/upload-artifact@v3 + with: + name: Linux_arm_packages + path: | + ./dist/*.deb + ./dist/*.rpm + retention-days: 2 build-win64: name: Windows AMD64 release asset runs-on: ubuntu-latest @@ -259,7 +338,7 @@ jobs: retention-days: 2 prepare-release: name: Prepare release draft - needs: [build-amd64, build-arm64, build-win64, build-macos-amd64, build-macos-arm64] + needs: [build-amd64, build-arm64, build-arm, build-win64, build-macos-amd64, build-macos-arm64] runs-on: ubuntu-latest steps: - name: Download artefacts @@ -285,6 +364,8 @@ jobs: cat Linux_amd64_checksum/* >> release_notes.md echo '# Linux ARM64' >> release_notes.md cat Linux_arm64_checksum/* >> release_notes.md + echo '# Linux ARM' >> release_notes.md + 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 @@ -306,6 +387,8 @@ jobs: Linux_amd64_packages/* Linux_arm64_archive/* Linux_arm64_packages/* + Linux_arm_archive/* + Linux_arm_packages/* Windows_amd64_archive/* macOS_amd64_archive/* macOS_arm64_archive/* @@ -320,6 +403,9 @@ jobs: Linux_arm64_archive Linux_arm64_checksum Linux_arm64_packages + Linux_arm_archive + Linux_arm_checksum + Linux_arm_packages Windows_amd64_archive Windows_amd64_checksum macOS_amd64_archive @@ -341,19 +427,23 @@ jobs: statusim/nimbus-eth2:multiarch-${TAG} \ --amend statusim/nimbus-eth2:amd64-${TAG} \ --amend statusim/nimbus-eth2:arm64-${TAG} \ + --amend statusim/nimbus-eth2:arm-${TAG} docker manifest push statusim/nimbus-eth2:multiarch-${TAG} docker manifest create \ statusim/nimbus-eth2:multiarch-latest \ --amend statusim/nimbus-eth2:amd64-latest \ --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 f477bbb52..2d23bbdb2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,14 @@ +2023-06-26 v23.6.1 +================== + +Nimbus `v23.6.1` is a `low-urgency` point release significantly improving the performance of database pruning on Nimbus instances that have accumulated history prior to April 2021 (Nimbus 1.1.0). Affected users are advised to upgrade as soon as possible in order to reduce the risk of missed attestations and blocks. + +Fixes: + +* The legacy Nimbus database is not subjected to pruning due to the high I/O cost of the operations: + https://github.com/status-im/nimbus-eth2/pull/5116 + + 2023-06-20 v23.6.0 ================== diff --git a/beacon_chain/version.nim b/beacon_chain/version.nim index 3560d0561..0dddccfaf 100644 --- a/beacon_chain/version.nim +++ b/beacon_chain/version.nim @@ -18,7 +18,7 @@ const versionMajor* = 23 versionMinor* = 6 - versionBuild* = 0 + versionBuild* = 1 versionBlob* = "stateofus" # Single word - ends up in the default graffiti diff --git a/docker/dist/entry_point.sh b/docker/dist/entry_point.sh index c196544c8..d6ee7b89e 100755 --- a/docker/dist/entry_point.sh +++ b/docker/dist/entry_point.sh @@ -75,7 +75,6 @@ if [[ "${PLATFORM}" == "Windows_amd64" ]]; then # nim-blscurve's Windows SSSE3 detection doesn't work when cross-compiling, # so we enable it here. make \ - -j$(nproc) \ CC="${CC}" \ CXX="${CXX}" \ CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS -D_WIN32_WINNT=0x0600" \ @@ -94,7 +93,6 @@ elif [[ "${PLATFORM}" == "Linux_arm32v7" ]]; then QUICK_AND_DIRTY_COMPILER=1 \ deps-common build/generate_makefile make \ - -j$(nproc) \ LOG_LEVEL="TRACE" \ CC="${CC}" \ NIMFLAGS="${NIMFLAGS_COMMON} --cpu:arm --gcc.exe=${CC} --gcc.linkerexe=${CC}" \ @@ -111,7 +109,6 @@ elif [[ "${PLATFORM}" == "Linux_arm64v8" ]]; then QUICK_AND_DIRTY_COMPILER=1 \ deps-common build/generate_makefile make \ - -j$(nproc) \ LOG_LEVEL="TRACE" \ CC="${CC}" \ NIMFLAGS="${NIMFLAGS_COMMON} --cpu:arm64 --gcc.exe=${CC} --gcc.linkerexe=${CC}" \ @@ -139,7 +136,6 @@ elif [[ "${PLATFORM}" == "macOS_amd64" ]]; then NIMFLAGS="${NIMFLAGS_COMMON} --os:macosx --clang.exe=${CC}" \ nat-libs make \ - -j$(nproc) \ LOG_LEVEL="TRACE" \ CC="${CC}" \ AR="x86_64-apple-darwin${DARWIN_VER}-ar" \ @@ -172,7 +168,6 @@ elif [[ "${PLATFORM}" == "macOS_arm64" ]]; then NIMFLAGS="${NIMFLAGS_COMMON} --os:macosx --cpu:arm64 --passC:'-mcpu=apple-a13' --clang.exe=${CC}" \ nat-libs make \ - -j$(nproc) \ LOG_LEVEL="TRACE" \ CC="${CC}" \ AR="arm64-apple-darwin${DARWIN_VER}-ar" \ @@ -188,7 +183,6 @@ elif [[ "${PLATFORM}" == "Linux_amd64_opt" ]]; then echo make \ - -j$(nproc) \ LOG_LEVEL="TRACE" \ NIMFLAGS="${NIMFLAGS_COMMON} -d:marchOptimized" \ PARTIAL_STATIC_LINKING=1 \ @@ -200,7 +194,6 @@ else echo make \ - -j$(nproc) \ LOG_LEVEL="TRACE" \ NIMFLAGS="${NIMFLAGS_COMMON}" \ PARTIAL_STATIC_LINKING=1 \