Ethereum_18_测试环境部署

2018/07/17 Ethereum
  1. 服务器IP ``` bockchain_test 47.94.227.171(弹性) 10.200.0.175(私有) blockchain-pro 47.94.217.135(弹性) 10.200.0.176(私有)

1. 传统POW方式是在/mnt/blockchain/目录下,创建genesis.json

config”: { “chainId”: 10, “homesteadBlock”: 0, “eip155Block”: 0, “eip158Block”: 0 },

“coinbase” : “0x0000000000000000000000000000000000000000”, “difficulty” : “0x400”, “extraData” : “0x00”, “gasLimit” : “0xffffffff”, “nonce” : “0xdeadbeefdeadbeef”, “mixhash” : “0x0000000000000000000000000000000000000000000000000000000000000000”, “parentHash” : “0x0000000000000000000000000000000000000000000000000000000000000000”, “timestamp” : “0x00”, “alloc” : {} }

本次部署不采用该种方式,采用POA方式 参见:Ethereum_19_POA.md


2. init 区块链初始化

在blockchain目录下执行

geth –datadir data0 init genesis.json //#init



3. geth 安装(1.7.2)

#出现如下问题 Ethereum private chain resets back to block 0 when restarted geth版本从1.8.2退回到1.7.3,不能从apt安装

#查看版本 geth version 如果还没有安装geth,请先安装,版本选择1.7.2

#安装 git clone https://github.com/ethereum/go-ethereum.git cd go-ethereum git checkout v1.7.2 make geth make all


4. git 安装

#查看git版本 root@blockchain-test:/mnt/blockchain# git –version git version 2.7.4

#没有请先安装git root@blockchain-test:/mnt/blockchain# apt install git



5. go 安装(1.9.1)

#make geth需要go1.7版本以上,系统apt安装最新仅为1.6版本,我们安装最新版本1.9.1

#查看版本 go version

#安装 wget https://storage.googleapis.com/golang/go1.9.1.linux-amd64.tar.gz sudo tar zxvf go1.9.1.linux-amd64.tar.gz -C /usr/local

#cd /etc #vi profile 在文件末尾加入

export GOROOT=/usr/local/go export GOBIN=$GOROOT/bin export GETHBIN=/mnt/blockchain/go-ethereum/build/bin export PATH=$PATH:$GOROOT/bin:$GETHBIN

source profile



6. add-apt-repository 安装

root@blockchain-test:/mnt/blockchain# apt install software-properties-common


7. 启动geth,必须在/mnt/blockchain/目录下执行

区块链初始化化

geth –datadir data0 init genesis.json //#init

#之后启动geth客户端 geth –datadir data0 –networkid 10 –rpc –rpcaddr 10.200.0.175 –rpcport 8545 –rpcapi “web3,eth” –rpccorsdomain “*” –unlock “0” –password “password.txt” –nodiscover console

#创建账户

eth.accounts personal.newAccount() 输入两次密码

eth.blockNumber eth.getBalance(eth.accounts[0])

personal.unlockAccount(eth.accounts[0]) 解锁账户,输入密码

Generating DAG in progress epoch=0 percentage=99

让dag 100% 走完



8. explorer 和 ipfs 参加其他文档

参见 Ethereum_11_explorer.md


9. 合约部署

  1. 将data0目录下的keystore文件取下 #sz fileName

  2. config配置文件中,配置blockServerUrl,blockAccountPassWord,blockAccountPath

#可以部署到测试环境,注意keystore文件还要放到toshare项目的mnt目录

#可以在开发环境下,但文件需放到本地开发目录对应位置,并配置在config中 C:\Users\commando\AppData\Roaming\Ethereum\testnet\keystore 并加上.json扩展名

  1. 调用接口deployContract生成contractAddress,调用前也需要开启挖矿miner.start()

  2. 把合约地址配置到config文件,重启部署,启动服务



10. 最后

1.这些机器都在一个局域网中,他们都是内网的访问地址,目前访问的公网ip地址,是弹性公网,也就是说,在阿里云以外的网络可以访问, 但是在阿里云内部服务器之间访问,需要使用内网访问 阿里云内部机器之间,使用公网ip地址应该是无法进行访问的

(内部服务器调用,使用内网IP地址)

  1. explorer 端口修改为80

```

Search

    Table of Contents