Export libraries and headers

This commit is contained in:
Daniel 2026-03-08 10:12:46 +00:00
parent ec7d298e5a
commit e0001bae1f
4 changed files with 412 additions and 3 deletions

View File

@ -27,6 +27,10 @@ inputs:
arch:
description: "The target architecture for the bundle (x86_64, aarch64)."
required: true
build-lib:
description: "Whether to also build a static library (.a) in addition to the executable."
required: false
default: "false"
runs:
using: "composite"
@ -45,7 +49,7 @@ runs:
CIRCUIT_FILENAME="$(basename ${CIRCUIT_PATH})"
CIRCUIT_FILESTEM="${CIRCUIT_FILENAME%.circom}"
CIRCUIT_CPP_DIRNAME="${CIRCUIT_FILESTEM}_cpp"
compiled_binary_name="${CIRCUIT_FILESTEM}"
if [ "${OS}" = "windows" ]; then
compiled_binary_name="${compiled_binary_name}.exe"
@ -105,6 +109,24 @@ runs:
OS: ${{ inputs.os }}
run: make PROJECT="${CIRCUIT_FILESTEM}" "${OS}"
- name: Build ${{ inputs.circuit-name-display }} Static Library
if: ${{ inputs.build-lib == 'true' && inputs.os != 'windows' }}
shell: bash
working-directory: ${{ steps.parse-circuit-path.outputs.CIRCUIT_CPP_PATH }}
env:
CIRCUIT_FILESTEM: ${{ steps.parse-circuit-path.outputs.CIRCUIT_FILESTEM }}
OS: ${{ inputs.os }}
run: make PROJECT="${CIRCUIT_FILESTEM}" "${OS}-lib"
- name: Build ${{ inputs.circuit-name-display }} Static Library
if: ${{ inputs.build-lib == 'true' && inputs.os == 'windows' }}
shell: msys2 {0}
working-directory: ${{ steps.parse-circuit-path.outputs.CIRCUIT_CPP_PATH }}
env:
CIRCUIT_FILESTEM: ${{ steps.parse-circuit-path.outputs.CIRCUIT_FILESTEM }}
OS: ${{ inputs.os }}
run: make PROJECT="${CIRCUIT_FILESTEM}" "${OS}-lib"
- name: Upload ${{ inputs.circuit-name-display }}
uses: actions/upload-artifact@de65e23aa2b7e23d713bb51fbfcb6d502f8667d8
with:
@ -112,3 +134,14 @@ runs:
path: |
${{ steps.parse-circuit-path.outputs.CIRCUIT_CPP_PATH }}/${{ steps.parse-circuit-path.outputs.COMPILED_BINARY_NAME }}
${{ steps.parse-circuit-path.outputs.CIRCUIT_CPP_PATH }}/${{ steps.parse-circuit-path.outputs.CIRCUIT_FILESTEM }}.dat
- name: Upload ${{ inputs.circuit-name-display }} Static Library
if: ${{ inputs.build-lib == 'true' }}
uses: actions/upload-artifact@de65e23aa2b7e23d713bb51fbfcb6d502f8667d8
with:
name: ${{ inputs.circuit-name-binary }}-lib-${{ inputs.version }}-${{ inputs.os }}-${{ inputs.arch }}
path: |
${{ steps.parse-circuit-path.outputs.CIRCUIT_CPP_PATH }}/lib${{ steps.parse-circuit-path.outputs.CIRCUIT_FILESTEM }}.a
${{ steps.parse-circuit-path.outputs.CIRCUIT_CPP_PATH }}/circom.hpp
${{ steps.parse-circuit-path.outputs.CIRCUIT_CPP_PATH }}/calcwit.hpp
${{ steps.parse-circuit-path.outputs.CIRCUIT_CPP_PATH }}/fr.hpp

View File

@ -44,6 +44,17 @@ host_windows_x86_64_static:
-DCMAKE_CXX_FLAGS="-I/include -include mman_patch.hpp -include cstdint -Duint=unsigned\ int -Du_int32_t=uint32_t -Du_int64_t=uint64_t" && \
make -j$(nproc) -vvv && make install
host_windows_x86_64_static_lib:
rm -rf build_lib_windows && mkdir build_lib_windows && cd build_lib_windows && \
cmake .. \
-DUSE_ASM=OFF \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=../package_lib_windows \
-DCMAKE_CXX_FLAGS="-I/include -include mman_patch.hpp -include cstdint -Duint=unsigned\ int -Du_int32_t=uint32_t -Du_int64_t=uint64_t" \
-DBUILD_TESTS=OFF && \
make -j$(nproc) rapidsnarkStatic rapidsnarkStaticFrFq fr fq && \
make install
host_noasm:
rm -rf build_prover_noasm && mkdir build_prover_noasm && cd build_prover_noasm && \
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=../package_noasm -DUSE_ASM=NO && \
@ -98,12 +109,61 @@ macos_arm64:
cmake .. -DTARGET_PLATFORM=macos_arm64 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=../package_macos_arm64 && \
make -j$(nproc) -vvv && make install
macos_arm64_lib:
@if [ ! -d "./depends/gmp/package_macos_arm64" ]; then echo "Looks like gmp lib is not built. Run './build_gmp.sh macos_arm64' first." && exit 1; fi
rm -rf build_lib_macos_arm64 && mkdir build_lib_macos_arm64 && cd build_lib_macos_arm64 && \
cmake .. \
-DTARGET_PLATFORM=macos_arm64 \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=../package_lib_macos_arm64 \
-DBUILD_TESTS=OFF \
-DUSE_OPENMP=OFF && \
make -j$(nproc) rapidsnarkStatic rapidsnarkStaticFrFq fr fq && \
make install
host_linux_x86_64_static_lib:
rm -rf build_lib && mkdir build_lib && cd build_lib && \
cmake .. \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=../package_lib \
-DCMAKE_EXE_LINKER_FLAGS="-static -static-libstdc++ -static-libgcc -no-pie" \
-DOpenMP_gomp_LIBRARY=$(LIBGOMP_A) \
-DCMAKE_PREFIX_PATH=depends/gmp/package \
-DBUILD_TESTS=OFF && \
make -j$(nproc) rapidsnarkStatic rapidsnarkStaticFrFq fr fq && \
make install
host_linux_aarch64_static_lib:
rm -rf build_lib && mkdir build_lib && cd build_lib && \
cmake .. \
-DTARGET_PLATFORM=aarch64 \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=../package_lib \
-DCMAKE_EXE_LINKER_FLAGS="-static -static-libstdc++ -static-libgcc -no-pie" \
-DOpenMP_gomp_LIBRARY=$(LIBGOMP_A) \
-DCMAKE_PREFIX_PATH=depends/gmp/package \
-DBUILD_TESTS=OFF && \
make -j$(nproc) rapidsnarkStatic rapidsnarkStaticFrFq fr fq && \
make install
macos_x86_64:
@if [ ! -d "./depends/gmp/package_macos_x86_64" ]; then echo "Looks like gmp lib is not built. Run './build_gmp.sh macos_x86_64' first." && exit 1; fi
rm -rf build_prover_macos_x86_64 && mkdir build_prover_macos_x86_64 && cd build_prover_macos_x86_64 && \
cmake .. -DTARGET_PLATFORM=macos_x86_64 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=../package_macos_x86_64 && \
make -j$(nproc) -vvv && make install
macos_x86_64_lib:
@if [ ! -d "./depends/gmp/package_macos_x86_64" ]; then echo "Looks like gmp lib is not built. Run './build_gmp.sh macos_x86_64' first." && exit 1; fi
rm -rf build_lib_macos_x86_64 && mkdir build_lib_macos_x86_64 && cd build_lib_macos_x86_64 && \
cmake .. \
-DTARGET_PLATFORM=macos_x86_64 \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=../package_lib_macos_x86_64 \
-DBUILD_TESTS=OFF \
-DUSE_OPENMP=OFF && \
make -j$(nproc) rapidsnarkStatic rapidsnarkStaticFrFq fr fq && \
make install
clean:
rm -rf build_prover \
build_prover_macos_arm64 \
@ -112,6 +172,10 @@ clean:
build_prover_android_x86_64 \
build_prover_ios \
build_prover_ios_simulator \
build_lib \
build_lib_macos_arm64 \
build_lib_macos_x86_64 \
build_lib_windows \
package \
package_macos_arm64 \
package_macos_x86_64 \
@ -119,6 +183,10 @@ clean:
package_android_x86_64 \
package_ios \
package_ios_simulator \
package_lib \
package_lib_macos_arm64 \
package_lib_macos_x86_64 \
package_lib_windows \
depends/gmp/package \
depends/gmp/package_macos_arm64 \
depends/gmp/package_macos_x86_64 \

View File

@ -1,4 +1,4 @@
.PHONY: linux macos windows build clean
.PHONY: linux macos windows linux-lib macos-lib windows-lib build clean
# ---- Arguments ----
ifndef PROJECT
@ -7,11 +7,15 @@ endif
# ---- Common ----
CXX := g++
AR := ar
CXXFLAGS_COMMON := -std=c++11 -O3 -I. -Wno-address-of-packed-member
SRCS := main.cpp calcwit.cpp fr.cpp $(PROJECT).cpp
LIB_SRCS := calcwit.cpp fr.cpp $(PROJECT).cpp
OBJS := $(SRCS:.cpp=.o)
LIB_OBJS := $(LIB_SRCS:.cpp=.o)
DEPS_HPP := circom.hpp calcwit.hpp fr.hpp
BIN := $(PROJECT)
LIB := lib$(PROJECT).a
# ---- Linux (x86_64 and aarch64) ----
linux: CXXFLAGS=$(CXXFLAGS_COMMON)
@ -31,13 +35,28 @@ windows: LDFLAGS=-static
windows: LDLIBS=-L/lib -lgmp -lmman
windows: $(BIN)
# ---- Linux static library ----
linux-lib: CXXFLAGS=$(CXXFLAGS_COMMON) -fPIC
linux-lib: $(LIB)
# ---- macOS static library ----
macos-lib: CXXFLAGS=$(CXXFLAGS_COMMON) -I/opt/homebrew/include -include gmp_patch.hpp -fPIC
macos-lib: $(LIB)
# ---- Windows static library (MinGW) ----
windows-lib: CXXFLAGS=$(CXXFLAGS_COMMON) -I/include -Duint="unsigned int" -fPIC
windows-lib: $(LIB)
# ---- Rules ----
$(BIN): $(OBJS)
$(CXX) $(LDFLAGS) $^ $(LDLIBS) -o $@
$(LIB): $(LIB_OBJS)
$(AR) rcs $@ $^
%.o: %.cpp $(DEPS_HPP)
$(CXX) $(CXXFLAGS) -c $< -o $@
clean:
rm -f $(OBJS) $(BIN)
rm -f $(OBJS) $(LIB_OBJS) $(BIN) $(LIB)

View File

@ -204,6 +204,10 @@ jobs:
./build_gmp.sh host
make host_linux_x86_64_static
- name: Build Rapidsnark Static Libraries
working-directory: rapidsnark
run: make host_linux_x86_64_static_lib
- name: Bundle Rapidsnark Prover
env:
BINARY_NAME: prover
@ -251,6 +255,7 @@ jobs:
version: ${{ env.VERSION }}
os: ${{ env.OS }}
arch: ${{ env.ARCH }}
build-lib: "true"
- name: Compile PoQ Witness Generator
uses: ./.github/actions/compile-witness-generator
@ -261,6 +266,7 @@ jobs:
version: ${{ env.VERSION }}
os: ${{ env.OS }}
arch: ${{ env.ARCH }}
build-lib: "true"
- name: Compile ZKSign Witness Generator
uses: ./.github/actions/compile-witness-generator
@ -271,6 +277,7 @@ jobs:
version: ${{ env.VERSION }}
os: ${{ env.OS }}
arch: ${{ env.ARCH }}
build-lib: "true"
- name: Compile PoC Witness Generator
uses: ./.github/actions/compile-witness-generator
@ -281,6 +288,7 @@ jobs:
version: ${{ env.VERSION }}
os: ${{ env.OS }}
arch: ${{ env.ARCH }}
build-lib: "true"
- name: Download PoL Witness Generator
uses: actions/download-artifact@448e3f862ab3ef47aa50ff917776823c9946035b
@ -306,6 +314,30 @@ jobs:
name: poc-${{ env.VERSION }}-${{ env.OS }}-${{ env.ARCH }}
path: witness-generators/poc-artifact
- name: Download PoL Library Artifact
uses: actions/download-artifact@448e3f862ab3ef47aa50ff917776823c9946035b
with:
name: pol-lib-${{ env.VERSION }}-${{ env.OS }}-${{ env.ARCH }}
path: witness-generator-libs/pol-lib
- name: Download PoQ Library Artifact
uses: actions/download-artifact@448e3f862ab3ef47aa50ff917776823c9946035b
with:
name: poq-lib-${{ env.VERSION }}-${{ env.OS }}-${{ env.ARCH }}
path: witness-generator-libs/poq-lib
- name: Download ZKSign Library Artifact
uses: actions/download-artifact@448e3f862ab3ef47aa50ff917776823c9946035b
with:
name: zksign-lib-${{ env.VERSION }}-${{ env.OS }}-${{ env.ARCH }}
path: witness-generator-libs/zksign-lib
- name: Download PoC Library Artifact
uses: actions/download-artifact@448e3f862ab3ef47aa50ff917776823c9946035b
with:
name: poc-lib-${{ env.VERSION }}-${{ env.OS }}-${{ env.ARCH }}
path: witness-generator-libs/poc-lib
- name: Download All Proving Key Artifacts
uses: actions/download-artifact@448e3f862ab3ef47aa50ff917776823c9946035b
with:
@ -377,6 +409,45 @@ jobs:
name: logos-blockchain-circuits-${{ env.VERSION }}-${{ env.OS }}-${{ env.ARCH }}.tar.gz
path: logos-blockchain-circuits-${{ env.VERSION }}-${{ env.OS }}-${{ env.ARCH }}.tar.gz
- name: Create Dev Library Bundle
env:
LIB_BUNDLE_NAME: logos-blockchain-circuits-dev-${{ env.VERSION }}-${{ env.OS }}-${{ env.ARCH }}
RAPIDSNARK_LIB_DIR: rapidsnark/package_lib/lib
RAPIDSNARK_INC_DIR: rapidsnark/package_lib/include
run: |
mkdir -p "${LIB_BUNDLE_NAME}/lib" "${LIB_BUNDLE_NAME}/include/rapidsnark" "${LIB_BUNDLE_NAME}/include/witness"
# RapidSnark static libraries
cp "${RAPIDSNARK_LIB_DIR}"/librapidsnark.a "${LIB_BUNDLE_NAME}/lib/"
cp "${RAPIDSNARK_LIB_DIR}"/librapidsnark-fr-fq.a "${LIB_BUNDLE_NAME}/lib/"
cp "${RAPIDSNARK_LIB_DIR}"/libfr.a "${LIB_BUNDLE_NAME}/lib/"
cp "${RAPIDSNARK_LIB_DIR}"/libfq.a "${LIB_BUNDLE_NAME}/lib/"
cp "${RAPIDSNARK_LIB_DIR}"/libgmp.a "${LIB_BUNDLE_NAME}/lib/"
# RapidSnark headers
cp "${RAPIDSNARK_INC_DIR}"/rapidsnark/*.h "${LIB_BUNDLE_NAME}/include/rapidsnark/"
cp "${RAPIDSNARK_INC_DIR}"/rapidsnark/*.hpp "${LIB_BUNDLE_NAME}/include/rapidsnark/"
# Witness generator static libraries
cp witness-generator-libs/pol-lib/libpol.a "${LIB_BUNDLE_NAME}/lib/"
cp witness-generator-libs/poq-lib/libpoq.a "${LIB_BUNDLE_NAME}/lib/"
cp witness-generator-libs/zksign-lib/libsignature.a "${LIB_BUNDLE_NAME}/lib/"
cp witness-generator-libs/poc-lib/libpoc.a "${LIB_BUNDLE_NAME}/lib/"
# Witness generator headers (shared across circuits — take from pol-lib)
cp witness-generator-libs/pol-lib/circom.hpp "${LIB_BUNDLE_NAME}/include/witness/"
cp witness-generator-libs/pol-lib/calcwit.hpp "${LIB_BUNDLE_NAME}/include/witness/"
cp witness-generator-libs/pol-lib/fr.hpp "${LIB_BUNDLE_NAME}/include/witness/"
echo "${{ env.VERSION }}" > "${LIB_BUNDLE_NAME}/VERSION"
tar -czf "${LIB_BUNDLE_NAME}.tar.gz" "${LIB_BUNDLE_NAME}"
- name: Upload Dev Library Bundle
uses: actions/upload-artifact@de65e23aa2b7e23d713bb51fbfcb6d502f8667d8
with:
name: logos-blockchain-circuits-dev-${{ env.VERSION }}-${{ env.OS }}-${{ env.ARCH }}.tar.gz
path: logos-blockchain-circuits-dev-${{ env.VERSION }}-${{ env.OS }}-${{ env.ARCH }}.tar.gz
build-linux-aarch64:
name: Build Linux aarch64 Binaries (Native for RPI5)
runs-on: ubuntu-22.04-arm
@ -444,6 +515,10 @@ jobs:
ln -s package depends/gmp/package_aarch64
make host_linux_aarch64_static
- name: Build Rapidsnark Static Libraries
working-directory: rapidsnark
run: make host_linux_aarch64_static_lib
- name: Bundle Rapidsnark Prover
env:
BINARY_NAME: prover
@ -491,6 +566,7 @@ jobs:
version: ${{ env.VERSION }}
os: ${{ env.OS }}
arch: ${{ env.ARCH }}
build-lib: "true"
- name: Compile PoQ Witness Generator
uses: ./.github/actions/compile-witness-generator
@ -501,6 +577,7 @@ jobs:
version: ${{ env.VERSION }}
os: ${{ env.OS }}
arch: ${{ env.ARCH }}
build-lib: "true"
- name: Compile ZKSign Witness Generator
uses: ./.github/actions/compile-witness-generator
@ -511,6 +588,7 @@ jobs:
version: ${{ env.VERSION }}
os: ${{ env.OS }}
arch: ${{ env.ARCH }}
build-lib: "true"
- name: Compile PoC Witness Generator
uses: ./.github/actions/compile-witness-generator
@ -521,6 +599,7 @@ jobs:
version: ${{ env.VERSION }}
os: ${{ env.OS }}
arch: ${{ env.ARCH }}
build-lib: "true"
- name: Download PoL Witness Generator
uses: actions/download-artifact@448e3f862ab3ef47aa50ff917776823c9946035b
@ -546,6 +625,30 @@ jobs:
name: poc-${{ env.VERSION }}-${{ env.OS }}-${{ env.ARCH }}
path: witness-generators/poc-artifact
- name: Download PoL Library Artifact
uses: actions/download-artifact@448e3f862ab3ef47aa50ff917776823c9946035b
with:
name: pol-lib-${{ env.VERSION }}-${{ env.OS }}-${{ env.ARCH }}
path: witness-generator-libs/pol-lib
- name: Download PoQ Library Artifact
uses: actions/download-artifact@448e3f862ab3ef47aa50ff917776823c9946035b
with:
name: poq-lib-${{ env.VERSION }}-${{ env.OS }}-${{ env.ARCH }}
path: witness-generator-libs/poq-lib
- name: Download ZKSign Library Artifact
uses: actions/download-artifact@448e3f862ab3ef47aa50ff917776823c9946035b
with:
name: zksign-lib-${{ env.VERSION }}-${{ env.OS }}-${{ env.ARCH }}
path: witness-generator-libs/zksign-lib
- name: Download PoC Library Artifact
uses: actions/download-artifact@448e3f862ab3ef47aa50ff917776823c9946035b
with:
name: poc-lib-${{ env.VERSION }}-${{ env.OS }}-${{ env.ARCH }}
path: witness-generator-libs/poc-lib
- name: Download All Proving Key Artifacts
uses: actions/download-artifact@448e3f862ab3ef47aa50ff917776823c9946035b
with:
@ -617,6 +720,41 @@ jobs:
name: logos-blockchain-circuits-${{ env.VERSION }}-${{ env.OS }}-${{ env.ARCH }}.tar.gz
path: logos-blockchain-circuits-${{ env.VERSION }}-${{ env.OS }}-${{ env.ARCH }}.tar.gz
- name: Create Dev Library Bundle
env:
LIB_BUNDLE_NAME: logos-blockchain-circuits-dev-${{ env.VERSION }}-${{ env.OS }}-${{ env.ARCH }}
RAPIDSNARK_LIB_DIR: rapidsnark/package_lib/lib
RAPIDSNARK_INC_DIR: rapidsnark/package_lib/include
run: |
mkdir -p "${LIB_BUNDLE_NAME}/lib" "${LIB_BUNDLE_NAME}/include/rapidsnark" "${LIB_BUNDLE_NAME}/include/witness"
cp "${RAPIDSNARK_LIB_DIR}"/librapidsnark.a "${LIB_BUNDLE_NAME}/lib/"
cp "${RAPIDSNARK_LIB_DIR}"/librapidsnark-fr-fq.a "${LIB_BUNDLE_NAME}/lib/"
cp "${RAPIDSNARK_LIB_DIR}"/libfr.a "${LIB_BUNDLE_NAME}/lib/"
cp "${RAPIDSNARK_LIB_DIR}"/libfq.a "${LIB_BUNDLE_NAME}/lib/"
cp "${RAPIDSNARK_LIB_DIR}"/libgmp.a "${LIB_BUNDLE_NAME}/lib/"
cp "${RAPIDSNARK_INC_DIR}"/rapidsnark/*.h "${LIB_BUNDLE_NAME}/include/rapidsnark/"
cp "${RAPIDSNARK_INC_DIR}"/rapidsnark/*.hpp "${LIB_BUNDLE_NAME}/include/rapidsnark/"
cp witness-generator-libs/pol-lib/libpol.a "${LIB_BUNDLE_NAME}/lib/"
cp witness-generator-libs/poq-lib/libpoq.a "${LIB_BUNDLE_NAME}/lib/"
cp witness-generator-libs/zksign-lib/libsignature.a "${LIB_BUNDLE_NAME}/lib/"
cp witness-generator-libs/poc-lib/libpoc.a "${LIB_BUNDLE_NAME}/lib/"
cp witness-generator-libs/pol-lib/circom.hpp "${LIB_BUNDLE_NAME}/include/witness/"
cp witness-generator-libs/pol-lib/calcwit.hpp "${LIB_BUNDLE_NAME}/include/witness/"
cp witness-generator-libs/pol-lib/fr.hpp "${LIB_BUNDLE_NAME}/include/witness/"
echo "${{ env.VERSION }}" > "${LIB_BUNDLE_NAME}/VERSION"
tar -czf "${LIB_BUNDLE_NAME}.tar.gz" "${LIB_BUNDLE_NAME}"
- name: Upload Dev Library Bundle
uses: actions/upload-artifact@de65e23aa2b7e23d713bb51fbfcb6d502f8667d8
with:
name: logos-blockchain-circuits-dev-${{ env.VERSION }}-${{ env.OS }}-${{ env.ARCH }}.tar.gz
path: logos-blockchain-circuits-dev-${{ env.VERSION }}-${{ env.OS }}-${{ env.ARCH }}.tar.gz
build-windows:
name: Build Windows Binaries (Native)
runs-on: windows-latest
@ -720,6 +858,11 @@ jobs:
./build_gmp.sh host
make host_windows_x86_64_static
- name: Build Rapidsnark Static Libraries
shell: msys2 {0}
working-directory: rapidsnark
run: make host_windows_x86_64_static_lib
- name: Bundle Rapidsnark Prover
shell: msys2 {0}
env:
@ -769,6 +912,7 @@ jobs:
version: ${{ env.VERSION }}
os: ${{ env.OS }}
arch: ${{ env.ARCH }}
build-lib: "true"
- name: Compile PoQ Witness Generator
uses: ./.github/actions/compile-witness-generator
@ -779,6 +923,7 @@ jobs:
version: ${{ env.VERSION }}
os: ${{ env.OS }}
arch: ${{ env.ARCH }}
build-lib: "true"
- name: Compile ZKSign Witness Generator
uses: ./.github/actions/compile-witness-generator
@ -789,6 +934,7 @@ jobs:
version: ${{ env.VERSION }}
os: ${{ env.OS }}
arch: ${{ env.ARCH }}
build-lib: "true"
- name: Compile PoC Witness Generator
uses: ./.github/actions/compile-witness-generator
@ -799,6 +945,7 @@ jobs:
version: ${{ env.VERSION }}
os: ${{ env.OS }}
arch: ${{ env.ARCH }}
build-lib: "true"
- name: Download PoL Witness Generator
uses: actions/download-artifact@448e3f862ab3ef47aa50ff917776823c9946035b
@ -824,6 +971,30 @@ jobs:
name: poc-${{ env.VERSION }}-${{ env.OS }}-${{ env.ARCH }}
path: witness-generators/poc-artifact
- name: Download PoL Library Artifact
uses: actions/download-artifact@448e3f862ab3ef47aa50ff917776823c9946035b
with:
name: pol-lib-${{ env.VERSION }}-${{ env.OS }}-${{ env.ARCH }}
path: witness-generator-libs/pol-lib
- name: Download PoQ Library Artifact
uses: actions/download-artifact@448e3f862ab3ef47aa50ff917776823c9946035b
with:
name: poq-lib-${{ env.VERSION }}-${{ env.OS }}-${{ env.ARCH }}
path: witness-generator-libs/poq-lib
- name: Download ZKSign Library Artifact
uses: actions/download-artifact@448e3f862ab3ef47aa50ff917776823c9946035b
with:
name: zksign-lib-${{ env.VERSION }}-${{ env.OS }}-${{ env.ARCH }}
path: witness-generator-libs/zksign-lib
- name: Download PoC Library Artifact
uses: actions/download-artifact@448e3f862ab3ef47aa50ff917776823c9946035b
with:
name: poc-lib-${{ env.VERSION }}-${{ env.OS }}-${{ env.ARCH }}
path: witness-generator-libs/poc-lib
- name: Download All Proving Key Artifacts
uses: actions/download-artifact@448e3f862ab3ef47aa50ff917776823c9946035b
with:
@ -888,6 +1059,42 @@ jobs:
name: logos-blockchain-circuits-${{ env.VERSION }}-${{ env.OS }}-${{ env.ARCH }}.tar.gz
path: logos-blockchain-circuits-${{ env.VERSION }}-${{ env.OS }}-${{ env.ARCH }}.tar.gz
- name: Create Dev Library Bundle
shell: msys2 {0}
env:
LIB_BUNDLE_NAME: logos-blockchain-circuits-dev-${{ env.VERSION }}-${{ env.OS }}-${{ env.ARCH }}
RAPIDSNARK_LIB_DIR: rapidsnark/package_lib_windows/lib
RAPIDSNARK_INC_DIR: rapidsnark/package_lib_windows/include
run: |
mkdir -p "${LIB_BUNDLE_NAME}/lib" "${LIB_BUNDLE_NAME}/include/rapidsnark" "${LIB_BUNDLE_NAME}/include/witness"
cp "${RAPIDSNARK_LIB_DIR}"/librapidsnark.a "${LIB_BUNDLE_NAME}/lib/"
cp "${RAPIDSNARK_LIB_DIR}"/librapidsnark-fr-fq.a "${LIB_BUNDLE_NAME}/lib/"
cp "${RAPIDSNARK_LIB_DIR}"/libfr.a "${LIB_BUNDLE_NAME}/lib/"
cp "${RAPIDSNARK_LIB_DIR}"/libfq.a "${LIB_BUNDLE_NAME}/lib/"
cp "${RAPIDSNARK_LIB_DIR}"/libgmp.a "${LIB_BUNDLE_NAME}/lib/"
cp "${RAPIDSNARK_INC_DIR}"/rapidsnark/*.h "${LIB_BUNDLE_NAME}/include/rapidsnark/"
cp "${RAPIDSNARK_INC_DIR}"/rapidsnark/*.hpp "${LIB_BUNDLE_NAME}/include/rapidsnark/"
cp witness-generator-libs/pol-lib/libpol.a "${LIB_BUNDLE_NAME}/lib/"
cp witness-generator-libs/poq-lib/libpoq.a "${LIB_BUNDLE_NAME}/lib/"
cp witness-generator-libs/zksign-lib/libsignature.a "${LIB_BUNDLE_NAME}/lib/"
cp witness-generator-libs/poc-lib/libpoc.a "${LIB_BUNDLE_NAME}/lib/"
cp witness-generator-libs/pol-lib/circom.hpp "${LIB_BUNDLE_NAME}/include/witness/"
cp witness-generator-libs/pol-lib/calcwit.hpp "${LIB_BUNDLE_NAME}/include/witness/"
cp witness-generator-libs/pol-lib/fr.hpp "${LIB_BUNDLE_NAME}/include/witness/"
echo "${{ env.VERSION }}" > "${LIB_BUNDLE_NAME}/VERSION"
tar -czf "${LIB_BUNDLE_NAME}.tar.gz" "${LIB_BUNDLE_NAME}"
- name: Upload Dev Library Bundle
uses: actions/upload-artifact@de65e23aa2b7e23d713bb51fbfcb6d502f8667d8
with:
name: logos-blockchain-circuits-dev-${{ env.VERSION }}-${{ env.OS }}-${{ env.ARCH }}.tar.gz
path: logos-blockchain-circuits-dev-${{ env.VERSION }}-${{ env.OS }}-${{ env.ARCH }}.tar.gz
build-macos:
name: Build MacOS Binaries (Native)
runs-on: macos-latest
@ -949,6 +1156,10 @@ jobs:
./build_gmp.sh macos_arm64
make macos_arm64
- name: Build Rapidsnark Static Libraries
working-directory: rapidsnark
run: make macos_arm64_lib
- name: Bundle Rapidsnark Prover
env:
BINARY_NAME: prover
@ -996,6 +1207,7 @@ jobs:
version: ${{ env.VERSION }}
os: ${{ env.OS }}
arch: ${{ env.ARCH }}
build-lib: "true"
- name: Compile PoQ Witness Generator
uses: ./.github/actions/compile-witness-generator
@ -1006,6 +1218,7 @@ jobs:
version: ${{ env.VERSION }}
os: ${{ env.OS }}
arch: ${{ env.ARCH }}
build-lib: "true"
- name: Compile ZKSign Witness Generator
uses: ./.github/actions/compile-witness-generator
@ -1016,6 +1229,7 @@ jobs:
version: ${{ env.VERSION }}
os: ${{ env.OS }}
arch: ${{ env.ARCH }}
build-lib: "true"
- name: Compile PoC Witness Generator
uses: ./.github/actions/compile-witness-generator
@ -1026,6 +1240,7 @@ jobs:
version: ${{ env.VERSION }}
os: ${{ env.OS }}
arch: ${{ env.ARCH }}
build-lib: "true"
- name: Download PoL Witness Generator
uses: actions/download-artifact@448e3f862ab3ef47aa50ff917776823c9946035b
@ -1051,6 +1266,30 @@ jobs:
name: poc-${{ env.VERSION }}-${{ env.OS }}-${{ env.ARCH }}
path: witness-generators/poc-artifact
- name: Download PoL Library Artifact
uses: actions/download-artifact@448e3f862ab3ef47aa50ff917776823c9946035b
with:
name: pol-lib-${{ env.VERSION }}-${{ env.OS }}-${{ env.ARCH }}
path: witness-generator-libs/pol-lib
- name: Download PoQ Library Artifact
uses: actions/download-artifact@448e3f862ab3ef47aa50ff917776823c9946035b
with:
name: poq-lib-${{ env.VERSION }}-${{ env.OS }}-${{ env.ARCH }}
path: witness-generator-libs/poq-lib
- name: Download ZKSign Library Artifact
uses: actions/download-artifact@448e3f862ab3ef47aa50ff917776823c9946035b
with:
name: zksign-lib-${{ env.VERSION }}-${{ env.OS }}-${{ env.ARCH }}
path: witness-generator-libs/zksign-lib
- name: Download PoC Library Artifact
uses: actions/download-artifact@448e3f862ab3ef47aa50ff917776823c9946035b
with:
name: poc-lib-${{ env.VERSION }}-${{ env.OS }}-${{ env.ARCH }}
path: witness-generator-libs/poc-lib
- name: Download All Proving Key Artifacts
uses: actions/download-artifact@448e3f862ab3ef47aa50ff917776823c9946035b
with:
@ -1122,6 +1361,41 @@ jobs:
name: logos-blockchain-circuits-${{ env.VERSION }}-${{ env.OS }}-${{ env.ARCH }}.tar.gz
path: logos-blockchain-circuits-${{ env.VERSION }}-${{ env.OS }}-${{ env.ARCH }}.tar.gz
- name: Create Dev Library Bundle
env:
LIB_BUNDLE_NAME: logos-blockchain-circuits-dev-${{ env.VERSION }}-${{ env.OS }}-${{ env.ARCH }}
RAPIDSNARK_LIB_DIR: rapidsnark/package_lib_macos_arm64/lib
RAPIDSNARK_INC_DIR: rapidsnark/package_lib_macos_arm64/include
run: |
mkdir -p "${LIB_BUNDLE_NAME}/lib" "${LIB_BUNDLE_NAME}/include/rapidsnark" "${LIB_BUNDLE_NAME}/include/witness"
cp "${RAPIDSNARK_LIB_DIR}"/librapidsnark.a "${LIB_BUNDLE_NAME}/lib/"
cp "${RAPIDSNARK_LIB_DIR}"/librapidsnark-fr-fq.a "${LIB_BUNDLE_NAME}/lib/"
cp "${RAPIDSNARK_LIB_DIR}"/libfr.a "${LIB_BUNDLE_NAME}/lib/"
cp "${RAPIDSNARK_LIB_DIR}"/libfq.a "${LIB_BUNDLE_NAME}/lib/"
cp "${RAPIDSNARK_LIB_DIR}"/libgmp.a "${LIB_BUNDLE_NAME}/lib/"
cp "${RAPIDSNARK_INC_DIR}"/rapidsnark/*.h "${LIB_BUNDLE_NAME}/include/rapidsnark/"
cp "${RAPIDSNARK_INC_DIR}"/rapidsnark/*.hpp "${LIB_BUNDLE_NAME}/include/rapidsnark/"
cp witness-generator-libs/pol-lib/libpol.a "${LIB_BUNDLE_NAME}/lib/"
cp witness-generator-libs/poq-lib/libpoq.a "${LIB_BUNDLE_NAME}/lib/"
cp witness-generator-libs/zksign-lib/libsignature.a "${LIB_BUNDLE_NAME}/lib/"
cp witness-generator-libs/poc-lib/libpoc.a "${LIB_BUNDLE_NAME}/lib/"
cp witness-generator-libs/pol-lib/circom.hpp "${LIB_BUNDLE_NAME}/include/witness/"
cp witness-generator-libs/pol-lib/calcwit.hpp "${LIB_BUNDLE_NAME}/include/witness/"
cp witness-generator-libs/pol-lib/fr.hpp "${LIB_BUNDLE_NAME}/include/witness/"
echo "${{ env.VERSION }}" > "${LIB_BUNDLE_NAME}/VERSION"
tar -czf "${LIB_BUNDLE_NAME}.tar.gz" "${LIB_BUNDLE_NAME}"
- name: Upload Dev Library Bundle
uses: actions/upload-artifact@de65e23aa2b7e23d713bb51fbfcb6d502f8667d8
with:
name: logos-blockchain-circuits-dev-${{ env.VERSION }}-${{ env.OS }}-${{ env.ARCH }}.tar.gz
path: logos-blockchain-circuits-dev-${{ env.VERSION }}-${{ env.OS }}-${{ env.ARCH }}.tar.gz
publish-release:
name: Create Release
runs-on: ubuntu-latest
@ -1188,6 +1462,7 @@ jobs:
env:
UPLOAD_URL: ${{ needs.publish-release.outputs.upload_url }}
ARTIFACT_NAME: logos-blockchain-circuits-${{ needs.setup.outputs.version }}-${{ matrix.platform.os }}-${{ matrix.platform.arch }}.tar.gz
DEV_ARTIFACT_NAME: logos-blockchain-circuits-dev-${{ needs.setup.outputs.version }}-${{ matrix.platform.os }}-${{ matrix.platform.arch }}.tar.gz
steps:
- name: Download Unified Bundle
uses: actions/download-artifact@448e3f862ab3ef47aa50ff917776823c9946035b
@ -1202,4 +1477,18 @@ jobs:
upload_url: ${{ env.UPLOAD_URL }}
asset_path: ${{ env.ARTIFACT_NAME }}
asset_name: ${{ env.ARTIFACT_NAME }}
- name: Download Dev Library Bundle
uses: actions/download-artifact@448e3f862ab3ef47aa50ff917776823c9946035b
with:
name: ${{ env.DEV_ARTIFACT_NAME }}
- name: Upload Dev Library Bundle to Release
uses: actions/upload-release-asset@ef2adfe8cb8ebfa540930c452c576b3819990faa
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ env.UPLOAD_URL }}
asset_path: ${{ env.DEV_ARTIFACT_NAME }}
asset_name: ${{ env.DEV_ARTIFACT_NAME }}
asset_content_type: application/octet-stream