以太坊私链搭建
环境:vagrant+virtualBox+ubuntu
前置条件:vagrant file设置
config.vm.provider "virtualbox" do |vb|
vb.memory = "2048"
vb.cpus = "2"
end
如果为默认设置,在miner.start()挖矿的时候挖不到,因为算力不够。切记。我在这被坑了long long time
正式开始搭建以太坊 go 1.10 /geth 1.8.11-stable
1、安装go、go-etherenum
sudo apt-get install software-properties-common sudo add-apt-repository ppa:hnakamur/golang-1.10 sudo add-apt-repository -y ppa:ethereum/ethereum sudo apt-get update sudo apt-get install ethereum
验证是否安装成功
go version /geth version 能够显示版本号说明安装成功。
2 、初始化配置JSON文件
{
"config": {
"chainId": 10,
"homesteadBlock": 0,
"eip155Block": 0,
"eip158Block": 0
},
"alloc" : {},
"coinbase" : "0x0000000000000000000000000000000000000000",
"difficulty" : "0x20000",
"extraData" : "",
"gasLimit" : "0x2fefd8",
"nonce" : "0x0000000000000042",
"mixhash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
"parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
"timestamp" : "0x00"
}
chainId:chainId是EIP155里定义的发送交易到哪种链的方式,(EIP是以太坊改进建议)。这里设置为10,truffle.js里的network_id也得是10,不然交易的时候会报invalid sender的错误。
coinbase:矿工账号可以不填写
difficulty:挖矿难易度设置,数值越小挖矿越是容易,反之难度越大
gasLimit:用来设置区块链消耗gas总量的限制,私链设置最大
parentHash:创世区块设置为0
保存到/tmp/gensis.json
3、初始化创世区块
mkdir -p /tmp/privateEth
geth init /tmp/gensis.json --datadir /tmp/privateEth
这样表示已经创建成功
4、 打开geth 命令行
geth console --datadir /tmp/privateEth --networkid 111
创建成功
用eth.accounts是查看是否有旷工账户
如果没有用:personal.newAccount()一路回车就好
创建完成就可以开始挖矿了
miner.start() 开始挖矿
这样就说明私链搭建成功。已经可以挖矿啦。
转载于:https://my.oschina.net/ranhai/blog/1832856