合併後のイーサリアムノードの詳細構造と同期状態チェック方法
作者: Truebit
編纂: ChainCatcher
合併後、イーサリアムノードには実行クライアントとコンセンサスクライアントが含まれます。両者は完全なイーサリアムノードを実行する必要があり、いくつかの警告が含まれています。この記事では、合併後のノードの詳細な構造、特定の用途に応じたノードの選択、同期オプション、および同期状態の確認方法について説明します。
イーサリアムノードは、ソフトウェアクライアントを実行するコンピュータであり、同じイーサリアムソフトウェアを使用する他のコンピュータに接続してp2pネットワークを作成し、プロトコルルールに基づいてデータを検証し、ネットワークの安全性を維持します。
合併後のイーサリアムの主要部分:
実行クライアント:ネットワーク内でブロードキャストされた新しい取引をリスニングし、イーサリアム仮想マシン(EVM)でそれらを実行し、すべての現在のイーサリアムデータの最新の状態とデータベースを保持します。
コンセンサスクライアント:プルーフ・オブ・ステーク(POS)コンセンサスアルゴリズムを実装するビーコノードを含み、ネットワークが実行クライアントからの検証済みデータに基づいて合意に達することを可能にします。バリデータークライアントはコンセンサスの一部であり、ネットワークの同期を処理し、合意に達し、他のいくつかの低レベルの機能を実行します。バリデーターの役割は、ブロック提案を実行するためにETHをステークすることであり、証明はイーサリアムビーコンクレインの同様に重要な構成要素です。
ベーコンチェーン
ビーコンクロック
イーサリアムクライアントの種類
ノード
フルノードはブロックチェーンデータを保存します(ただし、これは定期的にトリミングされるため、フルノードはすべての状態データを創世に戻して保存するわけではありません)。ブロック検証に参加し、すべてのブロックと状態を検証します。
ライトノードは、イーサリアム1のノード内で実行されるアプリケーションの最も一般的なモードです。合併後、このオプションはまだ利用できず、一部の実験的なクライアントが解決策を提供するために努力しています。同期速度を向上させ、ストレージサイズを削減するために、一部のクライアントは楽観的同期を提供します。これは、実行負荷を検証していなくてもブロックをインポートします。別のオプションはチェックポイント同期で、最近完了したチェックポイントから同期を開始することで初期同期を加速します。
チェックポイント:
イーサリアム1のブロック生成時間は約14秒です。合併後、ビーコンクレインのリズムはスロット(12秒)とエポック(32スロット)に分かれます。各エポックは6.4分続き、各エポックの最初のスロットはチェックポイントです。
エポック |メインネットビーコンクレイン(第0段階)イーサリアム2.0ブラウザ (beaconscan.com)
フルノードに保存されているすべての内容を保持し、履歴状態のアーカイブを構築します。ブロック#4,000,000のアカウント残高などを照会したり、トランザクションセットを簡単かつ確実にテストしたりするには、これが必要です。このノードの同期には数週間と4TBのストレージスペースが必要になる場合があります。
2種類のノード(ブロック生成と非ブロック生成)。両方のノードは、クライアントがすべての取引を実行し、EVMと対話するためのデータベースと、合意に達するための別のデータベースを作成および維持します(ビーコンクレイン)。
バリデーター(ブロック生成)
このノードは、実行クライアントとバリデーターを持つコンセンサスクライアントなど、すべての主要コンポーネントを必要とします。バリデーターをアクティブにするには、ETHをイーサリアムのスマートコントラクトに入れる必要があります。バリデーターが不誠実または怠惰な行動をとった場合、担保としてステークされたETHは破棄されます。このノードは24時間365日稼働し、部分的なステークを失う可能性のあるダウンタイムを避ける必要があります。
非ブロック生成
この種のノードは、完全に分散化されたイーサリアムアプリケーションをインストールするために使用されます。誰もが自分のノードを実行する能力は、イーサリアムネットワークの分散化を維持するために重要です。非ブロック生成、コンセンサス、実行クライアントをインストールするには、バリデータークライアントは必要ありません。
合併後、ノードの同期はクライアント、実行、コンセンサスが同期していることを意味します。たとえば、実行にGethを使用し、コンセンサスにPrysmを使用することを考えます。
ノードの同期状態を確認する方法
curl http://localhost:3500/eth/v1/node/syncing | jq
このノードはコンセンサスの同期を完了し、実行の同期を続けています。
このノードは両方の同期を完了しました。
実行クライアント
実行にはより多くの時間がかかり、状態を確認できます。同期ノードが終了した例と、ノードがまだ同期している例を見ていきます。
geth attach ipc:/root/.ethereum/geth.ipc
実行同期がアクティブになりました。
実行クライアントの同期が終了しました。
参考
https://ethereum.org/en/developers/docs/