专栏首页区块链大本营教程 | 只用5步,教你从零用Truffle打造第一个以太坊Dapp!

教程 | 只用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),作者:Space-O Tech

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 以太坊2.0? 亲历3天的Devcon我看到了这样一个以太坊 | 见闻录

    有人说,区块链最大的应用就是发行 Token 和开会。作为从业者,这一年多下来,我也参加过许多会议。但深深觉得以太坊 Devcon 是区块链技术行业中最高水平的...

    区块链大本营
  • 柏链道捷孟岩:区块链应用,最重要的是经济系统设计

    区块链大本营
  • 大年初二已憋不住想写代码的心!来来来教你仅用15分钟在以太坊编写一个区块链Web应用

    区块链大本营
  • 电影看多了! “00后”小伙做“黑客”刚出手就被抓

    最近,常州溧阳城南派出所接到辖区某学校报警,说学校的计算机服务器被黑客种植了勒索病毒,导致计算机系统都无法打开。

    周俊辉
  • Hadoop架构体系

    官方文档组织的非常清晰,主要由以下四个组件组成:HDFS、map-reduce、yarn、hadoop-common。

    加米谷大数据
  • CSS实现background背景图优化,快速加载图片

    日常项目中经常会用到全屏的图片, .png 和 .jpg 的图片都太大,加载缓慢。

    德顺
  • 我一直很喜欢写程序,你呢?

    我是1999年上大学的时候才接触计算机,那时候上网还叫“冲浪”。第一次去学校的机房,视觉、身心被震撼到,深信计算机的未来很美好,于是基本来放弃了本专业(电气工程...

    崔文远TroyCui
  • 溶瘤病毒:肿瘤免疫治疗神器

    溶瘤病毒是一种直接作用于肿瘤细胞的治疗方法。其原理是致病力较弱的病毒进行基因改造,使其只能选择性地在肿瘤细胞而不能在正常细胞中复制,进而导致肿瘤细胞裂解与死亡,...

    芒果先生聊生信
  • Go 语言学习之map

    在 Go 语言中,map 是一个具有键值对元素的无序集合,在这个集合中,键是唯一的,键对应的值可以通过键来读取、更新和删除。

    frankphper
  • java面试必知必会遍历map键值对的四种方式

    Map结构是一个键值对结构形式的集合,在平时的使用中也很常见,历史文章数据很早就写过使用map并发控制进行业务场景的处理,翻看历史文章就可找到。

    后端Coder

扫码关注云+社区

领取腾讯云代金券