EthBox即支持采用仿真器进行快速开发验证,也支持使用标准# v7 M K& S* e5 j u3 U m& _
节点软件搭建私链测试,或接入公链进行部署。+ C# k# u5 M( ?' D. X
EthBox的当前版本是0.0.1,目前仅适用于windows操作系统。
安装6 O$ x1 M0 Z% ?" A/ G
执行下载到本地的ethbox-setup.exe启动安装程序:
7 s# P5 ?2 }. z2 Y- L% v
点击[接受]按钮,进入安装目录选择:
, R" U4 }) U' J5 R
点击[安装]按钮,开始执行安装过程:
安装完毕后,在桌面可以看到EthBox图标:# {! T4 \6 B6 ]) \( b0 ^2 G
, D! T/ b2 }( U/ h' X' B* H
启动仿真器& l5 ]8 _. f9 i( y4 n: j
点击桌面的EthBox图标,即可进入EthBox环境:
执行ganache-cli启动仿真器:( J5 t$ ^3 Q, M; Q$ @* W# H
C:\Users\user> ganache-cli g1 b- t7 h& \1 c, w
显示如下结果,表示成功启动:
$ _3 G9 u+ x2 [5 y7 G
创建truffle项目# p T6 _$ x9 k1 ~; f% Y2 V. B; i! N
再次点击桌面的EthBox图标,进入EthBox环境。
创建一个项目目录,然后执行truffle unbox webpack初始化项目文件:: ?0 Q5 x) @: {' r; P, e7 `
C:\Users\user> md demo6 w! m) d, Z8 O3 ~7 z
C:\Users\hubwiz\demo> truffle.cmd unbox webpack& x V1 g( l6 a* Q1 ^8 }5 O K
你将会看到如下结果:5 e0 K2 q' S/ h: T1 N1 t% F! R H
在Setting up...处将需要等待一会儿,因为需要从网络下载项目依赖包。& S: a4 E% Z' @' i; s
运行truffle项目# x% Q* A; S) ?
首先修改默认的truffle.js配置文件,将节点端口修改为8545 - 因为ganache-cli的监听端口是8545:
module.exports = {
networks:{; V/ p$ P' f5 W# m& D1 i
development: {' `. z- x% p _7 ^
port: 85455 X1 I" T$ i3 ]
}1 i; K; M; B% O9 e9 s
}% ]% ^7 `, S+ c1 a7 r8 p2 v
}
然后修改app/javascripts/app.js中的节点URL,同样将端口修改为8545:
window.web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));4 P& h/ P) P3 R- r6 P5 e
现在执行truffle compile命令编译合约:
C:\Users\user\demo> truffle.cmd compile
编译过程中有一些警告,暂时忽略即可。- @# t+ ?7 z" o. i
然后执行truffle migrate部署合约:
C:\Users\user\demo> truffle.cmd migrate6 y7 F* P: f8 {6 s
结果如下:
在部署过程中,如果你切换到ganache那个窗口,会看到一些交易信息 —— 部署合约也是一种交易:5 L! l4 V" j6 l6 r# M' r0 ]9 L# t
; k% H0 F7 s1 Z3 W1 B; F7 |4 C
一切就绪!可以启动web服务器了:3 G) ?, S: I; J: s" B
C:\Users\user\demo> npm run dev6 f# R9 W: j3 A9 V: m) Y
这个命令会执行内存打包并且启动一个在8080端口监听的web服务器:$ j! i6 q# x" ]* o/ F
6 X ? ^: m: o, E# R* l
现在,访问 http://localhost:8080 即可!
6 f0 i4 \+ O" ]* m
注意这句话:8 K8 E# o; Z9 W
# v _+ |) R/ C6 U# H7 K& w
You have 10000 META
- l0 q5 p, p1 I* n, \/ c
这个10000是从链上(ganache-cli)取来的,因此看到这个数字,就意味着,你的以太坊开发环境部署成功!
原文:http://blog.hubwiz.com/2018/06/07/ethbox-readme/