第二课 如何在WINDOWS环境下搭建以太坊开发环境

第二课 如何在WINDOWS环境下搭建以太坊开发环境

【本文目标】

根据本文指导,可以在WINDOUWS环境下完成以太坊智能合约部署前的比较环境准备。

【技术收获】

如何在WINDOW(笔者以WINDOWS 10为例)环境搭建以太坊开发环境,按照以下安装顺序完成安装后,你将获得相关知识和一个可使用的ETHEREUM环境:

1,安装VMware虚拟机

2,安装Ubuntu系统

3,配置远程登录Ubuntu系统

4,安装git,NodeJS,solc,testrpc,truffle,Geth客户端

5,可选按照Ganache, Lite-Server, MetaMask(WINDOWS本机),

【结果】环境安装成功后,就可以启动以太坊进行转账和智能合约运行了。

【实操课程列表】

第一课 如何在WINDOWS环境下搭建以太坊开发环境

第二课 如何实现以太坊最简智能合约“Hello World”的运行

第四课 以太坊开发框架Truffle从入门到实战

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

第七课 技术小白如何在45分钟内发行通证(TOKEN)并上线交易

第八课 如何调试以太坊官网的智能合约众筹案例

【说明】未列出的课程为知识普及的非实操类课程,所有区块链文章参考“区块链入口”专栏。


1,安装VMware虚拟机

【概念普及】VMWare (Virtual Machine ware)是一个“虚拟PC”软件公司.它的产品可以使你在一台机器上同时运行二个或更多Windows、DOS、LINUX系统。与“多启动”系统相比,VMWare采用了完全不同的概念。多启动系统在一个时刻只能运行一个系统,在系统切换时需要重新启动机器。VMWare是真正“同时”运行,多个操作系统在主系统的平台上,就象标准Windows应用程序那样切换。而且每个操作系统你都可以进行虚拟的分区、配置而不影响真实硬盘的数据,你甚至可以通过网卡将几台虚拟机用网卡连接为一个局域网,极其方便。安装在VMware操作系统性能上比直接安装在硬盘上的系统低不少。

(1)下载VMware虚拟机安装软件

笔者以安装VMware 10为例。安装程序下载地址:pan.baidu.com/s/1bl2hHYll… 密码:o0ki

(2) 点击安装VMware具体配置

请购买或者合法获取许可证密钥,例如 NV4CL-0J3D6-ZZMM1-T10QH-13DPX ,然后就安装成功了。

(3) 创建LINUX-UBUNTU空白虚拟机

笔者曾在WINDOWS 10 64bit笔记本上选择Ubuntu 64操作系统,提示出现错误,后来安装并使用Ubuntu操作系统。

2,安装Ubuntu操作系统

(1)下载Ubuntu操作系统安装盘(.ISO)

Ubuntu为免费软件,笔者选择安装的是“优麒麟17.10.1”版本,下载地址为www.ubuntukylin.com/downloads/

(2)加载虚拟光驱,安装Ubuntu系统

3,配置远程登录Ubuntu系统

(1)在Ubuntu上安装ssh服务端

1) 安装ssh服务端

apt-get install openssh-server #安装完毕后ssh默认已启动

netstat -nat | grep 22 #查看22号端口是否处于监听状态

2) 关闭掉防火墙

sudo ufw disable

【说明】使用ifconfig命令查看虚拟机的IP地址,

3) 更改网络配置,采用桥模式,跟本机WINDOWS采用相同的路由器配置

3) 测试与本机连接情况

虚拟机是独立IP。可在本机WINDOWS系统下运行CMD命令行:ping 192.168.1.11,能否PING通。一般情况下可正常连接。

(2)在本机安装Xshell 4程序

【目的】安装好Xshell,就可以在本机访问虚拟机,不受虚拟机屏幕过小限制。

1) 下载安装程序包

链接:pan.baidu.com/s/1rsHiK2YN… 密码:qi5x

2)安装配置

配置好对应虚拟机的IP地址和登录用户名/密码后,就可以远程访问本机的Ubuntu系统命令行了。

【说明】点击工具栏的编码按钮,设置为Unicode(UTF-8)方式,能正常显示中文。

4,安装git,NodeJS,solc,testrpc,truffle,Geth客户端

(1)安装git,NodeJS

【目的】Git可用于从GitHub获取源代码;NodeJS以太坊开发框架Truffle需要。

输入以下命令安装git:

sudo apt-get install git

注意】如果在安装git时出现E:Package ‘git’ has no installation candidate错误提示,只需使用以下命令代替即可:sudo apt-getinstall git-core

因为以太坊开发需要使用开发框架,但是,目前最好用且使用人数最多的是第三方开发框架Truffle。而Truffle建议系统所用NodeJS版本为5.0以上,因此,我们就需要安装NodeJS的最新版本。

有多种方法安装NodeJS:

方法一:使用apt,输入以下命令安装NodeJS 6.0以上版本(成功):

sudo apt-get install curl

curl -sL deb.nodesource.com/setup_6.x | sudo -E bash

sudo apt-get install -y nodejs

方法二:从Node官网下载源码并解压,然后自行编译安装(以安装Node V6.9.2为例):

tar -zxvf node-v6.9.2.tar.gzcd node-v6.9.2

sudo ./configuresudo make

sudo make install

方法二因为要重新编译,因此耗费的时间可能多一点。

(2)安装solc

【目的】编译以太坊智能合约使用。

输入以下命令安装solc:

sudo npm install -g solc

安装完后,我们就会发现在终端中输入solc命令返回一个出错信息。这是因为solc只是一个程序集,如果我们想要在终端中使用solc程序编译智能合约,则需要安装solc-cli,这是solc的命令行界面。

sudo npm install -g solc-cli

输入以下命令可以一并安装solc和solc-cli(推荐使用此命令安装):

sudo npm install -g solc solc-cli –save-dev

如果输入solcjs –help命令,有以下输出,则表明solc和solc-cli安装成功:

到了这里,如果想以后的智能合约编译工作不使用geth控制台来完成,那么solc编译器就算安装完了。但是,如果我们需要在geth控制台使用solc编译器,那么我们仍然需要安装solc二进制包。输入以下命令安装solc二进制包:

sudo add-apt-repository ppa:ethereum/ethereum

sudo apt-get update

sudo apt-get install solc

如果在输入第一条命令的时候出现了错误,可以尝试重新启动系统来解决。

【注意】

如果你安装了webthree-umbrella,那么solc就会默认安装,但是我们在终端输入solc并没有显示可用的命令,我们需要输入以下命令手动建立软链接:

sudoln-s/home/zcc/webthree-umbrella/solidity/build/solc/solc /bin/solc

这样就能直接在终端使用solc程序了。

【可选操作】

配置npm源为国内源(可选,可加快下载速度),命令行输入:

sudo npm config set registry registry.npm.taobao.org

不想用他们的,再设置回原来的就可以了:

sudo npm config set registry registry.npmjs.org

(3)安装testrpc

输入以下命令安装testrpc:

sudo npm install -g ethereumjs-testrpc

如果输入testrpc命令,有以下输出,则表明testrpc安装成功:

注意

(1)参考网页中的命令没有sudo,但是因为-g参数是表示全局安装,则需要使用root权限才能安装成功。

(2)安装过程可能会出错,可以多试几次安装命令。

(4)安装truffle

【目的】Truffle 是世界一流的开发环境,为以太坊的测试框架和资产管道,致力于使以太坊开发者的生活更容易。

输入以下命令:

sudo npm install -g truffle

如果输入truffle version命令,有以下输出,则表明truffle安装成功:

(5)安装Geth客户端

【目的】Geth是Go Ethereum开源项目的简称,它是使用Go语言编写且实现了Ethereum协议的客户端软件,也是目前用户最多,使用最广泛的客户端。通过Geth客户端与以太坊网络进行连接和交互可以实现账户管理、合约部署、挖矿等众多有趣且实用的功能。Geth支持Windows、Mac及Linux等主流操作系统。

有多种以太坊客户端,安装go-ethereum输入以下命令:

sudo apt-get install software-properties-common

sudo add-apt-repository -y ppa:ethereum/ethereum

sudo apt-get update

sudo apt-get install ethereum

如果能运行GETH命令则表示按照成功了。

(6)安装 Ganache 【可选】

【定义】Ganache是为以太坊开发准备的个人区块链钱包,你可以用它执行智能合约,研发应用和执行测试用例。Ganache的前身是testrpc,跟testrpc的作用一样。

Ganache现在有两个版本,一个是带图形界面的版本,下载地址:

github.com/trufflesuit…

这些可执行文件的后缀都比较奇葩,参见下面的对应关系:

● Windows: Ganache-*.appx

● Mac: Ganache-*.dmg

● Linux: Ganache-*.AppImage

(1)在Ubuntu上安装采用命令行方式

命令如下:

sudo npm install -g ganache-cli

具体的命令行参数配置参见github:

github.com/trufflesuit…

安装界面截图:

运行命令:

ganache-cli

调用命令可显示10个虚拟账号和私钥:

Ganache-cli的命令参数帮助文档:

github.com/trufflesuit…

(2)在WINDOWS上安装Ganache

github.com/trufflesuit…

ganache-setup-1.1.0.exe

(3) 在Ubuntu上安装Ganache图形化界面程序

下载.AppImage的程序,

wget github.com/trufflesuit…

chmod +x ganache-1.1.0-x86_64.AppImage//修改权限为可执行文件

sudo ./ganache-1.1.0-x86_64.AppImage //启动ganache

【结果】在作者的Ubuntu安装Gnaache图形程序没有成功,只能使用Ganache-clli版本了,可能是作者的Ubuntu是32位的,而程序是64位的原因?但是同样的操作在欧阳哥哥的环境是成功的,运行的界面同WINDOWS的界面程序。故障待探索。

【注意】这个操作要在Ubuntu的本机命令行界面进行操作,不可在Xshell的远程命令操作,否则不发触发图形界面。

【问题】如何启动远程Ganache服务器呢?

把HOSTNAME的IP地址更换为远程服务器地址,例如192.168.80.144,点击RESTART按钮。

(7)安装 MetaMask 【可选】

【定义】MetaMask 是一款插件形式的以太坊轻客户端,开发过程中使用MetaMask和我们的dapp进行交互是个很好的选择。

假设你运行的是CHROME浏览器,则官网下载扩展程序的链接地址(需要VPN翻墙):

chrome.google.com/webstore/de…

或者从百度云盘获取:

链接:pan.baidu.com/s/1N0oH5Azb… 密码:77sl

在CHROME浏览器地址输入:chrome://extensions/

【MetaMask官网】metamask.io/#how-it-wor…

(8)安装 lite-server 【可选】

【定义】lite-server 是轻量级的,仅适用于开发 的 node 服务器, 它仅支持 web app。 它能够为你打开浏览器, 当你的html或是JavaScript文件变化时,它会识别到并自动帮你刷新浏览器, 还能使用套接字自动注入变化的CSS, 当路由没有被找到时,它将自动后退页面。

安装与使用

以下是被推荐的安装lite-server的方式:

$ npm install lite-server –save-dev

在你的项目中的 package.json 文件中添加一个 “script” 入口:

Inside package.json… “scripts”: {

"dev": "lite-server"  },
复制代码

有了上面的script 入口, 你就可以通过以下命令来启动 lite-server 了:

$ npm run dev


说明:本环境搭建得到了欧阳哥哥的指导,敬表谢意。

参考文档:

(1)VMware+CentOS+LAMP安装实践

(2) Ubuntu Kylin学习笔记

(3) Ubuntu系统搭建以太坊开发平台过程

知识对接服务:

我和欧阳哥哥在知识星球开通了区块链入门专栏,用于存放简书区块链入门专栏文章的工程源码等内容,并建立专项微信群用于技术交流,欢迎加入。

转载于:https://juejin.im/post/5bed06b3e51d450c051db203

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/101321.html原文链接:https://javaforall.net

(0)
上一篇 2021年6月16日 下午12:00
下一篇 2021年6月16日 下午1:00


相关推荐

  • 世界坐标系,相机坐标系和图像坐标系的转换(Python)

    世界坐标系,相机坐标系和图像坐标系的转换(Python)世界坐标系 相机坐标系和图像坐标系的转换 Python 相机内参外参说明 https panjinquan blog csdn net article details 计算机视觉 相机成像原理 世界坐标系 相机坐标系 图像坐标系 像素坐标系之间的转换 https blog csdn net chentravelli article details

    2026年3月19日
    1
  • 关于CPU编程—无锁编程

    关于CPU编程—无锁编程Lock-free算法通常比基于锁的算法要好:从其定义来看,它们是wait-free的,可以确保线程永远不会阻塞。状态转变是原子性的,以至于在任何点失败都不会恶化数据结构。因为线程永远不会阻塞,所以当同步的细粒度是单一原子写或比较交换时,它们通常可以带来更高的吞吐量。在某些情况下,lock-free算法会有更少的同步写操作(比如Interlocked操作),因此纯粹从性能

    2022年6月1日
    20
  • 《智慧城市时空大数据平台建设技术大纲(2019版)》解析——未完,待续

    《智慧城市时空大数据平台建设技术大纲(2019版)》解析——未完,待续2月18日,自然资源部办公厅发布关于印发《智慧城市时空大数据平台建设技术大纲(2019版)》我们先来回顾下之前国家对于智慧城市建设的指导性纲要文件:1、2015年,《智慧城市时空信息云平台建设技术大纲》2、2017年,《智慧城市时空大数据与云平台建设技术大纲》3、2019年,《智慧城市时空大数据平台建设技术大纲》从2015年开始,智慧城市历经从“时空信息云平台”到“时空大数据与云平…

    2022年6月6日
    161
  • VB6 动态创建用户控件

    VB6 动态创建用户控件br VB6 有一个新功能 可以动态添加控件 不用控件数组 br br object Add ProgID name container br br 参数说明 br Object 必需的 一个对象表达式 其值是 应用于 列表中的一个对象 br ProgID 必需的 一个标识控件的字符串 大多数控件的 ProgID 都可通过查看对象浏览器来决定 控件的 ProgID 是由控件的库和类组成的

    2026年3月19日
    2
  • seekp()和seekg()函数简单的应用

    seekp()和seekg()函数简单的应用C++中seekg()和seekp()的简单应用

    2022年5月8日
    76
  • Scrum 学习笔记

    Scrum 学习笔记

    2021年11月14日
    33

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号