直接用solc安装报“command not found”因官方二进制包无执行权限且未加入path;zk-evm启动卡在l1 rpc是因未配置或未连通已同步的l1节点;hardhat-zksync报config错误系缺失zksync配置对象;本地部署合约在zksync explorer查不到因浏览器不索引本地链数据。

为什么直接用 solc 安装会报错“command not found”
因为官方 solc 二进制包不自带 shell 可执行入口,Linux 下直接下载解压后,solc 文件默认没有执行权限,且不在 $PATH 中。常见错误现象是:下载完运行 ./solc --version 提示 Permission denied,或加 sudo 后提示 command not found。
正确做法是:
- 从 Solidity 官方 releases 页面 下载对应架构的
solc-static-linux(如solc-static-linux-v0.8.26+commit.8b712ec9),不是.tar.gz源码包 - 赋予执行权限:
chmod +x solc-static-linux-v0.8.26+commit.8b712ec9 - 重命名为
solc并软链到系统路径:sudo ln -sf $(pwd)/solc-static-linux-v0.8.26+commit.8b712ec9 /usr/local/bin/solc - 验证:
solc --version应输出版本号,不是 “No such file”
ZK-EVM 节点启动失败卡在 Waiting for L1 RPC endpoint
这是 ZK-EVM(如 Scroll、Taiko 或 Polygon CDK 衍生链)本地开发节点最常遇到的阻塞点——它默认等待一个可用的以太坊 L1 节点,但你没配或配错了。不是网络问题,而是配置项没生效。
关键检查点:
-
l1-eth-rpc配置必须指向一个**已同步完成**的 L1 节点;本地用geth或erigon时,确保启用了--http和--http.api=eth,net,web3 - 若用公共 RPC(如 Infura),确认 URL 带有效 token:
https://mainnet.infura.io/v3/YOUR-KEY,不能漏掉/v3/和 key - 检查节点日志是否打印
Connected to L1 RPC;如果没有,说明连接被拒绝或超时,此时应先用curl -X POST --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' YOUR_RPC_URL手动测试连通性 - 部分 ZK-EVM 实现(如 early Scroll alpha)要求 L1 节点开启
eth_getLogs支持,Geth 默认关闭,需显式加--http.api=eth,net,web3,debug
hardhat-zksync 插件编译报错 TypeError: Cannot read property 'config' of undefined
这是 Hardhat + zkSync 开发中最典型的环境错配:你装了 hardhat-zksync,但项目里没初始化 zkSync 配置,或 hardhat.config.ts 里漏写了 zksync 字段。Hardhat 插件不会自动 fallback,缺失即崩溃。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
修复步骤很明确:
- 确保安装的是兼容版本:
npm install --save-dev hardhat-zksync@^0.8.0(注意:0.9.x 不兼容 Hardhat v2.14 以下) - 在
hardhat.config.ts的module.exports = { ... }中,必须包含顶层zksync: { ... }对象,哪怕只写空对象:zksync: {} - 如果要用本地 zkSync 节点(如
zksync-cli start-node),需在zksync下指定:zksync: { zksyncNodeUrl: "http://localhost:3050" } - 别忘了在
import "@matterlabs/hardhat-zksync-solc"后,再import "@matterlabs/hardhat-zksync-deploy"—— 顺序错会导致插件注册失败
本地部署合约后 zkSync Explorer 查不到交易
zkSync 的区块浏览器(如 https://zksync2-testnet.zkscan.io)不索引本地节点交易,它只抓取官方测试网/主网数据。你在本地 zksync-cli 或 era-test-node 上部署的合约,浏览器自然查不到——这不是同步延迟,是根本不在同一个链上。
真要调试和验证,只能靠本地工具:
- 用
zkSync CLI查交易:zksync-cli get-transaction --hash 0x... --network http://localhost:3050 - 用
ethers.js连本地节点调provider.getTransactionReceipt(),别依赖浏览器 - 如果硬要图形界面,可跑
zksync-era/explorer本地版(需 Docker Compose),但它的后端也必须连你自己的节点,不是自动对接 - 注意:zkSync v1(Legacy)和 v2(ERA)的 explorer 地址、API 格式完全不同,
zksync2-testnet是 v2,而旧教程里的zksync.io/explorer已停用
本地链和浏览器是两套独立系统,这点比以太坊 Ganache + Etherscan 更容易混淆。










