Skip to content

morty/permissionless batches recovery #1639

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 129 commits into
base: jt/permissionless-batches-recovery
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
129 commits
Select commit Hold shift + click to select a range
af38122
chore: auto version bump [bot]
jonastheis Mar 10, 2025
2cc9f65
chore: auto version bump [bot]
georgehao Mar 11, 2025
eacdc78
fix(bridge-history): overwrite l2geth dependency by replace (#1617)
colinlyguo Mar 11, 2025
7ec6d47
feat: openvm euclid v2
colinlyguo Mar 10, 2025
893bf18
update Cargo.lock
colinlyguo Mar 10, 2025
b3c1df7
revert a change
colinlyguo Mar 10, 2025
110083c
update rust version in CI
colinlyguo Mar 10, 2025
fcbaa67
update dependencies
colinlyguo Mar 11, 2025
2d40f0f
fix: chunk task deserialisation from prove request input (#1620)
roynalnaruto Mar 11, 2025
c743efd
Merge branch 'develop' into feat/openvm-euclid-v2
colinlyguo Mar 11, 2025
1ea9aca
Merge branch 'develop' into feat/openvm-euclid-v2
colinlyguo Mar 11, 2025
88da493
update prover client
colinlyguo Mar 11, 2025
b8c7ec2
fix: compilation
roynalnaruto Mar 11, 2025
f288179
dbg: add dbg logs for prover vks
roynalnaruto Mar 11, 2025
64368f9
dbg: proof types from req
roynalnaruto Mar 11, 2025
be88ef6
dbg: more println
roynalnaruto Mar 11, 2025
fe6451b
revert dbg commits
roynalnaruto Mar 11, 2025
bcc6b0f
add PrevMsgQueueHash in chunk task detail
colinlyguo Mar 12, 2025
5cf8cda
add logs
colinlyguo Mar 12, 2025
8db4e5c
update scroll-proving-sdk
colinlyguo Mar 12, 2025
a6ed321
update scroll-zkvm-prover v0.1.1-rc.2
kunxian-xia Mar 12, 2025
7486236
update scroll-proving-sdk
colinlyguo Mar 12, 2025
b984341
euclid & euclidv2 compatible logic
colinlyguo Mar 12, 2025
8cf087c
update scroll-proving-sdk
colinlyguo Mar 12, 2025
9996af6
Revert "revert dbg commits"
colinlyguo Mar 12, 2025
0e82c63
add back dbg logs
colinlyguo Mar 12, 2025
2846ecf
fix a compilatin error
colinlyguo Mar 12, 2025
ad2e94e
support euclidV2 in proof handling
colinlyguo Mar 12, 2025
0fc28cb
fix(coordinator): euclid v2 prover compatibility (#1625)
yiweichi Mar 12, 2025
ef9e25f
feat: add euclidv2 verifier
omerfirmak Mar 12, 2025
e3b17a0
add PostMsgQueueHash in chunk info
colinlyguo Mar 12, 2025
86e6555
Merge branch 'develop' into feat/openvm-euclid-v2
colinlyguo Mar 12, 2025
87e1235
fix
colinlyguo Mar 12, 2025
5f8bb53
update scroll-proving-sdk version (#1626)
yiweichi Mar 12, 2025
7d5b77a
Revert "feat: add euclidv2 verifier"
colinlyguo Mar 12, 2025
12a262a
align new types
colinlyguo Mar 12, 2025
5869bfd
load low version open vm circuit
colinlyguo Mar 12, 2025
7d4ff80
update type error
colinlyguo Mar 12, 2025
9f480e5
fix
colinlyguo Mar 12, 2025
459941d
use hexutil.Big
colinlyguo Mar 12, 2025
b4546af
remove load vks
colinlyguo Mar 12, 2025
3a3db5f
add logs
colinlyguo Mar 12, 2025
cb87c7a
another type fix
colinlyguo Mar 12, 2025
4822d38
fix
colinlyguo Mar 12, 2025
8befb84
fix
colinlyguo Mar 12, 2025
2d620dd
fix
colinlyguo Mar 12, 2025
bab0e4f
Merge branch 'develop' into feat/openvm-euclid-v2
colinlyguo Mar 13, 2025
135073c
Reapply "feat: add euclidv2 verifier"
colinlyguo Mar 13, 2025
77d6322
fix
colinlyguo Mar 13, 2025
cf41048
Update rc3 (#1629)
yiweichi Mar 13, 2025
11afeb1
update verifier
colinlyguo Mar 13, 2025
07d1621
update scroll-proving-sdk commit (#1630)
yiweichi Mar 13, 2025
60877d3
fix: reduce segment len in prover config (#1631)
roynalnaruto Mar 13, 2025
9b5c42e
tweak logs
colinlyguo Mar 14, 2025
ae212a9
fix logs
colinlyguo Mar 14, 2025
09790c4
fix: clap deprecated warnings
yiweichi Mar 14, 2025
0bb5314
fix: byte48 type required in prover (#1627)
noel2004 Mar 14, 2025
901693a
remove a log
colinlyguo Mar 14, 2025
3454c6c
update scroll-proving-sdk commit
yiweichi Mar 15, 2025
c6f0299
feat: euclid v2 GPU prover (#1623)
kunxian-xia Mar 17, 2025
4b21c79
update scroll-proving-sdk commit
yiweichi Mar 17, 2025
3ee2d2b
tweaks
colinlyguo Mar 17, 2025
e333288
merge message.LegacyChunkTaskDetail and message.EuclidV2ChunkTaskDetail
colinlyguo Mar 18, 2025
2fb27ce
Merge branch 'develop' into feat/openvm-euclid-v2
colinlyguo Mar 18, 2025
b3e4667
remove FIXME
colinlyguo Mar 18, 2025
ed05728
add back fixme
colinlyguo Mar 18, 2025
d0cb8b9
apply changes for sanity checks
colinlyguo Mar 19, 2025
77dceae
fix
colinlyguo Mar 19, 2025
b73acca
update scroll-proving-sdk commit
yiweichi Mar 20, 2025
1bec964
Adapt to rc11 (unified phase) (#1637)
noel2004 Mar 26, 2025
8994767
upgrade stark-gpu crate
kunxian-xia Mar 27, 2025
b59db73
hardcode openvm vks
colinlyguo Mar 27, 2025
5cfb8b6
change string to var
colinlyguo Mar 27, 2025
01d0e48
add more details in the log
colinlyguo Mar 27, 2025
78a458d
update logs
colinlyguo Mar 27, 2025
83c0a08
fix
colinlyguo Mar 27, 2025
42bfcb8
add euclid v1 and v2 to hard fork map
colinlyguo Mar 27, 2025
d82e109
update scroll-proving-sdk dep
colinlyguo Mar 27, 2025
2a8330c
fix
colinlyguo Mar 27, 2025
4c2a755
fix
colinlyguo Mar 27, 2025
2b318ec
add zero padding in BlobBytes
colinlyguo Mar 27, 2025
886af07
fix challenge digest
colinlyguo Mar 27, 2025
9033471
tmp comment out a Don't dispatch logic
colinlyguo Mar 27, 2025
9bb768e
fix
colinlyguo Mar 27, 2025
0023934
fix: permissionless batch signal import
yiweichi Mar 27, 2025
c484925
add back BlobBytes
colinlyguo Mar 27, 2025
917b143
Remove mask
colinlyguo Mar 27, 2025
8f4fc9a
uncomment some logic
colinlyguo Mar 28, 2025
1572680
update challenge digest and zkvm prover dep
colinlyguo Mar 28, 2025
d113865
upgrade stark-gpu crate
Velaciela Mar 28, 2025
de9a397
feat: add config to enable submit with/without proof
yiweichi Mar 31, 2025
0df9ede
temporarily mask challenge digest
colinlyguo Mar 31, 2025
4c4cff0
temporarily mask KzgProof
colinlyguo Mar 31, 2025
e04eaa9
Add log when GetBlobByVersionedHashAndBlockTime
yiweichi Mar 31, 2025
80af426
unmask cross-check fields and update scroll-proving-sdk deps
colinlyguo Mar 31, 2025
c65622b
Merge branch 'develop' into feat/openvm-euclid-v2
colinlyguo Apr 1, 2025
38af170
chore: auto version bump [bot]
colinlyguo Apr 1, 2025
87fc179
Merge branch 'feat/openvm-euclid-v2' into morty/permissionless-batche…
yiweichi Apr 1, 2025
445b6bf
update docker compose
yiweichi Apr 1, 2025
db65d8d
update docker compose
yiweichi Apr 1, 2025
f045984
update da-codec deps
colinlyguo Apr 1, 2025
c3c733c
update docker compose
yiweichi Apr 1, 2025
a808f4b
update docker compose
yiweichi Apr 1, 2025
8b52ad5
fix: compose depends
yiweichi Apr 1, 2025
ec4b1bf
add coordinator_run.sh
yiweichi Apr 1, 2025
6356c79
chmod exec coordinator_run.sh
yiweichi Apr 1, 2025
bc05b87
update run.sh
yiweichi Apr 1, 2025
52c9eab
fix: prover_run.sh
yiweichi Apr 1, 2025
20a4c38
fix: prover db path
yiweichi Apr 1, 2025
eb04383
fix: prover network mode
yiweichi Apr 1, 2025
83ba892
fix: prover health listener port
yiweichi Apr 1, 2025
dced0c6
bump minor version
colinlyguo Apr 2, 2025
8b7f280
Merge branch 'feat/openvm-euclid-v2' into morty/permissionless-batche…
yiweichi Apr 2, 2025
9d43e97
fix: geth dependency
yiweichi Apr 2, 2025
8d76b47
fix: coordinator ci
yiweichi Apr 2, 2025
e7597b3
hardcode stateroot for testing
yiweichi Apr 2, 2025
69a71ec
hardcode stateroot for testing
yiweichi Apr 2, 2025
e3bab24
fix: get state root for permission less chunk
yiweichi Apr 2, 2025
e011f6a
update geth version
yiweichi Apr 2, 2025
0d95f6a
update geth version
yiweichi Apr 2, 2025
a5e911e
fix: typo
yiweichi Apr 2, 2025
4046579
docs: update readme
yiweichi Apr 3, 2025
ecc3926
fix: makefile
yiweichi Apr 3, 2025
17214d4
fix: coordinator_run.sh
yiweichi Apr 3, 2025
e3a1e5d
fix: makefile
yiweichi Apr 3, 2025
50d5e65
fix: makefile
yiweichi Apr 3, 2025
3be65c1
fix: makefile
yiweichi Apr 3, 2025
912726d
fix: ci
yiweichi Apr 3, 2025
e1fa955
Merge branch 'jt/permissionless-batches-recovery' into morty/permissi…
yiweichi Apr 11, 2025
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
1 change: 0 additions & 1 deletion permissionless-batches/.gitignore
Original file line number Diff line number Diff line change
@@ -1 +0,0 @@
conf/
25 changes: 25 additions & 0 deletions permissionless-batches/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
.PHONY: batch-production-submission launch_local_prover launch_cloud_prover psql check_proving_status

export SCROLL_ZKVM_VERSION=0.2.0
PG_URL=postgres://postgres@localhost:5432/scroll

batch_production_submission:
docker compose --profile batch-production-submission up

local_prover:
docker compose --profile local-prover up

cloud_prover:
docker compose --profile cloud-prover up

psql:
psql 'postgres://postgres@localhost:5432/scroll'

check_proving_status:
@echo "Checking proving status..."
@result=$$(psql "${PG_URL}" -t -c "SELECT proving_status = 4 AS is_status_success FROM batch ORDER BY index LIMIT 1;" | tr -d '[:space:]'); \
if [ "$$result" = "t" ]; then \
echo "✅ Prove succeeded! You're ready to submit permissionless batch and proof!"; \
else \
echo "Proof is not ready..."; \
fi
29 changes: 22 additions & 7 deletions permissionless-batches/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,27 +90,42 @@ To produce a batch you need to run the `batch-production-submission` profile in
3. Fill in required fields in `conf/relayer/config.json`


Run with `docker compose --profile batch-production-submission up`.
Run with `make batch_production_submission`.
This will produce chunks, a batch and bundle which will be proven in the next step.
`Success! You're ready to generate proofs!` indicates that everything is working correctly and the batch is ready to be proven.

#### Proving a batch
To prove the chunk, batch and bundle you just generated you need to run the `proving` profile in `docker-compose.yml`.
To prove the chunk, batch and bundle you just generated you need to run the `local-prover` or `cloud-prover` profile in `docker-compose.yml`.

Local Proving:

1. Hardware spec for local prover: CPU: 36+ core, 128G memory GPU: 24G memory (eg. Rtx 3090/3090Ti/4090/A10/L4)
2. Make sure `verifier` `low_version_circuit` and `high_version_circuit` in `conf/coordinator/config.json` are correct for the latest fork: [TODO link list with versions](#batch-production-toolkit)
2. Set the `SCROLL_ZKVM_VERSION` environment variable on `Makefile` to the correct version. [TODO link list with versions](#batch-production-toolkit)
4. Fill in the required fields in `conf/proving-service/local-prover/config.json`

Run with `make local_prover`.

Cloud Proving:

1. Make sure `verifier` `low_version_circuit` and `high_version_circuit` in `conf/coordinator/config.json` are correct for the latest fork: [TODO link list with versions](#batch-production-toolkit)
2. Download the latest `assets` and `params` for the circuit from [TODO link list with versions](#batch-production-toolkit) into `conf/coordinator/assets` and `conf/coordinator/params` respectively.
3. Fill in the required fields in `conf/proving-service/config.json`. It is recommended to use Sindri. You'll need to obtain credits and an API key from their [website](https://sindri.app/).
4. Alternatively, you can run your own prover: https://github.com/scroll-tech/scroll-prover. However, this requires more configuration.
2. Set the `SCROLL_ZKVM_VERSION` environment variable on `Makefile` to the correct version. [TODO link list with versions](#batch-production-toolkit)
3. Fill in the required fields in `conf/proving-service/cloud-prover/config.json`. It is recommended to use Sindri. You'll need to obtain credits and an API key from their [website](https://sindri.app/).

Run with `make cloud_prover`.

This will prove chunks, the batch and bundle.
Run `make check_proving_status`
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe not related to this PR, but do we have some docs for the next step? e.g., withdraw the funds in L1. If any, it's nice to have it placed here.

`Success! You're ready to submit permissionless batch and proof!` indicates that everything is working correctly and the batch is ready to be submit.

Run with `docker compose --profile proving up`.


#### Batch submission
To submit the batch you need to run the `batch-production-submission` profile in `docker-compose.yml`.

1. Fill in required fields in `conf/relayer/config.json` for the sender config.

Run with `docker compose --profile batch-production-submission up`.
Run with `make batch_production_submission`.
This will submit the batch to L1 and finalize it. The transaction will be retried in case of failure.

**Troubleshooting**
Expand Down
31 changes: 15 additions & 16 deletions permissionless-batches/conf/coordinator/config.json
Original file line number Diff line number Diff line change
@@ -1,23 +1,22 @@
{
"prover_manager": {
"provers_per_session": 1,
"session_attempts": 5,
"bundle_collection_time_sec": 3600,
"batch_collection_time_sec": 3600,
"chunk_collection_time_sec": 3600,
"session_attempts": 100,
"chunk_collection_time_sec": 36000,
"batch_collection_time_sec": 2700,
"bundle_collection_time_sec": 2700,
"verifier": {
"mock_mode": false,
"low_version_circuit": {
"params_path": "./conf/params",
"assets_path": "./conf/assets",
"fork_name": "darwinV2",
"min_prover_version": "v4.4.55"
},
"high_version_circuit": {
"params_path": "./conf/params",
"assets_path": "./conf/assets",
"low_version_circuit" : {
"fork_name": "darwinV2",
"params_path": "/verifier/params",
"assets_path": "/verifier/assets",
"min_prover_version": "v4.4.56"
},
"high_version_circuit" : {
"fork_name": "euclid",
"assets_path": "/verifier/openvm/verifier",
"min_prover_version": "v4.4.98"
}
}
},
Expand All @@ -28,11 +27,11 @@
"maxIdleNum": 20
},
"l2": {
"chain_id": 111
"chain_id": 333333
},
"auth": {
"secret": "prover secret key",
"challenge_expire_duration_sec": 3600,
"secret": "e788b62d39254928a821ac1c76b274a8c835aa1e20ecfb6f50eb10e87847de44",
"challenge_expire_duration_sec": 10,
"login_expire_duration_sec": 3600
}
}
127 changes: 127 additions & 0 deletions permissionless-batches/conf/coordinator/coordinator_run.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
#!/usr/bin/bash

apt update
apt install -y wget libdigest-sha-perl

# release version
if [ -z "${SCROLL_ZKVM_VERSION}" ]; then
echo "SCROLL_ZKVM_VERSION not set"
exit 1
fi

if [ -z "${HTTP_PORT}" ]; then
echo "HTTP_PORT not set"
exit 1
fi

if [ -z "${METRICS_PORT}" ]; then
echo "METRICS_PORT not set"
exit 1
fi

case $CHAIN_ID in
"5343532222") # staging network
echo "staging network not supported"
exit 1
;;
"534353") # alpha network
echo "alpha network not supported"
exit 1
;;
esac

BASE_DOWNLOAD_DIR="/verifier"
# Ensure the base directory exists
mkdir -p "$BASE_DOWNLOAD_DIR"

# Set subdirectories
ASSETS_DIR="$BASE_DOWNLOAD_DIR/assets"
OPENVM_DIR="$BASE_DOWNLOAD_DIR/openvm"

# Create necessary directories
mkdir -p "$ASSETS_DIR"
mkdir -p "$OPENVM_DIR/verifier"

# Define URLs for asset files
ASSETS_CHECKSUM_URL="https://circuit-release.s3.us-west-2.amazonaws.com/release-v0.13.1/sha256sum"
ASSETS_CHECKSUM_FILE="$ASSETS_DIR/sha256sum"

ASSETS_URLS=(
"https://circuit-release.s3.us-west-2.amazonaws.com/release-v0.13.1/vk_batch.vkey"
"https://circuit-release.s3.us-west-2.amazonaws.com/release-v0.13.1/vk_bundle.vkey"
"https://circuit-release.s3.us-west-2.amazonaws.com/release-v0.13.1/vk_chunk.vkey"
)

# Define URLs for OpenVM files (No checksum verification)
OPENVM_URLS=(
"https://circuit-release.s3.us-west-2.amazonaws.com/scroll-zkvm/releases/$SCROLL_ZKVM_VERSION/verifier/verifier.bin"
"https://circuit-release.s3.us-west-2.amazonaws.com/scroll-zkvm/releases/$SCROLL_ZKVM_VERSION/verifier/root-verifier-vm-config"
"https://circuit-release.s3.us-west-2.amazonaws.com/scroll-zkvm/releases/$SCROLL_ZKVM_VERSION/verifier/root-verifier-committed-exe"
)

# Function to download and verify files (skips existing valid files)
download_and_verify() {
local url="$1"
local dest_dir="$2"
local checksum_file="$3"

local filename=$(basename "$url")
local filepath="$dest_dir/$filename"

if [[ -f "$filepath" ]]; then
echo "Checking existing file: $filename..."
if grep "$filename" "$checksum_file" | sed "s|$filename|$filepath|" | sha256sum --check --status; then
echo "File is already present and valid ✅ - Skipping download."
return
else
echo "File exists but checksum mismatch ❌ - Re-downloading."
rm -f "$filepath"
fi
fi

echo "Downloading $filename..."
curl -o "$filepath" -L "$url"

if [[ ! -f "$filepath" ]]; then
echo "Download failed for $filename ❌"
exit 1
fi

echo "Verifying checksum for $filename..."
grep "$filename" "$checksum_file" | sed "s|$filename|$filepath|" | sha256sum --check --status || exit 1
echo "Checksum verification passed for $filename ✅"
}

# Download and verify asset files
curl -o "$ASSETS_CHECKSUM_FILE" -L "$ASSETS_CHECKSUM_URL"
for url in "${ASSETS_URLS[@]}"; do
download_and_verify "$url" "$ASSETS_DIR" "$ASSETS_CHECKSUM_FILE"
done

# Download OpenVM files (No checksum verification, but skips if file exists)
for url in "${OPENVM_URLS[@]}"; do
dest_subdir="$OPENVM_DIR/$(basename $(dirname "$url"))"
mkdir -p "$dest_subdir"

filepath="$dest_subdir/$(basename "$url")"
echo "Downloading $filepath..."
curl -o "$filepath" -L "$url"
done

mkdir -p "$HOME/.openvm"
ln -s "$OPENVM_DIR/params" "$HOME/.openvm/params"

echo "All files downloaded successfully! 🎉"

mkdir -p /usr/local/bin
wget https://github.com/ethereum/solidity/releases/download/v0.8.19/solc-static-linux -O /usr/local/bin/solc
chmod +x /usr/local/bin/solc

# Start coordinator
echo "Starting coordinator api"

RUST_BACKTRACE=1 exec coordinator_api --config /coordinator/config.json \
--genesis /coordinator/genesis.json \
--http --http.addr "0.0.0.0" --http.port ${HTTP_PORT} \
--metrics --metrics.addr "0.0.0.0" --metrics.port ${METRICS_PORT} \
--log.debug
Empty file.
Empty file.
Empty file.
Empty file.
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
{
"prover_name_prefix": "prover",
"keys_dir": "keys",
"coordinator": {
"base_url": "http://coordinator:8390",
"retry_count": 10,
"retry_wait_time_sec": 10,
"connection_timeout_sec": 30
},
"l2geth": {
"endpoint": "<L2 RPC with generated blocks reachable from Docker network>"
},
"prover": {
"circuit_type": 2,
"supported_proof_types": [
1,
2,
3
],
"circuit_version": "v0.13.1"
},
"db_path": "db"
}
26 changes: 0 additions & 26 deletions permissionless-batches/conf/proving-service/config.json

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{
"sdk_config": {
"prover_name_prefix": "local_prover",
"keys_dir": "/keys",
"db_path": "/db",
"coordinator": {
"base_url": "http://172.17.0.1:8556",
"retry_count": 10,
"retry_wait_time_sec": 10,
"connection_timeout_sec": 30
},
"l2geth": {
"endpoint": "<L2 RPC with generated blocks reachable from Docker network>"
},
"prover": {
"circuit_type": 2,
"supported_proof_types": [1,2,3],
"circuit_version": "v0.13.1"
},
"health_listener_addr": "0.0.0.0:89"
},
"circuits": {
"euclidV2": {
"hard_fork_name": "euclidV2",
"workspace_path": "/openvm"
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
#!/usr/bin/bash

apt update
apt install -y wget curl

# release version
if [ -z "${SCROLL_ZKVM_VERSION}" ]; then
echo "SCROLL_ZKVM_VERSION not set"
exit 1
fi

BASE_DOWNLOAD_DIR="/openvm"
# Ensure the base directory exists
mkdir -p "$BASE_DOWNLOAD_DIR"

# Define URLs for OpenVM files (No checksum verification)
OPENVM_URLS=(
"https://circuit-release.s3.us-west-2.amazonaws.com/scroll-zkvm/releases/$SCROLL_ZKVM_VERSION/chunk/app.vmexe"
"https://circuit-release.s3.us-west-2.amazonaws.com/scroll-zkvm/releases/$SCROLL_ZKVM_VERSION/chunk/openvm.toml"
"https://circuit-release.s3.us-west-2.amazonaws.com/scroll-zkvm/releases/$SCROLL_ZKVM_VERSION/batch/app.vmexe"
"https://circuit-release.s3.us-west-2.amazonaws.com/scroll-zkvm/releases/$SCROLL_ZKVM_VERSION/batch/openvm.toml"
"https://circuit-release.s3.us-west-2.amazonaws.com/scroll-zkvm/releases/$SCROLL_ZKVM_VERSION/bundle/app.vmexe"
"https://circuit-release.s3.us-west-2.amazonaws.com/scroll-zkvm/releases/$SCROLL_ZKVM_VERSION/bundle/app_euclidv1.vmexe"
"https://circuit-release.s3.us-west-2.amazonaws.com/scroll-zkvm/releases/$SCROLL_ZKVM_VERSION/bundle/openvm.toml"
"https://circuit-release.s3.us-west-2.amazonaws.com/scroll-zkvm/releases/$SCROLL_ZKVM_VERSION/bundle/verifier.bin"
"https://circuit-release.s3.us-west-2.amazonaws.com/scroll-zkvm/releases/$SCROLL_ZKVM_VERSION/bundle/verifier.sol"
"https://circuit-release.s3.us-west-2.amazonaws.com/scroll-zkvm/releases/$SCROLL_ZKVM_VERSION/bundle/digest_1.hex"
"https://circuit-release.s3.us-west-2.amazonaws.com/scroll-zkvm/releases/$SCROLL_ZKVM_VERSION/bundle/digest_2.hex"
"https://circuit-release.s3.us-west-2.amazonaws.com/scroll-zkvm/releases/$SCROLL_ZKVM_VERSION/bundle/digest_1_euclidv1.hex"
"https://circuit-release.s3.us-west-2.amazonaws.com/scroll-zkvm/releases/$SCROLL_ZKVM_VERSION/bundle/digest_2_euclidv1.hex"
"https://circuit-release.s3.us-west-2.amazonaws.com/scroll-zkvm/params/kzg_bn254_22.srs"
"https://circuit-release.s3.us-west-2.amazonaws.com/scroll-zkvm/params/kzg_bn254_24.srs"
)

# Download OpenVM files (No checksum verification, but skips if file exists)
for url in "${OPENVM_URLS[@]}"; do
dest_subdir="$BASE_DOWNLOAD_DIR/$(basename $(dirname "$url"))"
mkdir -p "$dest_subdir"

filepath="$dest_subdir/$(basename "$url")"
echo "Downloading $filepath..."
curl -o "$filepath" -L "$url"
done

mkdir -p "$HOME/.openvm"
ln -s "/openvm/params" "$HOME/.openvm/params"

mkdir -p /usr/local/bin
wget https://github.com/ethereum/solidity/releases/download/v0.8.19/solc-static-linux -O /usr/local/bin/solc
chmod +x /usr/local/bin/solc

mkdir -p /openvm/cache

RUST_MIN_STACK=16777216 RUST_BACKTRACE=1 exec /prover/prover --config /prover/conf/config.json

Loading
Loading