diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index b42071a911..10140b64d5 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -10,7 +10,8 @@ env: jobs: gas_oracle: - runs-on: ubuntu-latest + runs-on: + group: scroll-reth-runner-group steps: - name: Checkout code uses: actions/checkout@v4 @@ -55,7 +56,8 @@ jobs: ${{ env.ECR_REGISTRY }}/${{ env.REPOSITORY }}:latest rollup_relayer: - runs-on: ubuntu-latest + runs-on: + group: scroll-reth-runner-group steps: - name: Checkout code uses: actions/checkout@v4 @@ -100,7 +102,8 @@ jobs: ${{ env.ECR_REGISTRY }}/${{ env.REPOSITORY }}:latest blob_uploader: - runs-on: ubuntu-latest + runs-on: + group: scroll-reth-runner-group steps: - name: Checkout code uses: actions/checkout@v4 @@ -145,7 +148,8 @@ jobs: ${{ env.ECR_REGISTRY }}/${{ env.REPOSITORY }}:latest rollup-db-cli: - runs-on: ubuntu-latest + runs-on: + group: scroll-reth-runner-group steps: - name: Checkout code uses: actions/checkout@v4 @@ -190,7 +194,8 @@ jobs: ${{ env.ECR_REGISTRY }}/${{ env.REPOSITORY }}:latest bridgehistoryapi-fetcher: - runs-on: ubuntu-latest + runs-on: + group: scroll-reth-runner-group steps: - name: Checkout code uses: actions/checkout@v4 @@ -235,7 +240,8 @@ jobs: ${{ env.ECR_REGISTRY }}/${{ env.REPOSITORY }}:latest bridgehistoryapi-api: - runs-on: ubuntu-latest + runs-on: + group: scroll-reth-runner-group steps: - name: Checkout code uses: actions/checkout@v4 @@ -280,7 +286,8 @@ jobs: ${{ env.ECR_REGISTRY }}/${{ env.REPOSITORY }}:latest bridgehistoryapi-db-cli: - runs-on: ubuntu-latest + runs-on: + group: scroll-reth-runner-group steps: - name: Checkout code uses: actions/checkout@v4 @@ -325,7 +332,8 @@ jobs: ${{ env.ECR_REGISTRY }}/${{ env.REPOSITORY }}:latest coordinator-api: - runs-on: ubuntu-latest + runs-on: + group: scroll-reth-runner-group steps: - name: Checkout code uses: actions/checkout@v4 @@ -352,48 +360,6 @@ jobs: REPOSITORY: coordinator-api run: | aws --region ${{ env.AWS_REGION }} ecr describe-repositories --repository-names ${{ env.REPOSITORY }} && : || aws --region ${{ env.AWS_REGION }} ecr create-repository --repository-name ${{ env.REPOSITORY }} - - name: Setup SSH for repositories and clone them - run: | - mkdir -p ~/.ssh - chmod 700 ~/.ssh - - # Setup for plonky3-gpu - echo "${{ secrets.PLONKY3_GPU_SSH_PRIVATE_KEY }}" > ~/.ssh/plonky3_gpu_key - chmod 600 ~/.ssh/plonky3_gpu_key - eval "$(ssh-agent -s)" > /dev/null - ssh-add ~/.ssh/plonky3_gpu_key 2>/dev/null - ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts 2>/dev/null - echo "Loaded plonky3-gpu key" - - # Clone plonky3-gpu repository - ./build/dockerfiles/coordinator-api/clone_plonky3_gpu.sh - - # Setup for openvm-stark-gpu - echo "${{ secrets.OPENVM_STARK_GPU_SSH_PRIVATE_KEY }}" > ~/.ssh/openvm_stark_gpu_key - chmod 600 ~/.ssh/openvm_stark_gpu_key - eval "$(ssh-agent -s)" > /dev/null - ssh-add ~/.ssh/openvm_stark_gpu_key 2>/dev/null - echo "Loaded openvm-stark-gpu key" - - # Clone openvm-stark-gpu repository - ./build/dockerfiles/coordinator-api/clone_openvm_stark_gpu.sh - - # Setup for openvm-gpu - echo "${{ secrets.OPENVM_GPU_SSH_PRIVATE_KEY }}" > ~/.ssh/openvm_gpu_key - chmod 600 ~/.ssh/openvm_gpu_key - eval "$(ssh-agent -s)" > /dev/null - ssh-add ~/.ssh/openvm_gpu_key 2>/dev/null - echo "Loaded openvm-gpu key" - - # Clone openvm-gpu repository - ./build/dockerfiles/coordinator-api/clone_openvm_gpu.sh - - # Show number of loaded keys - echo "Number of loaded keys: $(ssh-add -l | wc -l)" - - - name: Checkout specific commits - run: | - ./build/dockerfiles/coordinator-api/checkout_all.sh - name: Build and push uses: docker/build-push-action@v3 env: @@ -411,7 +377,8 @@ jobs: ${{ env.ECR_REGISTRY }}/${{ env.REPOSITORY }}:latest coordinator-cron: - runs-on: ubuntu-latest + runs-on: + group: scroll-reth-runner-group steps: - name: Checkout code uses: actions/checkout@v4 diff --git a/Cargo.lock b/Cargo.lock index 82adefa8f5..fb42386547 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8174,7 +8174,7 @@ dependencies = [ [[package]] name = "scroll-zkvm-prover" version = "0.4.0" -source = "git+https://github.com/scroll-tech/zkvm-prover?rev=2962428#29624289a052cbcf0e1c7f17e277034f6f5ad432" +source = "git+https://github.com/scroll-tech/zkvm-prover?rev=0dd7b19#0dd7b19590b1b17c5ec5a97fc1b4f638dfd0ce8f" dependencies = [ "alloy-primitives", "base64 0.22.1", @@ -8212,7 +8212,7 @@ dependencies = [ [[package]] name = "scroll-zkvm-types" version = "0.4.0" -source = "git+https://github.com/scroll-tech/zkvm-prover?rev=2962428#29624289a052cbcf0e1c7f17e277034f6f5ad432" +source = "git+https://github.com/scroll-tech/zkvm-prover?rev=0dd7b19#0dd7b19590b1b17c5ec5a97fc1b4f638dfd0ce8f" dependencies = [ "base64 0.22.1", "bincode", @@ -8232,7 +8232,7 @@ dependencies = [ [[package]] name = "scroll-zkvm-types-base" version = "0.4.0" -source = "git+https://github.com/scroll-tech/zkvm-prover?rev=2962428#29624289a052cbcf0e1c7f17e277034f6f5ad432" +source = "git+https://github.com/scroll-tech/zkvm-prover?rev=0dd7b19#0dd7b19590b1b17c5ec5a97fc1b4f638dfd0ce8f" dependencies = [ "alloy-primitives", "alloy-serde 1.0.16", @@ -8247,7 +8247,7 @@ dependencies = [ [[package]] name = "scroll-zkvm-types-batch" version = "0.4.0" -source = "git+https://github.com/scroll-tech/zkvm-prover?rev=2962428#29624289a052cbcf0e1c7f17e277034f6f5ad432" +source = "git+https://github.com/scroll-tech/zkvm-prover?rev=0dd7b19#0dd7b19590b1b17c5ec5a97fc1b4f638dfd0ce8f" dependencies = [ "alloy-primitives", "halo2curves-axiom", @@ -8267,7 +8267,7 @@ dependencies = [ [[package]] name = "scroll-zkvm-types-bundle" version = "0.4.0" -source = "git+https://github.com/scroll-tech/zkvm-prover?rev=2962428#29624289a052cbcf0e1c7f17e277034f6f5ad432" +source = "git+https://github.com/scroll-tech/zkvm-prover?rev=0dd7b19#0dd7b19590b1b17c5ec5a97fc1b4f638dfd0ce8f" dependencies = [ "alloy-primitives", "itertools 0.14.0", @@ -8280,7 +8280,7 @@ dependencies = [ [[package]] name = "scroll-zkvm-types-chunk" version = "0.4.0" -source = "git+https://github.com/scroll-tech/zkvm-prover?rev=2962428#29624289a052cbcf0e1c7f17e277034f6f5ad432" +source = "git+https://github.com/scroll-tech/zkvm-prover?rev=0dd7b19#0dd7b19590b1b17c5ec5a97fc1b4f638dfd0ce8f" dependencies = [ "alloy-primitives", "itertools 0.14.0", @@ -8300,7 +8300,7 @@ dependencies = [ [[package]] name = "scroll-zkvm-verifier" version = "0.4.0" -source = "git+https://github.com/scroll-tech/zkvm-prover?rev=2962428#29624289a052cbcf0e1c7f17e277034f6f5ad432" +source = "git+https://github.com/scroll-tech/zkvm-prover?rev=0dd7b19#0dd7b19590b1b17c5ec5a97fc1b4f638dfd0ce8f" dependencies = [ "bincode", "eyre", diff --git a/Cargo.toml b/Cargo.toml index f7c5e8daeb..f02a3ebdba 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,9 +17,9 @@ repository = "https://github.com/scroll-tech/scroll" version = "4.5.8" [workspace.dependencies] -scroll-zkvm-prover-euclid = { git = "https://github.com/scroll-tech/zkvm-prover", rev = "2962428", package = "scroll-zkvm-prover" } -scroll-zkvm-verifier-euclid = { git = "https://github.com/scroll-tech/zkvm-prover", rev = "2962428", package = "scroll-zkvm-verifier" } -scroll-zkvm-types = { git = "https://github.com/scroll-tech/zkvm-prover", rev = "2962428" } +scroll-zkvm-prover-euclid = { git = "https://github.com/scroll-tech/zkvm-prover", rev = "0dd7b19", package = "scroll-zkvm-prover" } +scroll-zkvm-verifier-euclid = { git = "https://github.com/scroll-tech/zkvm-prover", rev = "0dd7b19", package = "scroll-zkvm-verifier" } +scroll-zkvm-types = { git = "https://github.com/scroll-tech/zkvm-prover", rev = "0dd7b19" } sbv-primitives = { git = "https://github.com/scroll-tech/stateless-block-verifier", branch = "chore/upgrade", features = ["scroll"] } sbv-utils = { git = "https://github.com/scroll-tech/stateless-block-verifier", branch = "chore/upgrade" } diff --git a/build/dockerfiles/coordinator-api.Dockerfile b/build/dockerfiles/coordinator-api.Dockerfile index 7d208c229c..d1f9d60448 100644 --- a/build/dockerfiles/coordinator-api.Dockerfile +++ b/build/dockerfiles/coordinator-api.Dockerfile @@ -1,9 +1,9 @@ # Build libzkp dependency -FROM scrolltech/cuda-go-rust-builder:cuda-11.7.1-go-1.22.12-rust-nightly-2025-02-14 as chef +FROM scrolltech/go-rust-builder:go-1.22.12-rust-nightly-2025-02-14 as chef WORKDIR app FROM chef as planner -COPY ./crates ./ +COPY ./crates/ ./crates/ COPY ./Cargo.* ./ COPY ./rust-toolchain ./ RUN cargo chef prepare --recipe-path recipe.json @@ -11,21 +11,15 @@ RUN cargo chef prepare --recipe-path recipe.json FROM chef as zkp-builder COPY ./rust-toolchain ./ COPY --from=planner /app/recipe.json recipe.json -# run scripts to get openvm-gpu -COPY ./build/dockerfiles/coordinator-api/plonky3-gpu /plonky3-gpu -COPY ./build/dockerfiles/coordinator-api/openvm-stark-gpu /openvm-stark-gpu -COPY ./build/dockerfiles/coordinator-api/openvm-gpu /openvm-gpu -COPY ./build/dockerfiles/coordinator-api/gitconfig /root/.gitconfig -COPY ./build/dockerfiles/coordinator-api/config.toml /root/.cargo/config.toml RUN cargo chef cook --release --recipe-path recipe.json - -COPY ./crates ./ +COPY ./crates/ ./crates/ COPY ./Cargo.* ./ +COPY .git .git RUN cargo build --release -p libzkp-c # Download Go dependencies -FROM scrolltech/cuda-go-rust-builder:cuda-11.7.1-go-1.22.12-rust-nightly-2025-02-14 as base +FROM scrolltech/go-rust-builder:go-1.22.12-rust-nightly-2025-02-14 as base WORKDIR /src COPY go.work* ./ COPY ./rollup/go.* ./rollup/ @@ -45,7 +39,7 @@ RUN cd ./coordinator && CGO_LDFLAGS="-Wl,--no-as-needed -ldl" make coordinator_a RUN mv coordinator/internal/logic/libzkp/lib /bin/ # Pull coordinator into a second stage deploy ubuntu container -FROM nvidia/cuda:11.7.1-runtime-ubuntu22.04 +FROM ubuntu:20.04 ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/src/coordinator/internal/logic/verifier/lib ENV CGO_LDFLAGS="-Wl,--no-as-needed -ldl" # ENV CHAIN_ID=534353 diff --git a/build/dockerfiles/coordinator-api/checkout_all.sh b/build/dockerfiles/coordinator-api/checkout_all.sh deleted file mode 100755 index 251bd5a896..0000000000 --- a/build/dockerfiles/coordinator-api/checkout_all.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash -set -uex - -PLONKY3_GPU_COMMIT=261b322 # v0.2.0 -OPENVM_STARK_GPU_COMMIT=3082234 # PR#48 -OPENVM_GPU_COMMIT=8094b4f # branch: patch-v1.2.0 - -DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" > /dev/null 2>&1 && pwd) - -# checkout plonky3-gpu -cd $DIR/plonky3-gpu && git checkout ${PLONKY3_GPU_COMMIT} - -# checkout openvm-stark-gpu -cd $DIR/openvm-stark-gpu && git checkout ${OPENVM_STARK_GPU_COMMIT} - -# checkout openvm-gpu -cd $DIR/openvm-gpu && git checkout ${OPENVM_GPU_COMMIT} diff --git a/build/dockerfiles/coordinator-api/clone_openvm_gpu.sh b/build/dockerfiles/coordinator-api/clone_openvm_gpu.sh deleted file mode 100755 index b33117f572..0000000000 --- a/build/dockerfiles/coordinator-api/clone_openvm_gpu.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash -set -uex - -DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" > /dev/null 2>&1 && pwd) - -# clone openvm-gpu if not exists -if [ ! -d $DIR/openvm-gpu ]; then - git clone git@github.com:scroll-tech/openvm-gpu.git $DIR/openvm-gpu -fi -cd $DIR/openvm-gpu && git fetch --all --force diff --git a/build/dockerfiles/coordinator-api/clone_openvm_stark_gpu.sh b/build/dockerfiles/coordinator-api/clone_openvm_stark_gpu.sh deleted file mode 100755 index f848895309..0000000000 --- a/build/dockerfiles/coordinator-api/clone_openvm_stark_gpu.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash -set -uex - -DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" > /dev/null 2>&1 && pwd) - -# clone openvm-stark-gpu if not exists -if [ ! -d $DIR/openvm-stark-gpu ]; then - git clone git@github.com:scroll-tech/openvm-stark-gpu.git $DIR/openvm-stark-gpu -fi -cd $DIR/openvm-stark-gpu && git fetch --all --force diff --git a/build/dockerfiles/coordinator-api/clone_plonky3_gpu.sh b/build/dockerfiles/coordinator-api/clone_plonky3_gpu.sh deleted file mode 100755 index 94bc92a537..0000000000 --- a/build/dockerfiles/coordinator-api/clone_plonky3_gpu.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash -set -uex - -DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" > /dev/null 2>&1 && pwd) - -# clone plonky3-gpu if not exists -if [ ! -d $DIR/plonky3-gpu ]; then - git clone git@github.com:scroll-tech/plonky3-gpu.git $DIR/plonky3-gpu -fi -cd $DIR/plonky3-gpu && git fetch --all --force diff --git a/build/dockerfiles/coordinator-api/config.toml b/build/dockerfiles/coordinator-api/config.toml deleted file mode 100644 index 29dc4cfef6..0000000000 --- a/build/dockerfiles/coordinator-api/config.toml +++ /dev/null @@ -1,92 +0,0 @@ -# openvm -# same order and features as zkvm-prover/Cargo.toml.gpu -[patch."ssh://git@github.com/scroll-tech/openvm-gpu.git"] -openvm = { path = "/openvm-gpu/crates/toolchain/openvm", default-features = false } -openvm-algebra-complex-macros = { path = "/openvm-gpu/extensions/algebra/complex-macros", default-features = false } -openvm-algebra-guest = { path = "/openvm-gpu/extensions/algebra/guest", default-features = false } -openvm-bigint-guest = { path = "/openvm-gpu/extensions/bigint/guest", default-features = false } -openvm-build = { path = "/openvm-gpu/crates/toolchain/build", default-features = false } -openvm-circuit = { path = "/openvm-gpu/crates/vm", default-features = false } -openvm-custom-insn = { path = "/openvm-gpu/crates/toolchain/custom_insn", default-features = false } -openvm-continuations = { path = "/openvm-gpu/crates/continuations", default-features = false } -openvm-ecc-guest = { path = "/openvm-gpu/extensions/ecc/guest", default-features = false } -openvm-instructions ={ path = "/openvm-gpu/crates/toolchain/instructions", default-features = false } -openvm-keccak256-guest = { path = "/openvm-gpu/extensions/keccak256/guest", default-features = false } -openvm-native-circuit = { path = "/openvm-gpu/extensions/native/circuit", default-features = false } -openvm-native-compiler = { path = "/openvm-gpu/extensions/native/compiler", default-features = false } -openvm-native-recursion = { path = "/openvm-gpu/extensions/native/recursion", default-features = false } -openvm-native-transpiler = { path = "/openvm-gpu/extensions/native/transpiler", default-features = false } -openvm-pairing-guest = { path = "/openvm-gpu/extensions/pairing/guest", default-features = false } -openvm-rv32im-guest = { path = "/openvm-gpu/extensions/rv32im/guest", default-features = false } -openvm-rv32im-transpiler = { path = "/openvm-gpu/extensions/rv32im/transpiler", default-features = false } -openvm-sdk = { path = "/openvm-gpu/crates/sdk", default-features = false, features = ["parallel", "bench-metrics", "evm-prove"] } -openvm-sha256-guest = { path = "/openvm-gpu/extensions/sha256/guest", default-features = false } -openvm-transpiler = { path = "/openvm-gpu/crates/toolchain/transpiler", default-features = false } - -# stark-backend -[patch."https://github.com/openvm-org/stark-backend.git"] -openvm-stark-backend = { path = "/openvm-stark-gpu/crates/stark-backend", features = ["gpu"] } -openvm-stark-sdk = { path = "/openvm-stark-gpu/crates/stark-sdk", features = ["gpu"] } - -[patch."ssh://git@github.com/scroll-tech/openvm-stark-gpu.git"] -openvm-stark-backend = { path = "/openvm-stark-gpu/crates/stark-backend", features = ["gpu"] } -openvm-stark-sdk = { path = "/openvm-stark-gpu/crates/stark-sdk", features = ["gpu"] } - -# plonky3 -[patch."https://github.com/Plonky3/Plonky3.git"] -p3-air = { path = "/plonky3-gpu/air" } -p3-field = { path = "/plonky3-gpu/field" } -p3-commit = { path = "/plonky3-gpu/commit" } -p3-matrix = { path = "/plonky3-gpu/matrix" } -p3-baby-bear = { path = "/plonky3-gpu/baby-bear" } -p3-koala-bear = { path = "/plonky3-gpu/koala-bear" } -p3-util = { path = "/plonky3-gpu/util" } -p3-challenger = { path = "/plonky3-gpu/challenger" } -p3-dft = { path = "/plonky3-gpu/dft" } -p3-fri = { path = "/plonky3-gpu/fri" } -p3-goldilocks = { path = "/plonky3-gpu/goldilocks" } -p3-keccak = { path = "/plonky3-gpu/keccak" } -p3-keccak-air = { path = "/plonky3-gpu/keccak-air" } -p3-blake3 = { path = "/plonky3-gpu/blake3" } -p3-mds = { path = "/plonky3-gpu/mds" } -p3-monty-31 = { path = "/plonky3-gpu/monty-31" } -p3-merkle-tree = { path = "/plonky3-gpu/merkle-tree" } -p3-poseidon = { path = "/plonky3-gpu/poseidon" } -p3-poseidon2 = { path = "/plonky3-gpu/poseidon2" } -p3-poseidon2-air = { path = "/plonky3-gpu/poseidon2-air" } -p3-symmetric = { path = "/plonky3-gpu/symmetric" } -p3-uni-stark = { path = "/plonky3-gpu/uni-stark" } -p3-maybe-rayon = { path = "/plonky3-gpu/maybe-rayon" } -p3-bn254-fr = { path = "/plonky3-gpu/bn254-fr" } - -# gpu crates -[patch."ssh://git@github.com/scroll-tech/plonky3-gpu.git"] -p3-gpu-base = { path = "/plonky3-gpu/gpu-base" } -p3-gpu-build = { path = "/plonky3-gpu/gpu-build" } -p3-gpu-field = { path = "/plonky3-gpu/gpu-field" } -p3-gpu-backend = { path = "/plonky3-gpu/gpu-backend" } -p3-gpu-module = { path = "/plonky3-gpu/gpu-module" } -p3-air = { path = "/plonky3-gpu/air" } -p3-field = { path = "/plonky3-gpu/field" } -p3-commit = { path = "/plonky3-gpu/commit" } -p3-matrix = { path = "/plonky3-gpu/matrix" } -p3-baby-bear = { path = "/plonky3-gpu/baby-bear" } -p3-koala-bear = { path = "/plonky3-gpu/koala-bear" } -p3-util = { path = "/plonky3-gpu/util" } -p3-challenger = { path = "/plonky3-gpu/challenger" } -p3-dft = { path = "/plonky3-gpu/dft" } -p3-fri = { path = "/plonky3-gpu/fri" } -p3-goldilocks = { path = "/plonky3-gpu/goldilocks" } -p3-keccak = { path = "/plonky3-gpu/keccak" } -p3-keccak-air = { path = "/plonky3-gpu/keccak-air" } -p3-blake3 = { path = "/plonky3-gpu/blake3" } -p3-mds = { path = "/plonky3-gpu/mds" } -p3-monty-31 = { path = "/plonky3-gpu/monty-31" } -p3-merkle-tree = { path = "/plonky3-gpu/merkle-tree" } -p3-poseidon = { path = "/plonky3-gpu/poseidon" } -p3-poseidon2 = { path = "/plonky3-gpu/poseidon2" } -p3-poseidon2-air = { path = "/plonky3-gpu/poseidon2-air" } -p3-symmetric = { path = "/plonky3-gpu/symmetric" } -p3-uni-stark = { path = "/plonky3-gpu/uni-stark" } -p3-maybe-rayon = { path = "/plonky3-gpu/maybe-rayon" } -p3-bn254-fr = { path = "/plonky3-gpu/bn254-fr" } diff --git a/build/dockerfiles/coordinator-api/gitconfig b/build/dockerfiles/coordinator-api/gitconfig deleted file mode 100644 index 1b697d8cac..0000000000 --- a/build/dockerfiles/coordinator-api/gitconfig +++ /dev/null @@ -1,2 +0,0 @@ -[url "https://github.com/"] - insteadOf = ssh://git@github.com/ diff --git a/common/version/version.go b/common/version/version.go index 7dd2dfea5c..db128cc5e8 100644 --- a/common/version/version.go +++ b/common/version/version.go @@ -5,7 +5,7 @@ import ( "runtime/debug" ) -var tag = "v4.5.26" +var tag = "v4.5.27" var commit = func() string { if info, ok := debug.ReadBuildInfo(); ok { diff --git a/crates/gpu_override/.cargo/config.toml b/crates/gpu_override/.cargo/config.toml new file mode 100644 index 0000000000..713c0757c7 --- /dev/null +++ b/crates/gpu_override/.cargo/config.toml @@ -0,0 +1,45 @@ + +[patch."https://github.com/openvm-org/openvm.git"] +openvm-build = { git = "ssh://git@github.com/scroll-tech/openvm-gpu.git", branch = "patch-v1.2.1-rc.1-pipe", default-features = false } +openvm-circuit = { git = "ssh://git@github.com/scroll-tech/openvm-gpu.git", branch = "patch-v1.2.1-rc.1-pipe", default-features = false } +openvm-continuations = { git = "ssh://git@github.com/scroll-tech/openvm-gpu.git", branch = "patch-v1.2.1-rc.1-pipe", default-features = false } +openvm-instructions ={ git = "ssh://git@github.com/scroll-tech/openvm-gpu.git", branch = "patch-v1.2.1-rc.1-pipe", default-features = false } +openvm-native-circuit = { git = "ssh://git@github.com/scroll-tech/openvm-gpu.git", branch = "patch-v1.2.1-rc.1-pipe", default-features = false } +openvm-native-compiler = { git = "ssh://git@github.com/scroll-tech/openvm-gpu.git", branch = "patch-v1.2.1-rc.1-pipe", default-features = false } +openvm-native-recursion = { git = "ssh://git@github.com/scroll-tech/openvm-gpu.git", branch = "patch-v1.2.1-rc.1-pipe", default-features = false } +openvm-native-transpiler = { git = "ssh://git@github.com/scroll-tech/openvm-gpu.git", branch = "patch-v1.2.1-rc.1-pipe", default-features = false } +openvm-rv32im-transpiler = { git = "ssh://git@github.com/scroll-tech/openvm-gpu.git", branch = "patch-v1.2.1-rc.1-pipe", default-features = false } +openvm-sdk = { git = "ssh://git@github.com/scroll-tech/openvm-gpu.git", branch = "patch-v1.2.1-rc.1-pipe", default-features = false, features = ["parallel", "bench-metrics", "evm-prove"] } +openvm-transpiler = { git = "ssh://git@github.com/scroll-tech/openvm-gpu.git", branch = "patch-v1.2.1-rc.1-pipe", default-features = false } + +[patch."https://github.com/openvm-org/stark-backend.git"] +openvm-stark-backend = { git = "ssh://git@github.com/scroll-tech/openvm-stark-gpu.git", branch = "sync/upstream-250702", features = ["gpu"] } +openvm-stark-sdk = { git = "ssh://git@github.com/scroll-tech/openvm-stark-gpu.git", branch = "sync/upstream-250702", features = ["gpu"] } + +[patch."https://github.com/Plonky3/Plonky3.git"] +p3-air = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", rev = "450ec18" } +p3-field = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", rev = "450ec18" } +p3-commit = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", rev = "450ec18" } +p3-matrix = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", rev = "450ec18" } +p3-baby-bear = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", features = [ + "nightly-features", +], rev = "450ec18" } +p3-koala-bear = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", rev = "450ec18" } +p3-util = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", rev = "450ec18" } +p3-challenger = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", rev = "450ec18" } +p3-dft = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", rev = "450ec18" } +p3-fri = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", rev = "450ec18" } +p3-goldilocks = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", rev = "450ec18" } +p3-keccak = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", rev = "450ec18" } +p3-keccak-air = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", rev = "450ec18" } +p3-blake3 = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", rev = "450ec18" } +p3-mds = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", rev = "450ec18" } +p3-merkle-tree = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", rev = "450ec18" } +p3-monty-31 = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", rev = "450ec18" } +p3-poseidon = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", rev = "450ec18" } +p3-poseidon2 = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", rev = "450ec18" } +p3-poseidon2-air = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", rev = "450ec18" } +p3-symmetric = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", rev = "450ec18" } +p3-uni-stark = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", rev = "450ec18" } +p3-maybe-rayon = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", rev = "450ec18" } # the "parallel" feature is NOT on by default to allow single-threaded benchmarking +p3-bn254-fr = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", rev = "450ec18" } \ No newline at end of file diff --git a/crates/prover-bin/.cargo/config.toml b/crates/prover-bin/.cargo/config.toml deleted file mode 100644 index 95319ace8f..0000000000 --- a/crates/prover-bin/.cargo/config.toml +++ /dev/null @@ -1,32 +0,0 @@ - -[patch."https://github.com/openvm-org/stark-backend.git"] -openvm-stark-backend = { git = "ssh://git@github.com/scroll-tech/openvm-stark-gpu.git", branch = "main", features = ["gpu"] } -openvm-stark-sdk = { git = "ssh://git@github.com/scroll-tech/openvm-stark-gpu.git", branch = "main", features = ["gpu"] } - -[patch."https://github.com/Plonky3/Plonky3.git"] -p3-air = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -p3-field = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -p3-commit = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -p3-matrix = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -p3-baby-bear = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", features = [ - "nightly-features", -], tag = "v0.2.0" } -p3-koala-bear = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -p3-util = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -p3-challenger = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -p3-dft = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -p3-fri = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -p3-goldilocks = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -p3-keccak = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -p3-keccak-air = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -p3-blake3 = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -p3-mds = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -p3-merkle-tree = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -p3-monty-31 = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -p3-poseidon = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -p3-poseidon2 = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -p3-poseidon2-air = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -p3-symmetric = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -p3-uni-stark = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -p3-maybe-rayon = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } # the "parallel" feature is NOT on by default to allow single-threaded benchmarking -p3-bn254-fr = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } \ No newline at end of file diff --git a/zkvm-prover/.work/.gitignore b/zkvm-prover/.work/.gitignore index b928870525..ca77ed9a98 100644 --- a/zkvm-prover/.work/.gitignore +++ b/zkvm-prover/.work/.gitignore @@ -1,7 +1,9 @@ *.vmexe +openvm.toml *.bin *.sol cache db *.json -? \ No newline at end of file +? +root-verifier* \ No newline at end of file diff --git a/zkvm-prover/.work/batch/openvm.toml b/zkvm-prover/.work/batch/openvm.toml deleted file mode 100644 index 3222ad82df..0000000000 --- a/zkvm-prover/.work/batch/openvm.toml +++ /dev/null @@ -1,35 +0,0 @@ -[app_fri_params.fri_params] -log_blowup = 1 -log_final_poly_len = 0 -num_queries = 100 -proof_of_work_bits = 16 - -[app_vm_config.rv32i] - -[app_vm_config.rv32m] - -[app_vm_config.io] - -[app_vm_config.keccak] - -[app_vm_config.castf] - -[app_vm_config.modular] -supported_moduli = [ - "4002409555221667393417789825735904156556882819939007885332058136124031650490837864442687629129015664037894272559787", - "52435875175126190479447740508185965837690552500527637822603658699938581184513", -] -[app_vm_config.native] -[app_vm_config.pairing] -supported_curves = ["Bls12_381"] -[app_vm_config.sha256] -[app_vm_config.fp2] -supported_moduli = [ - ["Bls12_381Fp2","4002409555221667393417789825735904156556882819939007885332058136124031650490837864442687629129015664037894272559787"] -] -[[app_vm_config.ecc.supported_curves]] -struct_name = "Bls12_381G1Affine" -modulus = "4002409555221667393417789825735904156556882819939007885332058136124031650490837864442687629129015664037894272559787" -scalar = "52435875175126190479447740508185965837690552500527637822603658699938581184513" -a = "0" -b = "4" diff --git a/zkvm-prover/.work/bundle/openvm.toml b/zkvm-prover/.work/bundle/openvm.toml deleted file mode 100644 index 9b9590e638..0000000000 --- a/zkvm-prover/.work/bundle/openvm.toml +++ /dev/null @@ -1,17 +0,0 @@ -[app_fri_params.fri_params] -log_blowup = 1 -log_final_poly_len = 0 -num_queries = 100 -proof_of_work_bits = 16 - -[app_vm_config.rv32i] - -[app_vm_config.rv32m] - -[app_vm_config.io] - -[app_vm_config.keccak] - -[app_vm_config.castf] - -[app_vm_config.native] \ No newline at end of file diff --git a/zkvm-prover/.work/chunk/openvm.toml b/zkvm-prover/.work/chunk/openvm.toml deleted file mode 100644 index 4e99c1cbc8..0000000000 --- a/zkvm-prover/.work/chunk/openvm.toml +++ /dev/null @@ -1,58 +0,0 @@ -[app_fri_params.fri_params] -log_blowup = 1 -log_final_poly_len = 0 -num_queries = 100 -proof_of_work_bits = 16 - -[app_vm_config.rv32i] - -[app_vm_config.io] - -[app_vm_config.keccak] - -[app_vm_config.rv32m] -range_tuple_checker_sizes = [256, 8192] - -[app_vm_config.bigint] -range_tuple_checker_sizes = [256, 8192] - -[app_vm_config.modular] -supported_moduli = [ - "21888242871839275222246405745257275088696311157297823662689037894645226208583", - "21888242871839275222246405745257275088548364400416034343698204186575808495617", - "115792089237316195423570985008687907853269984665640564039457584007908834671663", - "115792089237316195423570985008687907852837564279074904382605163141518161494337", - "115792089210356248762697446949407573530086143415290314195533631308867097853951", - "115792089210356248762697446949407573529996955224135760342422259061068512044369" -] - -[app_vm_config.fp2] -supported_moduli = [ - ["Bn254Fp2","21888242871839275222246405745257275088696311157297823662689037894645226208583"] -] - -[app_vm_config.pairing] -supported_curves = ["Bn254"] - -[app_vm_config.sha256] - -[[app_vm_config.ecc.supported_curves]] -struct_name = "Secp256k1Point" -modulus = "115792089237316195423570985008687907853269984665640564039457584007908834671663" -scalar = "115792089237316195423570985008687907852837564279074904382605163141518161494337" -a = "0" -b = "7" - -[[app_vm_config.ecc.supported_curves]] -struct_name = "P256Point" -modulus = "115792089210356248762697446949407573530086143415290314195533631308867097853951" -scalar = "115792089210356248762697446949407573529996955224135760342422259061068512044369" -a = "115792089210356248762697446949407573530086143415290314195533631308867097853948" -b = "41058363725152142129326129780047268409114441015993725554835256314039467401291" - -[[app_vm_config.ecc.supported_curves]] -struct_name = "Bn254G1Affine" -modulus = "21888242871839275222246405745257275088696311157297823662689037894645226208583" -scalar = "21888242871839275222246405745257275088548364400416034343698204186575808495617" -a = "0" -b = "3" diff --git a/zkvm-prover/Makefile b/zkvm-prover/Makefile index bc3eaeb895..a2bbd33ab9 100644 --- a/zkvm-prover/Makefile +++ b/zkvm-prover/Makefile @@ -21,7 +21,7 @@ endif ZKVM_COMMIT=$(shell echo ${ZKVM_VERSION} | cut -d " " -f2) $(info ZKVM_COMMIT is ${ZKVM_COMMIT}) -PLONKY3_GPU_VERSION=$(shell ./print_plonky3gpu_version.sh | sed -n '2p') +#PLONKY3_GPU_VERSION=$(shell ./print_plonky3gpu_version.sh | sed -n '2p') GIT_REV=$(shell git rev-parse --short HEAD) GO_TAG=$(shell grep "var tag = " ../common/version/version.go | cut -d "\"" -f2) @@ -32,16 +32,27 @@ else $(info GO_TAG is ${GO_TAG}) endif -ifeq (${PLONKY3_GPU_VERSION},) - # use plonky3 with CPU - ZK_VERSION=${ZKVM_COMMIT}-${PLONKY3_VERSION} -else - # use halo2_gpu - ZK_VERSION=${ZKVM_COMMIT}-${PLONKY3_GPU_VERSION} -endif +ZK_VERSION=${ZKVM_COMMIT}-${PLONKY3_VERSION} +#ifeq (${PLONKY3_GPU_VERSION},) +# # use plonky3 with CPU +# ZK_VERSION=${ZKVM_COMMIT}-${PLONKY3_VERSION} +#else +# # use gpu +# ZK_VERSION=${ZKVM_COMMIT}-${PLONKY3_GPU_VERSION} +#endif + +prover_gpu: + cd ../crates/gpu_override && cargo tree >/dev/null + $(eval PLONKY3_GPU_VERSION:=$(shell ./print_plonky3gpu_version.sh | sed -n '2p')) + $(eval ZK_VERSION:=${ZKVM_COMMIT}-${PLONKY3_GPU_VERSION}) + @echo "Updated ZK_VERSION to ${ZK_VERSION} after prover_gpu" + +prover: prover_gpu + GO_TAG=${GO_TAG} GIT_REV=${GIT_REV} ZK_VERSION=${ZK_VERSION} cd ../crates/gpu_override && cargo build --release -p prover + +prover_cpu: + GO_TAG=${GO_TAG} GIT_REV=${GIT_REV} ZK_VERSION=${ZK_VERSION} cargo build --release -p prover -prover: - GO_TAG=${GO_TAG} GIT_REV=${GIT_REV} ZK_VERSION=${ZK_VERSION} cd ../crates/prover-bin && cargo build --release tests_binary: cargo clean && cargo test --release --no-run diff --git a/zkvm-prover/download-release.sh b/zkvm-prover/download-release.sh index ce17d95795..5a76dedd44 100644 --- a/zkvm-prover/download-release.sh +++ b/zkvm-prover/download-release.sh @@ -1,20 +1,36 @@ #!/bin/bash +# Define version mapping +declare -A VERSION_MAP +VERSION_MAP["euclid"]="0.4.3" +VERSION_MAP["feynman"]="0.5.0rc0" + # release version if [ -z "${SCROLL_ZKVM_VERSION}" ]; then - SCROLL_ZKVM_VERSION=$($SHELL ./print_high_zkvm_version.sh | cut -d' ' -f1|cut -c2-) + + # Check if first argument is provided and matches a known version name + if [ -n "$1" ] && [ -n "${VERSION_MAP[$1]}" ]; then + SCROLL_ZKVM_VERSION=${VERSION_MAP[$1]} + echo "Setting SCROLL_ZKVM_VERSION to ${SCROLL_ZKVM_VERSION} based on '$1' argument" + else + # Default version if no argument or not recognized + SCROLL_ZKVM_VERSION=0.5.0rc0 + fi fi echo $SCROLL_ZKVM_VERSION +mkdir -p .work/chunk +mkdir -p .work/batch +mkdir -p .work/bundle + # chunk-circuit exe wget https://circuit-release.s3.us-west-2.amazonaws.com/scroll-zkvm/releases/$SCROLL_ZKVM_VERSION/chunk/app.vmexe -O .work/chunk/app.vmexe - +wget https://circuit-release.s3.us-west-2.amazonaws.com/scroll-zkvm/releases/$SCROLL_ZKVM_VERSION/chunk/openvm.toml -O .work/chunk/openvm.toml # batch-circuit exe wget https://circuit-release.s3.us-west-2.amazonaws.com/scroll-zkvm/releases/$SCROLL_ZKVM_VERSION/batch/app.vmexe -O .work/batch/app.vmexe - +wget https://circuit-release.s3.us-west-2.amazonaws.com/scroll-zkvm/releases/$SCROLL_ZKVM_VERSION/batch/openvm.toml -O .work/batch/openvm.toml # bundle-circuit exe wget https://circuit-release.s3.us-west-2.amazonaws.com/scroll-zkvm/releases/$SCROLL_ZKVM_VERSION/bundle/app.vmexe -O .work/bundle/app.vmexe +wget https://circuit-release.s3.us-west-2.amazonaws.com/scroll-zkvm/releases/$SCROLL_ZKVM_VERSION/bundle/openvm.toml -O .work/bundle/openvm.toml -# bundle-circuit exe, legacy version, may not exist -wget https://circuit-release.s3.us-west-2.amazonaws.com/scroll-zkvm/releases/$SCROLL_ZKVM_VERSION/bundle/app_euclidv1.vmexe -O .work/bundle/app_euclidv1.vmexe || echo "legacy app not exist for $SCROLL_ZKVM_VERSION"