以太坊(Ethereum)是区块链开发领域最好的编程平台,而Truffle是以太坊最流行的开发框架,能够在本地编译、部署智能合约,使命是让开发更容易。这里尝试搭建环境,运行第一个区块链程序(Dapp):WebPack。
Truffle官网:http://truffleframework.com
本文环境:
Mac OS 10.13.3
Node v9.5.0
Truffle v4.0.6
1.准备工作
1.1 安装NodeJS
首先安装Truffle依赖的NodeJS,访问https://nodejs.org官方网站下载安装。
我用的Mac OS 10.13.3,刚开始用的windows,遇到各种问题果断换了Mac OS。
安装完成后命令行输入node -v,查看是否安装成功。
1.2 安装Truffle
$ npm install -g truffle。
安装完成后命令行输入truffle,查看是否安装成功。
1.3 安装适合Truffle开发的客户端
智能合约必须要部署到链上进行测试。可以选择部署到一些公共的测试链上,缺点是部署和测试时间比较长,而且需要花费一定的时间赚取假代币防止out of gas。
还有一种方式就是部署到私链上。
有许多的以太坊客户端可以选择。推荐在开发和部署时使用不同客户端。
适用开发的客户端
Ganache(取代了EtherumJS TestRPC)
Truffle Develop
适用正式发布的客户端
Geth (go-ethereum)
这里使用Truffle Develop。这个是truffle内置的客户端,帮助你使用简单的命令来创建一个完整的区块链环境,没有安装要求。跟命令行版本的Ganache基本类似。唯一要注意的是在truffle develop里执行truffle命令的时候需要省略前面的“truffle”,比如“truffle compile”只需要敲“compile”就可以了。
Trufflle Develop 通过向终端输入下面的命令来启动Truffle Develop。
truffle develop
2.创建项目
创建项目目录
$ mkdir WebPack
进入项目目录
$ cd WebPack
下载官方webpack示例项目
$ truffle unbox webpack
need-to-insert-img
在早期版本的truffle中,刚刚创建的工程中还会包含metacoin的示例代码。新版本truffle引入了box的概念,所有的示例代码都以box的形式提供。
官方Box地址:http://truffleframework.com/boxes/。
如果需要创建空白项目,使用truffle init。这里直接下载官方的WebPack项目。
官方Box依然提供MetaCoin示例,不过尝试了很多次都有各式各样的问题导致无法运行。WebPack的效果和MetaCoin一样,并且提供了文档http://truffleframework.com/boxes/webpack。这里就使用WebPack演示。
3.运行开发模式
$ truffle develop
need-to-insert-img
4.编译项目
进入开发模式后命令不需要再加truffle前缀了。
要编译合约,使用truffle compile命令,可以将原始代码编译成以太坊认可的字节码。
Truffle仅默认编译自上次编译后被修改过的文件,来减少不必要的编译。如果你想编译全部文件,可以使用--compile-all选项。truffle compile --compile-all。
$ compile
need-to-insert-img
5.部署项目
这个命令会执行所有migrations目录下的js文件。如果之前执行过truffle migrate命令,再次执行,只会部署新的js文件,如果没有新的js文件,不会起任何作用。如果使用--reset参数,则会重新的执行所有脚本的部署。truffle migrate --reset。
$ migrate
need-to-insert-img
6.运行项目
新开一个命令行窗口,进入到项目目录,输入以下指令:
$npm run dev
need-to-insert-img
need-to-insert-img
7.查看项目
启动服务后,可以在浏览器访问项目: http://localhost:8080/ ,网页界面如下:
need-to-insert-img
这是一个类似转账系统的项目。初始值为10000coin,可以向不同的地址转账。输入金额和账户地址,点击Send MetaCoin进行转账。
账户地址(Accounts)就是刚才$ truffle develop进入开发模式后系统分配的,共有10个。
need-to-insert-img
注意第一个地址为你的账户地址,向该地址转账,系统提示成功,但是余额不会变化。
随便向一个地址转账进行测试
need-to-insert-img
查看结果,余额为刚才总金额减去转账金额,测试成功。
need-to-insert-img
官方WebPack项目地址:http://truffleframework.com/boxes/webpack
need-to-insert-img
小礼物走一走,来关注我
赞赏支持
以太坊开发
© 著作权归作者所有
举报文章
关注yuyangray
写了 176790 字,被 156 人关注,获得了 85 个喜欢
区块链学习中
喜欢
3
更多分享
被以下专题收入,发现更多相似内容
收入我的专题
区块链
第四课 以太坊开发框架Truffle从入门到实战
【本文目标】 通过本文的学习和时间,你将熟悉以太坊开发框架Truffle的配置和运行,并借助Truffle完成一个智能合约的部署。【技术收获】通过本文的学习,你将掌握以下内容:1,了解TRUFFLE的功能2,了解TRUFFLE的安装,配置和启动3,借助TRUFFLE完成M...
笔名辉哥
以太坊开发简介(下)
上篇介绍了以太坊的诞生、以太币钱包的使用以及如何获取以太币,这篇文档中分别对开发工具介绍、如何编写及部署智能合约、DApp开发框架Truffle的使用等方面作简单介绍,其他的后续再作补充 以太坊官网地址: 1、开发工具介绍 智能合约是以太坊中重要的概念,是指运行在区块链上的...
菜鸟良
第五章 以太坊智能合约的测试
其实本章另外还有web3的调用方法,但因为从没使用过nodejs做应用,我一直也没用过web3的方式调用。所以就先删掉了。 truffle的安装与使用 项目地址:http://truffleframework.com/ 项目文档:http://truffleframewor...
gloriow
开发和部署以太坊DApp(宠物商店)
1、背景介绍以及相关问题 以太猫游戏介绍CryptoKitties(以太猫)是2017年11月上线的一款以太坊区块链虚拟养猫游戏,用户可以花费以太币买卖并繁殖不同品种的虚拟宠物猫,一只虚拟宠物猫在市场最高标价为340万美元。上线不到10天一跃成为以太坊上交易量最高的DApp...
菜鸟良
0x04 智能合约之truffle
1.安装truffle 2.选用 ETH (1)自带的 (2)常用 Geth (go-ethereum): https://github.com/ethereum/go-ethereum WebThree (cpp-ethereum): https://github.com...
金牛茶馆
国民技术+新能源 VS 特斯拉+芯片
12月6日,停牌中的国民技术股份有限公司一则公告引起了公众的关注,公告称“国民技术为推进公司战略发展,正在策划现金购买资产事项,拟收购标的属于新能源行业,预计交易金额不超过20亿元人民币”。消息一出,资本市场立马有声音对此质疑,一种声音是怀疑国民技术是否有足够的现金进行收购...
头条观察
一枚银指纹(完)
车上的腻子已经打好,准备进行晾干。白炽灯下,车前引擎盖像是一面银灰色的镜子,晶莹光滑。已经足足晾了一个半小时,据说再有十分钟就好了。所有人都走进屋内,等待着最后的十分钟。不知是因为好奇还是意识上一股神秘能量的驱使,我想去看看即将晾干的“成果”。我小心翼翼地走向车前身,屏...
crystalia
我要参加“每周5写500字”
一、我为什么要参加“每周5写500字” 1.杀死一只拖延兽 我的SM清单里有一项“写博客至少12篇”,而我至今只在9月份写了一篇,这只拖延兽在我院子里啃了好久的花草了,我却视而不见,现在我要兑现我的承诺,准备kill它,这篇文章就是磨刀之作,也是自我承诺。 2.书写是为了更...
littletree
猴神大叔让我看到了什么?
两个多小时的电影,在印度与巴基斯坦两国交往不是很顺畅的历史大背景下,印度人猴神大叔在没有护照签证的情况下穿越两国之间的边境线只为护送巴基斯坦小女孩回家的故事。一路走来,故事充满了喜感和温情。但也让我们看到了两个国家的生活现状。 印度和巴基斯坦已是两个国家,来往之间的人们,需...
昭阳ing
雅思阅读考什么?
教授雅思阅读课程逾7年的时间,接触到大量的雅思考生。成绩从3分到9分都有,基本成正态分布,成绩以6-7分为多。有学生从没有接触过雅思到备考两个礼拜后考试,阅读成绩8.5分的;也过学生学习了三四个月,把剑桥雅思阅读题做了一遍又一遍,考了三四次成绩依然没有提升,稳定在一定的水平...
MARK雅途无忧