Skip to content

Commit b415905

Browse files
committed
Merge branch 'master' into feat/phase2
2 parents 75af444 + beba36d commit b415905

File tree

18 files changed

+300
-18
lines changed

18 files changed

+300
-18
lines changed

.dockerignore

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
.github
2+
3+
.gitignore
4+
5+
.dockerignore
6+
7+
Dockerfile
8+
Dockerfile.backup
9+
10+
.output
11+
12+
docs
13+
14+
*.yml
15+
16+
*.sh
17+
!build-guest-actions-entrypoint.sh
18+
19+
*.md
20+
21+
openvm-clippy
22+
23+
target

.github/workflows/build-guest.yml

Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
name: Build Guest
2+
3+
on:
4+
pull_request:
5+
types: [synchronize, opened, reopened, ready_for_review]
6+
branches:
7+
- master
8+
- release/*
9+
paths:
10+
- crates/circuits/types/**/*
11+
- crates/circuits/chunk-circuit/**/*
12+
- crates/circuits/batch-circuit/**/*
13+
- crates/circuits/bundle-circuit/**/*
14+
- crates/build-guest/**/*
15+
push:
16+
branches:
17+
- master
18+
- release/*
19+
paths:
20+
- crates/circuits/types/**/*
21+
- crates/circuits/chunk-circuit/**/*
22+
- crates/circuits/batch-circuit/**/*
23+
- crates/circuits/bundle-circuit/**/*
24+
- crates/build-guest/**/*
25+
26+
jobs:
27+
docker-build-guest:
28+
name: Docker containerized build of guest programs
29+
runs-on: ubuntu-latest
30+
steps:
31+
- uses: actions/checkout@v4
32+
33+
- name: chunk commitments (prover)
34+
id: commitments-chunk-prover
35+
run: |
36+
{
37+
echo 'commitments<<EOF'
38+
cat crates/prover/src/commitments/chunk.rs
39+
echo EOF
40+
} >> $GITHUB_OUTPUT
41+
42+
- name: batch commitments (prover)
43+
id: commitments-batch-prover
44+
run: |
45+
{
46+
echo 'commitments<<EOF'
47+
cat crates/prover/src/commitments/batch.rs
48+
echo EOF
49+
} >> $GITHUB_OUTPUT
50+
51+
- name: bundle commitments (prover)
52+
id: commitments-bundle-prover
53+
run: |
54+
{
55+
echo 'commitments<<EOF'
56+
cat crates/prover/src/commitments/bundle.rs
57+
echo EOF
58+
} >> $GITHUB_OUTPUT
59+
60+
- name: chunk commitments (verifier)
61+
id: commitments-chunk-verifier
62+
run: |
63+
{
64+
echo 'commitments<<EOF'
65+
cat crates/verifier/src/commitments/chunk.rs
66+
echo EOF
67+
} >> $GITHUB_OUTPUT
68+
69+
- name: batch commitments (verifier)
70+
id: commitments-batch-verifier
71+
run: |
72+
{
73+
echo 'commitments<<EOF'
74+
cat crates/verifier/src/commitments/batch.rs
75+
echo EOF
76+
} >> $GITHUB_OUTPUT
77+
78+
- name: bundle commitments (verifier)
79+
id: commitments-bundle-verifier
80+
run: |
81+
{
82+
echo 'commitments<<EOF'
83+
cat crates/verifier/src/commitments/bundle.rs
84+
echo EOF
85+
} >> $GITHUB_OUTPUT
86+
87+
- name: chunk commitments (circuits)
88+
id: commitments-chunk-circuits
89+
run: |
90+
{
91+
echo 'commitments<<EOF'
92+
cat crates/circuits/batch-circuit/src/child_commitments.rs
93+
echo EOF
94+
} >> $GITHUB_OUTPUT
95+
96+
- name: batch commitments (circuits)
97+
id: commitments-batch-circuits
98+
run: |
99+
{
100+
echo 'commitments<<EOF'
101+
cat crates/circuits/bundle-circuit/src/child_commitments.rs
102+
echo EOF
103+
} >> $GITHUB_OUTPUT
104+
105+
- name: Sanity check for chunk-commitments (prover vs verifier)
106+
uses: nick-fields/assert-action@v1
107+
with:
108+
expected: ${{ steps.commitments-chunk-prover.outputs.commitments }}
109+
actual: ${{ steps.commitments-chunk-verifier.outputs.commitments }}
110+
111+
- name: Sanity check for chunk-commitments (prover vs circuits)
112+
uses: nick-fields/assert-action@v1
113+
with:
114+
expected: ${{ steps.commitments-chunk-prover.outputs.commitments }}
115+
actual: ${{ steps.commitments-chunk-circuits.outputs.commitments }}
116+
117+
- name: Sanity check for batch-commitments (prover vs verifier)
118+
uses: nick-fields/assert-action@v1
119+
with:
120+
expected: ${{ steps.commitments-batch-prover.outputs.commitments }}
121+
actual: ${{ steps.commitments-batch-verifier.outputs.commitments }}
122+
123+
- name: Sanity check for batch-commitments (prover vs circuits)
124+
uses: nick-fields/assert-action@v1
125+
with:
126+
expected: ${{ steps.commitments-batch-prover.outputs.commitments }}
127+
actual: ${{ steps.commitments-batch-circuits.outputs.commitments }}
128+
129+
- name: Sanity check for bundle-commitments (prover vs verifier)
130+
uses: nick-fields/assert-action@v1
131+
with:
132+
expected: ${{ steps.commitments-bundle-prover.outputs.commitments }}
133+
actual: ${{ steps.commitments-bundle-verifier.outputs.commitments }}
134+
135+
- name: Build guest and check diff
136+
run: |
137+
make build-guest
138+
git diff
139+
git diff --quiet && echo "no diff" || (echo "diff"; exit 1)

.github/workflows/lint.yml

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
name: Lint
2+
3+
on:
4+
pull_request:
5+
types: [synchronize, opened, reopened, ready_for_review]
6+
push:
7+
branches:
8+
- master
9+
- release/*
10+
11+
env:
12+
CARGO_NET_GIT_FETCH_WITH_CLI: true
13+
CARGO_REGISTRIES_CRATES_IO_PROTOCOL: git
14+
15+
jobs:
16+
skip_check:
17+
runs-on: ubuntu-latest
18+
outputs:
19+
should_skip: ${{ steps.skip_check.outputs.should_skip }}
20+
steps:
21+
- id: skip_check
22+
uses: fkirc/skip-duplicate-actions@v5
23+
with:
24+
cancel_others: 'true'
25+
concurrent_skipping: same_content_newer
26+
paths_ignore: ["**/README.md"]
27+
28+
fmt:
29+
needs: [ skip_check ]
30+
if: |
31+
github.event.pull_request.draft == false &&
32+
(github.event.action == 'ready_for_review' || needs.skip_check.outputs.should_skip != 'true')
33+
name: Rustfmt
34+
timeout-minutes: 30
35+
runs-on: ubuntu-latest
36+
steps:
37+
- uses: actions/checkout@v4
38+
- uses: dtolnay/rust-toolchain@master
39+
with:
40+
toolchain: "nightly-2024-12-06"
41+
components: rustfmt
42+
- name: Cargo fmt
43+
run: cargo fmt --all -- --check
44+
45+
clippy:
46+
needs: [ fmt ]
47+
if: |
48+
github.event.pull_request.draft == false &&
49+
(github.event.action == 'ready_for_review' || needs.skip_check.outputs.should_skip != 'true')
50+
name: Clippy
51+
timeout-minutes: 30
52+
runs-on: ubuntu-latest
53+
steps:
54+
- uses: actions/checkout@v4
55+
- uses: dtolnay/rust-toolchain@master
56+
with:
57+
toolchain: "nightly-2024-12-06"
58+
components: clippy
59+
- name: Clippy
60+
run: make clippy

Cargo.toml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,13 @@ scroll-zkvm-verifier = { path = "crates/verifier" }
8080
alloy-primitives = { git = "https://github.com/scroll-tech/alloy-core", branch = "v0.8.18" }
8181
ruint = { git = "https://github.com/scroll-tech/uint.git", branch = "v1.12.3" }
8282
tiny-keccak = { git = "https://github.com/scroll-tech/tiny-keccak", branch = "scroll-patch-v2.0.2-openvm-v1.0.0-rc.1" }
83+
8384
[profile.maxperf]
8485
inherits = "release"
8586
lto = "fat"
8687
codegen-units = 1
88+
89+
[profile.release]
90+
codegen-units = 1
91+
panic = "abort"
92+
strip = true

Dockerfile

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
FROM rust:1.85
2+
3+
RUN rustup toolchain install nightly-2024-12-06-x86_64-unknown-linux-gnu
4+
RUN rustup toolchain install nightly-2024-10-30-x86_64-unknown-linux-gnu
5+
RUN rustup component add rust-src --toolchain nightly-2024-10-30-x86_64-unknown-linux-gnu
6+
7+
WORKDIR /app
8+
9+
COPY . .
10+
11+
ENTRYPOINT ["/app/build-guest-actions-entrypoint.sh"]

Makefile

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,22 @@ fmt:
1111
@cargo fmt --all
1212

1313
clippy:
14-
@cargo clippy --manifest-path crates/circuits/types/Cargo.toml
15-
@cargo clippy --manifest-path crates/integration/Cargo.toml
16-
@cargo clippy --manifest-path crates/prover/Cargo.toml
17-
@cargo clippy --manifest-path crates/verifier/Cargo.toml
18-
@cargo clippy --manifest-path crates/build-guest/Cargo.toml
19-
sh openvm-clippy
14+
@cargo clippy --tests --manifest-path crates/circuits/types/Cargo.toml -- -D warnings
15+
sh openvm-clippy.sh
16+
@cargo clippy --tests --all-features --manifest-path crates/verifier/Cargo.toml -- -D warnings
17+
@cargo clippy --tests --all-features --manifest-path crates/prover/Cargo.toml -- -D warnings
18+
@cargo clippy --tests --all-features --manifest-path crates/integration/Cargo.toml -- -D warnings
19+
@cargo clippy --tests --all-features --manifest-path crates/build-guest/Cargo.toml -- -D warnings
20+
21+
clean-guest:
22+
docker stop build-guest
23+
docker rm build-guest
24+
docker rmi build-guest:local
2025

2126
build-guest:
22-
@cargo run --release -p scroll-zkvm-build-guest
27+
sh build-guest.sh
28+
29+
clean-build-guest: clean-guest build-guest
2330

2431
test-execute-chunk:
2532
@cargo test --release -p scroll-zkvm-integration --features scroll --test chunk_circuit test_execute -- --exact --nocapture

build-guest-actions-entrypoint.sh

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
#!/bin/bash
2+
3+
# run crates/build-guest
4+
cargo run --release -p scroll-zkvm-build-guest

build-guest.sh

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
#!/bin/bash
2+
3+
# build docker image
4+
docker build --platform linux/amd64 -t build-guest:local .
5+
6+
# run docker image
7+
docker run --platform linux/amd64 --name build-guest build-guest:local
8+
9+
# copy commitments from container to local (prover)
10+
docker cp build-guest:/app/crates/prover/src/commitments/chunk.rs crates/prover/src/commitments/chunk.rs
11+
docker cp build-guest:/app/crates/prover/src/commitments/batch.rs crates/prover/src/commitments/batch.rs
12+
docker cp build-guest:/app/crates/prover/src/commitments/bundle.rs crates/prover/src/commitments/bundle.rs
13+
14+
# copy commitments to local (verifier)
15+
cp crates/prover/src/commitments/chunk.rs crates/verifier/src/commitments/chunk.rs
16+
cp crates/prover/src/commitments/batch.rs crates/verifier/src/commitments/batch.rs
17+
cp crates/prover/src/commitments/bundle.rs crates/verifier/src/commitments/bundle.rs
18+
19+
# copy commitments to local (circuits)
20+
cp crates/prover/src/commitments/chunk.rs crates/circuits/batch-circuit/src/child_commitments.rs
21+
cp crates/prover/src/commitments/batch.rs crates/circuits/bundle-circuit/src/child_commitments.rs
22+
23+
# copy app.vmexe and openvm.toml from container to local
24+
mkdir -p crates/circuits/chunk-circuit/openvm
25+
mkdir -p crates/circuits/batch-circuit/openvm
26+
mkdir -p crates/circuits/bundle-circuit/openvm
27+
docker cp build-guest:/app/crates/circuits/chunk-circuit/openvm/app.vmexe crates/circuits/chunk-circuit/openvm/app.vmexe
28+
docker cp build-guest:/app/crates/circuits/batch-circuit/openvm/app.vmexe crates/circuits/batch-circuit/openvm/app.vmexe
29+
docker cp build-guest:/app/crates/circuits/bundle-circuit/openvm/app.vmexe crates/circuits/bundle-circuit/openvm/app.vmexe
30+
docker cp build-guest:/app/crates/circuits/chunk-circuit/openvm/openvm.toml crates/circuits/chunk-circuit/openvm/openvm.toml
31+
docker cp build-guest:/app/crates/circuits/batch-circuit/openvm/openvm.toml crates/circuits/batch-circuit/openvm/openvm.toml
32+
docker cp build-guest:/app/crates/circuits/bundle-circuit/openvm/openvm.toml crates/circuits/bundle-circuit/openvm/openvm.toml
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
//! Generated by crates/build-guest. DO NOT OVERWRITE!
22
3-
pub const EXE_COMMIT: [u32; 8] = [1160699514, 447802823, 1422849923, 1346930108, 1856792246, 1945262733, 1071445067, 1798032085];
3+
pub const EXE_COMMIT: [u32; 8] = [1669094708, 1183403341, 1375120749, 1068122785, 1960732251, 1049183227, 1296926793, 435194223];
44
pub const LEAF_COMMIT: [u32; 8] = [208617668, 136885539, 1279714325, 1320891327, 319797340, 646564618, 415049183, 43595019];
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
//! Generated by crates/build-guest. DO NOT OVERWRITE!
22
3-
pub const EXE_COMMIT: [u32; 8] = [1010934390, 1964457352, 523401529, 932069669, 237624915, 1807750930, 76252968, 1589818172];
4-
pub const LEAF_COMMIT: [u32; 8] = [1010997562, 1782059414, 949885556, 1673175876, 81694694, 1104570193, 1555872996, 1919900767];
3+
pub const EXE_COMMIT: [u32; 8] = [130843466, 1956108853, 345902313, 270250942, 1859529287, 925770409, 1343819060, 1114091536];
4+
pub const LEAF_COMMIT: [u32; 8] = [35464847, 715534820, 120679718, 974048058, 1673548606, 986949435, 942480063, 5326510];

0 commit comments

Comments
 (0)