以太坊开发环境搭建及测试

01

前言

我们上一篇文章简单的介绍了区块链的基本原理,本文主要介绍以太坊的开发环境搭建和测试。首先引入两个概念,智能合约和以太坊。

智能合约:简单来说,它的工作原理类似于普通应用程序中的if - then语句,当预先设定的条件达到时,自动触发合约执行相应条款。不同的是,它被部署在分布式区块链上,因此它无需中介的参与而是自动执行。

以太坊:它是建立在区块链和加密货币概念之上的一个图灵完备的开放的区块链技术平台,为智能合约提供可信的执行环境。它提供丰富的API,使得人们可以在这平台上编译和使用由区块链技术开发的智能合约应用。

02

环境搭建

本文适用windows系统,安装主要需要三部分:

NodeJs:是一个基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。其实就是一个Javascript运行环境,它是truffle框架的安装环境。

Truffle:以太坊Solidity编程语言开发框架。

Testrpc:是本地的用来编译、部署智能合约的工具,而testrpc不同于geth,geth是真正的以太坊环境,testrpc是在本地使用内存模拟的一个以太坊环境。

NodeJS

地址:http://nodejs.cn/download/

根据自己电脑系统选择合适的.msi文件并安装,可以选择默认安装,如果更换路径的话同样记得检查一下环境变量是否设置正确。值得一提的是,安装nodejs时会自动安装其包管理器npm,默认安装路径在C:\Users\\AppData\Roaming\npm。如果环境出现问题,考虑两个方面:一是环境变量;二是npm库没下全。使用命令node -v和npm -v检查其版本没问题就安装好了。

truffle

在命令行中执行命令npm install -g truffle进行安装,安装好后使用命令truffle version检查。

testrpc

在命令行中执行命令npm install -g ethereumjs-testrpc进行安装,安装需要稍作等待。

安装完成后,执行testrpc,如图,可以看到它提供了10个测试账户地址和对应的私钥。

03

环境测试

创建工程目录并初始化project

新建并进入你的工作目录,执行命令truffle unbox webpack。

查看工作目录,可以看到如下内容:

目录结构简单说明一下:

app/ :应用文件运行的默认目录。这里面包括推荐的javascript文件和css样式文件目录,但你可以完全决定如何使用这些目录。

contract/ :Truffle默认的合约文件存放地址。

migrations/ :存放发布脚本文件

test/ :用来测试应用和合约的测试文件

truffle.js :Truffle的配置文件

node_modules/ :依赖的相关库

打开testrpc

在工作目录下执行命令testrpc,这个命令行留着,再重开一个命令行。

编译合约

新的命令行里进入工作目录下的contracts文件夹,执行命令truffle compile,编译完成如下图:

可以看到工作目录中新增了一个build文件夹:

部署合约

在新命令行里进入工作目录下的migrations文件夹,执行命令truffle migrate(之前命令是:truffle deploy,在Truffle 2.0以上版本中,命令变成了:truffle migrate,不过我试了下,这两个命令都可以)。

启动服务

在新命令行的中执行命令truffle serve(只要在工作目录下执行就行),如图可以看到端口号为8080。

执行整个project

在新命令行中执行命令npm run dev(只要在工作目录里执行就行)。

查看project

打开浏览器,打开网址http://localhost:8080/,可以看到如下内容:

下面测试一下,在“Amount”项中输入10000,在前面testrpc给出的测试地址中选择一个并输入到“To Address”项中。点击“SendMetaCoin”,可以看到页面的各项数据已经发生变化,所剩金额变为0。运行testrpc的命令行是本地测试客户端,由命令行给出的信息可以看到新增加了一个块(Block 10),这个交易就记录在其中,并且Block 10的时间和我系统时间是一致的(忽略截图手速)。

至此,一个智能合约的编译、部署和执行就演示完了。

可能遇到的问题:

环境变量的问题,需要检查环境变量是否配置,路径是否正确,有的环境变量系统也会自动配置,不过最好检查一下

命令行自身的问题,有时命令运行出现问题,需要重启命令行重新执行命令问题就解决了,包括环境变量更改后也需要重启命令行才会生效。

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180122G0ZB4Y00?refer=cp_1026

扫码关注云+社区