From 7bc839994fdc7e04143b7278c746988eb79d3abb Mon Sep 17 00:00:00 2001 From: John Hilliard Date: Fri, 29 Mar 2024 15:17:31 -0400 Subject: [PATCH 01/10] feat: proof signers --- cdk_bridge_infra.star | 1 + cdk_central_environment.star | 7 ++++++- params.yml | 10 +++++++--- templates/agglayer-config.toml | 3 +++ templates/run-contract-setup.sh | 5 +++++ templates/trusted-node/node-config.toml | 4 +++- 6 files changed, 25 insertions(+), 5 deletions(-) diff --git a/cdk_bridge_infra.star b/cdk_bridge_infra.star index 88953966..a3e78975 100644 --- a/cdk_bridge_infra.star +++ b/cdk_bridge_infra.star @@ -156,6 +156,7 @@ def start_agglayer(plan, args): "zkevm_l2_keystore_password": args["zkevm_l2_keystore_password"], # addresses "rollup_manager_address": rollup_manager_address, + "zkevm_l2_proofsigner_address": args["zkevm_l2_proofsigner_address"], # agglayer db "zkevm_db_agglayer_hostname": args["zkevm_db_agglayer_hostname"], "zkevm_db_agglayer_name": args["zkevm_db_agglayer_name"], diff --git a/cdk_central_environment.star b/cdk_central_environment.star index 008246ad..9ca5b684 100644 --- a/cdk_central_environment.star +++ b/cdk_central_environment.star @@ -44,6 +44,11 @@ def run(plan, args): service_name="contracts" + args["deployment_suffix"], src="/opt/zkevm/aggregator.keystore", ) + proofsigner_keystore_artifact = plan.store_service_files( + name="proofsigner-keystore", + service_name="contracts" + args["deployment_suffix"], + src="/opt/zkevm/proofsigner.keystore", + ) zkevm_node_package.start_synchronizer(plan, args, config_artifact, genesis_artifact) zkevm_node_package.start_sequencer(plan, args, config_artifact, genesis_artifact) @@ -55,8 +60,8 @@ def run(plan, args): args, config_artifact, genesis_artifact, - sequencer_keystore_artifact, aggregator_keystore_artifact, + proofsigner_keystore_artifact, ) zkevm_node_package.start_rpc(plan, args, config_artifact, genesis_artifact) zkevm_node_package.start_eth_tx_manager( diff --git a/params.yml b/params.yml index 5be4d952..1aa42eca 100644 --- a/params.yml +++ b/params.yml @@ -39,8 +39,9 @@ zkevm_fork_id: 9 zkevm_contracts_repo: https://github.com/0xPolygonHermez/zkevm-contracts.git -zkevm_agglayer_image: nulyjkdhthz/agglayer:v0.1.0 -zkevm_bridge_service_image: hermeznetwork/zkevm-bridge-service:v0.4.2 +# zkevm_agglayer_image: nulyjkdhthz/agglayer:v0.1.0 +zkevm_agglayer_image: agglayer:local3 +zkevm_bridge_service_image: hermeznetwork/zkevm-bridge-service:v0.4.2-cdk.1 zkevm_bridge_ui_image: hermeznetwork/zkevm-bridge-ui:multi-network # Port configuration. @@ -60,7 +61,7 @@ zkevm_dac_port: 8484 # Addresses and private keys of the different components. # They have been generated using the following command: -# polycli wallet inspect --mnemonic 'lab code glass agree maid neutral vessel horror deny frequent favorite soft gate galaxy proof vintage once figure diary virtual scissors marble shrug drop' --addresses 8 | tee keys.txt | jq -r '.Addresses[] | [.ETHAddress, .HexPrivateKey] | @tsv' | awk 'BEGIN{split("sequencer,aggregator,claimtxmanager,timelock,admin,loadtest,agglayer,dac",roles,",")} {print "zkevm_l2_" roles[NR] "_address: \"" $1 "\""; print "zkevm_l2_" roles[NR] "_private_key: \"0x" $2 "\"\n"}' +# polycli wallet inspect --mnemonic 'lab code glass agree maid neutral vessel horror deny frequent favorite soft gate galaxy proof vintage once figure diary virtual scissors marble shrug drop' --addresses 9 | tee keys.txt | jq -r '.Addresses[] | [.ETHAddress, .HexPrivateKey] | @tsv' | awk 'BEGIN{split("sequencer,aggregator,claimtxmanager,timelock,admin,loadtest,agglayer,dac,proofsigner",roles,",")} {print "zkevm_l2_" roles[NR] "_address: \"" $1 "\""; print "zkevm_l2_" roles[NR] "_private_key: \"0x" $2 "\"\n"}' zkevm_l2_sequencer_address: "0x5b06837A43bdC3dD9F114558DAf4B26ed49842Ed" zkevm_l2_sequencer_private_key: "0x183c492d0ba156041a7f31a1b188958a7a22eebadca741a7fe64436092dc3181" @@ -85,6 +86,9 @@ zkevm_l2_agglayer_private_key: "0x1d45f90c0a9814d8b8af968fa0677dab2a8ff0266f33b1 zkevm_l2_dac_address: "0x5951F5b2604c9B42E478d5e2B2437F44073eF9A6" zkevm_l2_dac_private_key: "0x85d836ee6ea6f48bae27b31535e6fc2eefe056f2276b9353aafb294277d8159b" +zkevm_l2_proofsigner_address: "0x7569cc70950726784c8D3bB256F48e43259Cb445" +zkevm_l2_proofsigner_private_key: "0x77254a70a02223acebf84b6ed8afddff9d3203e31ad219b2bf900f4780cf9b51" + # Keystore password. zkevm_l2_keystore_password: pSnv6Dh5s9ahuzGzH9RoCDrKAMddaX3m diff --git a/templates/agglayer-config.toml b/templates/agglayer-config.toml index db9f1b8b..82cd4d6b 100644 --- a/templates/agglayer-config.toml +++ b/templates/agglayer-config.toml @@ -2,6 +2,9 @@ # TODO switch this to permissionless 1 = "http://zkevm-node-rpc{{.deployment_suffix}}:{{.zkevm_rpc_http_port}}" +[ProofSigners] +1 = "{{.zkevm_l2_proofsigner_address}}" + [RPC] Host = "0.0.0.0" Port = {{.zkevm_agglayer_port}} diff --git a/templates/run-contract-setup.sh b/templates/run-contract-setup.sh index 26d5e8b9..43368df4 100755 --- a/templates/run-contract-setup.sh +++ b/templates/run-contract-setup.sh @@ -178,5 +178,10 @@ mv tmp.keys/UTC* dac.keystore chmod a+r dac.keystore rm -rf tmp.keys +polycli parseethwallet --hexkey "{{.zkevm_l2_proofsigner_private_key}}" --password "{{.zkevm_l2_keystore_password}}" --keystore tmp.keys +mv tmp.keys/UTC* proofsigner.keystore +chmod a+r proofsigner.keystore +rm -rf tmp.keys + touch .init-complete.lock popd diff --git a/templates/trusted-node/node-config.toml b/templates/trusted-node/node-config.toml index 1642957e..c43f4a51 100644 --- a/templates/trusted-node/node-config.toml +++ b/templates/trusted-node/node-config.toml @@ -19,6 +19,7 @@ Outputs = ["stderr"] [State.Batch.Constraints] MaxTxsPerBatch = 300 MaxBatchBytesSize = 120000 + # TODO Why did this change MaxCumulativeGasUsed = 1125899906842624 MaxKeccakHashes = 2145 MaxPoseidonHashes = 252357 @@ -155,7 +156,8 @@ BatchProofL1BlockConfirmations = 2 ## CDK Validium Specific Settings # We should double check if this is necessary. I don't remember why the aggregator needs this -SequencerPrivateKey = {Path = "/etc/zkevm/sequencer.keystore", Password = "{{.zkevm_l2_keystore_password}}"} +# SequencerPrivateKey = {Path = "/etc/zkevm/sequencer.keystore", Password = "{{.zkevm_l2_keystore_password}}"} +SequencerPrivateKey = {Path = "/etc/zkevm/proofsigner.keystore", Password = "{{.zkevm_l2_keystore_password}}"} SettlementBackend = "agglayer" # "l1" AggLayerTxTimeout = "600s" AggLayerURL = "http://zkevm-agglayer{{.deployment_suffix}}:{{.zkevm_agglayer_port}}" From b9038d599b57cc1850aafb7e60b6b26e56f356f1 Mon Sep 17 00:00:00 2001 From: John Hilliard Date: Fri, 29 Mar 2024 15:19:14 -0400 Subject: [PATCH 02/10] chore: lint --- cdk_bridge_infra.star | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cdk_bridge_infra.star b/cdk_bridge_infra.star index 37b2342d..185669ec 100644 --- a/cdk_bridge_infra.star +++ b/cdk_bridge_infra.star @@ -156,7 +156,9 @@ def start_agglayer(plan, args): "zkevm_l2_keystore_password": args["zkevm_l2_keystore_password"], # addresses "rollup_manager_address": rollup_manager_address, - "zkevm_l2_proofsigner_address": args["zkevm_l2_proofsigner_address"], + "zkevm_l2_proofsigner_address": args[ + "zkevm_l2_proofsigner_address" + ], # agglayer db "zkevm_db_agglayer_hostname": args["zkevm_db_agglayer_hostname"], "zkevm_db_agglayer_name": args["zkevm_db_agglayer_name"], From 26cb95f5e1f2fd0244a02483729db3d743da81c8 Mon Sep 17 00:00:00 2001 From: John Hilliard Date: Fri, 29 Mar 2024 16:51:27 -0400 Subject: [PATCH 03/10] ops: switching to central image --- params.yml | 3 +-- templates/trusted-node/node-config.toml | 6 ++---- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/params.yml b/params.yml index 2055ad3f..786eb444 100644 --- a/params.yml +++ b/params.yml @@ -41,8 +41,7 @@ zkevm_fork_id: 9 # zkevm_fork_id: 7 zkevm_contracts_repo: https://github.com/0xPolygonHermez/zkevm-contracts.git -# zkevm_agglayer_image: nulyjkdhthz/agglayer:v0.1.0 -zkevm_agglayer_image: agglayer:local3 +zkevm_agglayer_image: nulyjkdhthz/agglayer:v0.1.0-alpha.1 zkevm_bridge_service_image: hermeznetwork/zkevm-bridge-service:v0.4.2-cdk.1 zkevm_bridge_ui_image: hermeznetwork/zkevm-bridge-ui:multi-network diff --git a/templates/trusted-node/node-config.toml b/templates/trusted-node/node-config.toml index c43f4a51..24c224f5 100644 --- a/templates/trusted-node/node-config.toml +++ b/templates/trusted-node/node-config.toml @@ -154,10 +154,8 @@ UpgradeEtrogBatchNumber = 0 BatchProofL1BlockConfirmations = 2 {{if .is_cdk_validium}} ## CDK Validium Specific Settings - -# We should double check if this is necessary. I don't remember why the aggregator needs this -# SequencerPrivateKey = {Path = "/etc/zkevm/sequencer.keystore", Password = "{{.zkevm_l2_keystore_password}}"} -SequencerPrivateKey = {Path = "/etc/zkevm/proofsigner.keystore", Password = "{{.zkevm_l2_keystore_password}}"} +SequencerPrivateKey = {Path = "/etc/zkevm/sequencer.keystore", Password = "{{.zkevm_l2_keystore_password}}"} +# SequencerPrivateKey = {Path = "/etc/zkevm/proofsigner.keystore", Password = "{{.zkevm_l2_keystore_password}}"} SettlementBackend = "agglayer" # "l1" AggLayerTxTimeout = "600s" AggLayerURL = "http://zkevm-agglayer{{.deployment_suffix}}:{{.zkevm_agglayer_port}}" From c67765647721dca1fd653aa6a51f8bc0c8968ce5 Mon Sep 17 00:00:00 2001 From: John Hilliard Date: Fri, 29 Mar 2024 17:06:38 -0400 Subject: [PATCH 04/10] fix: missing artifact --- cdk_central_environment.star | 1 + 1 file changed, 1 insertion(+) diff --git a/cdk_central_environment.star b/cdk_central_environment.star index 9ca5b684..9d9878e0 100644 --- a/cdk_central_environment.star +++ b/cdk_central_environment.star @@ -61,6 +61,7 @@ def run(plan, args): config_artifact, genesis_artifact, aggregator_keystore_artifact, + sequencer_keystore_artifact, proofsigner_keystore_artifact, ) zkevm_node_package.start_rpc(plan, args, config_artifact, genesis_artifact) From c83eab44d3caca55a884df3401a7ce9062ef0654 Mon Sep 17 00:00:00 2001 From: John Hilliard Date: Fri, 29 Mar 2024 17:09:37 -0400 Subject: [PATCH 05/10] fix: passing args --- cdk_central_environment.star | 2 +- lib/zkevm_node.star | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/cdk_central_environment.star b/cdk_central_environment.star index 9d9878e0..66963845 100644 --- a/cdk_central_environment.star +++ b/cdk_central_environment.star @@ -60,8 +60,8 @@ def run(plan, args): args, config_artifact, genesis_artifact, - aggregator_keystore_artifact, sequencer_keystore_artifact, + aggregator_keystore_artifact, proofsigner_keystore_artifact, ) zkevm_node_package.start_rpc(plan, args, config_artifact, genesis_artifact) diff --git a/lib/zkevm_node.star b/lib/zkevm_node.star index 3a4b16dc..75deb185 100644 --- a/lib/zkevm_node.star +++ b/lib/zkevm_node.star @@ -107,6 +107,7 @@ def start_aggregator( genesis_artifact, sequencer_keystore_artifact, aggregator_keystore_artifact, + proofsigner_keystore_artifact, ): return _start_node_component( plan, @@ -127,6 +128,7 @@ def start_aggregator( genesis_artifact, sequencer_keystore_artifact, aggregator_keystore_artifact, + proofsigner_keystore_artifact, ] ), components=NODE_COMPONENT.aggregator, From a2dc0577afba294f877617bb785a1b753d421fb0 Mon Sep 17 00:00:00 2001 From: John Hilliard Date: Sat, 30 Mar 2024 11:40:33 -0400 Subject: [PATCH 06/10] feat: switching track sequencer and also using official image --- params.yml | 2 +- templates/dac-config.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/params.yml b/params.yml index 786eb444..3ed94901 100644 --- a/params.yml +++ b/params.yml @@ -41,7 +41,7 @@ zkevm_fork_id: 9 # zkevm_fork_id: 7 zkevm_contracts_repo: https://github.com/0xPolygonHermez/zkevm-contracts.git -zkevm_agglayer_image: nulyjkdhthz/agglayer:v0.1.0-alpha.1 +zkevm_agglayer_image: 0xpolygon/agglayer:0.1.1 zkevm_bridge_service_image: hermeznetwork/zkevm-bridge-service:v0.4.2-cdk.1 zkevm_bridge_ui_image: hermeznetwork/zkevm-bridge-ui:multi-network diff --git a/templates/dac-config.toml b/templates/dac-config.toml index bcc73fa8..274e18fa 100644 --- a/templates/dac-config.toml +++ b/templates/dac-config.toml @@ -9,7 +9,7 @@ Timeout = "1m" RetryPeriod = "5s" BlockBatchSize = "64" GenesisBlock = "0" -TrackSequencer = true +TrackSequencer = false [Log] Environment = "development" # "production" or "development" From 56e6fc8a49eb38ed54c1742a23e75ebfa42315b6 Mon Sep 17 00:00:00 2001 From: John Hilliard Date: Sat, 30 Mar 2024 11:56:59 -0400 Subject: [PATCH 07/10] fix: updating entrypoint for agglayer --- cdk_bridge_infra.star | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cdk_bridge_infra.star b/cdk_bridge_infra.star index 185669ec..c11dfe77 100644 --- a/cdk_bridge_infra.star +++ b/cdk_bridge_infra.star @@ -196,7 +196,7 @@ def start_agglayer(plan, args): ), }, entrypoint=[ - "/app/agglayer", + "/usr/local/bin/agglayer", ], cmd=["run", "--cfg", "/etc/zkevm/agglayer-config.toml"], ), From e0faeb8c70880578fc1ea93ba1e2445839648f46 Mon Sep 17 00:00:00 2001 From: John Hilliard Date: Mon, 1 Apr 2024 08:16:58 -0400 Subject: [PATCH 08/10] fix: defaulting to sequencer key --- templates/agglayer-config.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/agglayer-config.toml b/templates/agglayer-config.toml index 82cd4d6b..3223679e 100644 --- a/templates/agglayer-config.toml +++ b/templates/agglayer-config.toml @@ -3,7 +3,7 @@ 1 = "http://zkevm-node-rpc{{.deployment_suffix}}:{{.zkevm_rpc_http_port}}" [ProofSigners] -1 = "{{.zkevm_l2_proofsigner_address}}" +# 1 = "{{.zkevm_l2_proofsigner_address}}" [RPC] Host = "0.0.0.0" From 4673c0d7c8872c54224a2eda9099aab2c30404f9 Mon Sep 17 00:00:00 2001 From: John Hilliard Date: Mon, 1 Apr 2024 08:33:46 -0400 Subject: [PATCH 09/10] fix: yq installation Not sure if this will work, but I can see some signs that the current processes is not reliable. This failure for example: https://github.com/0xPolygon/kurtosis-cdk/actions/runs/8507920924/job/23300629115?pr=38 Basically we're getting a temporarily unavailable error when trying to run: ```bash sudo add-apt-repository ppa:rmescandon/yq sudo apt update sudo apt install --yes yq ``` --- .github/workflows/deploy.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index abbd811d..6c58515c 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -39,9 +39,7 @@ jobs: - name: Install yq run: | - sudo add-apt-repository ppa:rmescandon/yq - sudo apt update - sudo apt install --yes yq + pip3 install yq # Deploy components. - name: Disable All Deployment Steps From 423eb67961603474e1946a08d31823196734b5f6 Mon Sep 17 00:00:00 2001 From: John Hilliard Date: Mon, 1 Apr 2024 09:02:34 -0400 Subject: [PATCH 10/10] fix: switching yq commands to pip style --- .github/workflows/deploy.yml | 42 ++++++++++++++++++------------------ README.org | 39 +++++++++++++++++---------------- 2 files changed, 41 insertions(+), 40 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 6c58515c..2b02074f 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -44,52 +44,52 @@ jobs: # Deploy components. - name: Disable All Deployment Steps run: | - yq e '.deploy_l1 = false' --inplace params.yml - yq e '.deploy_zkevm_contracts_on_l1 = false' --inplace params.yml - yq e '.deploy_databases = false' --inplace params.yml - yq e '.deploy_cdk_central_environment = false' --inplace params.yml - yq e '.deploy_cdk_bridge_infra = false' --inplace params.yml - yq e '.deploy_zkevm_permissionless_node = false' --inplace params.yml - yq e '.deploy_observability = false' --inplace params.yml + yq -Y --in-place '.deploy_l1 = false' params.yml + yq -Y --in-place '.deploy_zkevm_contracts_on_l1 = false' params.yml + yq -Y --in-place '.deploy_databases = false' params.yml + yq -Y --in-place '.deploy_cdk_central_environment = false' params.yml + yq -Y --in-place '.deploy_cdk_bridge_infra = false' params.yml + yq -Y --in-place '.deploy_zkevm_permissionless_node = false' params.yml + yq -Y --in-place '.deploy_observability = false' params.yml - name: Deploy L1 run: | - yq e '.deploy_l1 = true' --inplace params.yml + yq -Y --in-place '.deploy_l1 = true' params.yml kurtosis run --enclave cdk-v1 --args-file params.yml . - yq e '.deploy_l1 = false' --inplace params.yml # reset + yq -Y --in-place '.deploy_l1 = false' params.yml # reset - name: Deploy ZkEVM Contracts on L1 run: | - yq e '.deploy_zkevm_contracts_on_l1 = true' --inplace params.yml + yq -Y --in-place '.deploy_zkevm_contracts_on_l1 = true' params.yml kurtosis run --enclave cdk-v1 --args-file params.yml . - yq e '.deploy_zkevm_contracts_on_l1 = false' --inplace params.yml # reset + yq -Y --in-place '.deploy_zkevm_contracts_on_l1 = false' params.yml # reset - name: Deploy ZkEVM Node and CDK Peripheral Databases run: | - yq e '.deploy_databases = true' --inplace params.yml + yq -Y --in-place '.deploy_databases = true' params.yml kurtosis run --enclave cdk-v1 --args-file params.yml . - yq e '.deploy_databases = false' --inplace params.yml # reset + yq -Y --in-place '.deploy_databases = false' params.yml # reset - name: Deploy CDK Central Environment run: | - yq e '.deploy_cdk_central_environment = true' --inplace params.yml + yq -Y --in-place '.deploy_cdk_central_environment = true' params.yml kurtosis run --enclave cdk-v1 --args-file params.yml . - yq e '.deploy_cdk_central_environment = false' --inplace params.yml # reset + yq -Y --in-place '.deploy_cdk_central_environment = false' params.yml # reset - name: Deploy CDK Bridge Infrastructure run: | - yq e '.deploy_cdk_bridge_infra = true' --inplace params.yml + yq -Y --in-place '.deploy_cdk_bridge_infra = true' params.yml kurtosis run --enclave cdk-v1 --args-file params.yml . - yq e '.deploy_cdk_bridge_infra = false' --inplace params.yml # reset + yq -Y --in-place '.deploy_cdk_bridge_infra = false' params.yml # reset - name: Deploy ZkEVM Permissionless Node run: | - yq e '.deploy_zkevm_permissionless_node = true' --inplace params.yml + yq -Y --in-place '.deploy_zkevm_permissionless_node = true' params.yml kurtosis run --enclave cdk-v1 --args-file params.yml . - yq e '.deploy_zkevm_permissionless_node = false' --inplace params.yml # reset + yq -Y --in-place '.deploy_zkevm_permissionless_node = false' params.yml # reset - name: Deploy Observability Stack run: | - yq e '.deploy_observability = true' --inplace params.yml + yq -Y --in-place '.deploy_observability = true' params.yml kurtosis run --enclave cdk-v1 --args-file params.yml . - yq e '.deploy_observability = false' --inplace params.yml # reset + yq -Y --in-place '.deploy_observability = false' params.yml # reset diff --git a/README.org b/README.org index 912a4673..69823cf3 100644 --- a/README.org +++ b/README.org @@ -137,51 +137,52 @@ Currently, the deployment process includes the following stages: 5. Deploy CDK/Bridge Infrastructure 6. Deploy Permissionless Node -Here's an example of how you can specify the stages to run through. +Here's an example of how you can specify the stages to run through. In +order to run this you'll need [[https://pypi.org/project/yq/][yq]] installed. #+begin_src bash # Disable all deployment steps. -yq e '.deploy_l1 = false' --inplace params.yml -yq e '.deploy_zkevm_contracts_on_l1 = false' --inplace params.yml -yq e '.deploy_databases = false' --inplace params.yml -yq e '.deploy_cdk_central_environment = false' --inplace params.yml -yq e '.deploy_cdk_bridge_infra = false' --inplace params.yml -yq e '.deploy_zkevm_permissionless_node = false' --inplace params.yml +yq -Yi '.deploy_l1 = false' params.yml +yq -Yi '.deploy_zkevm_contracts_on_l1 = false' params.yml +yq -Yi '.deploy_databases = false' params.yml +yq -Yi '.deploy_cdk_central_environment = false' params.yml +yq -Yi '.deploy_cdk_bridge_infra = false' params.yml +yq -Yi '.deploy_zkevm_permissionless_node = false' params.yml # Deploy L1 -yq e '.deploy_l1 = true' --inplace params.yml +yq -Yi '.deploy_l1 = true' params.yml kurtosis run --enclave cdk-v1 --args-file params.yml . -yq e '.deploy_l1 = false' --inplace params.yml # reset +yq -Yi '.deploy_l1 = false' params.yml # reset # Perform additional tasks... # Deploy ZkEVM Contracts on L1 -yq e '.deploy_zkevm_contracts_on_l1 = true' --inplace params.yml +yq -Yi '.deploy_zkevm_contracts_on_l1 = true' params.yml kurtosis run --enclave cdk-v1 --args-file params.yml . -yq e '.deploy_zkevm_contracts_on_l1 = false' --inplace params.yml # reset +yq -Yi '.deploy_zkevm_contracts_on_l1 = false' params.yml # reset # Perform additional tasks... # Deploy ZkEVM Node and CDK Peripheral Databases -yq e '.deploy_databases = true' --inplace params.yml +yq -Yi '.deploy_databases = true' params.yml kurtosis run --enclave cdk-v1 --args-file params.yml . -yq e '.deploy_databases = false' --inplace params.yml # reset +yq -Yi '.deploy_databases = false' params.yml # reset # Perform additional tasks... # Deploy CDK Central Environment -yq e '.deploy_cdk_central_environment = true' --inplace params.yml +yq -Yi '.deploy_cdk_central_environment = true' params.yml kurtosis run --enclave cdk-v1 --args-file params.yml . -yq e '.deploy_cdk_central_environment = false' --inplace params.yml # reset +yq -Yi '.deploy_cdk_central_environment = false' params.yml # reset # Perform additional tasks... # Deploy CDK Bridge Infrastructure -yq e '.deploy_cdk_bridge_infra = true' --inplace params.yml +yq -Yi '.deploy_cdk_bridge_infra = true' params.yml kurtosis run --enclave cdk-v1 --args-file params.yml . -yq e '.deploy_cdk_bridge_infra = false' --inplace params.yml # reset +yq -Yi '.deploy_cdk_bridge_infra = false' params.yml # reset # Perform additional tasks... # Deploy ZkEVM Permissionless Node -yq e '.deploy_zkevm_permissionless_node = true' --inplace params.yml +yq -Yi '.deploy_zkevm_permissionless_node = true' params.yml kurtosis run --enclave cdk-v1 --args-file params.yml . -yq e '.deploy_zkevm_permissionless_node = false' --inplace params.yml # reset +yq -Yi '.deploy_zkevm_permissionless_node = false' params.yml # reset #+end_src ** Troubleshooting: Mac users