3、开发环境准备:安装Node.js、Hardhat、Polygon Mumbai测试网配置
好,咱们正式开始动手了。
这一章,说白了就是搭积木。把开发环境整利索了,后面写合约、跑测试、部署上链,才能一气呵成。我个人习惯是先把基础工具装好,再配网络,最后验证一遍。这样出问题了,排查起来也快。
3.1 安装Node.js与npm
Node.js是整个开发流程的基石。Hardhat、Lens SDK、各种合约库,全跑在它上面。
版本选择
我建议用 LTS(长期支持)版本。为什么?稳定。我在项目中遇到过几次,用最新版Node.js跑一些老合约库,结果依赖冲突,折腾了半天。LTS版本虽然没那么新,但兼容性最好。
| 推荐版本 | 说明 |
|---|---|
| Node.js 18.x LTS | 当前最稳定,Hardhat和Lens SDK都完美支持 |
| npm 9.x+ | 随Node.js一起安装,够用 |
安装步骤
- 访问
https://nodejs.org,下载LTS版本安装包。 - 双击安装,一路默认即可。
- 打开终端(Mac/Linux用Terminal,Windows用PowerShell或CMD),验证安装:
node -v
# 输出示例:v18.17.0
npm -v
# 输出示例:9.6.7
看到版本号,说明装好了。
nvm(Node Version Manager)管理Node版本。切换起来很方便,我平时就用它。
3.2 初始化项目与安装Hardhat
Node.js装好了,接下来创建项目目录,安装Hardhat。
创建项目
mkdir lens-dapp
cd lens-dapp
npm init -y
npm init -y 会生成一个 package.json 文件。嗯,这里要注意,-y 参数表示全部默认,省得一路回车。
安装Hardhat
npm install --save-dev hardhat
装完后,初始化Hardhat项目:
npx hardhat init
你会看到几个选项:
- Create a JavaScript project
- Create a TypeScript project
- Create an empty hardhat.config.js
我个人习惯选JavaScript项目。TypeScript虽然类型安全,但初期开发节奏快,JS更灵活。等你项目大了,再迁移也不迟。
选完后,Hardhat会自动生成目录结构:
contracts/ # 存放智能合约
scripts/ # 部署脚本
test/ # 测试文件
hardhat.config.js # 配置文件
hardhat.config.js 是Hardhat的大脑。网络配置、编译器版本、插件,全在这里定义。
3.3 配置Polygon Mumbai测试网
Lens Protocol 部署在Polygon链上。开发阶段,我们先用Mumbai测试网。它和主网完全兼容,但用的是测试币,随便领。
获取测试网RPC URL
你需要一个节点服务商。我常用的是:
- Alchemy:免费额度够用,稳定
- Infura:老牌,也不错
- QuickNode:速度快,但免费额度少
以Alchemy为例:
- 注册Alchemy账号(免费)。
- 创建App,网络选择 Polygon Mumbai。
- 复制HTTPS endpoint,类似:
https://polygon-mumbai.g.alchemy.com/v2/你的API_KEY
配置hardhat.config.js
打开 hardhat.config.js,写入以下内容:
require("@nomicfoundation/hardhat-toolbox");
module.exports = {
solidity: "0.8.19",
networks: {
mumbai: {
url: "https://polygon-mumbai.g.alchemy.com/v2/你的API_KEY",
accounts: ["你的私钥"]
}
}
};
使用环境变量保护私钥
安装 dotenv 包:
npm install --save-dev dotenv
在项目根目录创建 .env 文件:
PRIVATE_KEY=你的私钥
MUMBAI_RPC_URL=https://polygon-mumbai.g.alchemy.com/v2/你的API_KEY
修改 hardhat.config.js:
require("@nomicfoundation/hardhat-toolbox");
require("dotenv").config();
module.exports = {
solidity: "0.8.19",
networks: {
mumbai: {
url: process.env.MUMBAI_RPC_URL,
accounts: [process.env.PRIVATE_KEY]
}
}
};
记得把 .env 加到 .gitignore 里,防止误提交。
3.4 获取测试网MATIC
部署合约需要gas费。Mumbai测试网用的是测试MATIC,免费领。
水龙头地址:
- Polygon官方水龙头:
https://faucet.polygon.technology/ - Alchemy水龙头:
https://mumbaifaucet.com/
操作很简单:输入你的钱包地址,点击领取。一般一次给0.5个测试MATIC,够用很久。
3.5 验证环境配置
所有东西都装好了,跑个简单命令验证一下:
npx hardhat compile
如果看到 Compilation finished successfully,说明环境没问题。
再测试一下网络连接:
npx hardhat run scripts/deploy.js --network mumbai
当然,现在还没有部署脚本,这个命令会报错。但只要能连上Mumbai网络,终端会显示网络相关的错误信息,而不是连接超时。这就说明配置成功了。
3.6 常见问题与避坑
- 私钥格式错误: 私钥必须以
0x开头。我曾经复制私钥时漏了前缀,结果报错半天。 - RPC URL写错: 检查URL末尾有没有多余的空格或换行。
- 网络不通: 如果一直连接超时,换个RPC服务商试试。
- 版本冲突: Hardhat和Node.js版本不匹配时,会报奇怪的错误。建议用Node.js 18.x LTS。
好了,环境准备就到这儿。下一章,我们开始写第一个Lens合约。