教程 | 只用5步,教你从零用Truffle打造第一个以太坊Dapp!

内容 | Space-O Technologies

编译 | Aholiab

以太坊是区块链开发领域最好的编程平台,而Truffle是以太坊(Ethereum)最受欢迎的一个开发框架,最近营长也收到很多询问如何开发Dapp的咨询,这是我们营长今天打算介绍一下Truffle的原因。

俗话说,Talk is cheap,实战是最重要的事情,这篇文章不讲原理,只讲如何搭建环境,手把手教你运行第一个区块链程序(Dapp)

什么是以太坊Dapp?

简单来说,以太坊Dapp是一个去中心化的web应用,这个应用可以被内嵌到以太坊的网络中。与一般的web应用相比,以太坊Dapp在以下两点有所不同。

  • 以太坊Dapp是与以太网的网络进行交互,而不是服务器;
  • 以太坊Dapp需要用特定的浏览器来打开,因为普通的浏览器无法连接到以太坊的网络中。

不过以太坊也提供了一个叫做Web3的JavaScript API,用以接入以太坊的网络。而今天我们要谈的MetaMask和Mist是两个Web3上的浏览器,这两个浏览器相互兼容。而与其把MetaMask成为浏览器,不如把他看成一个Chrome浏览器的插件。

如果你已经有Node.js基础并且做过一些web开发,那么这篇文章就刚好是为你写的。

开发以太坊Dapp需要用到以下三个工具:

  • Truffle;
  • TestRPC;
  • MetaMask。

关于三个开发工具

在使用这三个工具开发前,我们先来了解一下上面提到的这三个工具。

Truffle。Truffle是以太坊最受欢迎的开发框架,同时他也是开发环境和asset pipeline,它的作用是帮助开发者在区块链上部署智能合约,包括用新的合约来替换旧的合约,以及在已经部署的合约上挂载前端。

简单来说,Truffle提供了很多实用的功能,包括对合约部署的管理,与合约交互的概念,以及对合约的测试支持等。

TestRPC。TestRPC是一个基于Node.js的使用内存模拟的一个以太坊环境,它主要用于开发和测试。TestRPC完全运行在本地,因此运行速度比以太坊的真实环境快很多,是目前比较好的开发和测试环境。不过TestRPC只能用于开发,对于产品层面的帮助不大。你可以再上面部署合约,并且像在以太坊的真实环境中一样与合约进行交互。

MetaMask。正如前文所说,MetaMask是一款在Chrome上使用的插件类型的以太坊钱包。用户不需要下载,需要再Chrome浏览器上添加对应的扩展程序即可,非常轻量。简单来说,MetaMask允许用户与在Chrome中与Dapps进行交互。

闲话少说,说干就干!

接下来就跟着营长开发你的第一个Dapp吧!假定你是第一次开发Dapp,那么首先你要安装NPM(Node Package Manager),在NPM安装完成后,我们依次安装Truffle和TestRPC。

这里提一下NPM和NPM的安装。NPM的作用是帮助开发者分享和复用代码,也可以通过它来更新已经分享的代码

由于NPM分部在Node.js之上,因此你需要先下载Node.js,当Node.js下载完成后,NPM就已经被自动安装了。这时你可以通过以下代码进行检验。

小提示:

Node.js支持Windows、Linux、Mac OS X系统。推荐使用Mac OS X,不建议使用Windows,会碰到各种各样的问题,导致放弃。

输入以下命令,检查Node.js是否被安装:

输入以下命令,检查NPM是否被安装:

关于NPM的安装,你还可以在以下地址查看详细的安装步骤:

https://www.npmjs.com/get-npm

第1步:安装TestRPC

开发以太坊Dapp,第一件要做的事情就是安装TestRPC。最简单的安装方法就是「全局安装」(Globally),你可以通过以下命令来实现:

需要留意的是,TestRPC需要Node.js的版本在6.9.1以上,如果你安装的版本较低,可以通过版本切换工具nvm去切换不同的版本

安装完之后,你就可以新建第一个项目了。可以通过以下命令实现:

$ mkdir zhaoxi

$ cd zhaoxi

$ truffle init

这时会默认生成一个MetaCoin的Demo,可以从这个Demo中学习Truffle的架构。

项目目录结构如下图所示:

项目所有文件目录如下图所示:

第2步:安装Truffle

接下来就进入到了Truffle的安装,Truffle是眼下最受欢迎的以太坊开发框架,最简单的安装方法是将其安装为一个全局NPM包(global npm package)。你可以通过以下代码来安装Truffle:

第3步:安装MetaMask

你可以在以下地址安装MetaMask:

https://chrome.google.com/webstore/detail/metamask/nkbihfbeogaeaoehlefnkodbefgpgknn?hl=en

安装完MetaMask后,我们就开始进入正式的Dapp的开发了。首先我们需要在后台运行TestRPC。

第4步:运行TestRPC

通过以下代码,我们可以很简单地运行TestRPC:

这一指令将启动开发环境,并且生成用以太币进行先行融资(Prefunded)的账户列表,以及与各账户对应的私钥。

第5步:完成你的第一个Dapp!

到这一步,开发环境已经搭建好,可以开始部署你的第一个以太坊Dapp了!这里我们先生成一个最简单的Dapp,也就是Truffle中系统默认的货币类型。

可以通过以下代码来实现:

大功告成!是不是很简单呢?现在你可以在你的浏览器上,通过这个网址查看你的Dapp了:http://localhost:8080

接下来到了你大显身手的时候了,去在这个Dapp上实现你的idea吧!

在未来的文章中,营长还将继续为大家带来通过Solidity语言创建以太坊智能合约,并给出更多的实践示例。

本文编译自:Space-O Technologies;博主@jeason29对本文亦有贡献;

原文链接:https://www.spaceotechnologies.com/develop-ethereum-dapp-metamask-truffle-tutorial/

原文发布于微信公众号 - 区块链大本营(blockchain_camp)

原文发表时间:2018-04-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏申龙斌的程序人生

同时给200多人发送比特币,程序员是这样做到的

在币圈中,使用自己的钱包给他人发币时,就跟平常的微信、支付宝扫码付款类似,输入BTC地址和金额,再输入支付密码,不管对方是否在地球的另一端,不需要任何银行的中介...

1592
来自专栏区块链入门

第六课 技术小白如何开发一个DAPP区块链应用(以宠物商店为例)

通过逐步的指导和截图举证,一步步带领一个技术小白完成一个宠物商店DAPP应用的开发和部署。

2124
来自专栏极客编程

如何用Python和Flask框架开发以太坊智能合约

将数据存储在数据库中是任何软件应用程序不可或缺的一部分。无论如何控制该数据库都有一个该数据的主控。区块链技术将数据存储到区块链网络内的区块中。因此,只要某个节点...

1523
来自专栏区块链入门

第二十六课 如何从零开始搭建一个Truffle框架的DAPP应用1,摘要2, 需求描述3,操作步骤4,总结

第六课 技术小白如何开发一个DAPP区块链应用(以宠物商店为例)介绍了如何获取宠物商店的TRUFLLE框架代码,并完成部署的过程。 但是这个是已经成熟的代码框...

1501
来自专栏醒者呆

区块链 + 大数据:EOS存储

默克尔树的演化路线是 Hash => Hash Tree => Merkle Tree ,他们都是为解决数据一致性而存在的,具体的含义如下:

3803
来自专栏区块链大本营

动手编写一个以太坊智能合约

30212
来自专栏比原链

Bytom交易说明(UTXO用户自己管理模式)

Gitee地址:https://gitee.com/BytomBlockchain/bytom

1457
来自专栏丑胖侠

以太坊实战之《如何正确处理nonce》

问题概述 以太坊系列(ETH&ETC)在发送交易有三个对应的RPC接口,分别是eth_sendTransaction、eth_sendRawTransactio...

3846
来自专栏区块链大本营

千万别惹牛人!小哥被盗22元后,整出了这篇以太坊钱包安全攻略,黑客看完得哭了...

对于区块链动辄几十万行的代码量,安全漏洞时不时就冒出来。敏锐的黑客们,虎视眈眈地盯着漏洞的闸门,一旦看见开闸,便以迅雷不及掩耳的速度展开偷袭。

1182
来自专栏极客编程

使用truffle部署以太坊智能合约到区块链

truffle是以太坊(ethereum)开发智能合约(smart contract)过程中最受欢迎的框架,本教程来安装构建一个基本的Truffle项目并部署一...

1303

扫码关注云+社区

领取腾讯云代金券