以太坊智能合约开发实例(二)开发环境搭建

嘎子 ETH, 区块链 2019-08-17 416 次浏览 没有评论

为了方便读者阅读,开发环境搭建这一章节会以Windows、Ubuntu和MacOS三节的形式进行讲解。使用特定系统的读者可以直接跳到相应的章节开始阅读、操作,不会因为跳过某种系统的开发环境搭建产生不连贯感。

2.1 Windows开发环境搭建

在搭建开发环境之前,建议使用“适用于 Linux 的 Windows 子系统”或者 VirtualBox 来创建 Ubuntu 系统来进行操作。相比 Windows ,Ubuntu 更适合使用做区块链的开发。不过笔者使用的 Windows 10 专业版,命令也以 Windows 平台上为主,在教程中如果出现不同平台命令不同的情况,我会予以说明。

安装 nodejs

nodejs也有专门的 Windows 安装包,可以到 nodejs 的官方网站 https://nodejs.org/zh-cn/ 上下载。笔者写作时 Windows (x64) 的长期支持版为 10.15.1,笔者使用的就是这个版本。一般情况下,nodejs的版本不同,不会影响后续安装和使用。直接下载程序,安装,一路下一步即可。
安装完成后可以打开命令行工具(CMD或PowerShell)输入node -vnpm -v查看版本号,笔者的nodejs版本为10.15.1,npm的版本为6.4.1。

安装 Ganache

Ganache是以太坊节点仿真器,可以方便开发者快速进行以太坊DApp的开发与测试。安装Ganache之后,会在你的电脑上运行一个以太坊的私链,自动创建10个账号,每个账号中有100.00 ETH。
Ganache有专门针对 Windows 系统的图形化的应用程序,可以在官方网站 https://truffleframework.com/ganache 中下载到。由于常年使用 Windows 所以比较习惯图形化的界面,所以本文后面都以图形化的界面使用 Ganache。
打开 Ganache 官方网站,下载 Windows 安装包,基本一路下一步就可以完成安装,安装后运行界面如下:
ganache-gui

安装 Truffle

Truffle是针对基于以太坊的Solidity语言的一套开发框架。

这么说可能大家没有什么直观印象,给大家介绍一下Truffle的功能,大家一下子就明白了。以我的理解(本文中主要使用的功能):

  • Truffle将Solidity编程中很多细节都封装起来,让用户可以专注于智能合约的开发,而不用关注其他细节。
  • Truffle将很多通用的实例封装起来,利于用户引用,修改。

关于Truffle更多的细节可以参考《Truffle – 以太坊Solidity编程语言开发框架》,本文不作详细介绍。
安装Truffle需要通过命令行工具(CMD 或 PowerShell),在命令行工具中运行以下命令:

安装完成后可以通过truffle version来查看版本号。笔者安装完成后truffle的版本为:

Truffle v5.0.7 (core: 5.0.7)
Solidity v0.5.0 (solc-js)
Node v8.10.0

是的,你没有看错,Solidity也一起安装了,这是由于Truffle基于Solidity。
这样,Windows系统的开发环境就搭建好了。当然,也有读者想知道我用的什么编辑器编辑代码。实际上,你即使使用记事本,也是可以编辑代码的。但我选用的是 Visual Studio Coder,安装了 ESLint 和 solidity 插件。大家也可以选用自己喜欢的编辑器。

2.2 Ubuntu 开发环境搭建

本文以Ubuntu 18.04 LTS为基础环境。在开始前,先运行sudo apt update更新系统组件。系统基本没有安装任何新软件,系统自己带的Python的版本为Python 2.7.15rc1 (default, Nov 12 2018, 14:31:15)。

安装nodejs

nodejs是后续安装的基础之一,必须安装。可以通过以下命令安装nodejs和npm:

由于国内网络问题,此步骤可能需要一点时间。
安装之后可以通过node -vnpm -v来查看nodejs和npm的版本,笔者安装之后nodejs版本为8.10.0,npm版本为3.5.2。

安装Ganache

Ganache是以太坊节点仿真器,可以方便开发者快速进行以太坊DApp的开发与测试。安装Ganache之后,会在你的电脑上运行一个以太坊的私链,自动创建10个账号,每个账号中有100.00 ETH。
在 Ubuntu 系统中,也有还图形化的界面的 Ganache,可以在其实官方网站 https://truffleframework.com/ganache 中下载安装。安装过程和一般的程序安装没有任何区别,界面和 Windows 也是一样的。
在Ubuntu中,你可能也想尝试一下命令行。可以通过以下命令安装Ganache:

注:

  1. ganache-cli是Ganache的一个命令行工具,在Ubuntu中使用特别方便。
  2. 安装Ganache后,在后面的开发时,所有的智能合约都不会在以太坊上实际部署。具体如何部署,会在后文第6章项目发布中具体阐述。
    通过命令ganache-cli命令就可以查看安装好的Ganache CLI的具体信息,笔者安装的版本为Ganache CLI v6.4.1 (ganache-core: 2.5.3)。

    安装Truffle

    Truffle是针对基于以太坊的Solidity语言的一套开发框架。

这么说可能大家没有什么直观印象,给大家介绍一下Truffle的功能,大家一下子就明白了。以我的理解(本文中主要使用的功能):

  • Truffle将Solidity编程中很多细节都封装起来,让用户可以专注于智能合约的开发,而不用关注其他细节。
  • Truffle将很多通用的实例封装起来,利于用户引用,修改。

关于Truffle更多的细节可以参考《Truffle – 以太坊Solidity编程语言开发框架》,本文不作详细介绍。
安装Truffle可以通过以下命令:

安装完成后可以通过truffle version来查看版本号。笔者安装完成后truffle的版本为:

Truffle v5.0.7 (core: 5.0.7)
Solidity v0.5.0 (solc-js)
Node v8.10.0

是的,你没有看错,Solidity也一起安装了,这是由于Truffle基于Solidity。

2.3 MacOS开发环境搭建

笔者使用的是最新版的MacOS系统(macOS Mojave 10.14.1),在开始之前,基本没有安装任何的与以太坊相关的软件。由于macOS和 Ubuntu 比较像,所以大家可以看到,下面的安装与上一节在 Ubuntu 中开发环境的搭建比较像。

安装 nodejs

nodejs也有专门的 macOS 安装包,可以到 nodejs 的官方网站 https://nodejs.org/zh-cn/ 上下载。笔者写作时 macOS (x64) 的长期支持版为 10.15.3,笔者使用的就是这个版本。一般情况下,nodejs的版本不同,不会影响后续安装和使用。直接下载程序,安装,一路下一步即可。
安装完成后可以打开命令行工具(CMD或PowerShell)输入node -vnpm -v查看版本号,笔者的nodejs版本为10.15.3,npm的版本为6.4.1。

安装 Ganache

Ganache是以太坊节点仿真器,可以方便开发者快速进行以太坊DApp的开发与测试。安装Ganache之后,会在你的电脑上运行一个以太坊的私链,自动创建10个账号,每个账号中有100.00 ETH。
Ganache有专门针对 macOS 系统的图形化的应用程序,可以在官方网站 https://truffleframework.com/ganache 中下载到。由于常年使用 Windows 所以比较习惯图形化的界面,所以本文后面都以图形化的界面使用 Ganache。如果你常年使用 macOS 应该也会对图形界面比较熟悉,那么后面的教程对你来说也会比较顺手。
打开 Ganache 官方网站,下载 macOS 安装包,基本一路下一步就可以完成安装,安装后运行界面如下:
ganache-gui

安装 Truffle

Truffle是针对基于以太坊的Solidity语言的一套开发框架。

这么说可能大家没有什么直观印象,给大家介绍一下Truffle的功能,大家一下子就明白了。以我的理解(本文中主要使用的功能):

  • Truffle将Solidity编程中很多细节都封装起来,让用户可以专注于智能合约的开发,而不用关注其他细节。
  • Truffle将很多通用的实例封装起来,利于用户引用,修改。

关于Truffle更多的细节可以参考《Truffle – 以太坊Solidity编程语言开发框架》,本文不作详细介绍。
安装Truffle需要通过命令行工具(CMD 或 PowerShell),在命令行工具中运行以下命令:

安装完成后可以通过truffle version来查看版本号。笔者安装完成后truffle的版本为:

Truffle v5.0.7 (core: 5.0.7)
Solidity v0.5.0 (solc-js)
Node v8.10.0

是的,你没有看错,Solidity也一起安装了,这是由于Truffle基于Solidity。
这样,Windows系统的开发环境就搭建好了。当然,也有读者想知道我用的什么编辑器编辑代码。实际上,你即使使用记事本,也是可以编辑代码的。但我选用的是 Visual Studio Coder,安装了 ESLint 和 solidity 插件。大家也可以选用自己喜欢的编辑器。

2.4 常见问题

使用“适用于 Linux 的 Windows 子系统”相对于 VirtualBox/VMware 有什么优势?

相对于 VirtualBox/VMware 来说,“适用于 Linux 的 Windows 子系统”占用硬盘空间少、占用系统内存少、速度快等特点。但稳定性、完整性差。

由于很多组件在 Windows 安装并不方便,所以本书在写作过程中实际上使用的主要是在 Windows 系统下安装了 VMware ,然后在 VMware 上安装了 Ubuntu 系统进行开发的。

所以,“适用于 Linux 的 Windows 子系统”一般用于开发环境。实际生产环境请使用 VirtualBox/VMware 或者直接在电脑上安装 Ubuntu。

初学者应该从 Truffle 入门还是从头学起?

从前方的开发环境配置大家就能看出我是支付从 Truffle 开始的。

因为我认为一开始掌握大量的细节会使学习成本大大增加。我更倾向于抛开细节,先把代码跑起来。然后从项目中一点一点的了解各种细节。这样非有利于开发者快速入门。

但从 Truffle 开始也有很大弊端,那就是开发者有可能基础不牢,可能开发一段时间后需要从新开始学习Solidity的基础。

使用apt及npm安装组件时,国内下载速度非常慢怎么办?

这是一个国内开发者经常遇到的问题,国内已经有很不错的解决方案:对于教育网用户,建议大家使用清华大学的源替换原有的源,请参照Ubuntu | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror,其他用户建议使用阿里云的源,请参照阿里巴巴开源镜像站(点击 Ubuntu 后面的帮助按钮获取帮助)

aliyun-ubuntu-help

在进行开发时使用哪种代码编辑器?

前面已经说过了,其实使用哪一种编辑器并不重要,但如果有代码高亮显示及代码提示肯定会提高我们和编程效率。所以我选用了自己用着比较顺手的 Visual Studio Coder,大家可以根据自己的喜好选择 IDE 。

?

原创文章,文章首发于:Riley Ge (@rileyge) — Steemit

原创文章,转载请注明: 转载自TsonTec:测量解决方案提供者

本文链接地址: 以太坊智能合约开发实例(二)开发环境搭建

相关主题

  • 以太坊智能合约开发实例(一)前言2019-08-17 以太坊智能合约开发实例(一)前言 (0)
    在写其他文章时,想试试智能合约的开发,但发现目前市场上可见的区块链书籍多以概念、理论为主,而网络上所查找的资料又过于零碎。而面向程序员,以开发实践为主的教 […]
  • C#中的具名参数、可选参数及注意问题2016-03-21 C#中的具名参数、可选参数及注意问题 (0)
    具名参数 和 可选参数 是 C# framework 4.0 出来的新特性。 一. 常规方法定义及调用 public void […]
  • C#正则表达式的应用2016-03-06 C#正则表达式的应用 (0)
    自己正则表达式的基础看过很多了,但总是记不住,就将C#使用正则表达式的最常用的东西自己整理一下,以后直接到自己的博客上找非常方便。也希望能帮到有和我一样 […]
  • db4o基础与入门2016-01-29 db4o基础与入门 (0)
    如果你使用的编程语言是java或者.net(笔者最常用的编程语言为C#,所以下文中以C#说事,请读者勿怪),那你有福气了,db4o可以说是一种最自然的数 […]
  • 2016-02-01 强强联合,AutoHotKey+TortoiseSVN搞定SAE(Sina App Engine)的SVN提交,更新,添加 (0)
    关于AutoHotKey:http://xbeta.info/autohotkey-guide-2.htm 关于TortoiseSVN:http://tor […]
  • 用C#编写一个自己删除自身文件及文件夹的卸载程序2016-01-31 用C#编写一个自己删除自身文件及文件夹的卸载程序 (9)
    本来自己很高兴的写了一篇文章:用C#删除程序占用文件。本来以为是这一个很好的解决方案。事实再一次证明,没有实践,就没有发言权。自己在实际使用的时候发现根本不是 […]

说点什么

avatar
  Subscribe  
提醒
回顶部