以太坊区块链私网环境搭建

一、从网站https://github.com/ethereum/go-ethereum/releases/下载最新版本node

#tar -zxvf geth.tar.gzgit

#cd gethgithub

#建立init.json的文本文件,内容以下:web

{json

"nonce": "0x0000000000000042",api

"config": { "chainId": 15, "homesteadBlock": 0, "eip155Block": 0, "eip158Block": 0 },网络

"difficulty": "0x4000",app

"alloc": {cors

"e0953e0a2ae54cfa0e72426de4ad654af5fd3669": {dom

"balance": "20000009800000000000000000000"

}

},

"mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",

"coinbase": "0x0000000000000000000000000000000000000000",

"timestamp": "0x00",

"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",

"extraData": "0x11bbe8db4e347b4e8c937c1c8370e4b5ed33adb3db69cbdb7a38e1e50b1b82fa",

"gasLimit": "0xb2d05e00"

}

参数描述

mixhash 与nonce配合用于挖矿,由上一个区块的一部分生成的hash。注意他和nonce的设置须要知足以太坊的Yellow paper, 4.3.4. Block Header Validity,。

nonce nonce就是一个64位随机数,用于挖矿,注意他和mixhash的设置须要知足以太坊的Yellow paper, 4.3.4. Block Header Validity, (44)章节所描述的条件。

difficulty 设置当前区块的难度,若是难度过大,cpu挖矿就很难,这里设置较小难度

alloc 用来预置帐号以及帐号的以太币数量,由于私有链挖矿比较容易,因此咱们不须要预置有币的帐号,须要的时候本身建立便可以。

coinbase 矿工的帐号,随便填

timestamp 设置创世块的时间戳

parentHash 上一个区块的hash值,由于是创世块,因此这个值是0

extraData 附加信息,随便填,能够填你的个性信息

gasLimit 该值设置对GAS的消耗总量限制,用来限制区块能包含的交易信息总和,由于咱们是私有链,因此填最大。

 

二、创世区块初始化

#geth  --datadir "./app/" init init.json  初始化

注意:上面命令中--datadir后面的 /app/chain能够任意指定而且目录不用提早建立,可是必定要保证有足够的磁盘空间,init.json是咱们在上一步建立的创世区块文件

 

三、启动以太坊

#nohup ./geth --identity "dapp" --rpc --rpcport "8545" --rpccorsdomain "*" --rpcaddr "0.0.0.0" --datadir "app" --port "30303" --nodiscover --rpcapi "db,eth,net,web3,personal,admin" --networkid 95518 --nat "any" 2>log.txt&

#./geth attach ipc:./app/geth.ipc  以ipc方式调用console控制台

#./geth attach http://127.0.0.1:8545 以rpc方式调用console控制台

参数描述

identity 区块链的标示,随便填写,用于标示目前网络的名字

init 指定创世块文件的位置,并建立初始块

datadir 设置当前区块链网络数据存放的位置

port 网络监听端口

rpc 启动rpc通讯,能够进行智能合约的部署和调试

rpcapi 设置容许链接的rpc的客户端,通常为db,eth,net,web3

networkid 设置当前区块链的网络ID,用于区分不一样的网络,是一个数字

console 启动命令行模式,能够在Geth中执行命令

nodiscover 禁止被网络中其它节点发现,须要手动添加该节点到网络

verbosity 打印详细的日志信息

 

四、建立主帐户,挖矿,转帐,组网

>personal.newAccount(“111111”)

>personal.listAccounts 查看主帐户

>web3.fromWei(eth.getBalance(eth.coinbase), "ether") 查询默认账号余额

>miner.start(1) 挖矿,当出现mined block时,只有挖到矿了才能够转帐

>miner.stop() 中止探矿

>personal.unlockAccount("0x5a5116d5b2c27d77214134c81593974bc5abd6f9","111111",3600) 解锁

> eth.sendTransaction({from: '0x325d05e04c7f62fbaaee83745e90a9b90bdbd089', to: '0xd841a08defddc93285b45ed4187d791170168daf', value:web3.toWei(1,"ether")}) 转帐

> web3.fromWei(eth.getBalance(eth.accounts[1]), "ether")  其余账号

> txpool.status 查看交易状态

组网创建区块链,组网有二个要求:

>>>创世块文件要同样

>>>geth启动时的networkid要同样,即启动中的--networkid 95518 这个参数值要同样

在二台不一样机器上搭建二个以太坊私有链,而后执行如下命令

>admin.nodeInfo 查看当前节点的peer信息

而后把另外1台上面的节点信息复制下来执行admin.addPeer便可,小括号里面的enode信息为另外1台机器的信息

> admin.addPeer("enode://505b0b845e48d17db5bc8e7a5d8a8743a64007b36028907bb5bb6d24575265ce24b534fe39d0b437e057c1ffe380387d65632deb1ce023c5fa6707447c9bb386@192.168.37.40:30303")

查看组网是否成功

> admin.peers

 

五、Mist 链接到搭建好的私网

Mist.exe . --rpc "http://192.168.37.40:8545"  --node-networkid 95518  --swarmurl "null"

相关文章
相关标签/搜索