15 分钟极速上手:实现并部署 Hello World 智能合约

·

如果你刚刚踏入区块链开发,或想了解 Solidity 合约如何在测试网上「跑」起来,这份速通指南只需 15 分钟,就能带你完成从钱包到链上的全链路演示。

本文用 Hardhat + Alchemy + Sepolia 测试网,手把手教你如何:

阅读过程中 常见问题 FAQ 已内嵌在多处以减轻踩坑。准备好开始了吗?


1. 预热准备:工具清单

在正式编码前,先把工具摆上桌:

关键词:MetaMask、Sepolia、Alchemy、Hardhat、Node.js、Solidity、测试网


2. 连接到以太坊网络(硬编码极简流)

无需自建节点,Alchemy 提供 JSON-RPC 端点。
  1. 在 Alchemy 面板创建 App:
    名称:HelloWorld
    链:Ethereum
    网:Sepolia
  2. 点击 View Key,复制 HTTPS Endpoint(形如 https://eth-sepolia.g.alchemy.com…)。稍后塞进 .env

3. 钱包、代币、余额一条龙

3.1 创建 MetaMask 账户

3.2 领 5 枚测试 ETH

3.3 验证余额

打开 Alchemy Composer,选 eth_getBalance 方法,输入钱包地址即可返回 十六进制 wei

👉 30 秒教会你用 Composer 查余额,比浏览器插件还直观!


4. 项目初始化:从 0 到编译就绪

4.1 创建文件夹

mkdir hello-world
cd hello-world
npm init -y

4.2 安装 Hardhat

npm install --save-dev hardhat
npx hardhat

选择 Create a JavaScript project,一路回车即可。

4.3 目录结构

执行:

mkdir contracts scripts

5. 编写你的第一个 Solidity 合约

contracts/HelloWorld.sol 里粘贴:

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

contract HelloWorld {
    string public message;

    constructor(string memory initMessage) {
        message = initMessage;
    }

    function update(string memory newMsg) public {
        message = newMsg;
    }
}

功能极简:部署时设定问候语,任何地址可调用 update() 改写内容。


6. 配置私享环境变量

6.1 安装依赖

npm install --save-dev dotenv @nomiclabs/hardhat-ethers ethers@^5.7.0
若遇 ethers v6 peer 依赖报警,可加 --legacy-peer-deps 强制安装。

6.2 .env 要点

文件根目录新建 .env

ALCHEMY_KEY=ALCHEMY_HTTP_ENDPOINT_URL
PRIVATE_KEY=YOUR_METAMASK_PRIVATE_KEY

6.3 hardhat.config.js 关键段

require("@nomiclabs/hardhat-ethers");
require("dotenv").config();

module.exports = {
  solidity: "0.8.18",
  networks: {
    sepolia: {
      url: process.env.ALCHEMY_KEY,
      accounts: [process.env.PRIVATE_KEY],
    },
  },
};

7. 编译与部署脚本

7.1 编译

npx hardhat compile

看到 Compilation finished successfully 即可忽略 SPDX 提示。

7.2 创建部署脚本

scripts/deploy.js

const main = async () => {
  const [deployer] = await ethers.getSigners();
  console.log("Deployer:", deployer.address);

  const HelloWorld = await ethers.getContractFactory("HelloWorld");
  const contract = await HelloWorld.deploy("Hello, Web3 Explorer!");
  await contract.deployed();

  console.log("Contract deployed to:", contract.address);
};

main().catch((err) => {
  console.error(err);
  process.exitCode = 1;
});

关键词:Hardhat 部署脚本、合约工厂、Sepolia


8. 上链!真实部署流程

命令行:

npx hardhat run scripts/deploy.js --network sepolia

终端输出:

Deployer: 0xYour...
Contract deployed to: 0x123abc...

复制合约地址备用。每笔部署相当于一次链上交易,可在 Sepolia Etherscan 查询

👉 一次就学会如何“看”合约部署记录,教你 2 分钟找到交易细节!


9. 检查链上日志

Alchemy Dashboard → 选择刚才的 App → Explorer → 过滤 [eth_sendRawTransaction] 即看到部署写入。

核心字段:


10. 一键 FAQ:最常问的 5 件事

Q1. 为何我选不到 Sepolia?
A:打开 MetaMask → 设置 → 高级 → 开启“显示测试网”。

Q2. 水龙头排队太久,有其他方式吗?
A:可尝试公开备用水龙头(搜索“Sepolia Faucet List”),或找同行的测试币互助群。

Q3. 编译报 SPDX 警告要改吗?
A:只需在文件首行声明 // SPDX-License-Identifier: MIT 即可,不影响部署。

Q4. 想换地方重新部署,有什么快捷方式?
A:更新 deploy.js 里传递的新参数,或升级 --network goerli 即可链活期切换测试网。

Q5. .env 泄露会有什么后果?
A:私钥泄露即意味着钱包资金可被盗,请立即转移资产并用全新私钥启动新项目。


11. 下一步预告

关键词:智能合约交互、开源验证, ABI、Solidity Explorer


祝你链上之旅首战告捷!完成后别急着退出,切记存好合约地址,教程第二部分很快上线。