/blog/post-1785113583544/博客
READY
技术笔记

手把手教你:用 Hardhat 搭建本地以太坊私链并完成第一笔转账

2026-07-27约 4 分钟

区块链开发入门最怕一上来就面对主网、Gas费、测试币水龙头这些概念。其实最舒服的姿势是先在本地跑一条私链,用预置的10000 ETH随便“挥霍”。本文记录了我用 Hardhat 从零搭建本地节点并完成一笔转账的全过程,全程无需深入区块链原理,跟着敲命令就能跑通。


一、为什么从本地私链开始?

学习以太坊智能合约开发,本地私链是最好的练习场:

  • 零成本:无需申请测试币,默认账户自带 10000 ETH

  • 极速出块:按需打包,交易几乎即时确认

  • 完全可控:可以随意重置、分叉、调试

这次我用的是 Hardhat —— 目前最流行的以太坊开发框架,集成了编译、部署、测试、本地节点于一体。以下是基于官方“保姆包”的实践记录。


二、准备工作:解压项目包

YUME-hu/my-hardhat-project

首先拿到一个预先配置好的 Hardhat 项目压缩包 my-hardhat-project.zip,解压到任意文件夹(路径最好不要包含中文或空格)。比如我解压到了:

text

D:\hardhat进度备份\my-hardhat-project①私链交易

解压后目录结构大致如下(标准的 Hardhat 项目):

text

my-hardhat-project/
├── contracts/          # 智能合约(Solidity)
├── scripts/            # 执行脚本(我们转账用的就在这里)
├── test/               # 测试文件
├── hardhat.config.js   # 配置文件
└── package.json        # 依赖管理

三、启动本地节点(挖矿监听)

我们需要两个命令行窗口(Windows 下用 CMD 或 PowerShell 均可),一个用来跑节点服务,另一个用来执行转账脚本。

3.1 打开两个 CMD 窗口

快捷键 Win + R,输入 cmd,回车打开第一个;再重复一次打开第二个。

3.2 切换到项目目录

在两个窗口中分别执行(注意替换成你自己的解压路径):

bash

cd /d "D:\hardhat进度备份\my-hardhat-project①私链交易\my-hardhat-project"

小提示:可以直接从资源管理器地址栏复制路径,避免手敲出错。

3.3 启动 Hardhat 本地节点(左边窗口)

在左边窗口输入:

bash

npx hardhat node

稍等片刻,你会看到如下信息(这就是私链的创世账户):

text

Started HTTP and WebSocket JSON-RPC server at http://127.0.0.1:8545/

Accounts
========
WARNING: These accounts, and their private keys, are publicly known.
Any funds sent to them on Mainnet or any other live network WILL BE LOST.

Account #0: 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 (10000 ETH)
Private Key: 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80
Account #1: 0x70997970C51812dc3A010C7d01b50e0d17dc79C8 (10000 ETH)
...

Hardhat 默认生成了 20 个账户,每个都有 10000 ETH(仅供开发测试使用)。千万不要把私钥用于主网!

此时这个窗口会一直保持运行,实时打印出块日志,不要关闭。


四、执行转账脚本(右边窗口)

项目包里已经写好了转账脚本 scripts/transfer.js,我们只需要指定转出方和接收方的地址即可。

4.1 运行脚本命令

在右边窗口输入:

bash

npx hardhat run scripts/transfer.js --network localhost

4.2 输入转账双方地址

脚本运行后会提示你输入两个地址:

  • 发送方(从左边窗口复制任意 Account #x 的地址)

  • 接收方(复制另一个不同账户的地址)

比如我选择:

  • 发送方:Account #0 的地址 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266

  • 接收方:Account #1 的地址 0x70997970C51812dc3A010C7d01b50e0d17dc79C8

按提示粘贴过去,回车。

4.3 观察区块打包

此时左边窗口(节点日志)会瞬间刷出一排绿色的日志,表示新区块已生成并打包了这笔转账交易:

text

eth_sendTransaction
  Contract call:       ...
  Transaction:         0x...
  Block:               1
  Gas used:            21000

右边窗口也会返回交易哈希和转账成功的提示。


五、查账验证余额变化

转账完成后,我们当然要核对一下余额是否真的变了。

5.1 执行查账脚本

项目中通常还提供了查询余额的脚本(或直接在 Hardhat 控制台操作)。这里文档中给出了查账结果示例:

text

账户 #19 地址:0xdD2FD4581271e230360230F9337D5c0430Bf44C0 以太币余额:11100.0 ETH
账户 #20 地址:0x8626f6940E2eb28930eFb4CeF49B2d1F2C9C1199 以太币余额:8899.999978999999853 ETH

可以看到,接收方余额增加了(比如 11100 ETH),发送方减少了(扣除转账金额 + Gas费)。至此,一条完整的本地私链转账流程就跑通了。


六、扩展:如何自定义其他脚本?

项目中的所有功能都由 scripts/ 目录下的 JS 脚本实现。如果你要部署合约、调用合约方法,只需:

bash

npx hardhat run scripts/你的脚本.js
# 如果需要连接本地节点,加 --network localhost
npx hardhat run scripts/你的脚本.js --network localhost

只要脚本逻辑正确,理论上任何链上操作都可以通过这种方式完成。


七、总结 & 一点感悟

这次本地私链的搭建和转账操作,全程不到 5 分钟,却让我直观地感受到了区块链交易的生命周期:发起 → 签名 → 广播 → 打包 → 确认。Hardhat 把底层复杂的事情封装得极其友好,开发者只需要关注业务逻辑。

值得一提的是,这份指导书本身也是借助 AI(DeepSeek、Kimi、豆包)辅助生成的。正如文档末尾所说:

“可以说是‘无需理解亦能胜任了’”——确实,在 AI 的帮助下,即使只有很少的区块链理论知识,也能顺利完成开发环境的搭建和基础操作。

但我也建议,跑通之后还是回头了解一下账户、私钥、Gas、nonce 这些基本概念,这样未来面对复杂合约时才能心中有数。


下一步:可以试试自己写一个 ERC-20 代币合约,用同样的方式部署到本地私链,然后用脚本转账——你会发现流程完全一致。祝你玩得开心!

关联项目

Hardhat 以太坊私链开发项目

基于Hardhat的以太坊私链开发,支持合约部署、代币铸造与转账交易。