プライベートネットワークでマイニングしようとしています。
フロンティア イーサリアムでプライベート ネットワークのジェネシス ブロックを作成するにはどうすればよいですか?
https://blog.ethereum.org/2015/07/27/final-steps/を見ましたが、これは公開の Genesis ブロックを取得するためのものです。
プライベートネットワークでマイニングしようとしています。
フロンティア イーサリアムでプライベート ネットワークのジェネシス ブロックを作成するにはどうすればよいですか?
https://blog.ethereum.org/2015/07/27/final-steps/を見ましたが、これは公開の Genesis ブロックを取得するためのものです。
{
"nonce": "0x0000000000000042",
"difficulty": "0x000000100",
"alloc": {
},
"mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"coinbase": "0x0000000000000000000000000000000000000000",
"timestamp": "0x00",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"gasLimit": "0x16388"
}
ここで生成されたものを簡単に取得して、アカウントと残高を変更できます。
また、ガス制限を0x2dc6c0
(3mio) のような高い数値に設定し、難易度を0xb
イエローペーパー 4.3.4に従って有効である限り、基本的に好きなジェネシス ブロックを作成できます。ブロック ヘッダーの有効性。
Genesis Block は、マイナーがどのブロックチェーンで働いているかを示していません。これは、適切なピア ツー ピア ネットワークに接続するか、複数のブロックチェーンが実行されているネットワークで検出メカニズムを使用している場合は、ネットワーク ID を使用して定義されます。
(ジェネシス) ブロックは、この特定のブロックのパラメーターを記述し、マイナーのアルゴリズムに従って設定されます。もちろん、違法行為はコンセンサスメカニズムによって拒否されます。
結論として、すべてのカスタム ブロックチェーンに同じ GB を使用できます。
数学的検証に関して正確でなければならない値は、nonce (Proof of Work)、mixhash (Fowler–Noll–Vo 縮小 DAG 値セット)、timestamp (作成時間) です。この例のこっけいな値は、オリジナルの Frontier リリースの Genesis Block からのコピーです。parentHashはチェーン内の親ブロックを指し、ジェネシス ブロックは 0 が許可され、必要とされる唯一のブロックです。allocを使用すると、アカウントに Ether を「事前入力」できますが、Ether は非常に迅速に採掘できるため、ここでは必要ありません。
難易度は、マイナー (ハッシュ) アルゴリズムが有効なブロックを見つけるために満たすべき条件を定義します。テストネットワークでは、反復ごとにブロックを見つけるために、通常は小さく保たれます。これは、ブロックチェーンでトランザクションを実行するために必要なため、テストに役立ちます。ブロックの生成頻度は、ブロックチェーンの応答時間のようなものです。
GasLimitは、トランザクションが燃焼できるGasの上限です。次のブロックに継承されます。extraDataは 32 バイトのフリー テキストで、ブロックチェーン上でスマートなものを取得できます :)コインベースは、このブロックのマイニングとトランザクション実行の報酬を Ether で取得したアドレスです。ブロックを見つけた (そしてトランザクションを追加した) マイナーのコインベースに従って、新しいブロックごとに設定されるため、ここでは 0 にすることができます。
これについては、こちらでもう少し詳しく説明しています。
お役に立てれば :)
具体的には、プライベート ネットワークのジェネシス ブロックの構築については、この短い記事で詳しく説明されています。
ここで言及したいことの 1 つは、ジェネシス ブロックの唯一の違いは、前のブロックへの参照がないことです。