文章目录
-
- 概要
- 初始化Truffle项目
- 创建编写合约
- 编译合约
- 配置Ganache
- 修改truffle-config.js文件
- 编写迁移文件
- 部署合约
- [使用Truffle 控制台](#使用Truffle 控制台)
- 使用MetaMask和Vue+Web3与链交互
概要
使用Truffle、Ganache、MetaMask、Vue+Web3完成的一个简单区块链项目。
初始化Truffle项目
安装好truffle,执行命令。
bash
truffle init
完成后目录如下。
创建编写合约
在contracts目录下创建编写合约。

准备一个简单的合约。
bash
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract SimpleStorage {
// 存储一个数字
uint256 private storedNumber;
// 设置数字
function setNumber(uint256 _number) public {
storedNumber = _number;
}
// 获取数字
function getNumber() public view returns (uint256) {
return storedNumber;
}
}
编译合约
在项目目录执
bash
truffle compile
执行成功会在build/contracts目录下生成一个json文件, JSON 文件中,abi 和 bytecode 是与合约交互的关键部分。
配置Ganache
点击New WorkSPACE配置,主要配置本地和端口号,本地的话我没就使用默认的。

配置完成后启动就行,默认有十个账户,都有以太。

修改truffle-config.js文件

修改两个地方,一个网络和合约版本,网络要和gannche里的一样,合约版本要一致或兼容。
编写迁移文件
在migrations目录下编写一个js文件。

bash
const SimpleStorage = artifacts.require("SimpleStorage");
module.exports = function (deployer) {
deployer.deploy(SimpleStorage);
}
迁移文件用于管理和自动化智能合约的部署过程。每当你需要将合约部署到区块链网络时,迁移文件会帮助你定义和执行这一过程。
部署合约
项目目录下执行命令
bash
truffle migrate
部署完成后查看Ganache。
使用Truffle 控制台
部署完成后项目目录下执行
bash
truffle console
bash
let instance = await SimpleStorage.deployed();
//
await instance.setNumber(42);
//
let number = await instance.getNumber();
//
console.log(number.toString());
验证合约。
使用MetaMask和Vue+Web3与链交互
创建Vue项目,安装web3。编写两个简单的页面,一个用于连接钱包,一个用于合约交互。
注意需要编译好的合约json文件。
启动项目。
在游览器插件中安装MetaMask。

点击连接钱包,会弹出MetaMask。
选择导入钱包。输入Ganache中产生的助记词。
连接到钱包。

点击登入。
输入数字。点击set。会弹出MetaMask。

点击确认交易。提示交易成功。
点击查询就可以查看到钢材输入的数字。
然后查看Ganache,看到块变化和交易信息。
至此,一个简单的区块链就实现了。