第二课:Solidity开发环境搭建
说实话,很多新手一上来就急着写合约,结果连环境都没配好,debug 到怀疑人生。我个人习惯是先把开发环境理清楚,后面写代码才能行云流水。这节课,我们就来把 Remix IDE、Hardhat、本地测试节点和 MetaMask 这四件套安排明白。
一、Remix IDE:零门槛的在线编辑器
如果你只是想快速验证一个合约逻辑,Remix 绝对是最佳选择。它不需要安装,打开浏览器就能用。我刚开始学 Solidity 时,就是靠 Remix 一点点试出来的。
访问地址:https://remix.ethereum.org
界面主要分三块:
- 文件管理器:左侧,管理你的 .sol 文件
- 编辑器:中间,写代码的地方
- 终端与插件:右侧,编译、部署、调试
写一个最简单的合约试试:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract HelloWorld {
string public message = "Hello, DEX!";
}
点击编译按钮,绿色勾出现就说明没问题。然后切换到 "Deploy & Run Transactions",选 "Remix VM" 作为环境,点 Deploy。嗯,就是这么简单。
二、Hardhat:专业开发者的标配
Remix 适合小打小闹,真要开发 DEX 这种复杂项目,还得上 Hardhat。它集成了编译、测试、部署、调试全套流程。我个人在多个生产级项目中都用它,稳得很。
安装步骤:
- 确保装了 Node.js(v16 以上)
- 创建项目目录并初始化
mkdir my-dex
cd my-dex
npm init -y
npm install --save-dev hardhat
初始化 Hardhat 项目:
npx hardhat init
选 "Create a JavaScript project",一路回车。你会看到这样的目录结构:
my-dex/
├── contracts/ # 放 Solidity 合约
├── scripts/ # 部署脚本
├── test/ # 测试文件
├── hardhat.config.js # 配置文件
└── package.json
核心配置:打开 hardhat.config.js,你会看到类似这样的内容:
module.exports = {
solidity: "0.8.20",
networks: {
localhost: {
url: "http://127.0.0.1:8545"
}
}
};
这里可以配置多个网络,比如本地测试网、测试网、主网。我一般会加一个 sepolia 测试网的配置,方便部署到真实测试环境。
三、本地测试节点:Ganache vs Hardhat Network
为什么要搭本地节点?你想想看,每次测试都往公链上发交易,gas 费谁受得了?本地节点就是你的私人测试环境,免费、快速、可控。
方案一:Hardhat Network(推荐)
Hardhat 自带一个内置节点,启动命令:
npx hardhat node
启动后,它会创建 20 个测试账户,每个账户有 10000 ETH。终端会显示账户地址和私钥。我个人更倾向这个方案,因为它和 Hardhat 深度集成,调试信息更丰富。
方案二:Ganache
Ganache 是 Truffle 团队的产品,有桌面版和命令行版。安装方式:
npm install -g ganache
ganache
它也会生成测试账户,默认监听 7545 端口。不过我现在很少用 Ganache 了,因为 Hardhat Network 已经足够好。
四、MetaMask 钱包配置
MetaMask 是浏览器插件钱包,用来和你的 DApp 交互。配置本地网络其实很简单:
- 安装 MetaMask 插件(Chrome/Firefox 商店都有)
- 创建钱包,保存好助记词(别告诉任何人)
- 点击网络切换按钮,选 "添加网络"
填入以下信息:
| 字段 | 值 |
|---|---|
| 网络名称 | Localhost 8545 |
| RPC URL | http://127.0.0.1:8545 |
| 链 ID | 31337 |
| 货币符号 | ETH |
链 ID 为什么是 31337?这是 Hardhat Network 的默认值。Ganache 默认是 1337,别搞混了。
添加完网络后,还需要导入测试账户。从 Hardhat node 终端复制一个账户的私钥,在 MetaMask 里点 "导入账户",粘贴私钥。搞定。
五、实战:跑通第一个 Hardhat 脚本
环境都搭好了,我们来写个部署脚本验证一下。在 scripts 目录下创建 deploy.js:
const hre = require("hardhat");
async function main() {
const HelloWorld = await hre.ethers.getContractFactory("HelloWorld");
const hello = await HelloWorld.deploy();
await hello.deployed();
console.log("合约部署到:", hello.address);
}
main().catch((error) => {
console.error(error);
process.exitCode = 1;
});
然后运行:
npx hardhat run scripts/deploy.js --network localhost
如果看到合约地址输出,恭喜你,整个开发环境就通了。
总结一下今天的成果:
- ✅ Remix IDE:快速原型验证
- ✅ Hardhat:专业项目开发框架
- ✅ 本地节点:免费测试环境
- ✅ MetaMask:钱包交互配置
这套组合拳,足够支撑你完成整个 DEX 的开发。下一节课,我们就要开始写真正的合约代码了。
公众号:蓝海资料掘金营,微信deep3321