📚 第三章 | 初识 Solidity:开发环境搭建 & 第一个智能合约
——从写下第一行代码,开启智能合约开发之旅!
✅ 本章导读
前两章我们讲清了区块链和智能合约的基础原理,现在——
是时候动手实战!
你将完成:
✅ Solidity 开发环境的搭建
✅ 写下第一个「Hello World」合约
✅ 学会用 Remix 和 Hardhat 部署并调用智能合约
✅ 体验部署到本地测试链,模拟真实开发流程
🚀 Solidity 开发有两种环境
开发方式 | 特点 |
---|---|
Remix IDE | 免安装、开箱即用,适合新手上手和快速测试 |
Hardhat | 本地化开发,更专业灵活,适合项目实战 |
本章结构:
👉 Part 1:零基础用 Remix 写第一个智能合约
👉 Part 2:本地开发 Hardhat 环境搭建
👉 Part 3:合约编译、部署、交互实战
👉 Part 4:本章总结 + 作业挑战
✨ Part 1 | 用 Remix IDE 快速写第一个智能合约
✅ 什么是 Remix?
Remix 是以太坊官方在线 IDE,支持 Solidity 智能合约编写、部署和测试。
网址:https://remix.ethereum.org
✅ 为什么选 Remix?
- 在线版,无需安装
- 自带 Solidity 编译器
- 直接连测试链,部署方便
- 初学者 5 分钟搞定第一份合约!
👨💻 实战步骤
① 打开 Remix 官网
https://remix.ethereum.org
② 创建新文件 HelloWorld.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;contract HelloWorld {string public greet = "Hello, Web3 World!";
}
③ 编译合约
- 点击左侧“Solidity Compiler” → Compile
HelloWorld.sol
- 选择
0.8.x
版本,避免兼容性问题
④ 部署合约
- 点击左侧“Deploy & Run Transactions”
- 环境选择
JavaScript VM
(模拟本地链) - 点击
Deploy
→ 合约部署成功 - 下面
Deployed Contracts
可以看到greet()
按钮 - 点击
greet()
→ 输出"Hello, Web3 World!"
🎉 你写下的第一个智能合约,已经部署并运行!
✨ Part 2 | 本地 Hardhat 环境搭建
✅ 为什么要用 Hardhat?
Remix 虽好,但实际开发要更强大的工具链。
Hardhat 是当前最流行的 Solidity 开发框架,优势是:
✅ 本地调试灵活,日志详细
✅ 支持插件丰富(Ethers.js、Waffle、OpenZeppelin)
✅ 可接测试网、主网部署
✅ 脚本化部署 + 自动化测试,适合团队协作
👨💻 安装 Hardhat 本地开发环境
① 准备 Node.js
- 推荐安装 Node.js 版本
16.x
或更高 - 验证
node -v
和npm -v
② 新建项目文件夹
mkdir my-first-contract
cd my-first-contract
npm init -y
③ 安装 Hardhat
npm install --save-dev hardhat
④ 初始化 Hardhat 项目
npx hardhat
👉 选择 Create a basic sample project
👉 一路回车 → 自动生成以下目录:
contracts/ // 智能合约目录
scripts/ // 部署脚本
test/ // 测试用例
hardhat.config.js // 配置文件
✨ Part 3 | 编写 & 部署第一个合约(HelloWorld)
✅ ① 创建合约文件
进入 contracts
文件夹,新建 HelloWorld.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;contract HelloWorld {string public greet;constructor() {greet = "Hello, Web3 World!";}function setGreet(string memory _greet) public {greet = _greet;}
}
✅ ② 编译合约
npx hardhat compile
看到 Compilation finished successfully
,就对了!
✅ ③ 部署合约脚本(scripts/deploy.js)
编辑 scripts/deploy.js
文件
async function main() {const HelloWorld = await ethers.getContractFactory("HelloWorld");const hello = await HelloWorld.deploy();console.log("合约部署地址:", hello.address);
}main().then(() => process.exit(0)).catch(error => {console.error(error);process.exit(1);});
✅ ④ 启动本地测试链并部署
npx hardhat node
打开另一个终端
npx hardhat run scripts/deploy.js --network localhost
🎉 部署成功,控制台会显示合约地址!
✅ ⑤ 交互测试(使用 Hardhat 控制台)
npx hardhat console --network localhost
const hello = await ethers.getContractAt("HelloWorld", "你的合约地址")
await hello.greet() // 查询 greet
await hello.setGreet("Hello, Solidity!") // 修改 greet
await hello.greet() // 再次查看
✨ Part 4 | 本章小结 & 作业挑战
✅ 本章你学到了
✔️ 什么是 Remix,写下你的第一个合约
✔️ 本地 Hardhat 环境搭建与目录结构
✔️ 编译、部署、交互完整流程
✔️ 正式迈入 Solidity 合约开发之路!
✅ 课后作业(建议动手实践)
- 在 Remix 上自行写一个
Counter
合约- 功能:可以增加、减少计数器值
- 用 Hardhat 本地环境部署
Counter
合约 - 尝试编写
测试用例
(可以参考 test/sample-test.js) - 思考:
constructor
和普通函数的区别?- 部署合约后还能改
constructor
吗?为什么?
✅ 下一章预告|第 04 章
👉 Solidity 基础语法全面解析
🚀 数据类型、变量作用域、函数调用
🚀 结构体、映射、数组、事件机制
🚀 函数修饰符、访问控制、继承和接口
🛡️ 带你逐步掌握 Solidity 语法核心,为项目实战打下基础!
🚀 Ready?
留言告诉我,你写下的第一个合约是什么!
✅ 还是想挑战下 ERC20/NFT 项目?