纯干货 以太坊DApp开发环境搭建

欧易okx交易所下载

欧易交易所又称欧易OKX,是世界领先的数字资产交易所,主要面向全球用户提供比特币、莱特币、以太币等数字资产的现货和衍生品交易服务,通过使用区块链技术为全球交易者提供高级金融服务。

官网注册   APP下载  

纯干货 以太坊DApp开发环境搭建

随着科技发展,区块链技术逐步走向正轨,本文主要基于以太坊DAPP项目开发环境为对象,将windows下快速搭建环境配置方法予以总结,主要从安装介绍Node.js、geth、solidity编译器、web3和webpack出发,使我们在工作学习中避免安装时出现一些不必要的麻烦,造成开发工作难以进行。

以太坊DAPP开发环境有两种一种是在线开发环境Remix,另一种就是本地开发环境。

Remix:相对于本地开发环境比较简单,它可以直接在solidity(浏览器)里编写、调试智能合约。网页地址:https://remix.ethereum.org/ ,可直接打开。

本地开发环境:需要一个与自己独有业务系统的交互,这就需要DApp进行自己独有业务系统的逻辑编写;环境搭配相当于给与两者建立了一个交互的平台或空间。

1、安装Node.js

进入官网:https://nodejs.org/en/ ,单击“downloads”进入下载页面,我们使用官方长期支持的8.11.1LTS版本,根据自己计算机操作系统配置选择相应的安装包,32位安装包既可用于32位系统,也可用于64位系统。如果您确认自己操作系统是64位,也可直接下载安装64位安装包。

下载完成后可直接安装。安装完毕,打开一个控制台窗口,可以使用node了:

纯干货 以太坊DApp开发环境搭建

安装后检测PATH环境变量是否配置了Node.js,点击开始=》运行=》输入"cmd"=>输入命令"path",输出如下结果:

纯干货 以太坊DApp开发环境搭建

我们可以看到环境变量中已经包含了D:Program Filesodejs,检查Node.js和npm版本,直接在命令行中输入“node -v”和“npm –v”,如图:

纯干货 以太坊DApp开发环境搭建

2、安装Geth

Geth是以太坊协议的具体落地实现,通过Geth,你可以实现以太坊的各种功能,如账户的新建编辑删除,开启挖矿,ether币的转移,智能合约的部署和执行等。目前下载安装V1.8.7版本。

纯干货 以太坊DApp开发环境搭建

安装完成后检查,输入geth version,产看是否安装成功;

纯干货 以太坊DApp开发环境搭建

如果出现Geth的版本号,那么恭喜你,geth安装成功!

3、安装 solidity编译器

基于浏览器的Solidity:

如果你只想尝试一个使用Solidity的小合约,那么就不需要安装任何东西,只要访问基于浏览器的Solidity。

如果你想要离线使用(下载地址:https://cmake.org/download/ v3.11.1版本),那么你可以把页面保存至本地,或者从或者从http://github.com/chriseth/browser-solidity克隆一个。

NPM/node.js在基于浏览器的Solidity上,Emscripten提供了一个跨平台JavaScript库,把C++源码编译为JavaScript,同时提供了NPM安装包。这可能是安装Solidity到本地最简单省事的方法了。

安装完毕后输入solcjs –version。如果出现Emscripten.clang,说明你安装成功。

4、Web3安装

Web3的安装过程使用了git,因此需要先安装 windows 版的git命令行。下载64位或32位的git安装程序,本地安装后在继续安装web3。

npm install –g web3@0.20.2

安装验证:输入node –p 'require("web3")'{[Function: Web3]providers:{…}}

5、webpack

Webpack借用官方说法:

“webpack is a module bundler. Its main purpose is to bundle JavaScript files for usage in a browser, yet it is also capable of transforming, bundling, or packaging just about any resource or asset.”

简言之,webpack是一个模块打包器 (module bundler),能够将任何资源如 JavaScript文件、CSS文件、图片等打包成一个或少数文件。

纯干货 以太坊DApp开发环境搭建

为什么要用这个Webpack?

首先,定义已经说明了webpack能将多个资源模块打包成一个或少数文件,这意味着与以往的发起多个HTTP请求来获得资源相比,现在只需要发起少量的HTTP请求。

其次,webpack能将你的资源转换为最适合浏览器的“格式”,提升应用性能。比如只引用被应用使用的资源(剔除未被使用的代码),懒加载资源(只在需要的时候才加载相应的资源)。

再次,对于开发阶段,webpack也提供了实时加载和热加载的功能,大大地节省了开发时间。除此之外,还有许多优秀之处之处值得去挖掘。不过,webpack最核心的还是打包的功能。

具体架构还需仔细剖析解读,继续Webpack多页应用架构可以更加广泛的呈现出精彩的内容。但是架构不是一成不变的,在不断革新和迭代中逐渐趋于完善,解决一些架构中的痛点。