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


创建编写合约
在contracts目录下创建编写合约。

准备一个简单的合约。
// 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;}
}
编译合约
在项目目录执
truffle compile
执行成功会在build/contracts目录下生成一个json文件, JSON 文件中,abi 和 bytecode 是与合约交互的关键部分。

配置Ganache
点击New WorkSPACE配置,主要配置本地和端口号,本地的话我没就使用默认的。

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

修改truffle-config.js文件

修改两个地方,一个网络和合约版本,网络要和gannche里的一样,合约版本要一致或兼容。


编写迁移文件
在migrations目录下编写一个js文件。

const SimpleStorage = artifacts.require("SimpleStorage");module.exports = function (deployer) {deployer.deploy(SimpleStorage);
}
迁移文件用于管理和自动化智能合约的部署过程。每当你需要将合约部署到区块链网络时,迁移文件会帮助你定义和执行这一过程。
部署合约
项目目录下执行命令
truffle migrate
部署完成后查看Ganache。


使用Truffle 控制台
部署完成后项目目录下执行
truffle console
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,看到块变化和交易信息。


至此,一个简单的区块链就实现了。
相关文章:
使用Truffle、Ganache、MetaMask、Vue+Web3完成的一个简单区块链项目
文章目录 概要初始化Truffle项目创建编写合约编译合约配置Ganache修改truffle-config.js文件编写迁移文件部署合约使用Truffle 控制台使用MetaMask和VueWeb3与链交互 概要 使用Truffle、Ganache、MetaMask、VueWeb3完成的一个简单区块链项目。 初始化Truffle项目 安装好truf…...
初出茅庐的小李博客之按键驱动库使用
驱动库介绍 源码地址:https://github.com/jiejieTop/ButtonDrive 使用只需3步,创建按键,按键事件与回调处理函数链接映射,周期检查按键,支持单双击、连按、长按;采用回调处理按键事件(自定义消…...
如何调试Linux内核?
通过创建一个最小的根文件系统,并使用QEMU和GDB进行调试。 1.准备工作环境 确保系统上安装了所有必要的工具和依赖项。 sudo apt-get update //更新一下软件包 sudo apt-get install build-essential git libncurses-dev bison flex libssl-dev qemu-system-x…...
ECharts组件封装教程:Vue3中的实践与探索
在日常的前端开发中,ECharts 作为一款强大且易用的图表库,被广泛应用于数据可视化场景。为了更好地在 Vue3 项目中复用 ECharts 功能,我们可以将其封装成一个组件。本文将带大家一步步实现 ECharts 的 Vue3 组件封装,并演示如何在父组件中调用和使用。 一、封装 ECharts 组…...
NAT 代理服务 内网穿透
🌈 个人主页:Zfox_ 🔥 系列专栏:Linux 目录 一:🔥 NAT 技术背景二:🔥 NAT IP 转换过程三:🔥 NAPT四:🔥 代理服务器🦋 正向…...
CAN硬件协议详解
一、基本理论: 1、CAN的总线结构: CAN总线 网络结构 有 闭环和开环 两种形式;无论实际的网络多复杂,都离不开这两种基本结构。 闭环结构的CAN总线网络,总线的两端各并联一个120Ω的电阻,两…...
网络安全等级保护:网络安全等级保护基本技术
下面我们概括性探讨一下等级保护用到的一些技术,有关这些技术的每一个方面的每一个部分都可以是一部大块头,甚至一部大块头都无法介绍清楚,需要系列性的书籍去展开,所以这里也只能做到抛砖而已。期望起到抛砖引玉的作用࿰…...
信刻光盘安全隔离与信息交换系统让“数据摆渡”安全高效
随着数据传输、存储及信息技术的飞速发展,信息安全保护已成为重中之重。各安全领域对跨网数据交互的需求日益迫切,数据传输的安全可靠性成为不可忽视的关键。为满足业务需求并遵守保密规范,针对于涉及重要秘密信息,需做到安全的物…...
数据结构课程设计(java实现)---九宫格游戏,也称幻方
【问题描述】 九宫格,一款数字游戏,起源于河图洛书,与洛书是中国古代流传下来的两幅神秘图案,历来被认为是河洛文化的滥觞,中华文明的源头,被誉为"宇宙魔方"。九宫格游戏对人们的思维锻炼有着极大…...
[思考记录]AI时代下,悄然的改变
尝试用 xAI-Grok 去了解DS开源周的信息,有那么点被Grok的输出惊艳到。“请你以技术编辑的角色,重点参考官方文档,介绍DeepSeek开源周的内容,写一篇技术分享文章。”,得到的文字看起来很是舒服,内容靠谱、结…...
JAVA笔记【一】
现实 (抽象) 类 (创建) 对象 特点: 1.面向对象 2.跨平台 3.安全性 4.多线程 java程序基本结构 1. java源代码文件实际是普通的文本文件,源代码文件必须是.java扩展名,且必须小写 2. …...
[Java基础] 常用注解
文章目录 1. 元注解2. 非元注解2.1 常用JDK自带注解2.2 常用Spring相关注解2.2.1 在Spring框架中,注解用于简化配置和增强代码的可读性。以下是常用的Spring注解的一部分2.2.2 针对controller的相关注解2.2.3 AOP相关注解2.2.4 Enable系列注解 2.3 常用Lombok注解 1…...
uvm中的run_test作用
在SystemVerilog和UVM验证环境中,run_test() 是启动UVM仿真流程的核心函数。它负责初始化UVM框架、创建测试用例实例,并触发UVM的Phase机制来执行验证环境的构建和运行 1. run_test() 的作用 run_test() 是UVM提供的内置函数,定义在UVM库中…...
brew search报错,xcrun:error:invalid active developer path CommandLineTools
问题出现的原因 出现“xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun”错误,通常是因为Xcode命令行工具未正确安装或其路径已损坏。以下是几种常见的…...
C#内置委托(Action)(Func)
概述 在 C# 中,委托是一种类型,它表示对具有特定参数列表和返回类型的方法的引用。C# 提供了一些内置委托,使得开发者可以更方便地使用委托功能,无需手动定义委托类型。本文将详细介绍 Action 和 Func 这两个常用的内置委托。 A…...
kubernetes 部署项目
随着容器化技术的发展,使用Kubernetes(简称K8s)来部署和管理应用已经成为现代软件开发的标准实践之一。Kubernetes提供了一套强大的工具集,使得部署、扩展和管理应用程序变得更为简便高效。本文将带你走过从准备环境到部署一个实际…...
《几何原本》命题I.2
《几何原本》命题I.2 从一个给定的点可以引一条线段等于已知的线段。 设 A A A 为给定点, B C BC BC 为给定线段 连接 A B AB AB,作等边 △ A B D \triangle ABD △ABD 以 B B B 为圆心, B C BC BC 为半径作小圆 延长 D B DB DB 交小圆…...
【我的 PWN 学习手札】House of Kiwi
House of Kiwi 之前我们利用IO_FILE一般是通过劫持vtable来实现的, House of Kiwi虽然不是通过劫持vtable来实现,但实质上是劫持vtable指向的全局的_IO_file_jumps_表来实现的。注意:对于某些版本的glibc,_IO_file_jumps_并不可写…...
nvm的学习
学习 nvm(Node Version Manager) 是掌握 Node.js 开发的关键技能之一。以下是系统的学习路径和实战指南,涵盖从基础到进阶的内容: 一、基础入门 1. nvm 的核心作用 多版本共存:安装和管理多个 Node.js 版本ÿ…...
haclon固定相机位标定
什么是标定? 工业应用中相机拍到一个mark点的坐标为C1(Cx,Cy),C1点对应的龙门架/机械手等执行端对应的坐标是多少? 标定就是解决这个问题,如相机拍到一个点坐标C1(Cx,Cy),…...
JMeter HTTP接口压测实战:定位性能瓶颈的工程方法论
1. 这不是点几下就能出报告的“压测”,而是对系统真实承压能力的外科手术式探查很多人第一次打开JMeter,以为只要填个URL、设个线程数、点“启动”,跑完看个聚合报告就叫“压测完了”。我见过太多团队在上线前用JMeter跑出“99.9%成功率、平均…...
2026 收藏版|程序员转行 AI 大模型应用开发,5 步零基础上岸学习路线
身为程序员,或是打算跨界进军AI应用开发赛道的朋友,真心建议大胆投递岗位,别被招聘简章里严苛的任职要求劝退。诸如精通大模型底层原理、具备多年AI从业经验这类条件,大多只是企业理想招聘标准。 身边不少同行都是秉持先入职深耕、…...
2026年AI写作辅助平台实测排行,哪款真正适合一站式撰稿?
2026 年学术 AI 论文工具已形成全流程、理工 / 社科、英文 / 中文、免费 / 付费的清晰分化。综合实测排行与场景适配,千笔AI 是中文全能首选,DeepSeek 学术版是理工开源首选,毕业之家是国内毕业专属首选。 一、2026 年实测排行 TOP5ÿ…...
Seraphine:你的英雄联盟智能助手,3大核心功能提升游戏决策力
Seraphine:你的英雄联盟智能助手,3大核心功能提升游戏决策力 【免费下载链接】Seraphine 英雄联盟战绩查询工具 项目地址: https://gitcode.com/gh_mirrors/se/Seraphine 想象一下这样的场景:你刚刚进入英雄联盟的排位赛BP阶段&#x…...
3步快速搭建微信小程序商城:巴爷商城开源项目实战指南
3步快速搭建微信小程序商城:巴爷商城开源项目实战指南 【免费下载链接】wechat_mall_applet A real mall wechat applet 项目地址: https://gitcode.com/gh_mirrors/we/wechat_mall_applet 还在为开发微信小程序商城而烦恼吗?🤔 今天我…...
避坑指南:Gurobi在MATLAB中配置成功后,为什么optimize函数求解结果不对?
Gurobi与MATLAB联合作战:当optimize函数结果异常时的全维度排错手册 当你终于完成了Gurobi的安装配置,看到yalmiptest显示"Found"时,那种成就感就像调试通过了第一个"Hello World"。但现实很快给你上了一课——optimize函…...
有哪些AI论文软件是真的适配学科专业,而不是模板套话?
在 AI 写作技术迅猛发展的今天,各类论文工具层出不穷,看似能快速完成写作任务,实则多数是内容空洞、逻辑混乱、格式随意的“模板复制器”,生成的文章缺乏专业深度,充斥着机械化的表达方式。真正具备学术价值的 AI 论文…...
Hermes Agent 自定义供应商配置指向 Taotoken 的步骤
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Hermes Agent 自定义供应商配置指向 Taotoken 的步骤 对于使用 Hermes Agent 进行 AI 应用开发的团队而言,统一管理模型…...
终极指南:如何用Word Checker轻松实现中英文拼写自动纠正
终极指南:如何用Word Checker轻松实现中英文拼写自动纠正 【免费下载链接】word-checker 🇨🇳🇬🇧Chinese and English word spelling corrector.(中文易错别字检测,中文拼写检测纠正。英文单词拼写校验工具…...
别再混淆EbN0和SNR了!手把手教你用Python验证MQAM误码率公式(附完整代码)
从理论到实践:用Python彻底解析EbN0与SNR的误码率验证 通信仿真中经常遇到一个经典问题:为什么我的误码率曲线和理论公式对不上?这个问题困扰过无数通信工程师和研究者。本文将带你从基础概念出发,通过Python代码实现,…...
