Skip to content

Commit 9275231

Browse files
authored
Merge pull request #573 from 0xPolygon/jihwan/integrations-test
feat: jihwan/integrations branch + signed commits
2 parents 5a48b82 + 706be71 commit 9275231

45 files changed

Lines changed: 1847 additions & 469 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
#!/bin/bash
2+
3+
# This script monitors the verification progress of zkEVM batches.
4+
# It queries a specified RPC URL and tracks the number of batches.
5+
6+
# Function to display usage information.
7+
usage() {
8+
echo "Usage: $0 --enclave <ENCLAVE> --rpc-url <URL> --target <TARGET> --timeout <TIMEOUT>"
9+
echo " --enclave: The name of the Kurtosis enclave."
10+
echo " --rpc-url: The RPC URL to query."
11+
echo " --target: The target number of batches."
12+
echo " --timeout: The script timeout in seconds."
13+
exit 1
14+
}
15+
16+
# Initialize variables.
17+
enclave=""
18+
rpc_url=""
19+
target="10"
20+
timeout="900" # 15 minutes.
21+
22+
# Parse command line arguments
23+
while [[ $# -gt 0 ]]; do
24+
key="$1"
25+
case $key in
26+
--enclave)
27+
enclave="$2"
28+
shift 2
29+
;;
30+
--rpc-url)
31+
rpc_url="$2"
32+
shift 2
33+
;;
34+
--target)
35+
target="$2"
36+
shift 2
37+
;;
38+
--timeout)
39+
timeout="$2"
40+
shift 2
41+
;;
42+
*)
43+
echo "Error: unknown argument: $key"
44+
usage
45+
;;
46+
esac
47+
done
48+
49+
# Check if the required argument is provided.
50+
if [ -z "$enclave" ]; then
51+
echo "Error: enclave name is required."
52+
usage
53+
fi
54+
55+
if [ -z "$rpc_url" ]; then
56+
echo "Error: rpc url is required."
57+
usage
58+
fi
59+
60+
# Print script parameters for debug purposes.
61+
echo "Running script with values:"
62+
echo "- Enclave: $enclave"
63+
echo "- RPC URL: $rpc_url"
64+
echo "- Target: $target"
65+
echo "- Timeout: $timeout"
66+
echo
67+
68+
# Calculate the end time based on the current time and the specified timeout.
69+
start_time=$(date +%s)
70+
end_time=$((start_time + timeout))
71+
72+
# Main loop to monitor batch verification.
73+
gas_price_factor=1
74+
while true; do
75+
# Check if there are any stopped services.
76+
stopped_services="$(kurtosis enclave inspect "$enclave" | grep STOPPED)"
77+
if [[ -n "$stopped_services" ]]; then
78+
echo "It looks like there is at least one stopped service in the enclave... Something must have halted..."
79+
echo "$stopped_services"
80+
echo
81+
82+
kurtosis enclave inspect "$enclave" --full-uuids | grep STOPPED | awk '{print $2 "--" $1}' \
83+
| while read -r container; do echo "Printing logs for $container"; docker logs --tail 50 "$container"; done
84+
exit 1
85+
fi
86+
87+
# Query the number of batches from the RPC URL.
88+
batch_number="$(cast to-dec "$(cast rpc --rpc-url "$rpc_url" zkevm_batchNumber | sed 's/"//g')")"
89+
echo "[$(date '+%Y-%m-%d %H:%M:%S')] Latest Batch: $batch_number"
90+
91+
# Check if the batches target has been reached.
92+
if ((batch_number > target)); then
93+
echo "[$(date '+%Y-%m-%d %H:%M:%S')] ✅ Exiting... More than $target batches were created!"
94+
exit 0
95+
fi
96+
97+
# Check if the timeout has been reached.
98+
current_time=$(date +%s)
99+
if ((current_time > end_time)); then
100+
echo "[$(date '+%Y-%m-%d %H:%M:%S')] ❌ Exiting... Timeout reached!"
101+
exit 1
102+
fi
103+
104+
gas_price=$(cast gas-price --rpc-url "$rpc_url")
105+
gas_price=$(bc -l <<< "$gas_price * $gas_price_factor" | sed 's/\..*//')
106+
107+
echo "Sending a transaction to increase the batch number..."
108+
cast send \
109+
--legacy \
110+
--timeout 30 \
111+
--gas-price "$gas_price" \
112+
--rpc-url "$rpc_url" \
113+
--private-key "0x12d7de8621a77640c9241b2595ba78ce443d05e94090365ab3bb5e19df82c625" \
114+
--gas-limit 100000 \
115+
--create 0x6001617000526160006110005ff05b6109c45a111560245761600061100080833c600e565b50
116+
ret_code=$?
117+
if [[ $ret_code -eq 0 ]]; then
118+
gas_price_factor=1
119+
else
120+
gas_price_factor=$(bc -l <<< "$gas_price_factor * 1.5")
121+
fi
122+
123+
echo "Waiting a few seconds before the next iteration..."
124+
echo
125+
sleep 10
126+
done

.github/tests/chains/l1-cdk1-cdk2.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ deployment_stages:
1010
deploy_optimism_rollup: true
1111

1212
args:
13-
agglayer_prover_sp1_key: null
13+
sp1_prover_key: null
1414
agglayer_prover_primary_prover: "mock-prover"
1515
consensus_contract_type: pessimistic
1616
erigon_strict_mode: false
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
# This args-file deploys the OP Succinct chain.
2+
deployment_stages:
3+
deploy_optimism_rollup: true
4+
deploy_op_succinct: true
5+
6+
args:
7+
# Arbitrary key for the SP1 prover. This will not work if op_succinct_mock is set to false. Replace with a valid SPN key if you want to use the network provers.
8+
# cast wallet private-key --mnemonic "giant issue aisle success illegal bike spike question tent bar rely arctic volcano long crawl hungry vocal artwork sniff fantasy very lucky have athlete"
9+
sp1_prover_key: "0xbcdf20249abf0ed6d944c0288fad489e33f66b3960d9e6229c1cd214ed3bbe31" # XXX: Replace with an active key
10+
# Valid values are: "network-prover", "mock-prover"
11+
agglayer_prover_primary_prover: "network-prover"
12+
# Valid values are: "network-prover", "mock-prover"
13+
aggkit_prover_primary_prover: "network-prover"
14+
consensus_contract_type: fep
15+
# true = mock
16+
# false = network
17+
# Using the network provers will use the real SP1 verifier contract which is also deployed together in the Kurtosis devnet.
18+
# A mock verifier is used otherwise.
19+
op_succinct_mock: false
20+
# Enable real (non-mock) verifier on contracts
21+
zkevm_use_real_verifier: true
22+
# Enable the integration with the Agglayer
23+
op_succinct_agglayer: true
24+
# Proof type. Must match the verifier gateway contract type. Options: "plonk", "groth16", "compressed", "core"
25+
op_succinct_agg_proof_mode: "compressed"
26+
# The maximum number of blocks to include in each span proof. For chains with high throughput, you need to decrease this value.
27+
op_succinct_proposer_span_proof: "60"
28+
# The minimum interval in L2 blocks at which checkpoints must be submitted. An aggregation proof can be posted for any range larger than this interval.
29+
op_succinct_submission_interval: "1"
30+
# The maximum number of concurrent proof requests to send to the `op-succinct-server`
31+
op_succinct_max_concurrent_proof_requests: "1"
32+
# The maximum number of concurrent witness generation processes to run on the `op-succinct-server`
33+
op_succinct_max_concurrent_witness_gen: "1"
34+
# Must match network_id field in network_params.network_id
35+
zkevm_rollup_chain_id: 2151908
36+
# The number following the "-" should be identical to network_params.name
37+
deployment_suffix: "-001"
38+
zkevm_rollup_id: 1
39+
# OP Networks rely on L1 blocks to have finalization on L2. This means if the L1 blocktime is very fast, OP Succinct proof requests will have to bundle many L1 blocks into a single proof.
40+
# This will significantly increase cycles even if the L2 network is empty. Instead of having 2s, for OP Succinct deployments, we recommend 12s.
41+
# Note this will noticeably increase the deployment time because of the increased L1 finality.
42+
l1_seconds_per_slot: 2 # TEMPORARY - DO NOT MERGE
43+
additional_services:
44+
- bridge_spammer
45+
46+
optimism_package:
47+
# We need this for pre-deployed allocs https://github.com/ethpandaops/optimism-package/compare/main...xavier-romero:optimism-package:main#diff-c479a5b20e37b19a976045939f01e8a6deb6a062a147e08b81049469d512d00cR235
48+
# "github.com/ethpandaops/optimism-package/main.star@884f4eb813884c4c8e5deead6ca4e0c54b85da90",
49+
source: "github.com/xavier-romero/optimism-package/main.star@355b15efd61b603d2302478dd4b3ef74ccc6e462"
50+
predeployed_contracts: true
51+
chains:
52+
- participants:
53+
- el_type: op-geth
54+
el_image: "us-docker.pkg.dev/oplabs-tools-artifacts/images/op-geth@sha256:8cad527a982e929f80fca539e612c59ccb503fc076b86ce1f4ebeefb112dee03"
55+
cl_type: op-node
56+
cl_image: "us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node@sha256:207943c6ca92a203e5c2f7908769023c76d2304060c8d8c4cfbd469b7fbaaf0d"
57+
count: 1
58+
batcher_params:
59+
image: "us-docker.pkg.dev/oplabs-tools-artifacts/images/op-batcher@sha256:a017bf0a1dbe88e770eb6979354a148534b36e58ea7bc2fd7ae01f5e90eb9ed3"
60+
proposer_params:
61+
enabled: false
62+
challenger_params:
63+
enabled: false
64+
network_params:
65+
name: "001"
66+
network_id: "2151908"
67+
seconds_per_slot: 1
68+
op_contract_deployer_params:
69+
# image: "us-docker.pkg.dev/oplabs-tools-artifacts/images/op-deployer:v0.0.12"
70+
image: "xavierromero/op-deployer:20250314"
71+
l1_artifacts_locator: "https://storage.googleapis.com/oplabs-contract-artifacts/artifacts-v1-fffcbb0ebf7f83311791534a41e65ef90df47797f9ca8f86941452f597f7128c.tar.gz"
72+
l2_artifacts_locator: "https://storage.googleapis.com/oplabs-contract-artifacts/artifacts-v1-fffcbb0ebf7f83311791534a41e65ef90df47797f9ca8f86941452f597f7128c.tar.gz"
73+
observability:
74+
enabled: true

.github/tests/chains/op-succinct.yml

Lines changed: 27 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -6,23 +6,25 @@ deployment_stages:
66
args:
77
# Arbitrary key for the SP1 prover. This will not work if op_succinct_mock is set to false. Replace with a valid SPN key if you want to use the network provers.
88
# cast wallet private-key --mnemonic "giant issue aisle success illegal bike spike question tent bar rely arctic volcano long crawl hungry vocal artwork sniff fantasy very lucky have athlete"
9-
agglayer_prover_sp1_key: "0xbcdf20249abf0ed6d944c0288fad489e33f66b3960d9e6229c1cd214ed3bbe31"
9+
# Valid values are: "network-prover", "mock-prover"
1010
agglayer_prover_primary_prover: "mock-prover"
11-
consensus_contract_type: pessimistic
12-
op_succinct_contract_deployer_image: "jhkimqd/op-succinct-contract-deployer:v0.0.5-agglayer" # https://hub.docker.com/r/jhkimqd/op-succinct-contract-deployer
13-
op_succinct_server_image: "jhkimqd/op-succinct-server:v0.0.5-agglayer" # https://github.com/succinctlabs/op-succinct/pkgs/container/op-succinct%2Fsuccinct-proposer
14-
op_succinct_proposer_image: "jhkimqd/op-succinct-proposer:v0.0.5-agglayer" # https://github.com/succinctlabs/op-succinct/pkgs/container/op-succinct%2Fop-proposer
11+
# Valid values are: "network-prover", "mock-prover"
12+
aggkit_prover_primary_prover: "mock-prover"
13+
sp1_prover_key: "0xbcdf20249abf0ed6d944c0288fad489e33f66b3960d9e6229c1cd214ed3bbe31"
14+
consensus_contract_type: fep
1515
# true = mock
1616
# false = network
17-
# Using the network provers will use the real SP1 verifier contract which is also deployed together in the Kurtosis devent.
17+
# Using the network provers will use the real SP1 verifier contract which is also deployed together in the Kurtosis devnet.
1818
# A mock verifier is used otherwise.
19-
op_succinct_mock: false
19+
op_succinct_mock: true
2020
# Enable the integration with the Agglayer
2121
op_succinct_agglayer: true
22+
# Proof type. Must match the verifier gateway contract type. Options: "plonk", "groth16", "compressed", "core"
23+
op_succinct_agg_proof_mode: "compressed"
2224
# The maximum number of blocks to include in each span proof. For chains with high throughput, you need to decrease this value.
23-
op_succinct_proposer_span_proof: "50"
25+
op_succinct_proposer_span_proof: "3"
2426
# The minimum interval in L2 blocks at which checkpoints must be submitted. An aggregation proof can be posted for any range larger than this interval.
25-
op_succinct_submission_interval: "100"
27+
op_succinct_submission_interval: "1"
2628
# The maximum number of concurrent proof requests to send to the `op-succinct-server`
2729
op_succinct_max_concurrent_proof_requests: "1"
2830
# The maximum number of concurrent witness generation processes to run on the `op-succinct-server`
@@ -35,27 +37,36 @@ args:
3537
# OP Networks rely on L1 blocks to have finalization on L2. This means if the L1 blocktime is very fast, OP Succinct proof requests will have to bundle many L1 blocks into a single proof.
3638
# This will significantly increase cycles even if the L2 network is empty. Instead of having 2s, for OP Succinct deployments, we recommend 12s.
3739
# Note this will noticeably increase the deployment time because of the increased L1 finality.
38-
l1_seconds_per_slot: 12
40+
l1_seconds_per_slot: 2 # TEMPORARY - DO NOT MERGE
41+
additional_services:
42+
- bridge_spammer
3943

4044
optimism_package:
45+
# We need this for pre-deployed allocs https://github.com/ethpandaops/optimism-package/compare/main...xavier-romero:optimism-package:main#diff-c479a5b20e37b19a976045939f01e8a6deb6a062a147e08b81049469d512d00cR235
46+
# "github.com/ethpandaops/optimism-package/main.star@884f4eb813884c4c8e5deead6ca4e0c54b85da90",
47+
source: "github.com/xavier-romero/optimism-package/main.star@355b15efd61b603d2302478dd4b3ef74ccc6e462"
48+
predeployed_contracts: true
4149
chains:
4250
- participants:
4351
- el_type: op-geth
44-
el_image: "us-docker.pkg.dev/oplabs-tools-artifacts/images/op-geth:latest"
52+
el_image: "us-docker.pkg.dev/oplabs-tools-artifacts/images/op-geth@sha256:8cad527a982e929f80fca539e612c59ccb503fc076b86ce1f4ebeefb112dee03"
4553
cl_type: op-node
46-
cl_image: "us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:develop"
54+
cl_image: "us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node@sha256:207943c6ca92a203e5c2f7908769023c76d2304060c8d8c4cfbd469b7fbaaf0d"
4755
count: 1
4856
batcher_params:
49-
image: "us-docker.pkg.dev/oplabs-tools-artifacts/images/op-batcher:develop"
57+
image: "us-docker.pkg.dev/oplabs-tools-artifacts/images/op-batcher@sha256:a017bf0a1dbe88e770eb6979354a148534b36e58ea7bc2fd7ae01f5e90eb9ed3"
5058
proposer_params:
51-
image: "us-docker.pkg.dev/oplabs-tools-artifacts/images/op-proposer:develop"
59+
enabled: false
60+
challenger_params:
61+
enabled: false
5262
network_params:
5363
name: "001"
5464
network_id: "2151908"
5565
seconds_per_slot: 1
5666
op_contract_deployer_params:
57-
image: "us-docker.pkg.dev/oplabs-tools-artifacts/images/op-deployer:v0.0.12"
67+
# image: "us-docker.pkg.dev/oplabs-tools-artifacts/images/op-deployer:v0.0.12"
68+
image: "xavierromero/op-deployer:20250314"
5869
l1_artifacts_locator: "https://storage.googleapis.com/oplabs-contract-artifacts/artifacts-v1-fffcbb0ebf7f83311791534a41e65ef90df47797f9ca8f86941452f597f7128c.tar.gz"
5970
l2_artifacts_locator: "https://storage.googleapis.com/oplabs-contract-artifacts/artifacts-v1-fffcbb0ebf7f83311791534a41e65ef90df47797f9ca8f86941452f597f7128c.tar.gz"
6071
observability:
61-
enabled: true
72+
enabled: true

.github/tests/combinations/fork12-cdk-erigon-sovereign.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,6 @@ args:
1212
gas_token_enabled: false
1313
zkevm_use_real_verifier: false
1414
enable_normalcy: true
15-
agglayer_prover_sp1_key: ''
15+
sp1_prover_key: ''
1616
agglayer_prover_primary_prover: mock-prover
1717
sequencer_type: erigon

.github/tests/consensus/sovereign.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,6 @@ args:
66
gas_token_enabled: false
77
zkevm_use_real_verifier: false
88
enable_normalcy: true
9-
agglayer_prover_sp1_key: ""
9+
sp1_prover_key: ""
1010
agglayer_prover_primary_prover: mock-prover # use mock-prover as primary executor
1111
# agglayer_prover_primary_prover: network-prover # use network-prover as primary executor (using SP1 network)

.github/tests/nightly/op-rollup/op-custom.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ optimism_package:
2626
network_params:
2727
name: "001"
2828
network_id: 10101
29+
seconds_per_slot: 1
2930
args:
3031
verbosity: debug
3132
consensus_contract_type: pessimistic

.github/tests/nightly/op-rollup/op-default.yml

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,40 @@ deployment_stages:
33

44
args:
55
verbosity: debug
6-
consensus_contract_type: pessimistic
6+
consensus_contract_type: pessimistic
7+
zkevm_rollup_chain_id: 2151908
8+
# Arbitrary key for the SP1 prover. Replace with a valid SPN key if you want to use the network provers.
9+
# cast wallet private-key --mnemonic "giant issue aisle success illegal bike spike question tent bar rely arctic volcano long crawl hungry vocal artwork sniff fantasy very lucky have athlete"
10+
sp1_prover_key: "0xbcdf20249abf0ed6d944c0288fad489e33f66b3960d9e6229c1cd214ed3bbe31"
11+
# Valid values are: "network-prover", "mock-prover"
12+
agglayer_prover_primary_prover: "mock-prover"
13+
# Valid values are: "network-prover", "mock-prover"
14+
aggkit_prover_primary_prover: "mock-prover"
15+
16+
optimism_package:
17+
# We need this for pre-deployed allocs https://github.com/ethpandaops/optimism-package/compare/main...xavier-romero:optimism-package:main#diff-c479a5b20e37b19a976045939f01e8a6deb6a062a147e08b81049469d512d00cR235
18+
# "github.com/ethpandaops/optimism-package/main.star@884f4eb813884c4c8e5deead6ca4e0c54b85da90",
19+
source: "github.com/xavier-romero/optimism-package/main.star@d09d841bd5528f4b29144cfc7ecba88a162427ce"
20+
predeployed_contracts: true
21+
chains:
22+
- participants:
23+
- el_type: op-geth
24+
el_image: "us-docker.pkg.dev/oplabs-tools-artifacts/images/op-geth@sha256:8cad527a982e929f80fca539e612c59ccb503fc076b86ce1f4ebeefb112dee03"
25+
cl_type: op-node
26+
cl_image: "us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node@sha256:207943c6ca92a203e5c2f7908769023c76d2304060c8d8c4cfbd469b7fbaaf0d"
27+
count: 1
28+
batcher_params:
29+
image: "us-docker.pkg.dev/oplabs-tools-artifacts/images/op-batcher@sha256:a017bf0a1dbe88e770eb6979354a148534b36e58ea7bc2fd7ae01f5e90eb9ed3"
30+
proposer_params:
31+
image: "us-docker.pkg.dev/oplabs-tools-artifacts/images/op-proposer@sha256:1c6e0c0ac79b561652af1bd5df30f0fcca1490c3989ea0a15e7e18d823e96825"
32+
network_params:
33+
name: "001"
34+
network_id: "2151908"
35+
seconds_per_slot: 1
36+
op_contract_deployer_params:
37+
# image: "us-docker.pkg.dev/oplabs-tools-artifacts/images/op-deployer:v0.0.12"
38+
image: "xavierromero/op-deployer:20250314"
39+
l1_artifacts_locator: "https://storage.googleapis.com/oplabs-contract-artifacts/artifacts-v1-fffcbb0ebf7f83311791534a41e65ef90df47797f9ca8f86941452f597f7128c.tar.gz"
40+
l2_artifacts_locator: "https://storage.googleapis.com/oplabs-contract-artifacts/artifacts-v1-fffcbb0ebf7f83311791534a41e65ef90df47797f9ca8f86941452f597f7128c.tar.gz"
41+
observability:
42+
enabled: true

0 commit comments

Comments
 (0)