Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
237 commits
Select commit Hold shift + click to select a range
330c682
Brutally copy the `sp1-crates` directory from wakabat fork
pmikolajczyk41 Feb 10, 2026
8e58210
Update paths referring to arbitrator/ directory, to point to crates/
pmikolajczyk41 Feb 10, 2026
2c11103
Inline the old parse_input module from the old prover (to ensure the …
pmikolajczyk41 Feb 10, 2026
b2d2a2a
It will be MUCH easier to just leave the old modules
pmikolajczyk41 Feb 10, 2026
a7e155d
Update the module names for EC recovery, Keccak and dumping elf
pmikolajczyk41 Feb 10, 2026
fe03de2
Add program_prepare and program_requires_prepare stubs
pmikolajczyk41 Feb 10, 2026
ec33ac3
Fix ecrecover signature
pmikolajczyk41 Feb 10, 2026
22d096e
Record stylus program for wasm target as well
pmikolajczyk41 Feb 10, 2026
8e74af3
Satisfy shellcheck
pmikolajczyk41 Feb 11, 2026
d79af74
Changelog
pmikolajczyk41 Feb 11, 2026
04c4444
Install SP1 toolchain
pmikolajczyk41 Feb 11, 2026
37acb19
Run the build.sh script
pmikolajczyk41 Feb 11, 2026
d5f03ea
Run validation
pmikolajczyk41 Feb 11, 2026
740c4b2
Small fixes
pmikolajczyk41 Feb 11, 2026
798b639
Use sh
pmikolajczyk41 Feb 11, 2026
c61311f
Changelog
pmikolajczyk41 Feb 11, 2026
9369964
Fix line breaks
pmikolajczyk41 Feb 11, 2026
4e0b9ce
source /home/runner/.bashrc
pmikolajczyk41 Feb 11, 2026
fe91d00
PATH
pmikolajczyk41 Feb 11, 2026
3697c4e
Set bash shell
pmikolajczyk41 Feb 11, 2026
48e0110
Go with full path
pmikolajczyk41 Feb 11, 2026
b1bd93a
Setup CI
pmikolajczyk41 Feb 11, 2026
80a0c8c
Install protobuf-compiler
pmikolajczyk41 Feb 11, 2026
826af43
Install LLVM 21
pmikolajczyk41 Feb 11, 2026
d9f38e4
Merge pull request #4362 from OffchainLabs/pmikolajczyk/nit-4504-buil…
pmikolajczyk41 Feb 11, 2026
61da4a8
Cancel workflow run when a new commit arrives
pmikolajczyk41 Feb 12, 2026
4157eac
Do not require changelog for PRs not against master
pmikolajczyk41 Feb 12, 2026
9734713
Merge pull request #4372 from OffchainLabs/pmikolajczyk/ci-concurrency
pmikolajczyk41 Feb 12, 2026
72b65c5
Merge remote-tracking branch 'origin/master' into pmikolajczyk/merge-…
pmikolajczyk41 Feb 12, 2026
4dcd645
Merge pull request #4373 from OffchainLabs/pmikolajczyk/merge-main
pmikolajczyk41 Feb 12, 2026
fe4aecc
Remove two unused dependencies
pmikolajczyk41 Feb 13, 2026
f956f0c
Tidy up workspace deps
pmikolajczyk41 Feb 13, 2026
760aebe
Merge pull request #4381 from OffchainLabs/pmikolajczyk/cleanup-depen…
pmikolajczyk41 Feb 13, 2026
797cdc7
Add validation to dependencies
pmikolajczyk41 Feb 16, 2026
14ae070
Use validation crate for the input reading
pmikolajczyk41 Feb 16, 2026
c1dff91
impl Send for ForceSync (seems to be required by new Rust)
pmikolajczyk41 Feb 16, 2026
5c2c7a9
Update path from build.rs
pmikolajczyk41 Feb 16, 2026
d17310d
Do not decompress twice
pmikolajczyk41 Feb 16, 2026
09830af
Remove brotli from dependencies
pmikolajczyk41 Feb 17, 2026
629b734
Use OCL forks
pmikolajczyk41 Feb 17, 2026
8160a99
Merge pull request #4396 from OffchainLabs/pmikolajczyk/nit-4502-forks
pmikolajczyk41 Feb 17, 2026
6c8e05a
Merge remote-tracking branch 'origin/master' into zk-prove-any/update…
pmikolajczyk41 Feb 18, 2026
165c20d
Merge branch 'zk-prove-any/sp1-runner' into pmikolajczyk/nit-4503
pmikolajczyk41 Feb 18, 2026
fbfa5a8
Merge pull request #4400 from OffchainLabs/zk-prove-any/update-master
pmikolajczyk41 Feb 18, 2026
54c0d69
Make user wasm decompressing feature-gated in validation crate
pmikolajczyk41 Feb 18, 2026
e1fcdca
Fix dependencies in sp1 workspace
pmikolajczyk41 Feb 18, 2026
19a4ae0
Restore Rust brotli decompression
pmikolajczyk41 Feb 18, 2026
7118977
Merge remote-tracking branch 'origin/zk-prove-any/sp1-runner' into pm…
pmikolajczyk41 Feb 18, 2026
da4e5d2
Merge pull request #4392 from OffchainLabs/pmikolajczyk/nit-4503
pmikolajczyk41 Feb 18, 2026
ea93469
Merge branch 'master' into zk-prove-any/merge-master
pmikolajczyk41 Feb 24, 2026
df1f042
Merge pull request #4427 from OffchainLabs/zk-prove-any/merge-master
pmikolajczyk41 Feb 24, 2026
d5e1d18
Merge remote-tracking branch 'origin/master' into zk-prove-any/update…
pmikolajczyk41 Mar 2, 2026
92a69f3
Merge pull request #4446 from OffchainLabs/zk-prove-any/update-master
pmikolajczyk41 Mar 2, 2026
1c94b6f
Add WavmState trait to caller-env
pmikolajczyk41 Mar 2, 2026
33f94b2
Add get_global_state_bytes32 generic implementation
pmikolajczyk41 Mar 2, 2026
0abe245
Implement WavmState for WasmEnv
pmikolajczyk41 Mar 2, 2026
e83c8c3
Use caller_env::wavmio::get_global_state_bytes32 in JIT
pmikolajczyk41 Mar 2, 2026
9bfb5f4
Provide adapters for SP1
pmikolajczyk41 Mar 2, 2026
92236df
Implement get_global_state_bytes32 in SP1
pmikolajczyk41 Mar 2, 2026
94adc95
Missing import for no-std build
pmikolajczyk41 Mar 2, 2026
d4cda16
The rest of wavmio functions in caller env and JIT
pmikolajczyk41 Mar 2, 2026
3d3464f
and for SP1
pmikolajczyk41 Mar 2, 2026
48804af
fmt
pmikolajczyk41 Mar 2, 2026
4629553
hex features
pmikolajczyk41 Mar 2, 2026
80c8e84
Alias import; gp helper
pmikolajczyk41 Mar 3, 2026
2d7cc20
Introduce WavmEnv trait and move split to caller-env
pmikolajczyk41 Mar 3, 2026
36bc895
Remove JitEnv trait
pmikolajczyk41 Mar 3, 2026
09a9912
Remove JitExecEnv
pmikolajczyk41 Mar 3, 2026
e612975
Rename WavmInput to Sp1State
pmikolajczyk41 Mar 3, 2026
d247f90
wasip1_stub
pmikolajczyk41 Mar 3, 2026
01e5cd6
move memory things to dedicated modules
pmikolajczyk41 Mar 3, 2026
6922050
rename module to state
pmikolajczyk41 Mar 4, 2026
0f81c3f
another trait to handle statics
pmikolajczyk41 Mar 4, 2026
98663a2
remove auxiliary traits, newtypes and just pass the two objects
pmikolajczyk41 Mar 4, 2026
ed321b2
revert changes to wasi stub
pmikolajczyk41 Mar 4, 2026
8bc4427
more reverts
pmikolajczyk41 Mar 4, 2026
473064f
reuse caller-env in jit
pmikolajczyk41 Mar 4, 2026
aaa318a
rename interface to WavmIo
pmikolajczyk41 Mar 4, 2026
41f5fc7
Do not extend ExecEnv
pmikolajczyk41 Mar 4, 2026
4978082
update doc
pmikolajczyk41 Mar 4, 2026
9bd0b95
remove ExecEnv for WasmEnv
pmikolajczyk41 Mar 4, 2026
fe28759
more concise
pmikolajczyk41 Mar 4, 2026
a6ce004
Remove unnecessary impl
pmikolajczyk41 Mar 4, 2026
149e11a
remove newtype
pmikolajczyk41 Mar 4, 2026
c517c11
fmt
pmikolajczyk41 Mar 4, 2026
32269c9
Merge pull request #4458 from OffchainLabs/pmikolajczyk/nit-4595-wavmio
pmikolajczyk41 Mar 4, 2026
e74d7bc
Merge remote-tracking branch 'origin/master' into zk-prove-any/update…
pmikolajczyk41 Mar 5, 2026
4af3e19
Add 0x prefix in wasi-stub
pmikolajczyk41 Mar 5, 2026
bebced4
Merge pull request #4471 from OffchainLabs/zk-prove-any/update-master
pmikolajczyk41 Mar 5, 2026
6c0e40c
JIT: simplify wrap! macro a bit
pmikolajczyk41 Mar 5, 2026
45595f8
JIT: make wrap! macro work per function
pmikolajczyk41 Mar 5, 2026
fce70dc
caller-env: make Errno inner field pub
pmikolajczyk41 Mar 5, 2026
21ee8d2
Reuse codes from caller-env
pmikolajczyk41 Mar 5, 2026
a29d7e7
impl ExecEnv for CustomEnvData
pmikolajczyk41 Mar 5, 2026
dfbab75
SP1: delegate implementation to caller-env with a wrap macro
pmikolajczyk41 Mar 5, 2026
c792fbf
Merge pull request #4473 from OffchainLabs/pmikolajczyk/nit-4618-wasip1
pmikolajczyk41 Mar 6, 2026
5755812
Merge remote-tracking branch 'origin/master' into zk-prove-any/update…
pmikolajczyk41 Mar 9, 2026
973ad00
Merge pull request #4481 from OffchainLabs/zk-prove-any/update-master
pmikolajczyk41 Mar 9, 2026
9f17964
Remove external brotli fork dependency. Reuse caller-env implementati…
pmikolajczyk41 Mar 10, 2026
5d4e165
Avoid direct dependency in program
pmikolajczyk41 Mar 10, 2026
3143fa9
Remove `decompress-user-wasm` feature in validation - decompress user…
pmikolajczyk41 Mar 10, 2026
a1a3e9d
Add CMake patch for brotli. Add new steps to the build.sh
pmikolajczyk41 Mar 10, 2026
f1f13d4
Add new path discovery to brotli build script
pmikolajczyk41 Mar 10, 2026
e89017d
Add exports for memory management in C brotli
pmikolajczyk41 Mar 10, 2026
1e886f0
Shell lint
pmikolajczyk41 Mar 10, 2026
5e607fe
Merge pull request #4486 from OffchainLabs/pmikolajczyk/nit-4630-brotli
pmikolajczyk41 Mar 10, 2026
c189f34
Target paths
pmikolajczyk41 Mar 10, 2026
803d286
Migrate binary.rs
pmikolajczyk41 Mar 10, 2026
80a50fb
Migrate config.rs
pmikolajczyk41 Mar 10, 2026
fbc43ed
Migrate counter.rs
pmikolajczyk41 Mar 10, 2026
091a09c
Migrate depth.rs
pmikolajczyk41 Mar 10, 2026
9e3745b
Remove some modules (unneeded)
pmikolajczyk41 Mar 10, 2026
03e9a01
Migrate meter.rs
pmikolajczyk41 Mar 10, 2026
9c202fa
Migrate mod.rs
pmikolajczyk41 Mar 10, 2026
5fbfc90
Remove other modules
pmikolajczyk41 Mar 10, 2026
4d572d5
Migrate operator.rs
pmikolajczyk41 Mar 10, 2026
722cbca
Migrate value.rs
pmikolajczyk41 Mar 10, 2026
5a1a463
Supress unexpected cfgs
pmikolajczyk41 Mar 10, 2026
509fcd1
Remove old operator file
pmikolajczyk41 Mar 10, 2026
7029e31
Deduplicate
pmikolajczyk41 Mar 10, 2026
ab66c37
Dedicated modules
pmikolajczyk41 Mar 10, 2026
ab43307
fmt
pmikolajczyk41 Mar 10, 2026
e231d60
Merge pull request #4490 from OffchainLabs/pmikolajczyk/nit-4640-rm-a…
pmikolajczyk41 Mar 10, 2026
4588a4b
Merge remote-tracking branch 'origin/master' into zk-prove-any/update…
pmikolajczyk41 Mar 11, 2026
9379741
Merge pull request #4494 from OffchainLabs/zk-prove-any/update-master
pmikolajczyk41 Mar 11, 2026
3330b94
Merge remote-tracking branch 'origin/master' into zk-prove-any/update…
pmikolajczyk41 Mar 12, 2026
8608c26
Merge pull request #4501 from OffchainLabs/zk-prove-any/update-master
pmikolajczyk41 Mar 12, 2026
945b757
Rename ValidationRequest to ValidationTask (to free the name)
pmikolajczyk41 Mar 13, 2026
1b89406
Move the definition to a more proper place
pmikolajczyk41 Mar 13, 2026
fdad016
Actually... it is not needed - remove the wrapper and just pass the t…
pmikolajczyk41 Mar 13, 2026
cdccc29
Rename ValidationInput to ValidationRequest
pmikolajczyk41 Mar 13, 2026
31af49d
Introduce new ValidationInput type
pmikolajczyk41 Mar 13, 2026
8173679
Add rkyv feature to validation
pmikolajczyk41 Mar 13, 2026
65433dc
Use ValidationInput in sp1 world. Remove Input
pmikolajczyk41 Mar 13, 2026
bb79382
Simplify alignment
pmikolajczyk41 Mar 13, 2026
c732e06
Move reading to validation
pmikolajczyk41 Mar 13, 2026
5c2e64a
Move alignment utility
pmikolajczyk41 Mar 13, 2026
e4cbc31
Protocol is for sending input, not full request
pmikolajczyk41 Mar 13, 2026
d3b22fb
Reuse ValidationInput instead of fields in JIT
pmikolajczyk41 Mar 16, 2026
a976178
Add conversion from NativeInput
pmikolajczyk41 Mar 16, 2026
f1cb45e
fmt
pmikolajczyk41 Mar 16, 2026
30b88e8
Remove alias
pmikolajczyk41 Mar 16, 2026
be2b18a
Remove NativeInput
pmikolajczyk41 Mar 16, 2026
a026312
fmt
pmikolajczyk41 Mar 16, 2026
889a3a7
inline json preparing
pmikolajczyk41 Mar 16, 2026
815dd24
fmt
pmikolajczyk41 Mar 16, 2026
919229d
no pub(crate)
pmikolajczyk41 Mar 16, 2026
56c7b89
load also in wavmio
pmikolajczyk41 Mar 16, 2026
2b0066f
Comment draining
pmikolajczyk41 Mar 17, 2026
74e12db
Derive Eq
pmikolajczyk41 Mar 17, 2026
61022db
Merge pull request #4509 from OffchainLabs/pmikolajczyk/nit-4661-vali…
pmikolajczyk41 Mar 17, 2026
35f5f53
Merge remote-tracking branch 'origin/master' into zk-prove-any/update…
pmikolajczyk41 Mar 17, 2026
5ab96bd
Merge remote-tracking branch 'origin/master' into zk-prove-any/update…
pmikolajczyk41 Mar 17, 2026
081d96a
Merge remote-tracking branch 'origin/master' into zk-prove-any/update…
pmikolajczyk41 Mar 18, 2026
b6898e6
Merge pull request #4516 from OffchainLabs/zk-prove-any/update-master
pmikolajczyk41 Mar 18, 2026
0c1ac82
Merge branch 'master' into braga/merge-master-wasmer7
bragaigor Mar 19, 2026
72c575a
formatting and update sp1-crates deps
bragaigor Mar 19, 2026
2068b02
update wasmer and fix sp1 compilation
bragaigor Mar 19, 2026
9a23354
update wasmer for missing publish_eh_frame on x86
bragaigor Mar 19, 2026
6857904
attempt to fix Sp1 validation
bragaigor Mar 19, 2026
8c4b746
test without custom brotli
bragaigor Mar 19, 2026
c93242d
readd brotli and update upstream wasmer
bragaigor Mar 19, 2026
e89d1d3
Merge branch 'master' into braga/merge-master-wasmer7
bragaigor Mar 19, 2026
20ffc8a
guard with sp1
bragaigor Mar 20, 2026
a2641fb
guard bad stylus arch check against sp1 builds
bragaigor Mar 20, 2026
9e3f5dd
remove redundant code
bragaigor Mar 23, 2026
12376d8
Merge pull request #4527 from OffchainLabs/braga/merge-master-wasmer7
bragaigor Mar 23, 2026
37b2642
Consolidate sp1-crates into crates
bragaigor Mar 24, 2026
c3b769e
start incorporating sp1-crates into crates
bragaigor Mar 24, 2026
c75e802
move sp1 deps to root Cargo.toml
bragaigor Mar 24, 2026
a19bfc1
Make fmt and clippy happy
bragaigor Mar 24, 2026
355d83e
Improve code readability and update comments
bragaigor Mar 24, 2026
1dc2644
add warning comment and fix build.sh
bragaigor Mar 24, 2026
79ffca5
Merge remote-tracking branch 'origin/master' into zk-prove-any/update
pmikolajczyk41 Mar 25, 2026
aa05219
Merge pull request #4559 from OffchainLabs/zk-prove-any/update
pmikolajczyk41 Mar 25, 2026
312cfd6
Merge branch 'zk-prove-any/sp1-runner' into braga/consolidate-sp1-cra…
bragaigor Mar 25, 2026
2e86c20
remove Cargo.toml comment
bragaigor Mar 25, 2026
9bf9b7a
revert handle_result and delete .gitignore
bragaigor Mar 25, 2026
2b62500
Merge pull request #4555 from OffchainLabs/braga/consolidate-sp1-crat…
bragaigor Mar 25, 2026
192cc83
Remove leftovers
pmikolajczyk41 Mar 26, 2026
7ef4a28
Create a new prover-ffi crate. Move C exports from prover/lib.rs there.
pmikolajczyk41 Mar 26, 2026
9ad8a48
fmt
pmikolajczyk41 Mar 26, 2026
aadf75c
extract c_string utils
pmikolajczyk41 Mar 26, 2026
a39abff
consistent naming
pmikolajczyk41 Mar 26, 2026
38bd844
machine-related utils
pmikolajczyk41 Mar 26, 2026
93601bc
extract preimage utils
pmikolajczyk41 Mar 26, 2026
1e94d4e
move static
pmikolajczyk41 Mar 27, 2026
d266696
extract cbytes into module
pmikolajczyk41 Mar 27, 2026
62a2fc3
new libc feature
pmikolajczyk41 Mar 27, 2026
8de06ff
use alias in general case
pmikolajczyk41 Mar 27, 2026
d7ba77a
fmt
pmikolajczyk41 Mar 27, 2026
850c2c5
remove sp1 feature
pmikolajczyk41 Mar 27, 2026
e261713
prover is no longer staticlib
pmikolajczyk41 Mar 27, 2026
fbf6b39
move other ffi stuff
pmikolajczyk41 Mar 27, 2026
993499b
separate module
pmikolajczyk41 Mar 27, 2026
8dc056e
fmt
pmikolajczyk41 Mar 27, 2026
0298c04
unnecessary gating
pmikolajczyk41 Mar 27, 2026
7f42325
include prover-ffi in cbindgen
pmikolajczyk41 Mar 27, 2026
fd3257f
include kzg in prover-ffi
pmikolajczyk41 Mar 27, 2026
f438795
minor fixes
pmikolajczyk41 Mar 27, 2026
da0f957
catch nil pointer
pmikolajczyk41 Mar 27, 2026
8627f6b
Inherit workspace properties
pmikolajczyk41 Mar 27, 2026
b0809de
Split the code to lib and bin
pmikolajczyk41 Mar 27, 2026
3e6b2ce
Do not unwrap errors in lib
pmikolajczyk41 Mar 27, 2026
20bc649
todo -> unreachable
pmikolajczyk41 Mar 27, 2026
92e92e4
Add new crate
pmikolajczyk41 Mar 27, 2026
466ac70
Merge pull request #4568 from OffchainLabs/pmikolajczyk/nit-4723-ffi
pmikolajczyk41 Mar 27, 2026
81e5a92
Add build.rs
pmikolajczyk41 Mar 27, 2026
1b42a11
Add the commands
pmikolajczyk41 Mar 27, 2026
68ccbaa
Add input struct
pmikolajczyk41 Mar 27, 2026
7fa8ff7
Add implementation for the commands
pmikolajczyk41 Mar 27, 2026
f736300
deserialize output
pmikolajczyk41 Mar 27, 2026
383c9ed
Add sample wasm
pmikolajczyk41 Mar 27, 2026
4483104
Make it the default
pmikolajczyk41 Mar 27, 2026
3b2592f
minor fixes
pmikolajczyk41 Mar 27, 2026
e4974a8
CI
pmikolajczyk41 Mar 27, 2026
d6cc62a
fmt
pmikolajczyk41 Mar 27, 2026
4d3448a
Merge remote-tracking branch 'origin/zk-prove-any/sp1-runner' into pm…
pmikolajczyk41 Mar 27, 2026
049c159
Remove the compare from general rust tests
pmikolajczyk41 Mar 27, 2026
8197730
Proper proving env
pmikolajczyk41 Mar 27, 2026
6c53fb6
Pass the input struct
pmikolajczyk41 Mar 30, 2026
12ec97d
Comment about comparison. Remove default proving mode
pmikolajczyk41 Mar 30, 2026
563f1b0
Merge pull request #4573 from OffchainLabs/pmikolajczyk/nit-4729-styl…
pmikolajczyk41 Mar 30, 2026
0c1352b
update wasmer pin to use wasmer v7.1.0
bragaigor Mar 30, 2026
4873b55
update wasmer pin to proper pin
bragaigor Mar 30, 2026
61cf39f
Merge branch 'zk-prove-any/sp1-runner' into braga/update-wasmer-pin-710
bragaigor Mar 30, 2026
ba3c95d
Use block_inputs.json from master (generated with the 7.1.0 version)
pmikolajczyk41 Mar 31, 2026
f6d7828
Merge pull request #4582 from OffchainLabs/braga/update-wasmer-pin-710
pmikolajczyk41 Mar 31, 2026
b8b2272
Merge remote-tracking branch 'refs/remotes/origin/master' into zk-pro…
pmikolajczyk41 Mar 31, 2026
4c3712e
fix import
pmikolajczyk41 Mar 31, 2026
0d4bf3a
Merge pull request #4578 from OffchainLabs/zk-prove-any/update-base
pmikolajczyk41 Mar 31, 2026
f2e00a0
cargo fix --edition --workspace --allow-dirty
pmikolajczyk41 Apr 2, 2026
7bb3034
cargo +nightly fmt
pmikolajczyk41 Apr 2, 2026
8a3e237
bump workspace edition && cargo +nightly fmt
pmikolajczyk41 Apr 2, 2026
772c88e
Merge remote-tracking branch 'origin/master' into zk-prove-any/update
pmikolajczyk41 Apr 2, 2026
6272464
fmt, clippy
pmikolajczyk41 Apr 2, 2026
34f0935
Merge pull request #4595 from OffchainLabs/zk-prove-any/update
pmikolajczyk41 Apr 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/_rust-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,8 @@ jobs:
- name: Prepare replay.wasm env
run: make build-replay-env

- name: Clippy check
run: cargo clippy --all -- -D warnings -A static_mut_refs
- name: Clippy check (non-SP1)
run: cargo clippy --workspace --exclude program --exclude sp1-builder --exclude sp1-runner --exclude stylus-compiler-program --exclude stylus-compiler-runner -- -D warnings -A static_mut_refs

- name: Run rust tests
id: run-rust-tests
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ jobs:

# --- Ensure changelog is updated (required by can_proceed) ---
changelog:
if: github.base_ref == 'master'
needs: changes
uses: ./.github/workflows/_changelog.yml
secrets: inherit
Expand Down
100 changes: 100 additions & 0 deletions .github/workflows/zk-proving.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
name: Run SP1 runner on `replay.wasm`

on:
workflow_dispatch:
pull_request:
branches:
- zk-prove-any/sp1-runner

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}-${{ github.ref }}
cancel-in-progress: true

jobs:
zk-proving:
name: Run SP1 runner on `replay.wasm`
runs-on: arbitrator-ci
defaults:
run:
shell: bash
steps:
- name: Checkout
uses: actions/checkout@v6
with:
submodules: recursive

- name: Setup CI
uses: ./.github/actions/ci-setup

- name: Install protobuf-compiler
run: sudo apt install -y protobuf-compiler

- name: Setup LLVM
uses: ZhongRuoyu/setup-llvm@v0
with:
llvm-version: 21

- name: Install SP1 toolchain
run: |
curl -L https://sp1up.succinct.xyz | bash
$HOME/.sp1/bin/sp1up -v v6.0.0-beta.1

- name: Print versions
run: |
rustc +succinct --version
rustc +succinct --print target-list | grep succinct

- name: Build binaries and record block
run: ./crates/sp1/build.sh

# Clippy runs after build because sp1-builder uses include_elf!(),
# which requires the SP1 ELF to exist at compile time.
- name: Clippy check (SP1)
run: cargo clippy -p program -p sp1-builder -p sp1-runner -p stylus-compiler-program -p stylus-compiler-runner -- -D warnings -A static_mut_refs -A clippy::too_many_arguments

- name: Run stylus-compiler-runner compare
# Compare compilation consistency between running it natively and in the SP1 execution mode.
run: cargo run -p stylus-compiler-runner --release -- compare

- name: Run validation
run: |
# Exit if any command in a pipe fails
set -e -o pipefail

echo "--- Running SP1 Validation ---"
# Extracting only the hex string using grep -o
SP1_HASH=$(./target/sp1/sp1-runner \
--program target/sp1/dumped_replay_wasm.elf \
--stylus-compiler-program target/sp1/stylus-compiler-program \
--block-file target/sp1/block_inputs_7.json 2>&1 \
| grep "Validation succeeds with hash" \
| awk '{print $NF}')

if [ -z "$SP1_HASH" ]; then
echo "Error: Failed to capture hash."
exit 1
fi

echo "--- Running JIT Validation ---"
JIT_HASH=$(./target/bin/jit \
--debug --cranelift \
--binary target/machines/latest/replay.wasm \
json --inputs=target/sp1/block_inputs_7.json 2>&1 \
| grep "Completed in .* with hash" \
| awk '{print $NF}' \
| sed 's/\.$//')

if [ -z "$JIT_HASH" ]; then
echo "Error: Failed to capture JIT hash."
exit 1
fi

echo "SP1 Hash: $SP1_HASH"
echo "JIT Hash: $JIT_HASH"

if [ "$SP1_HASH" != "$JIT_HASH" ]; then
echo "::error::Hash mismatch detected!"
echo "Expected: $SP1_HASH"
echo "Actual: $JIT_HASH"
exit 1
fi
1 change: 1 addition & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
[submodule "crates/tools/wasmer"]
path = crates/tools/wasmer
url = https://github.com/OffchainLabs/wasmer.git
branch = zk-prove-any/sp1-runner
[submodule "nitro-testnode"]
path = nitro-testnode
url = https://github.com/OffchainLabs/nitro-testnode.git
Expand Down
Loading
Loading