Ethereum开发区块链应用程序--Truffle三剑客Ganache搭建教程

一、Truffle Suite

Truffle Suite 为以太坊上应用程序(Dapp)的快速开发提供工具服务,它主要有以下三个产品:truffle、ganache和drizzle。这三个工具对快速开发以太坊DAPP有很大的帮助,所以我暂且把它三个产品叫着“Truffle三剑客”。

image.png
image.png

图中从左到右三个产品分别为truffle、ganache和drizzle,今天我们先介绍Ganache。

二、Ganache是什么

Ganache是什么呢?它是一个一键区块链。下面是官方文档原文:
A personal blockchain for Ethereum development you can use to deploy contracts, develop your applications, and run tests. It is available as both a desktop application as well as a command-line tool (formerly known as the TestRPC). Ganache is available for Windows, Mac, and Linux.

大致意思为:它是一个以太坊的个人开发环境,你可以在上面部署合约、开发程序和进行测试。它有桌面版本和命令行工具版本,同时提供对windows、Mac和Linux的支持。

可以看出,它是一个本地版的以太坊。为什么我们开发Dapp时需要使用本地环境呢?答案是响应速度。开发以太坊上的Dapp一般在测试网上进行(因为免费),虽然测试网的响应速度相对主网而言比较快,但是有时还会拥堵。基本上你需要为一个交易等待十秒以上,10秒的时间还是有些漫长。并且这里面有一个隐藏的前提,就是你能连上测试网,不能没有网络,有时你甚至还需要infura_key。

使用本地开发环境就没有这个限制了,你可以感受一下区块链交易瞬间完成的feeling。不仅为我们节省大量开发时间,也使我们的开发节奏更为连贯。

三、Ganache设置

首先我们需要一个以太坊智能合约。Truffle & Ganache是很好的工具和起点。

下载Ganache →启动它→ 按 Quickstart(以太坊)

image.png

image.png

打开Ganache,如下图:

image.png

左边的按钮是快速启动,它的数据不会保存,每次启动后都是全新的开发环境。右边的按钮是保存当前的数据到相应的工作空间中,可以有多个工作空间。我们选择右边的new workspace:


image.png

这里可以将workspace取一个有意义的名字,左下角的添加工程先跳过,因为我们目前还没有truffle工程。

点击导航栏的server,可以看到RPC服务相关设置:


image.png

这里全部让它默认就好,也就是端口号8545,网络chainId 5777。再点击导航上的Accounts & Keys ,这里是设置初始账号数量和账号的初始金额,我们设置成初始金额为10000ETH。

image.png

再点击导航栏上的chain进入区块链设置。主要看一下区块的gas上限值,默认为6721975。在写这篇文章时,主网、kovan测试网和rinkeby测试网的的gas上限已经是10,000,000;ropsten测试网的gas上限是8,000,000。所以我们这里改成8,000,000来兼容所有网络,当然你也可以使用默认值。


image.png
image.png

好了,其它的设置我们先跳过不设,点击右上角的保存工作空间按钮,我们的本地以太坊就可用了。

四、Ganache主界面介绍

保存工作空间后,就会出现如下画面:

image.png

这个界面最上面一栏是导航菜单,接下来一行是各种信息,右边是切换工作空间和设置按钮。第三行是助记词,所有的地址都是根据它生成的。

界面主体有10个账号,分别列出了每个账号的地址,余额,已经完成的交易数量、账号数组中的索引、显示私钥按钮等。点击那个钥匙图标,就会显示它的私钥。

点击导航上的Blocks,可以看到目前Block是0。这是因为Ganache挖矿机制决定的,每一个交易产生一个block,所以一个block也只会有一笔交易(这是笔者的使用经验,有可能不对)。在我们交易后就会产生一个block,目前还没有。

image.png

点击Transactions,会显示没有交易。点击CONTRACTS,因为们工作空间并没有添加truffle工程,所以这里也是空的。

需要注意的是这个事件按钮,点击后会显示没有事件,因为目前我们没有触发过事件。但是在真正使用的过程中,这里也不会显示事件(原因还有待研究)。

最后一项logs会显示Ganache的一些日志,我们基本用不上。

五、MetaMask连接Ganache

可以将MetaMask与我们的Ganache连接起来,这样Dapp开发的过程中代码可以直接调用MetaMask进行交易。点击MateMask中的网络选择按钮,选择localhost:7545。这个端口号可以查看ganache的RPC SERVER。

首先导入账号,账号在ganache获取,并复制私钥。


image.png
image.png

metamask导入私钥账号


image0.png

如果已经存在网络local,那么直接将ganache的端口更改为对应的比如8545,如果没有对应的网络,那么点击添加网络

image.png

这里注意上面ganache的5557是network ID,并非上面的链id

image.png
image.png

ChainId 是用来防止交易在不同的以太坊同构网络进行交易重放的。主要在交易签名和验证的时候使用。
NetworkId 是用来标识区块链网络的。主要在节点之间握手并相互检验的时候使用。

六、测试Ganache

我们通过MetaMask导入两个Ganache账号来进行简单测试。两个账号导入后默认账号名为Account1和Account2.
在ganache的block可以看到有两个账号


image.png

在MetaMask中先切换到Account2账号,复制一下地址。


image.png

image.png

然后再切换回Ganache账号Account1,点击发送按钮,在收件人文本框中粘贴工作账号的地址,然后数量选100ETH:


image.png
image.png
image.png

七、总结

Ganache正如其介绍的那样,使用起来非常简单,一键区块链。使用它不仅可以大大节约开发时间,并且不需要连接到以互联网上的太坊节点(不管是主网还是测试网都需要连接一个节点)。当然你也就不需要infura_key来连接infura节点了。

但Ganache不是真正的以太坊,它们之间还是有一些区别(比如挖矿机制,它会导致事件重复接收),有的时候nonce也会出错。不过这些影响都不大,瑕不掩玉,还是向大家推荐使用它作为一个DAPP快速开发的本地以太坊环境。

注意,Ganache中的账号虽然有助记词、私钥,但是(个人建议)最好不要应用于正式环境中,也不要向里面存放数字资产。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,258评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,335评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,225评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,126评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,140评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,098评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,018评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,857评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,298评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,518评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,678评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,400评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,993评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,638评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,801评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,661评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,558评论 2 352

推荐阅读更多精彩内容