ZKSync Era 开发环境搭建指南

ZKSync Era 开发环境搭建指南

前言

ZKSync Era 是一个基于零知识证明技术的 Layer 2 扩容解决方案,为开发者提供了高效的区块链扩容能力。本文将详细介绍如何搭建 ZKSync Era 的开发环境,帮助开发者快速上手项目开发。

系统要求

ZKSync Era 目前支持以下操作系统环境:

  1. 任何基于 Unix 的系统(如各种 Linux 发行版或 macOS)
  2. Windows 用户需要使用 WSL 2(Windows Subsystem for Linux 2)
    • 注意:项目必须放在 Linux 文件系统中,从 WSL 访问 NTFS 分区性能极差
  3. 使用 ARM 处理器(如 M1/M2)的 macOS 用户
    • 确保在原生环境下工作(终端和 IDE 不使用 Rosetta 模拟)
    • 工具链也必须是原生版本

基础依赖安装

Docker 安装

Docker 是 ZKSync Era 开发的重要依赖,推荐按照以下方式安装:

  1. 对于 Linux 用户:

    • 避免使用 snap 或默认仓库安装,这可能导致问题
    • 推荐安装 docker-ce
    • 同时需要安装 docker compose
  2. 常见问题解决:

    # 如果遇到 Docker 权限问题
    sudo usermod -a -G docker your_user_name
    

    执行后需要重新登录使更改生效,如果问题依旧,可能需要重启系统。

Node.js 和 Yarn

  1. 安装 Node.js v20:

    • 推荐使用 nvm(Node 版本管理器)安装
    • 安装命令:curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
  2. 安装 Yarn:

    npm install -g yarn
    yarn set version 1.22.19  # 确保使用指定版本
    

编译工具链

  1. 安装 clang 和 LLVM 工具链(用于编译 RocksDB):

    sudo apt-get install build-essential pkg-config cmake clang lldb lld
    
  2. macOS 用户:

    • 安装最新版 Xcode(包含 Clang 编译器)
    • 通过 App Store 安装即可

OpenSSL 安装

  1. macOS:

    brew install openssl
    
  2. Debian 系 Linux:

    sudo apt-get install libssl-dev
    

Rust 工具链

ZKSync Era 主要使用 Rust 开发,需要安装正确的 Rust 工具链:

  1. 安装 Rust:

    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
    
  2. 验证安装:

    rustc --version
    
  3. 对于 macOS ARM 用户:

    • 确保使用 aarch64 工具链
    • 检查 rustup show 输出中不应出现 x86_64

数据库相关工具

PostgreSQL 客户端库

开发环境通常只需要客户端库:

  1. macOS:

    brew install libpq
    
  2. Debian 系 Linux:

    sudo apt-get install libpq-dev
    

测试和数据库工具

  1. cargo-nextest(新一代 Rust 测试运行器):

    cargo install cargo-nextest
    
  2. SQLx CLI(数据库迁移工具):

    cargo install --locked sqlx-cli --version 0.8.1
    

Foundry ZKSync

ZKSync Era 依赖 Foundry ZKSync(专为 ZKSync 定制的 Foundry 分支):

  1. 安装命令:
    curl -L https://raw.githubusercontent.com/matter-labs/foundry-zksync/main/install-foundry-zksync | bash
    foundryup-zksync
    

非 GPU 环境配置

电路证明器通常需要 CUDA 支持,如果开发机没有 GPU:

  1. 临时启用 CUDA 存根:

    export ZKSYNC_USE_CUDA_STUBS=true
    
  2. 永久配置(添加到 shell 配置文件):

    echo "export ZKSYNC_USE_CUDA_STUBS=true" >> ~/.bashrc
    

性能优化技巧

使用 mold 链接器

mold 是现代高性能链接器,可显著提升 Rust 项目的构建速度:

  1. 安装 mold 后配置:
    export RUSTFLAGS='-C link-arg=-fuse-ld=/usr/local/bin/mold'
    export CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_LINKER="clang"
    

加速 RocksDB 编译

避免每次重新编译 RocksDB C++ 代码:

  1. 将编译好的库放在固定位置
  2. 配置环境变量:
    export ROCKSDB_LIB_DIR=<library location>
    export SNAPPY_LIB_DIR=<library location>
    

使用 Nix 简化环境配置

Nix 可以精确管理开发依赖,确保环境一致性:

  1. 安装 Nix 并启用 flakes 功能
  2. 在项目目录中运行:
    nix develop
    
    这将进入包含所有依赖的 shell 环境

结语

本文详细介绍了 ZKSync Era 开发环境的搭建过程,涵盖了从基础依赖到性能优化的各个方面。正确配置开发环境是参与 ZKSync Era 开发的第一步,希望本文能帮助开发者顺利开始他们的 ZKSync 开发之旅。

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

石顺垒Dora

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值