记得去年我刚接触区块链那会儿,光是配置开发环境就折腾了三天。现在想想,要是当时有人能给我一份说人话的教程,估计能少掉不少头发。今天咱们就来唠唠怎么用Truffle这个神器,从零开始捣鼓个能跑起来的智能合约。
先别急着写代码,咱们得把趁手的工具备齐。就像做饭得先买菜,搞区块链开发也得先装几个核心组件:
打开终端敲这行命令,把Truffle全家桶请进门:
npm install -g truffle
新建个文件夹叫my_first_dapp,进去执行:
truffle init
这时候你会看到生成这几个目录:
contracts | 放.sol合约文件的地方 |
migrations | 部署脚本的老窝 |
test | 测试用例的游乐场 |
在contracts目录新建Greeter.sol,上代码:
pragma solidity ^0.8.0;
contract Greeter {
string public greeting;
constructor(string memory _greeting) {
greeting = _greeting;
function setGreeting(string memory _newGreeting) public {
greeting = _newGreeting;
}
打开truffle-config.js,找到networks部分改成这样:
networks: {
development: {
host: "127.0.0.1",
port: 8545,
network_id: "
}
先启动Ganache,然后在项目里执行:
truffle migrate
看到类似这样的输出就妥了:
Summary
=======
> Total deployments: 1
> Final cost: 0.00155442 ETH
在test目录新建greeter_test.js:
const Greeter = artifacts.require("Greeter");
contract("Greeter", (accounts) => {
it("应该能正确设置问候语", async => {
const instance = await Greeter.deployed;
await instance.setGreeting("你好,区块链!");
assert.equal(await instance.greeting, "你好,区块链!");
});
});
运行测试:
truffle test
先装个web3包:
npm install web3
新建个index.html:
我的第一个DApp
在部署成功的输出里找到这两个关键信息:
这些是我踩过的雷,你记得绕道走:
Gas费不足 | 在Ganache里把账户余额调高 |
交易卡住 | 检查MetaMask是否连接了本地网络 |
ABI不匹配 | 重新编译后务必更新前端ABI |
现在试着在浏览器里打开你的网页,输入个新问候语点击按钮。如果MetaMask弹出交易确认窗口,恭喜你!已经成功打通了前端和智能合约的任督二脉。
要是卡在哪儿了,不妨去喝杯咖啡再回来看看。区块链开发就是这样,有时候需要给节点同步留点时间。推荐《精通以太坊》当睡前读物,里面有不少实战干货。
2025-08-17 17:00:30
2025-08-17 17:00:24
2025-08-17 16:55:07
2025-08-17 16:52:33
2025-08-17 16:51:48
2025-08-17 16:26:10
2025-08-17 15:49:08
2025-08-17 14:23:57