Truffle
Truffle
FLy_鹏程万里
业精于勤荒于嬉,行成于思毁于随!
展开
-
以太坊Solidity编程语言开发框架————1、Truffle简介
Truffle简介Truffle是一个世界级的开发环境,测试框架,以太坊的资源管理通道,致力于让以太坊上的开发变得简单,Truffle有以下:内置的智能合约编译,链接,部署和二进制文件的管理。快速开发下的自动合约测试。脚本化的,可扩展的部署与发布框架。部署到不管多少的公网或私网的网络环境管理功能使用EthPM&NPM提供的包管理,使用ERC190标准。与合约直接通信的直接交互控制台(写完合...转载 2018-07-13 09:47:42 · 718 阅读 · 0 评论 -
Truffle 2.0升级3.0升级指南
备注:这个指南同样适用于从beta 3.0.0-9升级到3.0.1的用户。介绍3.0版本引入了大量的新特性,这些特性为我们带来了大量的重要革新性变化。让我们的network的管理更简单,新的抽象的合约层,允许你从第三方引入各种依赖文件。伴随以太坊的开发工具逐步成熟,我们认为这样的革新非常有价值。下面我们将一步步指引你来享受这些新特性带来的好处。为了展示2.0到3.0版本的变化,后续会使用下面示例这...转载 2018-07-14 17:20:17 · 610 阅读 · 0 评论 -
Solidity的Truffle框架实战
前置工作:安装Solidity的开发框架Truffle,参见:Truffle框架安装安装开发客户端,参见:Truffle客户端1. 创建工程目录在你想放工程的任何位置,创建一个文件夹truffleTest,来做为你的工程根目录。$ mkdir -p /Users/admin/develop/blockchain_workspace/truffleTest2. 初始化框架进入到工程根目录下(现在应...转载 2018-07-14 17:20:11 · 604 阅读 · 0 评论 -
以太坊Solidity编程语言开发框架————16、Truffle命令指南
使用方式truffle [command] [options]命令build构建一个开发中的app版本,创建.build目录。truffle build可选参数--dist: 创建一个可发布的app版本。仅在使用默认构造器时可用。查看6. 构建应用章节来了解更多。console运行一个控制台,里面包含已初始化,且随时可用的合约对象。truffle console一旦控制台启去吧,你可以使用通...转载 2018-07-14 17:20:06 · 376 阅读 · 0 评论 -
以太坊Solidity编程语言开发框架————15、构建流程
自定义构建流程纵贯Truffle的发展历史看来,默认构造器并不适合每一个人。它有一些明显的缺点,且相比其它构建系统显得不太成熟。由此,Truffle提供了三种方式,来让你扩展默认的构建系统,但让你能体验到绝大部分的Truffle的特性。执行外部命令如果你希望在每次触发构建时,执行一个外部命令。可以在项目的配置中包含一个选项。module.exports = { // This will run...转载 2018-07-14 17:20:01 · 246 阅读 · 0 评论 -
以太坊Solidity编程语言开发框架————14、网络与APP部署
背景即使最小的项目也至少会与两个以上的区块链打交道,一个是开发机上的测试链,如EthereumJS TestRPC.另一个则是比如你最终要部署的网络,如以太坊网络,自己公司内的私链等等。Truffle提供了一个管理不同网络下的构建和部署资源的系统,来简化最终的部署流程。配置详见1. 配置文件章节了解更多。指定一个网络大多数Truffle提供的命令根据指定的网络不同而表现不同,会使用对应网络下的合约...转载 2018-07-14 17:19:56 · 226 阅读 · 0 评论 -
以太坊Solidity编程语言开发框架————13、配置文件
位置你的配置文件是truffle.js。位于项目的根目录下。这个文件是Javascript文件,支持执行代码来创建配置。它必须导出一个对象,来代表项目配置,如下面的例子。WINDOWS下的命名空间冲突当使用Windows的命令行时,默认的配置文件名与truffle冲突。这种情况下,我们推荐使用Windows的power Shell或Git BASH。你也可以将配置文件重命名为truffle-con...转载 2018-07-14 17:19:52 · 251 阅读 · 0 评论 -
以太坊Solidity编程语言开发框架————12、联系开发者
GITTER最好的方式是通过Gitter。这允许你可以向Truffle开发者。https://gitter.im/consensys/truffle?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge转载 2018-07-14 17:19:40 · 265 阅读 · 0 评论 -
以太坊Solidity编程语言开发框架————11、工作流
命令我们已经推荐EtherumJS TestRPC很多次了,以在开发过程中得到快速的结果反馈。然而,Truffle更提供了两个命令来让开发更快。Truffle watch监控文件系统的文件变化,重编译,重部署你的合约。在被修改后需要的时候,会重构建前端代码。使用方法:truffle watch查看4. Truffle命令指南来了解更多。Truffle serve监控文件系统的变化,重编译,部署,...转载 2018-07-14 17:19:35 · 301 阅读 · 0 评论 -
以太坊Solidity编程语言开发框架————10、外部脚本
背景你也许会经常的执行外部脚本来与你的合约进行交互。Truffle提供了一个简单的方式来进行这个。首先,启动你的合约,连上你想要的网络,通过1. 配置文件命令要执行外部(external)脚本,执行下述命令:$ truffle exec <path/to/file.js>文件结构为了外部脚本能正常执行,Truffle需要它们能通过Javascript的模块的方式导出一个函数,且有一个...转载 2018-07-14 17:19:31 · 229 阅读 · 0 评论 -
以太坊Solidity编程语言开发框架————9、控制台
背景有时在进行测试和debug时,或手动执行交易时与合约进行直接交互是需要的。Truffle提供了一种更加简单的方式,通过交互式控制台来与你的那些准备好的合约进行交互。命令启动控制台,使用:truffle console这会使用默认网络来调起一个控制台,会自动连接到一个运行中的以太坊客户端。你可以使用选项--network来修改这个特性,更多细节参见2. 网络与APP部署和4. Truffle命...转载 2018-07-13 09:48:49 · 301 阅读 · 0 评论 -
以太坊Solidity编程语言开发框架————8、测试合约
框架Truffle使用Mocha测试框架来做自动化测试,使用Chai来做断言。这两个库的结合可能让人耳目一新,我们基于这两者之上,提供一种方式来编译简单和可管理的合约自动化测试用例。位置测试文件应置于./tests目录。Truffle只会运行以.js,.es,.es6和.jsx结尾的测试文件,其它的都会被忽略。测试用例每个测试文件至少应该包含至少一个对Mocha的describe()函数的调用,详...转载 2018-07-13 09:48:43 · 322 阅读 · 0 评论 -
以太坊Solidity编程语言开发框架————7、合约交互
背景标准的与以太坊网络交互的方法是通过以太坊官方构建的Web3库。尽管这个库非常有用,但使用其提供接口与合约交互有些困难,特别是以太坊的新手。为降低学习曲线,Truffle使用Ether Pudding库,它也是基于Web3的基础之上,目的是为了让交互更简单。读写数据以太坊网络把在网络上读与写数据进行了区分,这个区分对于如何写程序影响很大。通常来说,写数据被称作交易(transaction),读数...转载 2018-07-13 09:48:38 · 527 阅读 · 0 评论 -
以太坊Solidity编程语言开发框架————6、构建应用
默认构建Truffle集成了默认的构建来方便使用。但也许不适合每个项目,所以你也许需要其它的来打包你的应用。在3. 构建流程里查看更多信息。默认的构造目标是web应用,但也可以很容易的转变为其它的构造流程,比如适用于命令行或库的流程。特性默认构建有一些特性来帮助你快速的开始:在浏览器内自动的初始化你的应用,包括引入你编译的合约,部署的合约信息,和以太坊客户端信息配置。包含常见的依赖,如web3和E...转载 2018-07-13 09:48:31 · 262 阅读 · 0 评论 -
以太坊Solidity编程语言开发框架————5、移植
移植是由一些Javascript文件组成来协助发布到以太坊网络。主要目的是用来缓存你的发布任务,它的存在基于你的发布需求会改变的前提。当你的工程发生了重要的改变,你将创建新的移植脚本来将这些变化带到区块链上。之前运行移植的历史记录通过一个特殊的Migrations合约来记录到链上,下面有详细说明。命令执行移植,使用下述命令:truffle migrate这个命令会执行所有的位于migrations...转载 2018-07-13 09:48:24 · 295 阅读 · 0 评论 -
以太坊Solidity编程语言开发框架————4、编译合约
合约位置所有你的合约应该位于./contracts目录。默认我们提供了一个合约文件,一个库文件,均以.sol结尾作为示例。尽管库文件有一定的特殊性,但为简单起见,当前均称之为合约。命令要编译您的合约,使用:truffle compileTruffle仅默认编译自上次编译后被修改过的文件,来减少不必要的编译。如果你想编译全部文件,可以使用--compile-all选项。truffle compile...转载 2018-07-13 09:48:17 · 285 阅读 · 0 评论 -
以太坊Solidity编程语言开发框架————3、创建一个工程
自定义构建流程纵贯Truffle的发展历史看来,默认构造器并不适合每一个人。它有一些明显的缺点,且相比其它构建系统显得不太成熟。由此,Truffle提供了三种方式,来让你扩展默认的构建系统,但让你能体验到绝大部分的Truffle的特性。执行外部命令如果你希望在每次触发构建时,执行一个外部命令。可以在项目的配置中包含一个选项。module.exports = { // This will run...转载 2018-07-13 09:48:00 · 324 阅读 · 0 评论 -
以太坊Solidity编程语言开发框架————2、网络与APP部署
背景即使最小的项目也至少会与两个以上的区块链打交道,一个是开发机上的测试链,如EthereumJS TestRPC.另一个则是比如你最终要部署的网络,如以太坊网络,自己公司内的私链等等。Truffle提供了一个管理不同网络下的构建和部署资源的系统,来简化最终的部署流程。配置详见1. 配置文件章节了解更多。指定一个网络大多数Truffle提供的命令根据指定的网络不同而表现不同,会使用对应网络下的合约...转载 2018-07-13 09:47:50 · 262 阅读 · 0 评论 -
Truffle3.0集成NodeJS并完全跑通(附详细实例,可能的错误)
升级到Truffle3.0如果之前安装的是Truffle2.0版本,需要主动升级到Truffle3.0,两者的语法变化有点大。由于Truffle是一个命令行工具,需要更新全局空间安装的Truffle。$ sudo npm update -g truffle注意需要root权限运行命令,否则可能会报错无足够的访问权限,导致升级失败。安装成功后,可以通过版本命令查看当前的版本,如出现下述类似字样说明...转载 2018-07-14 17:20:25 · 462 阅读 · 0 评论