b bajsj.com
~ / bajsj.com / hardhatbu-shu-kai-fa-jiao-cheng

Hardhat部署开发教程:从合约编写到主网上线的工程化路径

published: 2026-05-24T06:12:23.401608+00:00 updated: 2026-05-24T17:45:31.483387+00:00
Hardhat部署开发教程 - Hardhat部署开发教程:从合约编写到主网上线的工程化路径

Hardhat部署开发教程:从合约编写到主网上线的工程化路径

Hardhat 已经成为 Solidity 开发者最常用的本地工具,但从写完合约到真正部署到主网,中间还有大量值得规范化的工程细节。本文围绕 Hardhat部署开发教程的核心环节,按顺序串联起开发流程,让你写出来的部署脚本既可重复运行又易于审计。系统了解工具栈可以先看 Hardhat是什么

一、项目初始化与目录约定

npx hardhat init 创建项目后,建议立刻规范目录:

这种目录结构在 Hardhat最佳实践 中也是默认推荐。hardhat.config.ts 里使用 TypeScript 而非 JS,编译期就能拦下网络名拼写错误等低级问题。

二、网络配置与私钥管理

部署的核心是网络配置。建议为每条目标链单独配置一段:本地 anvil、测试网 sepolia、币安智能链 bsc-mainnet 等。永远不要把私钥写进配置文件,应该走 .envdotenv 加载,并把 .env 加入 gitignore。生产部署建议进一步用硬件钱包或 KMS 代签,杜绝私钥落盘。这也是 Hardhat漏洞案例 中出现频率最高的安全教训。

三、合约编译与产物校验

执行 npx hardhat compile 之前,先在 hardhat.config.ts 里锁定 Solidity 版本与 optimizer runs。不同 runs 值对 Gas 消耗和合约大小影响显著,部署到主网前建议跑一遍 gas-reporter 对比。编译完成后会在 artifacts/cache/ 下生成产物,CI 中应该把这两个目录加入构建产物归档,便于后续 Verify。

四、部署脚本的写法

推荐使用 ethers v6 与 hardhat-ethers 插件:

更复杂的多步部署(先部署 Proxy 再 Init),建议使用 @openzeppelin/hardhat-upgrades 提供的 deployProxy,避免手写代理冲突。这一步与 Hardhat实战教程 中提到的模式一致。

五、Verify 与上链后自检

部署完成后必须 Verify 源码,否则区块浏览器上的合约对用户来说就是黑盒。Hardhat 自带 hardhat-verify 插件,配置好 etherscan/bscscan 的 API Key 后,一条命令即可完成验证。Verify 通过后,再用浏览器手动调用一次只读函数,确认初始化参数与预期一致;写一个集成脚本,用真实地址跑一遍核心业务逻辑,确保上线即可用。

六、币安智能链与多链注意事项

部署到币安智能链时,注意 RPC 限流与 gasPrice 模式仍是 legacy,需要在脚本里显式指定 type: 0。多链部署建议把网络列表抽到一个数组中遍历,避免脚本重复。配合 Hardhat迁移指南 中介绍的流程,可以做到「同一份脚本,多链一键部署」。

按照上述六步实践,你的 Hardhat 部署流程就具备了可重复、可审计、可回滚三大工程属性,从此告别「手动改一改 config 就部署」的混乱状态。