使用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 小时前
ganache-ui使用
区块链·智能合约
Blossom.11817 小时前
Web3.0:下一代互联网的变革与机遇
人工智能·深度学习·物联网·机器学习·web3·区块链·边缘计算
田猿笔记17 小时前
Web3 领域中的一些专业术语
web3·区块链
Web3_Daisy2 天前
一文深度解析:Pump 与 PumpSwap 的协议机制与技术差异
测试工具·web3·区块链
软件工程小施同学2 天前
区块链可投会议CCF C--IPCCC 2025 截止6.7 附录用率
区块链
乌旭2 天前
去中心化算力池:基于IPFS+智能合约的跨校GPU资源共享平台设计
人工智能·深度学习·架构·去中心化·区块链·智能合约·risc-v
电报号dapp1193 天前
交易所开发:构建功能完备的金融基础设施全流程指南
金融·web3·去中心化·区块链·智能合约
JackieDYH4 天前
solidity智能合约-知识点
区块链·智能合约·以太坊
Blossom.1185 天前
基于区块链技术的供应链溯源系统:重塑信任与透明度
服务器·网络·人工智能·目标检测·机器学习·计算机视觉·区块链
CryptoRzz5 天前
股票数据源对接技术指南:印度尼西亚、印度、韩国
数据库·python·金融·数据分析·区块链