以太坊私链搭建

环境: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