摘要:用 viem createPublicClient 连公开 HTTP RPC,只读 getBlockNumber / getGasPrice / getBlock;对照 Etherscan 同块。开发文,含「区块链开发」标签。
站内已有 ethers.js 读合约、Interface 解码 calldata 与 WebSocket 订阅读。本篇换工具链:用 viem 的 createPublicClient 连公开 HTTP RPC,只读 getBlockNumber / getGasPrice / getBlock / getBalance。全程无私钥、不发交易、不需要测试网 ETH。
一、官方:什么是 Public Client
打开 viem 文档「Public Client」。文档写明:Public Client 是面向「公开」JSON-RPC 方法的接口——例如取最新块高、读合约;用 createPublicClient 创建,并传入为某条 Chain 配好的 Transport(本场用 http())。它和写交易用的 Wallet Client 分开:读链不必持有私钥。

二、官方:getBlockNumber 与 getGasPrice
Public Actions 里:
publicClient.getBlockNumber()→bigint:当前节点看到的最新块号。publicClient.getGasPrice()→bigint(wei):节点给出的气价提示;EIP-1559 下更常看块里的baseFeePerGas。getBlock({ blockNumber }):拿该块的 hash、timestamp、gasUsed/gasLimit、交易列表等。


三、本机实跑:PublicClient 只读主网
脚本在本目录 demo/viem_demo.mjs(viem 2.x)。本场用公开 RPC https://ethereum.publicnode.com(只读;可换成你自己的节点)。2026-10-17 Asia/Shanghai 实跑要点(数值会变):
getBlockNumber()→ 26211226getGasPrice()→ 60692665 wei ≈ 0.0607 gweigetBlock:hash0xe1a021d8…b468;baseFee ≈ 0.0607 gwei;gasUsed/gasLimit 59986141 / 60000000;交易数 164getBalance(公开地址 Vitalik)≈ 5.77 ETH;getChainId()= 1

四、浏览器对照:同一块在 Etherscan
打开 Etherscan 块页 /block/26211226:可见 Block Height、Transactions 164 等与本机 getBlock 对齐。块高/Gas/未最终化状态会随时间变——开发时应用「同一时刻、同一 RPC 视角」理解差异,而不是死记数字。

五、和站内相关文怎么分工
| 场景 | 更合适的文 | 本篇补充 |
|---|---|---|
| ethers Provider + ABI 读合约 | ethers 读合约文 | 本篇专讲 viem PublicClient 建连与块/Gas |
| ABI 解码 calldata / 日志 | Interface 解码文 | 工具链不同;都是只读 |
| WebSocket 订阅 newHeads/logs | WS 订阅文 | 本篇是 HTTP 拉取,非订阅 |
| Foundry cast 命令行读链 | cast 文 | 本篇是 JS/TS 库 |
Public = 只读 JSON-RPC;要发交易才需要 Wallet Client + 私钥(本场不做)。
公共节点不稳定时换 endpoint 或自建;结果以你连上的节点为准。
getGasPrice / baseFee 随拥堵波动;文中数字仅作实跑快照。需要看测试网时可试用欧易 Web3(创建可填 CHENGXULVTU)。
- 读完 viem Public Client / getBlockNumber / getGasPrice 文档。
- 对本机跑
demo/viem_demo.mjs,核对块高、gas、chainId。 - 拿同一块号到 Etherscan 交叉一眼交易数等字段。
- 买少量主网 Gas(与本文无关)可在 币安 或 欧易——本场不需要。
相关阅读
- ethers.js 读合约:ABI、address 与 call 字段
- ethers.js Interface:用 ABI 解码 calldata 与日志
- WebSocket 订阅读:newHeads 与 logs 订阅
- Foundry cast:读链上存储与发测试交易怎么跑
说明:配图为 2026-10-17 viem 官方文档、本机真实终端输出、Etherscan 同块 Overview。样例块高与 Gas 会变。本文不构成投资建议。
