使用Truffle、Ganache、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,看到块变化和交易信息。

至此,一个简单的区块链就实现了。

相关推荐
穗余13 小时前
hermes agent出现Empty response原因和解决方案
人工智能·web3·区块链
IvorySQL16 小时前
PostgreSQL 18.4、17.10、16.14、15.18、14.23 版本正式发布
数据库·postgresql·区块链
穗余16 小时前
2026 AI x Web3 School共学营笔记-Day7
人工智能·web3·区块链
Shota Kishi16 小时前
用 Solana Block Analyzer 以 slot 为单位观察区块生成节奏:区块时间、验证者与 True TPS
rpc·架构·区块链
明豆17 小时前
以太坊智能合约生产实战 — 安全 · Gas 优化 · 链上监控
安全·区块链·智能合约
多年小白17 小时前
科创50暴涨+5.88%创历史新高
人工智能·ai·金融·区块链·能源
Richown1 天前
密码学入门:区块链中的密码学原理
区块链·react
Richown1 天前
Web3钱包:钱包集成与签名验证
区块链·react
Richown2 天前
跨链桥接:多链资产转移实现
区块链·react