Truffle开发框架

以太坊开发框架——Truffle的基础使用 这里写目录标题TruffleTruffle 简介Truffle 的客户端安装Truffle创建项目Migrationartifacts.require()exports 的函数deployer 对象更新 migration 文件更新 truffle 配置文件创建账户(可用 metamask 上账户转币)部署新建 JavaScript 文件 app/scripts/index.js Truffle Truffle 简介 truffle unbox webpack 一条命令由于要下载众多需要的模块,大概耗时 1 阅读详情

Web3.js

概念:与以太坊进行合约交互的javaScript的api

作用:以太坊节点只能识别一种JSON-RPC的语言,但JSON-RPC写起来很麻烦,也很容易出错,所以通过web3.js来进行封装,这样就只需要与web3.js进行交互就可以了。

英文文档:https://web3js.readthedocs.io/en/1.0/

Truffle开发框架

概念:Truffle是针对基于以太坊的Solidity语言的一套开发框架。本身基于Java。Truffle为以太坊提供了开发环境、测试框架和资产管道(pipeline),旨在使以太坊开发更容易,使用Truffle你会得到:内置智能合约编译、链接、部署和二进制字节码管理。针对快速迭代开发的自动化合约测试。可脚本化,可扩展的部署和迁移框架。网络管理,用于部署到任意数量的公共和私有网络。使用EthPM和NPM进行包安装管理。用于直接合约通信的交互式控制台。支持持续集成的可配置构建管道。外部脚本运行程序可以在Truffle环境中执行脚本。提供了合约抽象接口,可以直接通过var instance = Storage.deployed();拿到合约对象后,在Java中直接操作对应的合约函数。原理是使用了基于web3.js封装的Ether Pudding工具包。简化开发流程。提供了控制台,使用框架构建后,可以直接在命令行调用输出结果,可极大方便开发调试。

作用:为以太坊提供开发环境,测试框架等,使得以太坊开发测试更加方便。

功能:内置只能合约得编译,链接,部署等管理,可脚本化,可以扩展部署,迁移框架,网络管理,可以部署到任意的公共网络,私有网络,使用npm,ethpm进行包管理,用于直接与合约通信得交互式的控制台,可以在truffle环境中运行外部脚本。

提供合约抽象接口,var instance = Contract.deployed()的语句拿到合约的对象,然后就可以在javascript中操作对应的合约函数。

Truffle安装

首先需要安装nodejs

先下载源码tar包:https://nodejs.org/en/download/,打开网址点击source code。然后将下载好的tar包导入虚拟机中,然后解压,然后将解压好的文件放到/usr/local目录下(这一步很关键一定要放入这个目录下),然后进入解压好的文件输入命令:

./configure
make
make install

查看版本验证是否安装成功 

node -v 
npm -v

 安装truffle

npm install -g truffle

 

 查看是否安装成功

truffle -v

 

 

 

安装完成后就可以做个小案例

在home文件夹下建一个文件夹供自己做demo用

然后再在里面建一个data,然后进入data,truffle init

你可以看到Compile:编译,migrate:迁移,test contracts 测试合约。

然后你用webstorm(http://www.jetbrains.com/webstorm/)打开这个data文件夹,然后进行编译。

打开data文件你可以看到这些

目录结构:

Contracts :存放编写的合约脚本

Migcrations:存放迁移部署脚本

Test:存放测试脚本

truffle.js:truffle配置文件

Truffle-config.js:一般在windows下面使用,cmd下,truffle命令和truffle。js 有可能会冲突。

创建合约

在Contracts里面新建一个sol文件编写就可以。

pragma solidity ^0.4.18;

contract Storage{
     uint storageData;
     funtion set (uint data){
     
     storageData = data;
     }
     function get()constant returns(uint){
     return storageData;
     }
}

 

然后就可以编译合约;

直接在webstorm中打开终端然后编译:truffle compile

 编译完成后,你可以看到多了一个build文件夹,文件夹中的文件就是我们想要的。

 

然后我们就该部署了,部署之前需要安装ganache,npm install -g ganache

然后启动ganache-cli

监听地址与端口号要与下面配置文件中的一致

注:如果要重启这个客户端,一定要删掉之前自动创建好的build文件夹,然后重新编译

我们编辑truffle.js配置文件。


module.exports = {
  networks :{
      development:{
          host : "127.0.0.1",
          prot : 8545,
          network_id : "*"

      }
  }
};

然后 在migrations中新建一个2_storage_migration.js(迁移脚本),文件开头一定是数字,因为文件的读取是根据数字来读的数字后边的可以随便写,规范化的写法:数字_合约名称_migration。

 

 

truffle migrate 执行所有在migrations目录下的迁移脚本,如果没有新的迁移脚本,则不会执行操作。如果迁移脚本更改,然后再truffle migrate 一样不会执行任何操作,这时应该, truffle migrate --reset 就会重新部署所有迁移脚本。

 

迁移脚本详解:

1.artifacts.require:告诉truffle,要和哪个合约进行交互,返回一个合约抽象。Require参数可以是合约名称,也可以是合约文件,但是由于一个合约文件中可能会存在多个合约,所以一般不要使用合约文件作为参数。

2.module.exports:导出一个函数,被导出的函数会接受deployer对象作为第一个参数。

3.Deployer:部署器,组织部署任务,同步执行,另外每个deployer文件都会返回一个Promise,可以通过promise把有执行顺序依赖关系的部署任务组成一个队列。

Contracts中的Migrations.sol(特定合约)文件,第一次部署之前可以更改,一经部署,就不要改动它,这里边产生的是一个记录。

Deploy api

Deploy(CONTRACT,AREGS ···,OPTIONS):合约部署 ,可以同时部署多个合约

Contract:合约名称

ARGS:如果合约中有构造函数,这里代表构造函数的参数。

Deployer.deploy(contract,arg1,arg2)

Deployer.deploy([[A,arg1,arg2...],[B,arg1],C])

OPTIONS:可选参数,形式{overview,true/false}:判断在当前合约已经部署的情况下,是否还要再次部署。

Deployer.link(LIBRARY.DEST):链接:把一个已经部署好的库链接到一个或者多个合约里面。

Deployer.deploy(a);a是库,Deployer.link(a,b);b是合约,Deployer.deploy(b)。

链接多个合约:

Deployer.link(a,[b,c,d]);

Deployer.then();类似于nodejs中的promise,通过该函数可以操作合约中的数据。会常用到。

 

 

Truffle Suite开发框架 阅读详情

相关推荐

Vyper教程 使用Truffle框架开发Vyper

文章目录写在前面什么是Truffle安装TruffleVyper支持使用Truffle框架开发测试Vyper创建空项目创建模板项目进入控制台编译部署测试写在最后 写在前面 上一篇 Vyper 编译部署合约 的最后,我们提到了在开发智能合约过程中,为了更方便的即时部署和测试,我们需要一个智能合约开发、测试框架:truffle。本文就将简单的介绍如何使用truffle快速的在本地测试Vyper合约。 ...

队长的博客 1306

区块链技术(一):Truffle开发入门

蓝莲花 2016-05-02 14:52 发布在 技术指南 0 658 文章摘要图: 以太坊是区块链开发领域最好的编程平台,而truffle是以太坊(Ethereum)最受欢迎的一个开发框架,这是我们第一篇区块链技术文章介绍truffle的原因,实战是最重要的事情,这篇文章不讲原理,只搭建环境,运行第一个区块链程序(Dapp)。 安装truffle $ npm install

陈建慧程序人生 2万+

一步一步学区块链(6)truffle开发框架

上一篇我们实践过智能合约的编写,调试,发布。但是有没有发现,提到在区块链上部署 合约一旦部署就无法修改,在公链上还需要花费gas.同时我们发现在命令行客户端编写智 能合约也不方便调试。所以本章介绍一个智能合约开发框架truffle. 1、安装brew ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/insta

jwter的博客 5170

全面解析 Truffle:以太坊智能合约开发的强力框架

通过 Truffle 框架,区块链开发者可以显著提升开发效率,优化合约部署和测试流程,并实现与前端应用的无缝对接。结合 Ganache 和 Drizzle 等工具,Truffle Suite 更是构建了一个完整的开发环境,为开发者从本地测试到生产部署提供了全生命周期的支持。在复杂区块链应用场景中,Truffle 的脚本化部署、灵活的测试工具以及强大的社区支持,使其成为开发去中心化金融(DeFi)、NFT 市场和 DAO 等项目的理想选择。

yoona333的博客 2195

以太坊开发框架Truffle环境搭建

Truffle是一个用于以太坊开发的框架,它提供了一套工具和库,帮助开发者更轻松地开发、测试和部署智能合约。你可以从Node.js官方网站(https://nodejs.org)下载安装程序,并按照安装向导进行安装。Node.js是一个基于Chrome V8引擎的JavaScript运行时环境,而npm是Node.js的包管理器。你可以从Ganache的官方网站(https://www.trufflesuite.com/ganache)下载适合你操作系统的安装包,并按照安装向导进行安装。

IrOperations的博客 324

区块链Truffle开发框架入门教程

Truffle是一个基于以太坊的区块链应用程序开发框架,它提供了一套开发工具和开发环境,方便开发者快速构建和部署智能合约。本文将介绍 Truffle 的一些特点和使用方法。Truffle 团队还开发了 Ganache, Ganache 是一个用于以太坊开发和测试的个人区块链网络,它可以让开发者在本地运行以太坊节点,从而无需连接到公共测试网络或主网进行开发和测试。Ganache还提供了许多有用的功能,如快速挖矿、预设的账户和私钥、以太坊虚拟机调试器等,这些功能可以大大提高开发和测试的效率。

我是网络安全兼技能大赛工程师,专注网络安全技术学习与技能大赛实战!持续分享最新的技术文章,帮你少走弯路,一起在技术赛道上进步~ 784

以太坊DAPP实战

以太坊是一个平台,它上面提供各种模块让用户来搭建应用,如果将搭建应用比作造房子,那么以太坊就提供了墙面、屋顶、地板等模块,用户只需像搭积木一样把房子搭起来,因此在以太坊上建立应用的成本和速度都大大改善。具体来说,以太坊通过一套图灵完备的脚本语言(Ethereum Virtual Machinecode,简称EVM语言)来建立应用,它类似于汇编语言。我们知道,直接用汇编语言编程是非常痛苦的,但以太坊里的编程并不需要直接使用EVM语言,而是类似C语言、Python、Lisp等高级语言,再通过编译器转成EVM语言。上面所说的平台之上的应用,其实就是合约,这是以太坊的核心。合约是一个活在以太坊系统里的自动代理人,他有一个自己的以太币地址,当用户向合约的地址里发送一笔交易后,该合约就被激活,然后根据交易中的额外信息,合约会运行自身的代码,最后返回一个结果,这个结果可能是从合约的地址发出另外一笔交易。需要指出的是,以太坊中的交易,不单只是发送以太币而已,它还可以嵌入相当多的额外信息。如果一笔交易是发送给合约的,那么这些信息就非常重要,因为合约将根据这些信息来完成自身的业务逻辑。合约所能提供的业务,几乎是无穷无尽的,它的边界就是你的想象力,因为图灵完备的语言提供了完整的自由度,让用户搭建各种应用。白皮书举了几个例子,如储蓄账户、用户自定义的子货币等。 2013年年末,以太坊创始人Vitalik Buterin发布了以太坊初版白皮书,启动了项目。2014年7月24日起,以太坊进行了为期42天的以太币预售。2016年初,以太坊的技术得到市场认可,价格开始暴涨,吸引了大量开发者以外的人进入以太坊的世界。中国三大比特币交易所之二的火币网及OKCoin币行都于2017年5月31日正式上线以太坊。 [1] 自从进入2016年以来,那些密切关注数字货币产业的人都急切地观察着第二代加密货币平台以太坊的发展动向。作为一种比较新的利用比特币技术的开发项目,以太坊致力于实施全球去中心化且无所有权的的数字技术计算机来执行点对点合约。简单来说就是,以太坊是一个你无法关闭的世界计算机。加密架构与图灵完整性的创新型结合可以促进大量的新产业的出现。反过来,传统行业的创新压力越来越大,甚至面临淘汰的风险。比特币网络事实上是一套分布式的数据库,而以太坊则更进一步,她可以看作是一台分布式的计算机:区块链是计算机的ROM,合约是程序,而以太坊的矿工们则负责计算,担任CPU的角色。这台计算机不是、也不可能是免费使用的,不然任何人都可以往里面存储各种垃圾信息和执行各种鸡毛蒜皮的计算,使用它至少需要支付计算费和存储费,当然还有其它一些费用。最为知名的是2017年初以摩根大通、芝加哥交易所集团、纽约梅隆银行、汤森路透、微软、英特尔、埃森哲等20多家全球top金融机构和科技公司成立的企业以太坊联盟。而以太坊催生的加密货币以太币近期又成了继比特币之后受追捧的资产。  智能合约的潜在应用很多。彭博社商业周刊称它是“所有人共享但无法篡改的软件”。更高级的软件有可能用以太坊创建网络商店。区块链程序以太坊可以用来创建去中心化的程序、自治组织和智能合约,据纽约时报的报导,在2016年5月已经有数十个可用的程序。预期的应用目标涵盖金融、物联网、农田到餐桌(farm-to-table)、智能电网、体育,菠菜等。去中心化自治组织有潜力让许多原本无法运行或成本过高的营运模型成为可能。较知名的应用有:去中心化创业投资:The DAO用以太币资金创立,目标是为商企业和非营利机构创建新的去中心化营业模式、The Rudimental让独立艺术家在区块链上进行群众募资。社会经济平台:Backfeed。去中心化预测市场:Augur。物联网:Ethcore(一间以太坊公司)研发的客户端、Chronicled(一间区块链公司)发表了以太坊区块链的实物资产验证平台;芯片公司、物理IP创建者和生产者可以用植入的蓝牙或近场通信进行验证。Slock.It开发的智能锁可以在付费后自动打开,让用户在付费后可以帮电动车充电、或是打开租屋的房门。虚拟宝物交易平台:FreeMyVunk。版权授权:Ujo Music平台让创作人用智能合约发布音乐,消费者可以直接付费给创作人。伊莫珍·希普用此平台发布了一首单曲。智能电网:TransActive Grid让用户可以和邻居买卖能源。去中心化期权市场:Etheropt。钉住汇率的代币:DigixDAO提供与黄金挂钩的代币,在2016年四月正式营运。Decentralized Capital提供和各种货币挂钩的代币。移动支付:Everex让外劳汇款回家乡。客户端软件以太坊的两个主要的客户端软件是Geth和Parity。企业软件企业软件公司也正测试用以太坊作为各种用途。已知有兴趣的公司包括微软、IBM、摩根大通。德勤和ConsenSys在2016年

区块链开发框架对比:Truffle、Hardhat与Brownie的选择

Truffle是最早流行起来的以太坊开发框架之一,提供了一整套智能合约开发工具,包括合约编译、部署、测试、和管理等功能。Truffle 的设计目标是让开发者能够高效、快速地进行区块链应用开发,尤其适用于以太坊智能合约开发。Hardhat是一个相对较新的以太坊开发框架,设计上注重灵活性、扩展性和开发者体验。Hardhat 提供了一个简单、强大的环境,用于开发、测试和调试以太坊智能合约。Brownie是一个基于 Python 的区块链开发框架,专为以太坊智能合约开发而设计。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1593

【web3实践 | 以太坊开发框架Truffle使用】

Truffle是一个面向以太坊的开发框架,提供一整套构建、测试、部署以及管理智能合约的开发工具。Truffle可以与以太坊节点交互,使开发人员能够在本地开发、测试和部署智能合约。Truffle提供了一个基于命令行的、易于使用的开发环境,可以通过Truffle来编写智能合约,进行本地测试和调试,进行远程部署,以及与以太坊网络进行交互。Truffle还提供了自己的智能合约编译器和构建管道,可以方便地构建、优化和管理智能合约的构建过程,减少了手动干预的需要。

鱼干的博客 4164

全面解析Truffle:区块链开发者的首选框架

Truffle框架是专门为以太坊智能合约的开发、测试和部署设计的,它提供了强大的工具集来简化整个开发周期。其直观的命令行界面和合约抽象层极大地促进了合约的创建与维护。Truffle框架与以太坊生态系统紧密相连,能够与各种以太坊网络无缝集成,从而为开发者提供了一个高效可靠的开发环境。以太坊是一个去中心化的开放源代码区块链系统,它支持智能合约的开发和执行。它不仅是一个加密货币平台,更是开发去中心化应用(DApp)的理想场所。

weixin_35677363的博客 1062

以太坊Truffle框架开发实战手册

以太坊作为当前主流的智能合约平台之一,其去中心化应用(DApp)的开发已成为区块链技术落地的重要方向。DApp基于智能合约运行在以太坊虚拟机(EVM)之上,具备去中心化、透明性和不可篡改等特性,适用于金融、供应链、游戏等多个领域。本章将从DApp的基本构成入手,介绍其前端、后端(智能合约)与区块链网络之间的交互机制,并逐步引导开发者理解整个开发流程:从环境搭建、合约编写、部署到前端集成。

weixin_42186015的博客 826

三.用Truffle框架开发部署合约

truffle是专门为合约开发设计的框架,它可以很方便的编译,部署,测试合约。你不必再去remix平台,编译,然后复制ABI,手动来做这些繁琐的事情,基本上一个命令就解决。

d3582077的专栏 1802

无监督学习初探:K-Means聚类与主成分分析(PCA)

K-Means适用于快速分组,但对数据分布敏感,可结合轮廓系数评估质量。PCA通过特征值分解实现线性降维,需注意非线性场景的替代方案(如UMAP)。进阶方向:聚类:谱聚类、高斯混合模型(GMM)处理复杂形状。降维:t-SNE、自编码器处理非线性结构。

weixin_69882801的博客 1454

基于Truffle框架开发Dapp初始准备总结

总结一下基于truffle框架的dapp开发基本准备工作,虽然不难但每次写项目都需要查找一次资料还是挺麻烦的,这里总结一个常规的标准化的步骤供自己使用,也供大家参考。 默认系统已安装好npm、truffle、metamask等相关工具。 1.首先建立项目文件夹,执行truffle init: 项目文件夹目录如下: 2.执行npm init,将项目转换为npm项目便于管理: 执行后项目文件夹目录如下(多了一个package.json文件): 完成前两步已经可以编写智能合约代码了。。。 3.根目录下安装

lqiqil的博客 8777

Word中 Go to endnote 出现闪退问题解决办法

Word中 Go to endnote 出现闪退问题解决办法

努力努力努力 1万+

C++网络编程 - Boost::asio异步网络编程 - 01- boost库源码编译安装

知识的学习在于点滴记录,坚持不懈;知识的学习要有深度和广度,不能只流于表面,坐井观天;知识要善于总结,不仅能够理解,更知道如何表达! 目录 如果需要录屏资料,请私信邮箱shitou3000@qq.com获取。 ...

大秦坑王的专栏 1万+

Truffle Suite深度解析:区块链开发框架的辉煌与落幕

Truffle Suite深度解析:区块链开发框架的辉煌与落幕 【免费下载链接】truffle 项目地址: https://gitcode.com/gh_mirrors/tru/truffle ...

gitblog_00088的博客 537

PostgreSQL向量数据插件--pgvector安装(附PostgreSQL安装)

本文为本人在安装pgvector中踩过的坑,已找到解决方法,现向大家分享。

m0_62627802的博客 2万+

第四课 以太坊开发框架Truffle从入门到实战

1. TRUFFLE是什么? Truffle是一个世界级的开发环境,测试框架,以太坊的资源管理通道,致力于让以太坊上的开发变得简单,Truffle有以下: 内置的智能合约编译,链接,部署和二进制文件的管理。 快速开发下的自动合约测试。 脚本化的,可扩展的部署与发布框架。 部署到不管多少的公网或私网的网络环境管理功能 使用EthPM&NPM提供的包管理,使用ERC190标准。 ...

kfq0071的专栏 738

YOLOv8+SAM强强联合:用分割“喂“检测,复杂背景下作物AP从72%干到77.7%,杂草误检降60%

目标与背景高度相似:如农业(作物vs杂草)、工业(零件vs台面)、医学(病灶vs正常组织);遮挡严重的场景:如密集人群(人被遮挡)、森林(树木被枝叶遮挡);小目标密集场景:如无人机航拍(远处小目标易混背景)。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 793

CloudCompare 二次开发(36)——非均匀体素降采样

使用CloudCompare与PCL编程实现的非均匀体素降采样。

点云侠的博客 746

以太坊开发测试(2)Truffle框架开发

以太坊开发测试(2)Truffle 框架 1.创建一个项目目录 truffle init 如果正常执行,会给我们生成相关的目录,这个情况肯定是有问题。 这里有一个问题解释: https://blog.youkuaiyun.com/lyc44813418/article/details/104341133/ 似乎是个网络问题,连网线或者连接手机热点即可。 成功 ...

密码小仙女 378

MIKE水动力笔记4_制作网格

建立水动力模型前的重要一步就是制作网格,本文所讲内容就是如何在MIKE中制作网格。

晏长街的博客 2万+

Truffle - 以太坊Solidity编程语言开发框架

http://truffle.tryblockchain.org/ Truffle框架 Truffle是什么? Truffle是针对基于以太坊的Solidity语言的一套开发框架. 本身基于JavaScript. 学习Truffle前要知道什么? 其基于JavaScript,但对于JavaScript的要求较低,知道基本语法,模块,Promise的概念差不多就可以. 知道S...

weixin_30505225的博客 198

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的水果识别系统(Python+PySide6界面+训练代码)

本文详细介绍了基于YOLO系列目标检测算法(包括YOLOv5、YOLOv6、YOLOv7和YOLOv8)的水果识别系统的设计与实现。系统采用Python语言开发,结合PySide6构建用户界面,实现了从数据准备、模型训练到部署应用的全流程。本文将提供完整的代码实现、详细的训练过程分析以及性能对比实验,并给出推荐的数据集资源。该系统可以准确识别多种水果类型,为智能农业、自动售货、食品加工等领域提供技术支持。

YOLO 565

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

【p2p、分布式,区块链笔记 Blockchain】truffle001 以太坊开发框架truffle初步实践

Truffle是一个开发框架,用于编写、编译、测试和部署智能合约。环境准备: 智能合约 编写 & 编译 部署合约 本地服务器ganache配置 网络配置 运行Truffle迁移(部署)与智能合约交互

ResumeProject的博客 1759

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

上一篇: Solidity语言学习——(六)
下一篇: DAPP与传统web开发的区别
The_Reader
博客等级 码龄10年 74粉丝 97原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值