From 079e9ec3dc7632f760a90bd8330c2e6077bd2539 Mon Sep 17 00:00:00 2001 From: Beast Date: Thu, 21 May 2026 13:52:29 +0800 Subject: [PATCH 1/7] fix: local image build chain --- Dockerfile.local | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Dockerfile.local b/Dockerfile.local index e5fd5df4..3c53c017 100644 --- a/Dockerfile.local +++ b/Dockerfile.local @@ -4,12 +4,13 @@ FROM rust:bookworm AS builder # Install dependencies needed for building -# clang-sys requires libclang - libclang-dev provides libclang-14.so in /usr/lib/x86_64-linux-gnu/ RUN apt-get update && \ apt-get install -y cmake clang libclang-dev protobuf-compiler && \ rm -rf /var/lib/apt/lists/* -ENV LIBCLANG_PATH=/usr/lib/x86_64-linux-gnu +# In Debian Bookworm, libclang-dev places the required .so symlink in the llvm-14 folder. +# This path is identical for BOTH Intel (x86_64) and Apple Silicon (ARM64) builds. +ENV LIBCLANG_PATH=/usr/lib/llvm-14/lib # Add wasm target for runtime compilation RUN rustup target add wasm32-unknown-unknown @@ -49,5 +50,4 @@ RUN useradd --system --uid 10001 quantus \ USER 10001:10001 # Start the node -ENTRYPOINT ["quantus-node"] - +ENTRYPOINT ["quantus-node"] \ No newline at end of file From 0ae81da2352c9d550bd9cff7ab99a96ef9fc4aef Mon Sep 17 00:00:00 2001 From: Beast Date: Thu, 21 May 2026 13:54:56 +0800 Subject: [PATCH 2/7] fix: dockerfile for github action --- Dockerfile | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/Dockerfile b/Dockerfile index 91002402..b993b432 100644 --- a/Dockerfile +++ b/Dockerfile @@ -15,11 +15,17 @@ RUN apt-get update \ # Download the specified pre-built binary from GitHub releases ARG VERSION_ARG # Expecting format like vX.Y.Z -RUN ARCH="x86_64-unknown-linux-gnu" \ - && echo "Attempting to download version: ${VERSION_ARG} for architecture ${ARCH}" \ - && curl -fsSL "https://github.com/Quantus-Network/chain/releases/download/${VERSION_ARG}/quantus-node-${VERSION_ARG}-${ARCH}.tar.gz" \ - | tar -xzC /usr/local/bin/ \ - && chmod +x /usr/local/bin/quantus-node +RUN set -eux; \ + DPKG_ARCH="$(dpkg --print-architecture)"; \ + case "$DPKG_ARCH" in \ + amd64) ARCH="x86_64-unknown-linux-gnu" ;; \ + arm64) ARCH="aarch64-unknown-linux-gnu" ;; \ + *) echo "Unsupported architecture: $DPKG_ARCH" && exit 1 ;; \ + esac; \ + echo "Downloading version: ${VERSION_ARG} for architecture: ${ARCH}"; \ + curl -fsSL "https://github.com/Quantus-Network/chain/releases/download/${VERSION_ARG}/quantus-node-${VERSION_ARG}-${ARCH}.tar.gz" \ + | tar -xzC /usr/local/bin/; \ + chmod +x /usr/local/bin/quantus-node # Expose P2P and public WS/RPC ports EXPOSE 30333 9944 @@ -30,4 +36,4 @@ USER 10001:10001 # Start the node ENTRYPOINT ["quantus-node"] -CMD ["--chain", "planck_live_spec"] +CMD ["--chain", "planck_live_spec"] \ No newline at end of file From 1a083373645ae9f8557bdb56b287733cd58e2fe5 Mon Sep 17 00:00:00 2001 From: Beast Date: Thu, 21 May 2026 13:58:05 +0800 Subject: [PATCH 3/7] chore; bump action version for docker build --- .github/workflows/quantus-docker-image.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/quantus-docker-image.yml b/.github/workflows/quantus-docker-image.yml index 474ce8c7..361c617e 100644 --- a/.github/workflows/quantus-docker-image.yml +++ b/.github/workflows/quantus-docker-image.yml @@ -103,7 +103,7 @@ jobs: path: source_code_for_build - name: Build and push Docker image from Dockerfile - uses: docker/build-push-action@v5 + uses: docker/build-push-action@v6 with: context: ./source_code_for_build file: ./Dockerfile From 461565f9a78ff89820e4483877a48bbd3d3ba934 Mon Sep 17 00:00:00 2001 From: Beast Date: Thu, 21 May 2026 21:20:57 +0800 Subject: [PATCH 4/7] feat: add arm64 linux to release --- .github/actions/ubuntu/action.yml | 2 ++ .github/workflows/quantus-hotfix-release.yml | 6 ++++++ .github/workflows/quantus-release.yml | 6 ++++++ 3 files changed, 14 insertions(+) diff --git a/.github/actions/ubuntu/action.yml b/.github/actions/ubuntu/action.yml index c18d1bae..57d60c6f 100644 --- a/.github/actions/ubuntu/action.yml +++ b/.github/actions/ubuntu/action.yml @@ -12,8 +12,10 @@ runs: libclang-dev \ clang \ protobuf-compiler + gcc-aarch64-linux-gnu rustup update rustup target add wasm32-unknown-unknown + rustup target add aarch64-unknown-linux-gnu rustup component add rustfmt --toolchain nightly rustup component add clippy rust-src shell: bash diff --git a/.github/workflows/quantus-hotfix-release.yml b/.github/workflows/quantus-hotfix-release.yml index cb066b67..46f1f46d 100644 --- a/.github/workflows/quantus-hotfix-release.yml +++ b/.github/workflows/quantus-hotfix-release.yml @@ -65,6 +65,8 @@ jobs: include: - target: x86_64-unknown-linux-gnu os: ubuntu-latest + - target: aarch64-unknown-linux-gnu + os: ubuntu-latest - target: aarch64-apple-darwin os: macos-latest - target: x86_64-apple-darwin @@ -89,6 +91,10 @@ jobs: if: runner.os == 'Windows' uses: ./.github/actions/windows + - name: Set ARM64 cross-linker + if: matrix.target == 'aarch64-unknown-linux-gnu' + run: echo "CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc" >> $GITHUB_ENV + - name: Build quantus-node binary shell: bash run: | diff --git a/.github/workflows/quantus-release.yml b/.github/workflows/quantus-release.yml index 9376776d..ebb15043 100644 --- a/.github/workflows/quantus-release.yml +++ b/.github/workflows/quantus-release.yml @@ -72,6 +72,8 @@ jobs: include: - target: x86_64-unknown-linux-gnu os: ubuntu-latest + - target: aarch64-unknown-linux-gnu + os: ubuntu-latest - target: aarch64-apple-darwin os: macos-latest - target: x86_64-apple-darwin @@ -96,6 +98,10 @@ jobs: if: runner.os == 'Windows' uses: ./.github/actions/windows + - name: Set ARM64 cross-linker + if: matrix.target == 'aarch64-unknown-linux-gnu' + run: echo "CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc" >> $GITHUB_ENV + - name: Build quantus-node binary shell: bash run: | From f4fe641b2c49bb447463be3aeababbf159e063d0 Mon Sep 17 00:00:00 2001 From: Beast Date: Thu, 21 May 2026 22:20:17 +0800 Subject: [PATCH 5/7] fix: bad apt command --- .github/actions/ubuntu/action.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/actions/ubuntu/action.yml b/.github/actions/ubuntu/action.yml index 57d60c6f..6502c6d7 100644 --- a/.github/actions/ubuntu/action.yml +++ b/.github/actions/ubuntu/action.yml @@ -11,8 +11,9 @@ runs: sudo apt-get install -yqq --no-install-recommends \ libclang-dev \ clang \ - protobuf-compiler - gcc-aarch64-linux-gnu + protobuf-compiler \ + gcc-aarch64-linux-gnu \ + libc6-dev-arm64-cross rustup update rustup target add wasm32-unknown-unknown rustup target add aarch64-unknown-linux-gnu From e6a40d05df10115ff0d2b9da09236e69faebfe51 Mon Sep 17 00:00:00 2001 From: Beast Date: Fri, 22 May 2026 12:22:19 +0800 Subject: [PATCH 6/7] fix: linker setup for arch linux --- .github/actions/ubuntu/action.yml | 1 + .github/workflows/quantus-release.yml | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/actions/ubuntu/action.yml b/.github/actions/ubuntu/action.yml index 6502c6d7..010d7371 100644 --- a/.github/actions/ubuntu/action.yml +++ b/.github/actions/ubuntu/action.yml @@ -13,6 +13,7 @@ runs: clang \ protobuf-compiler \ gcc-aarch64-linux-gnu \ + g++-aarch64-linux-gnu \ libc6-dev-arm64-cross rustup update rustup target add wasm32-unknown-unknown diff --git a/.github/workflows/quantus-release.yml b/.github/workflows/quantus-release.yml index ebb15043..06d9de45 100644 --- a/.github/workflows/quantus-release.yml +++ b/.github/workflows/quantus-release.yml @@ -100,7 +100,10 @@ jobs: - name: Set ARM64 cross-linker if: matrix.target == 'aarch64-unknown-linux-gnu' - run: echo "CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc" >> $GITHUB_ENV + run: | + echo "CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc" >> $GITHUB_ENV + echo "CC_aarch64_unknown_linux_gnu=aarch64-linux-gnu-gcc" >> $GITHUB_ENV + echo "CXX_aarch64_unknown_linux_gnu=aarch64-linux-gnu-g++" >> $GITHUB_ENV - name: Build quantus-node binary shell: bash From 5bbfa176e57fe9d04428a43cc4114bfafa58a74d Mon Sep 17 00:00:00 2001 From: Beast Date: Fri, 22 May 2026 12:23:09 +0800 Subject: [PATCH 7/7] fix: linker arch linux --- .github/workflows/quantus-hotfix-release.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/quantus-hotfix-release.yml b/.github/workflows/quantus-hotfix-release.yml index 46f1f46d..f951dc5b 100644 --- a/.github/workflows/quantus-hotfix-release.yml +++ b/.github/workflows/quantus-hotfix-release.yml @@ -93,7 +93,10 @@ jobs: - name: Set ARM64 cross-linker if: matrix.target == 'aarch64-unknown-linux-gnu' - run: echo "CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc" >> $GITHUB_ENV + run: | + echo "CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc" >> $GITHUB_ENV + echo "CC_aarch64_unknown_linux_gnu=aarch64-linux-gnu-gcc" >> $GITHUB_ENV + echo "CXX_aarch64_unknown_linux_gnu=aarch64-linux-gnu-g++" >> $GITHUB_ENV - name: Build quantus-node binary shell: bash