Skip to content

Commit

Permalink
Merge pull request #266 from 0xPolygon/jhilliard/version-updates
Browse files Browse the repository at this point in the history
Fork 12 and Deployment Refactor
  • Loading branch information
praetoriansentry authored Sep 23, 2024
2 parents 39b96a8 + 0621352 commit 8c060a5
Show file tree
Hide file tree
Showing 19 changed files with 412 additions and 408 deletions.
8 changes: 8 additions & 0 deletions .github/scripts/batch-filler.yul
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
// solc --bin --strict-assembly batch-filler.yul
{
mstore(0x7000,1)
let bigContract := create(0, 0x1000, 0x6000)
for {} gt(gas(), 2500) {} {
extcodecopy(bigContract, 0x1000, 0x1000, 0x6000)
}
}
4 changes: 2 additions & 2 deletions .github/scripts/compare-default-params.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@ PARAMS_YML_PATH="../../params.yml"

# Extracting default parameters from the different files.
echo "Extracting default parameters from input_parser.star..."
if ! sed -n '/^DEFAULT_ARGS = {/,/^}/ { s/DEFAULT_ARGS = //; s/}/}/; p; }' "$INPUT_PARSER_PATH" | yq --yaml-output >.input_parser.star; then
if ! sed -n '/^DEFAULT_ARGS = {/,/^}/ { s/DEFAULT_ARGS = //; s/}/}/; p; }' "$INPUT_PARSER_PATH" | yq -S --yaml-output >.input_parser.star; then
echo "Error: Failed to extract parameters from input_parser.star."
exit 1
fi

echo "Extracting default parameters from params.yml..."
if ! yq --yaml-output .args "$PARAMS_YML_PATH" >.params.yml; then
if ! yq -S --yaml-output .args "$PARAMS_YML_PATH" >.params.yml; then
echo "Error: Failed to extract parameters from params.yml."
exit 1
fi
Expand Down
9 changes: 8 additions & 1 deletion .github/scripts/monitor-verified-batches.sh
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,13 @@ end_time=$((start_time + timeout))

# Main loop to monitor batch verification.
while true; do

if kurtosis enclave inspect "$ENCLAVE_NAME" | grep STOPPED ; then
echo "It looks like there is a stopped service in the enclave. Something must have halted"
kurtosis enclave inspect "$ENCLAVE_NAME"
kurtosis enclave inspect "$ENCLAVE_NAME" --full-uuids | grep STOPPED | awk '{print $2 "--" $1}' | while read -r container; do echo "printing logs for $container"; docker logs --tail 50 "$container"; done
exit 1
fi
# Query the number of verified batches from the RPC URL.
batch_number="$(cast to-dec "$(cast rpc --rpc-url "$rpc_url" zkevm_batchNumber | sed 's/"//g')")"
virtual_batch_number="$(cast to-dec "$(cast rpc --rpc-url "$rpc_url" zkevm_virtualBatchNumber | sed 's/"//g')")"
Expand All @@ -83,7 +90,7 @@ while true; do
--rpc-url "$rpc_url" \
--private-key "0x12d7de8621a77640c9241b2595ba78ce443d05e94090365ab3bb5e19df82c625" \
--gas-limit 100000 \
--create 0x600160015B810190630000000456
--create 0x6001617000526160006110005ff05b6109c45a111560245761600061100080833c600e565b50

echo "Waiting a few seconds before the next iteration..."
echo
Expand Down
1 change: 0 additions & 1 deletion .github/tests/additional-services.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,5 @@ args:
- blutgang
- erpc
- prometheus_grafana
- tx_spammer
#- pless_zkevm_node # zkevm-node doesn't support fork12

6 changes: 3 additions & 3 deletions .github/tests/forks/fork11.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
args:
zkevm_contracts_image: leovct/zkevm-contracts:v7.0.0-rc.2-fork.11
zkevm_prover_image: hermeznetwork/zkevm-prover:v7.0.0-RC31-fork.11

zkevm_node_image: hermeznetwork/zkevm-node:v0.7.0-fork11-RC1

additional_services:
- tx_spammer
additional_services: []

4 changes: 2 additions & 2 deletions .github/tests/forks/fork12.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@ args:
#zkevm_contracts_image: leovct/zkevm-contracts:v8.0.0-rc.2-fork.12
zkevm_prover_image: hermeznetwork/zkevm-prover:v8.0.0-RC10-fork.12

additional_services:
- tx_spammer
additional_services: []

4 changes: 2 additions & 2 deletions .github/tests/forks/fork9.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ args:

zkevm_node_image: hermeznetwork/zkevm-node:v0.7.3-RC1
cdk_validium_node_image: 0xpolygon/cdk-validium-node:0.7.0-cdk

additional_services:
- pless_zkevm_node
- tx_spammer

30 changes: 0 additions & 30 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -162,41 +162,19 @@ jobs:

- name: Deploy L1 chain and a first CDK L2 chain (cdk-erigon sequencer + cdk stack)
run: |
yq -Y --in-place '.args.sequencer_type = "erigon"' params.yml
yq -Y --in-place '.args.sequence_sender_aggregator_type = "cdk"' params.yml
yq -Y --in-place '.args.additional_services = ["tx_spammer"]' params.yml
kurtosis run --enclave=${{ env.ENCLAVE_NAME }} --show-enclave-inspect=false --args-file=params.yml .
- name: Inspect enclave
run: kurtosis enclave inspect ${{ env.ENCLAVE_NAME }}

- name: List first CDK L2 chain databases
run: |
postgres1_port=$(kurtosis port print ${{ env.ENCLAVE_NAME }} postgres-001 postgres | cut -d':' -f3)
PGPASSWORD=master_password psql --host 127.0.0.1 --port "$postgres1_port" --username master_user --dbname master --list
- name: Attach a second CDK L2 chain (cdk-erigon sequencer + cdk stack)
run: |
yq -Y --in-place '.args.additional_services = ["tx_spammer"]' agglayer-attach-cdk-params.yml
kurtosis run --enclave=${{ env.ENCLAVE_NAME }} --show-enclave-inspect=false --args-file=agglayer-attach-cdk-params.yml .
- name: Inspect enclave
run: kurtosis enclave inspect ${{ env.ENCLAVE_NAME }}

- name: List second CDK L2 chain databases
run: |
postgres2_port=$(kurtosis port print ${{ env.ENCLAVE_NAME }} postgres-002 postgres | cut -d':' -f3)
PGPASSWORD=master_password psql --host 127.0.0.1 --port "$postgres2_port" --username master_user --dbname master --list
- name: Update the agglayer config
run: |
# Download the agglayer config file.
kurtosis files download ${{ env.ENCLAVE_NAME }} agglayer-config-artifact
cd agglayer-config-artifact
# Update the config by adding the rpc and proof signer of the second chain.
tomlq -Y --toml-output --in-place '.FullNodeRPCs += {"2": "http://cdk-erigon-node-002:8123"}' agglayer-config.toml
proof_signer_2="$(yq --raw-output .args.zkevm_l2_sequencer_address ../agglayer-attach-cdk-params.yml)"
tomlq -Y --toml-output --arg proofSigner2 "$proof_signer_2" --in-place '.ProofSigners += {"2": $proofSigner2}' agglayer-config.toml
# Replace the agglayer config.
agglayer_container_id="$(docker ps --filter "name=agglayer" --format "{{.ID}}")"
docker cp agglayer-config.toml "$agglayer_container_id:/etc/zkevm/agglayer-config.toml"
Expand All @@ -208,14 +186,6 @@ jobs:
working-directory: .github/scripts
run: ./monitor-verified-batches.sh --rpc-url "$(kurtosis port print ${{ env.ENCLAVE_NAME }} cdk-erigon-node-001 http-rpc)"

# - name: Monitor verified batches of the first L2 chain (zkEVM Node Permissionless RPC)
# working-directory: .github/scripts
# run: ./monitor-verified-batches.sh --rpc-url "$(kurtosis port print ${{ env.ENCLAVE_NAME }} zkevm-node-rpc-pless-001 http-rpc)"

- name: Monitor verified batches of the second L2 chain (CDK Erigon Permissionless RPC)
working-directory: .github/scripts
run: ./monitor-verified-batches.sh --rpc-url "$(kurtosis port print ${{ env.ENCLAVE_NAME }} cdk-erigon-node-002 http-rpc)"

# - name: Monitor verified batches of the second L2 chain (zkEVM Node Permissionless RPC)
# working-directory: .github/scripts
# run: ./monitor-verified-batches.sh --rpc-url "$(kurtosis port print ${{ env.ENCLAVE_NAME }} zkevm-node-rpc-pless-002 http-rpc)"
22 changes: 8 additions & 14 deletions agglayer-attach-cdk-params.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ args:
# - arpeggio
# - blockscout
# - blutgang
# - erpc
# - pless_zkevm_node
# - prometheus_grafana
# - tx_spammer
Expand All @@ -60,19 +61,19 @@ args:
# https://github.com/0xPolygonHermez/zkevm-contracts/pull/323
zkevm_contracts_image: leovct/zkevm-contracts:v8.0.0-rc.3-fork.12
#zkevm_contracts_image: leovct/zkevm-contracts:v8.0.0-rc.2-fork.12
zkevm_prover_image: hermeznetwork/zkevm-prover:v8.0.0-RC10-fork.12
zkevm_prover_image: hermeznetwork/zkevm-prover:v8.0.0-RC12-fork.12

zkevm_node_image: hermeznetwork/zkevm-node:v0.7.3-RC1
cdk_validium_node_image: 0xpolygon/cdk-validium-node:0.7.0-cdk

cdk_node_image: ghcr.io/0xpolygon/cdk:0.0.17
zkevm_da_image: 0xpolygon/cdk-data-availability:0.0.9
cdk_node_image: ghcr.io/0xpolygon/cdk:0.1.1
zkevm_da_image: 0xpolygon/cdk-data-availability:0.0.10
agglayer_image: ghcr.io/agglayer/agglayer-rs:pr-96
zkevm_bridge_service_image: hermeznetwork/zkevm-bridge-service:v0.5.0-RC12
zkevm_bridge_service_image: hermeznetwork/zkevm-bridge-service:v0.5.0
zkevm_bridge_ui_image: leovct/zkevm-bridge-ui:multi-network
zkevm_bridge_proxy_image: haproxy:3.0-bookworm
zkevm_sequence_sender_image: hermeznetwork/zkevm-sequence-sender:v0.2.0-RC12
cdk_erigon_node_image: hermeznetwork/cdk-erigon:v2.0.0-beta18.3
cdk_erigon_node_image: jerrycgh/cdk-erigon:c69caf5bf62b2ad9c907184ad257ed2aef5c4bfc
zkevm_pool_manager_image: hermeznetwork/zkevm-pool-manager:v0.1.0-RC1

# Port configuration.
Expand Down Expand Up @@ -148,22 +149,15 @@ args:
# This should increment by 1 with each additional CDKs being created using the rollup manager contract.
zkevm_rollup_id: 2

# The rollup type ID.
zkevm_rollup_type_id: "1"
# By default a mock verifier is deployed. Change to true to deploye a real verifier which will require a real prover
zkevm_use_real_verifier: false

# If erigon is being used as the sequencer,
# This flag will enable a stateless executor to verify the execution of the batches.
erigon_strict_mode: true
# This flag will allow pre EIP155 transactions.
erigon_pre_eip155_transactions: true

# The address of the rollup manager contract deployer on L1.
zkevm_rollup_manager_deployer: "0xE34aaF64b29273B7D567FCFc40544c014EEe9970"
zkevm_rollup_manager_deployer_private_key: "0x12d7de8621a77640c9241b2595ba78ce443d05e94090365ab3bb5e19df82c625"
rollup_manager_address: "0x2F50ef6b8e8Ee4E579B17619A92dE3E2ffbD8AD2"
# The address of the L2 gas token.
zkevm_gas_token_address: "0xEdE9cf798E0fE25D35469493f43E88FeA4a5da0E"

# The address of the rollup manager contract on L1.
# If specified, the rollup data will be retrieved from this contract instead of using the contracts service.
# zkevm_rollup_manager_address: ""
Expand Down
9 changes: 9 additions & 0 deletions cdk_erigon.star
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,14 @@ def run_rpc(plan, args):
zkevm_sequencer_service.ports["data-streamer"].number,
)

pool_manager_service = plan.get_service(
name="zkevm-pool-manager" + args["deployment_suffix"]
)
pool_manager_url = "http://{}:{}".format(
pool_manager_service.ip_address,
pool_manager_service.ports["http"].number,
)

cdk_erigon_node_config_template = read_file(src="./templates/cdk-erigon/config.yml")
contract_setup_addresses = service_package.get_contract_setup_addresses(plan, args)
cdk_erigon_node_config_artifact = plan.render_templates(
Expand All @@ -45,6 +53,7 @@ def run_rpc(plan, args):
"zkevm_sequencer_url": zkevm_sequence_url,
"zkevm_datastreamer_url": zkevm_datastreamer_url,
"is_sequencer": False,
"pool_manager_url": pool_manager_url,
}
| args
| contract_setup_addresses,
Expand Down
11 changes: 6 additions & 5 deletions input_parser.star
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,17 @@ DEFAULT_ARGS = {
"data_availability_mode": "cdk-validium",
"additional_services": [],
"zkevm_contracts_image": "leovct/zkevm-contracts:v8.0.0-rc.3-fork.12",
"zkevm_prover_image": "hermeznetwork/zkevm-prover:v8.0.0-RC10-fork.12",
"zkevm_prover_image": "hermeznetwork/zkevm-prover:v8.0.0-RC12-fork.12",
"zkevm_node_image": "hermeznetwork/zkevm-node:v0.7.3-RC1",
"cdk_validium_node_image": "0xpolygon/cdk-validium-node:0.7.0-cdk",
"cdk_node_image": "ghcr.io/0xpolygon/cdk:0.0.17",
"zkevm_da_image": "0xpolygon/cdk-data-availability:0.0.9",
"cdk_node_image": "ghcr.io/0xpolygon/cdk:0.1.1",
"zkevm_da_image": "0xpolygon/cdk-data-availability:0.0.10",
"agglayer_image": "ghcr.io/agglayer/agglayer-rs:pr-96",
"zkevm_bridge_service_image": "hermeznetwork/zkevm-bridge-service:v0.5.0-RC12",
"zkevm_bridge_service_image": "hermeznetwork/zkevm-bridge-service:v0.5.0",
"zkevm_bridge_ui_image": "leovct/zkevm-bridge-ui:multi-network",
"zkevm_bridge_proxy_image": "haproxy:3.0-bookworm",
"zkevm_sequence_sender_image": "hermeznetwork/zkevm-sequence-sender:v0.2.0-RC12",
"cdk_erigon_node_image": "hermeznetwork/cdk-erigon:v2.0.0-beta18.3",
"cdk_erigon_node_image": "jerrycgh/cdk-erigon:c69caf5bf62b2ad9c907184ad257ed2aef5c4bfc",
"zkevm_pool_manager_image": "hermeznetwork/zkevm-pool-manager:v0.1.0-RC1",
"zkevm_hash_db_port": 50061,
"zkevm_executor_port": 50071,
Expand Down Expand Up @@ -62,6 +62,7 @@ DEFAULT_ARGS = {
"l1_seconds_per_slot": 1,
"zkevm_rollup_chain_id": 10101,
"zkevm_rollup_id": 1,
"zkevm_use_real_verifier": False,
"erigon_strict_mode": True,
"erigon_pre_eip155_transactions": True,
"polygon_zkevm_explorer": "https://explorer.private/",
Expand Down
14 changes: 7 additions & 7 deletions main.star
Original file line number Diff line number Diff line change
Expand Up @@ -105,20 +105,20 @@ def run(
else:
plan.print("Skipping the deployment of cdk-erigon sequencer")

# Deploy cdk-erigon node.
if deploy_cdk_erigon_node:
plan.print("Deploying cdk-erigon node")
cdk_erigon_package.run_rpc(plan, args)
else:
plan.print("Skipping the deployment of cdk-erigon node")

# Deploy zkevm-pool-manager service.
if deploy_cdk_erigon_node:
plan.print("Deploying zkevm-pool-manager service")
zkevm_pool_manager_package.run_zkevm_pool_manager(plan, args)
else:
plan.print("Skipping the deployment of zkevm-pool-manager service")

# Deploy cdk-erigon node.
if deploy_cdk_erigon_node:
plan.print("Deploying cdk-erigon node")
cdk_erigon_package.run_rpc(plan, args)
else:
plan.print("Skipping the deployment of cdk-erigon node")

plan.print("Deploying cdk central/trusted environment")
central_environment_args = dict(args)
central_environment_args["genesis_artifact"] = genesis_artifact
Expand Down
13 changes: 8 additions & 5 deletions params.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,19 +61,19 @@ args:
# https://github.com/0xPolygonHermez/zkevm-contracts/pull/323
zkevm_contracts_image: leovct/zkevm-contracts:v8.0.0-rc.3-fork.12
#zkevm_contracts_image: leovct/zkevm-contracts:v8.0.0-rc.2-fork.12
zkevm_prover_image: hermeznetwork/zkevm-prover:v8.0.0-RC10-fork.12
zkevm_prover_image: hermeznetwork/zkevm-prover:v8.0.0-RC12-fork.12

zkevm_node_image: hermeznetwork/zkevm-node:v0.7.3-RC1
cdk_validium_node_image: 0xpolygon/cdk-validium-node:0.7.0-cdk

cdk_node_image: ghcr.io/0xpolygon/cdk:0.0.17
zkevm_da_image: 0xpolygon/cdk-data-availability:0.0.9
cdk_node_image: ghcr.io/0xpolygon/cdk:0.1.1
zkevm_da_image: 0xpolygon/cdk-data-availability:0.0.10
agglayer_image: ghcr.io/agglayer/agglayer-rs:pr-96
zkevm_bridge_service_image: hermeznetwork/zkevm-bridge-service:v0.5.0-RC12
zkevm_bridge_service_image: hermeznetwork/zkevm-bridge-service:v0.5.0
zkevm_bridge_ui_image: leovct/zkevm-bridge-ui:multi-network
zkevm_bridge_proxy_image: haproxy:3.0-bookworm
zkevm_sequence_sender_image: hermeznetwork/zkevm-sequence-sender:v0.2.0-RC12
cdk_erigon_node_image: hermeznetwork/cdk-erigon:v2.0.0-beta18.3
cdk_erigon_node_image: jerrycgh/cdk-erigon:c69caf5bf62b2ad9c907184ad257ed2aef5c4bfc
zkevm_pool_manager_image: hermeznetwork/zkevm-pool-manager:v0.1.0-RC1

# Port configuration.
Expand Down Expand Up @@ -148,6 +148,9 @@ args:
# The rollupID of the CDK.
zkevm_rollup_id: 1

# By default a mock verifier is deployed. Change to true to deploye a real verifier which will require a real prover
zkevm_use_real_verifier: false

# If erigon is being used as the sequencer,
# This flag will enable a stateless executor to verify the execution of the batches.
erigon_strict_mode: true
Expand Down
Loading

0 comments on commit 8c060a5

Please sign in to comment.