genesis.jsonについて

genesis.jsonファイルについて、とても気になったので、調べらた内容をメモします。

参考URLのものをgoogle翻訳して一部整形したものです。

パラメータ

“config”:ブロックチェーンの設定を定義します。

“chainId”:リプレイ攻撃やID盗難を含むいくつかのサイバー攻撃に対する保護を提供し

“homesteadBlock”:Ethereumのホームステッドリリースを使用していることを示す。

“epi155Block”:epi – Ethereum改善提案は、このファイルがEthereumプロジェクトに貢献するのに使用されていることを示す。

“nonce”:ブロックが十分な計算作業によってマイニングされたことを示す64ビットのハッシュです。

“Timestamp”:各osの時間関数に等しい値。 2つのブロック間の値が小さいほど、次のブロックを見つけるのが難しくなります。

“Parenthash”:256ビットのハッシュ(keccak)で、ミックスハッシュとノンスの両方が含まれています。親ブロックを指しています。Genesisブロックには親がないので、値は0です。

“gasLimit”:トランザクションなどを私たちのネットワークにおけるガスの支出の閾値に相当する値です。それを高く保つ。私たちの車がガス切れにならないようにしたいからです。

“Difficulty”:次のブロックをマイニングするために必要な計算値が高くなります。以前のブロック難易度とタイムスタンプから計算されます。

“mixhash”:nonceの組み合わせによって生成され、作業証明を確立するために必要な256ビットのハッシュ。

“coinbase”:マイニング報酬と契約トランザクション実行払い戻しの合計であり、etherbaseとして知られています。

“alloc”:あらかじめ設定されたウォレットを定義します。アドレスと初期の保持etherをここで定義することができます。

 

プライベートネットを作成する際のgenesis.jsonの例

{
  "config": {
    "chainId": 77,
    "homesteadBlock": 0,
    "eip155Block": 0,
    "eip158Block": 0
  },
  "nonce": "0x0000000000000033",
  "timestamp": "0x0",
  "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "gasLimit": "0x8000000",
  "difficulty": "0x100",
  "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "coinbase": "0x3333333333333333333333333333333333333333",
  "alloc": {}
}

 

参考URL

こちらのパラメータ説明文章を翻訳にかけさせていただきました。

参考URL2

allocの内容の参考にさせていただきました。