Denen blog

株式会社電縁の社員によるブログです。

EthereumにPHPから接続してみた 補足編

f:id:yasuaki-sakai:20170405150908j:plain

こんにちは

イノベーションオフィスの吉田です。

8月は雨が多くて憂鬱な日が多かったですが、9月は晴れる日が多いといいなぁと思う今日この頃です。

 

さて、今回は以前書いた記事に関しての補足を書きたいと思います。

denen.hatenablog.com

上の記事では、geth の 1.5 系を使用していました。

しかし、現在は 1.6 系がリリースされており、 json の記述等で違いが出てきています。

ですので、そこら辺の差異を含めた説明をしたいと思います。 

1.6 系で必要な設定

以前の記事でジェネシスブロックの設定を my_genesisn.json に記述していました。

内容は以下の通りです。

{
  "nonce": "0x0000000000000042",
  "timestamp": "0x0",
  "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "extraData": "0x0",
  "gasLimit": "0xffffffff",
  "difficulty": "0x4000",
  "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "coinbase": "0x3333333333333333333333333333333333333333",
  "alloc": {}
}

しかし、1.6 系で同様の記述を行っても起動しません。

そこで、以下の様に追記を行ってください。

{
  "nonce": "0x0000000000000042",
  "timestamp": "0x0",
  "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "extraData": "0x0",
  "gasLimit": "0xffffffff",
  "difficulty": "0x4000",
  "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "alloc": {}, 
  "config": {
    "chainId": 42,
    "homesteadBlock": 0,
    "eip155Block": 0,
    "eip158Block": 0
  }
}

「config」という項目が増えましたね。

config 内の各項目の説明は以下の通りです。

chainId チェーンを識別するIDです。プライベートの場合は各ノードでそろえておけば問題有りません。networkid と揃えてる方も居るようです。
homesteadBlock Homestead(Ethereumの現バージョン)仕様のブロックを何ブロック目から使用するかという設定です。0を指定すれば最初から使用されるので、プライベート利用では0で構いません。
eip155Block EIP155に則ったブロックを何ブロック目から使用するかという設定です。こちらも0で構いません。
eip158Block 上記と同様でEIP158に則ったブロックの設定で、0で構いません。

 

また、今回は coinbase の記述を削除しています。

こちらはこのノードでマイニングした際の報酬受け取り先アドレスを記述するのですが、プライベート利用では作業の中で指定する(miner.setEtherbase)ので省きました。 

EIPについて

さて、1.6 系になってから追加された設定項目で eip~ という記述が出てきました。

これは Bitcoin で言うところの BIP(Bitcoin Improvement Proposals) の Ethereum 版になります。

BIP に関しては以下のサイトを参考にしてください。

www.tottemoyasashiibitcoin.net

例えば EIP155 であれば去年 Ehtereum Classic にハードフォークされた影響で起こる Reply Attack への対策となります。

リンクばかりで申し訳有りませんが、Replay Attack に関しては以下が参考になると思います。

www.jpbitcoinblog.info

最後に

といった感じで補足を書かせていただきましたが、Ethereum(geth)のバージョンアップは続いているのでまた設定やオプションが変わるかもしれません。

その時は早めにお伝えできればと思います。

 

書いた人:イノベーションオフィス 室長 吉田

f:id:yasuaki-sakai:20170405150919p:plain