一、开发环境
ubuntu16.04 64位
二、准备工作_wget
2.1 查看当前CPU架构
wget 是一个从网络上自动下载文件的自由工具,所谓自动下载,是指 wget 可以在用户退出系统的之后在继续后台执行,直到下载任务完成。
在终端中执行以下命令,确定是32位架构还是64位架构:
~$ uname –p
x86_64
如果你看到输出x86_64,那么就是64位系统,否则是32位。
2.2下载wget
确保你安装了下载工具wget:
~$ wget –VGNU Wget1.17.1builtonlinux-gnu
如果还没有安装wget,使用apt-get来安装
~$ sudo apt-get install wget
三、安装DApp开发环境
3.1 安装Node.js
安装nodejs 8.x版本:
curl- sL https://deb.nodesource.com/setup_8.x | sudo-E bash -
sudo apt-get install -y nodejs
如此,直接安装在系统环境/usr/bin目录下,之后使用npm -g安装其他插件也会安装到/usr/lib/node_modules’(需要使用sudo权限)‘。
查看node版本
./node -v
3.2 安装节点仿真器
为了快速开发和测试以太坊DApp,我们通常使用以太坊节点仿真器来模拟区块链,最流行的节点仿真器就是Ganache,之前被称为TeseRPC。
在终端执行以下命令:
~$npminstall –g ganache-cli
安装完毕后,执行命令验证安装成功:
~$ ganache-cli
Ganache CLI v6.0.3(ganache-core:2.0.2)
![](https://img.haomeiwen.com/i4263030/554d16a4e9671dea.png)
ganache-cli自动创建了10个测试账号,每个账号预分配了100(虚构的)ethers
3.3 安装solidity编译器
solidity是开发以太坊智能合约的编程语言。
~$npm install –g solc
安装完毕后,执行命令验证安装成功
~$ solcjs --version
0.4.24+commit.e67f0147.Emscripten.clang
3.4安装web3
分布式的网络。简单来说,web3就是没有集中式服务器和数据库的web2。
~$ npm install web3@0.20.2
安装验证:
~$ node –p'require("web3")'
{[Function:Web3]
providers:{…}}
3.5安装truffle框架
执行以下命令安装truffle开发框架:
~$npm install –g truffle
验证安装:
~$ truffle version
Truffle v4.1.3(core4.1.3)
3.6安装webpack
WebPack可以看做是模块打包机:它做的事情是,分析你的项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Scss,TypeScript等),并将其转换和打包为合适的格式供浏览器使用。
执行以下命令安装webpack:
~$ npm install –g webpack@3.11.0
验证安装
~$ webpack –v
3.11.0
四、构建示例项目
4.1 新建DApp项目
执行以下命令创建项目目录并进入该目录:
~$ mkdir demo
~$ cd demo
然后用webpack模版初始化项目骨架结构:
~/demo$ truffle unbox webpack //用模板创建一个新项目
Downloading…
Unpacking…
Setting up…
Unbox successful. Sweet!
4.2 安装项目依赖的NPM包
执行以下命令安装nmp包:
~/demo$npminstall
4.3 修改truffle配置
truffle.js中,修改port为8545,因为ganache-cli在8545端口监听:
module.exports= { networks:{ development: { … port:8545… } }}
4.4 启动节点
执行以下命令启动节点仿真器,以便部署合约并执行交易:
~/demo$ ganache-cli
4.5 编译合约
执行以下命令编译项目合约:
~/demo$ truffle compile
4.6 部署合约
执行以下命令来部署合约:
~/demo$ truffle migrate
4.7 启动DApp
执行以下命令来启动DApp:
~/demo$npmrun dev
在浏览器里访问 http://localhost:8080即可
如果你希望从别的机器也可以访问你的DApp应用,修改一下package.json:
{scripts:{"dev":"webpack-dev-server –-host 0.0.0.0"}}
网友评论