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一起安装,够用

安装步骤

  1. 访问 https://nodejs.org,下载LTS版本安装包。
  2. 双击安装,一路默认即可。
  3. 打开终端(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为例:

  1. 注册Alchemy账号(免费)。
  2. 创建App,网络选择 Polygon Mumbai
  3. 复制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: ["你的私钥"]
    }
  }
};
安全警告: 千万不要把私钥直接写在代码里!我曾经见过有人把包含私钥的代码上传到GitHub,结果几分钟内钱包就被清空了。建议用环境变量。

使用环境变量保护私钥

安装 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,够用很久。

经验之谈: 如果水龙头没反应,换个时间再试。或者用Alchemy的水龙头,成功率更高。我一般两个都备着。

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合约。