admin管理员组

文章数量:1444103

使用 ethereum

一、环境准备

  1. 安装DockerundefinedKurtosis依赖Docker作为底层容器运行时。需根据操作系统安装Docker并启动服务:
代码语言:bash复制
$ systemctl start docker  # 启动Docker
$ systemctl enable docker # 设置开机自启
  1. 安装Kurtosis CLIundefined根据操作系统选择安装命令:
  • MacOS
代码语言:bash复制
$ brew install kurtosis-tech/tap/kurtosis-cli
  • Ubuntu/Debian
代码语言:bash复制
$ echo "deb [trusted=yes] / /" | sudo tee /etc/apt/sources.list.d/kurtosis.list
$ sudo apt update && sudo apt install kurtosis-cli
  • 验证安装
代码语言:bash复制
$ kurtosis version

二、部署默认配置的以太坊网络

  1. 启动单节点测试链undefined使用默认配置快速启动一个本地以太坊网络(包含执行层和共识层客户端):
代码语言:bash复制
$ kurtosis run --enclave my-testnet github/ethpandaops/ethereum-package
  • enclave参数指定隔离环境名称(如my-testnet)。
  • 默认使用Geth(执行层)和Lighthouse(共识层)客户端。
  • 验证启动成功undefined成功后会输出各服务状态,例如:
代码语言:bash复制
Successfully added 1 EL participants
Service 'el-1-geth-lighthouse' added with service UUID...

三、自定义配置部署

  1. 创建配置文件undefined编写network_params.yaml文件,定义网络参数。例如:
代码语言:yaml复制
   participants:
     - el_type: geth
       cl_type: lighthouse
   network_params:
     network: "holesky-shadowfork"  # 支持Shadowfork模式
   persistent: true                 # 启用持久化存储(Shadowfork必需)
   additional_services:
     - apache                       # 启用文件共享服务
  • 关键参数
    • el_type/cl_type:指定执行层(Geth、Nethermind等)和共识层客户端(Lighthouse、Teku等)。
    • network:支持公共测试网(如holesky)或Shadowfork(如holesky-shadowfork)。
    • persistent:启用持久化存储,防止数据丢失。
  • 运行自定义配置
代码语言:bash复制
$ kurtosis run --enclave my-testnet github/ethpandaops/ethereum-package --args-file network_params.yaml

四、Kubernetes部署(可选)

  1. Kubernetes集群要求
    • 推荐使用云服务(如AWS EKS、GCP GKE)或自建集群。
    • 确保存储卷性能(通过el_volume_sizecl_volume_size调整存储大小)。
  2. 调整容器调度策略undefined在network_params.yaml中定义Kubernetes容忍(Tolerations):
代码语言:yaml复制
   participants:
     - el_type: reth
       cl_type: teku
       el_tolerations:  # 覆盖全局配置
         - key: "gpu-node"
           operator: "Exists"
   global_tolerations:
     - key: "node-role.kubernetes.io/master"
       effect: "NoSchedule"

五、管理与调试

  1. 访问服务日志
代码语言:bash复制
$ kurtosis service logs my-testnet el-1-geth-lighthouse
  1. 下载创世文件
代码语言:bash复制
$ kurtosis files download my-testnet el-genesis-data ~/Downloads
  1. 进入容器Shell
代码语言:bash复制
$ kurtosis service shell my-testnet el-1-geth-lighthouse

六、高级功能

  1. Shadowforkingundefined通过配置文件模拟主网分叉环境:
代码语言:yaml复制
   network_params:
     network: "mainnet-shadowfork-verkle"  # Verkle树测试
     electra_fork_epoch: 1                 # 指定分叉区块
   persistent: true
  1. MEV-Boost集成undefined启用Flashbot的MEV基础设施:
代码语言:yaml复制
   mev_params:
     mode: "full"  # 或 "mock" 模拟模式
  1. 监控与工具undefined默认集成Prometheus、Grafana和Blobscan(用于分析EIP-4844 Blob交易)。

七、清理资源

代码语言:bash复制
$ kurtosis enclave rm -f my-testnet  # 删除整个环境
$ kurtosis clean -a                  # 清理所有资源

注意事项

  • 云环境部署:建议使用高性能存储(如SSD),避免因磁盘速度导致同步问题。
  • 客户端兼容性:不同客户端(如Prysm)可能需要特定镜像或参数。

通过以上步骤,可以灵活部署一个多客户端、可观测性强的以太坊开发网络。更多配置细节可参考官方文档。

本文标签: 使用 ethereum