1. 安装VirsualBox
(https://www.virtualbox.org/wiki/Downloads)
选择相应版本:

2.安装Juice Box
(http://jpadilla.github.io/juicebox/)

3.使用VirtualBox打开Juice Box
将CPU设置为2,RAM设置为2048 MB,点击“导入”

4.启动虚拟机
使用Ctrl + Alt + T打开Terminal
5.输入sudo apt-get update 更新包

6.更新node版本
打开https://github.com/creationix/nvm,安装nvm。在Terminal中输入
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash

输入nvm install v8

输入nvm alias default v8

7.安装truffle
输入npm install -g truffle
8.安装VSCode
(https://code.visualstudio.com/download)

安装完成后,输入code打开VSCode,安装solidity插件。

9.安装ganache-cli
npm install -g ganache-cli
ganache-cli用于在本地run一个假的以太坊blockchain,方便快速部署、测试智能合约。
10.一个简单的例子:
创建文件夹mkdir example
cd example
truffle unbox metacoin (MetaCoin智能合约实现了简单的发币机制,通过该例子学习truffle整体架构,以及如何与以太坊blockchain上智能合约进行交互)
example结构如图:

在truffle.js中输入
networks: {
development: {
host: "localhost",
port: 8545,
network_id: "*" // 匹配任何network id
}
}
如图:

truffle主要命令:
truffle compile
truffle migrate
truffle console
truffle test
输入truffle compile,编译智能合约

使用Ctrl + Alt + T新打开一个Terminal,输入ganache-cli 打开本地blockchain测试网络

在另一个Terminal中输入truffle migrate,将合约部署在blockchain上

部署成功后,使用truffle console与blockchain进行交互

web3.js:一个JavaScript和区块链交互的桥梁。在Terminal中输入web3. 按两下Tab键,可看到所有可调用的方法

输入web3.eth.accounts可看到当前blockchain中所有的账户

使用web3与已部署的MetaCoin合约交互:
MetaCoin.deployed().then(contract => {metacoin = contract})

调用合约中getBalance方法:
使用web3.eth.accounts查看所有账户,并复制第一个账户,第一个账户为部署合约的账户。
metacoin.getBalance.call('第一个账户').then((result) => { console.log(result) })

至此,我们已经可以和测试网络上MetaCoin合约进行交互。




