关于如何安装testrpc、truffle,我假设大家都已经熟门熟路了,因为有大量的区块链的教学篇有详细介绍如何在单机上同时安装部署eth、truffle,并且在本地进行的合约测试。
这里,我们尝试做点更有意思的工作,把整个测试环境从单点机器变成松散的结构,从而探究truffle的工作原理。
接下来,我们陆续做这么两个实验:
实验一:将testrpc部署到eth-host主机上,并对外启动eth测试网络服务:http://eth-host:8545
实验二:以webpack为例在tru-host主机(truffle)上部署智能合约,并对外提供转账服务:http://192.168.3.103:8080
完成上述工作后,其实估计大家对于truffle会有更清晰的认识。
今天先完成实验环境的搭建工作。
1. 部署eth-host虚机
主机功能:搭建以太坊虚机,为智能合约应用服务器提供账本、记账等基础的以太坊测试网络服务。
(1) 虚机与网络:在vmware上使用最简版的centos7安装虚机即可,安装完成后,为方便局域网访问,将虚机网络设置为桥接方式。
虚机准备可参考:http://blog.csdn.net/xc70203/article/details/77983488
该步骤完成后,主机配置为:
IPAddr:192.168.3.102
Gateway: 192.168.3.1
dns1: 8.8.8.8
dns2: 114.114.114.114
(2) 配置主机host:将主机的host名称定义为eth-host,方法可参考:http://blog.csdn.net/huangyanlong/article/details/45476569
为方便后续主机访问,在/etc/hosts文件中增加:
#当前本机名为eth-host
IP eth-host
# 准备部署的tru-host主机
192.168.3.103 tru-host
(3) 部署ethereumjs-testrpc,执行:
npm install -g ethereumjs-testrpc
安装好后,直接执行:
testrpc
即可启动带有初始化10个账本的eth测试网络服务。
geth --rpc --dev console 2>> geth.log
对于eth-host主机而言,部署testrpc对于初学者而言是最佳选择,它简化了创建rpc服务、accounts、unlock、miner相关的一系列的操作。等后续讲到geth的时候,这些操作都是为创建测试网络必不可少的内容。所以,大家先完成(1)~(3)即可。
IPAddr:192.168.3.102
Gateway: 192.168.3.1
dns1: 8.8.8.8
dns2: 114.114.114.114
#当前本机名为tru-host
IP tru-host
# 已部署的eth-host主机
192.168.3.102 eth-host
(3) 部署truffle项目:
npm install -g truffle
安装好后,在root目录下创建工作路径t01,并初始化webpack项目:
cd && mkdir t01 && cd t01
truffle unbox webpack
执行完之后,应该可以看到项目目录结构如下所示。
做完上述工作后,实验的准备工作就完成了。