前言
上一章讲解了在已有Layer1环境下使用kurtosis-cdk
项目部署Polygon CDK的步骤,实际上kurtosis-cdk
项目可以在部署CDK时同时安装测试用Layer1,实现单机环境下一键部署完整Layer1和Layer2环境。
环境准备
我们准备一台新虚拟机,主机名为cdk-all
,IP为10.20.0.4
,操作系统为ubuntu-22.04.2-live-server-amd64
,用户名为polygon
,密码为123456
,配置为4C8G 40G磁盘。首先参考第二篇文章配置好系统环境,参考第四篇文章的环境准备
小节安装好kurtosis-cli
、jq
、yq
、foundry
、polycli
等工具,并clone下来kurtosis-cdk
项目并切换版本到8898ab7
。最好先将上一章中笔者提供的docker镜像全部导入本地。
配置调整
在kurtosis-cdk
目录下执行sudo kurtosis run --enclave cdk-v1 --args-file params.yml --image-download always .
理论上是可以直接拉起全套服务的,但是实际操作时还是会有一些问题,笔者部署时首先遇到下边的报错:
There was an error interpreting Starlark code
Evaluation error: An error occurred while loading the module 'github.com/kurtosis-tech/prometheus-package/main.star'
Caused by: Error in cloning git repository 'https://github.com/kurtosis-tech/prometheus-package.git' to '/kurtosis-data/tmp-repositories/tmp-repo-dir-1330288698/kurtosis-tech/prometheus-package'. Make sure that 'https://github.com/kurtosis-tech/prometheus-package.git' exists or if it's a private repository, that you are logged into GitHub via `kurtosis github login`.
at [github.com/ethpandaops/ethereum-package/src/prometheus/prometheus_launcher.star:2:27]: <toplevel>
at [github.com/ethpandaops/ethereum-package/src/beacon_metrics_gazer/beacon_metrics_gazer_launcher.star:2:27]: <toplevel>
at [github.com/ethpandaops/ethereum-package/main.star@4.0.0:20:37]: <toplevel>
at [github.com/0xPolygon/kurtosis-cdk/ethereum.star:1:33]: <toplevel>
at [github.com/0xPolygon/kurtosis-cdk/main.star:63:22]: run
Error encountered running Starlark code.
说明kurtosis拉取prometheus-package
仓库失败,上一章提到过,仍然按照上一章的处理方法先将prometheus-package
仓库clone到本地
$ cd ~
$ git clone https://github.com/kurtosis-tech/prometheus-package.git
然后在kurtosis-cdk
根目录下的kurtosis.yaml
配置文件最后一行增加以下配置:
replace:
github.com/kurtosis-tech/prometheus-package: ../prometheus-package
这样就可以绕过kurtosis的clone过程直接使用本地仓库,然后再执行一遍sudo kurtosis run --enclave cdk-v1 --args-file params.yml --image-download always .
,发现又报错了:
There was an error interpreting Starlark code
Evaluation error: Cannot construct 'run_sh' from the provided arguments.
Caused by: run_sh: unexpected keyword argument "name"
at [github.com/0xPolygon/kurtosis-cdk/main.star:63:44]: run
at [github.com/0xPolygon/kurtosis-cdk/ethereum.star:10:25]: run
at [github.com/ethpandaops/ethereum-package/main.star@4.0.0:127:55]: run
at [github.com/ethpandaops/ethereum-package/src/participant_network.star:88:78]: launch_participant_network
at [github.com/ethpandaops/ethereum-package/src/prelaunch_data_generator/el_cl_genesis/el_cl_genesis_generator.star:89:26]: generate_el_cl_genesis_data
at [0:0]: run_sh
Error encountered running Starlark code.
似乎是有多余参数,我们把github.com/ethpandaops/ethereum-package
下载下来看一下:
$ cd ~
$ git clone https://github.com/ethpandaops/ethereum-package.git
$ git checkout 4.0.0
$ cd ethereum-package
看一下src/prelaunch_data_generator/el_cl_genesis/el_cl_genesis_generator.star
的第89行:
89 genesis = plan.run_sh