Linux系统ZKEVM/Solidity开发环境安装配置与节点搭建教程

作者:技术拾光

时间:2026-06-12

浏览:666

在ZK-EVM和Solidity开发环境搭建的过程中,开发者们常常会遇到几个高频率出现的配置与连接问题。这些问题表面棘手,但根源通常清晰。本文将集中拆解这些常见故障,帮助您顺利搭建开发环境。 为什么直接用 solc 安装会报错“command not found” 从Solidity官方下载的二进制

文章目录

在ZK-EVM和Solidity开发环境搭建的过程中,开发者们常常会遇到几个高频率出现的配置与连接问题。这些问题表面棘手,但根源通常清晰。本文将集中拆解这些常见故障,帮助您顺利搭建开发环境。

Linux系统ZKEVM/Solidity开发环境安装配置与节点搭建教程

为什么直接用 solc 安装会报错“command not found”

从Solidity官方下载的二进制包,在Linux系统下默认没有可执行权限,也不在系统的$PATH环境变量中。因此运行./solc --version时,系统可能返回Permission denied或command not found。

正确的安装步骤如下:

  • 前往Solidity的GitHub releases页面,下载solc-static-linux文件(例如solc-static-linux-v0.8.26+commit.8b712ec9),避免下载源码包。
  • 下载后赋予执行权限:chmod +x solc-static-linux-v0.8.26+commit.8b712ec9。
  • 将文件重命名为solc,并创建软链接到系统路径:sudo ln -sf $(pwd)/solc /usr/local/bin/solc。
  • 验证安装:运行solc --version,若能输出版本号则表示成功。

ZK-EVM 节点启动失败卡在 Waiting for L1 RPC endpoint

启动Scroll、Taiko等ZK-EVM本地开发节点时,常见日志反复打印“等待L1 RPC”。问题通常在于未正确配置可用的以太坊L1节点。

排查要点如下:

  • 配置项检查:确保l1-eth-rpc配置指向一个已经同步完成的L1节点。若本地运行geth或erigon,需确认启动了--http服务并开放必要API,例如--http.api=eth,net,web3。
  • 公共RPC细节:使用Infura等公共RPC时,URL必须完整,例如https://mainnet.infura.io/v3/YOUR-PROJECT-ID,缺少/v3/或Project ID会导致连接失败。
  • 连通性测试:使用curl手动测试RPC地址:curl -X POST --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' YOUR_RPC_URL。
  • 特殊API要求:部分早期ZK-EVM实现(如Scroll的Alpha版本)要求L1节点支持eth_getLogs等API。Geth默认关闭,需在启动参数中添加--http.api=eth,net,web3,debug。

hardhat-zksync 插件编译报错 TypeError: Cannot read property 'config' of undefined

此错误是Hardhat与zkSync集成时的常见问题。根因在于项目配置中缺少zksync配置对象。修复步骤如下:

  • 版本兼容性:确认插件版本与Hardhat版本匹配。例如hardhat-zksync@^0.8.0通常兼容Hardhat v2.14以下版本。
  • 配置补全:在hardhat.config.ts的module.exports顶层对象中,添加zksync: {}(可为空对象)。
  • 本地节点连接:使用zksync-cli start-node启动本地节点后,在zksync对象中指定节点地址:zksync: { zksyncNodeUrl: "http://localhost:3050" }。
  • 导入顺序:在配置文件顶部,先导入@matterlabs/hardhat-zksync-solc,再导入@matterlabs/hardhat-zksync-deploy,避免顺序错误导致插件注册失败。

本地部署合约后 zkSync Explorer 查不到交易

本地节点上部署成功后,在官方区块浏览器(如https://zksync2-testnet.zkscan.io)查不到交易记录,原因是官方浏览器仅索引测试网或主网数据。本地链与公共网络相互独立,浏览器无法显示本地交易。

调试本地合约的正确方法:

  • 命令行查询:使用zksync-cli工具:zksync-cli get-transaction --hash 0x... --network http://localhost:3050。
  • 编程接口:通过ethers.js等库连接本地节点,调用provider.getTransactionReceipt()获取交易收据。
  • 本地化浏览器:如需图形界面,可运行zkSync Era官方提供的本地版区块浏览器(通常需Docker Compose启动),后端需配置为连接本地节点。
  • 版本区分:zkSync v1(Legacy)与v2(Era)的浏览器地址、API格式完全不同。当前常用的zksync2-testnet对应v2网络,旧教程中的zksync.io/explorer已停用。

理解本地开发链与公共区块链浏览器为两套独立系统,在zkSync生态中尤为重要。这与以太坊(Ganache + Etherscan)的区别更易混淆,需仔细厘清。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章