Gethノードを実行する:イーサリアムネットワーク上でGo-Ethereumを実行する

Gethノードを実行する:イーサリアムネットワーク上でGo-Ethereumを実行する

ウォレットのトラフィックをInfuraエンドポイントに任せるのをやめることにした。友人が32ETHのステーキング方法を教えてくれたのかもしれない。あるいは、dAppがローンチ当日にレート制限に引っかかってしまうかもしれない。理由は何であれ、次に続く言葉はいつも同じだ。Gethノードを実行する必要がある。

その文章は実際よりも重々しく聞こえるかもしれません。Geth(go-ethereumの略)は、2014年にジェフリー・ウィルケと世界中のオープンソースチームによってGo言語で書かれた、オリジナルのイーサリアム実行クライアントです。容量の大きいSSDを搭載した最新のノートパソコンなら動作します。月額30ドルのHetznerのサーバーでも可能です。人々を悩ませるのはインストールコマンドではなく、その周辺の選択肢です。どの同期モードを選択するか、どのコンセンサスクライアントとGethを組み合わせるか、マージ後に何が起こるか、午前2時にディスクがいっぱいになったときにノードを稼働させ続けるにはどうすればよいか、といったことです。

このガイドでは、ハードウェア選びからインストール、Snap Sync、マージ後のコンセンサスクライアントとのペアリング、JavaScriptコンソール、アカウントとClef、バリデーターの設定、よくある不具合まで、すべてを網羅的に解説します。読み終える頃には、白いログがスクロールしているときにマシンが何をしているのか、そしてログが止まったときにどうすればよいのかが正確にわかるようになっているでしょう。

Gethノードとは何か、そしてなぜ今日それが重要なのか

Gethノードは、go-ethereumクライアントを実行し、イーサリアムのピアツーピアネットワークに接続されたコンピュータです。このマシンはブロックをダウンロードし、すべてのトランザクションを検証し、イーサリアム仮想マシン上でスマートコントラクトを実行します。また、世界の状態の同期コピーを保持します。外部からは、いくつかのポートで静かに待機しているプロセスのように見えますが、内部的には、台帳に関して他人の言葉を一切信用しない頑固な帳簿係です。ブロックチェーンデータの独自のコピーを保持し、ウォレットがアカウント残高を確認したり、チェーンにトランザクションを送信したりできるようにし、dAppが他人のAPIを介さずにブロックチェーンと直接やり取りできるようにします。

2026年にこれらがなぜ重要なのか?それは集中度の問題だ。イーサリアム上のパブリックdAppトラフィックのほとんどは、Infura、Alchemy、QuickNode、そしていくつかの小規模な業者といった、ごく少数のホスト型RPCプロバイダーを経由して流れている。Infuraだけでも昨年6000億件以上のブロックチェーンリクエストを処理した。それらは概ね信頼性が高い。しかし、単一障害点でもある。あるリージョンでプロバイダーがダウンすると、そのエンドポイントを指しているウォレットの半分は、誰かがそれを修正するまで、古い残高と滞ったトランザクションを表示する。独自のGethノードを運用すれば、この種の障害はすべて自分の問題ではなくなる。

これは数字のゲームでもある。Etherscanのノードトラッカーによると、2026年4月時点で世界中で約13,678のアクティブなイーサリアムノードが存在する。そのうち米国が37.55%(約5,171ノード)を占め、ドイツが16.05%、中国が12.06%となっている。ノードを1つ増やすことは英雄的な行為ではない。ただ役に立つだけであり、ネットワークは人々がそうしてくれることを静かに期待しているのだ。

さらに深い理由もあります。イーサリアムがイーサリアムであり続けるのは、誰でも許可を求めることなく検証できるからです。Gethはその検証を行う最も人気のあるクライアントです。独立したオペレーターが新しいGethノードをオンラインにするたびに、チェーンの乗っ取りは一段階難しくなります。この論理はマージ以前から存在し、その後も弱まることはありません。

ゲスノード

Geth、Go Ethereum、およびイーサリアムプロトコル

3つの名前、1つのプロジェクト。会話の中ではよく一緒に使われますが、特に問題は起こりません。しかし、実際の内訳は以下のとおりです。

イーサリアム プロトコルはコードではありません。それは仕様書であり、黄色の紙と多数の EIP に書かれており、誰でもそのクライアントを作成できます。Go Ethereum (go-ethereum と表記されることもあります) は、Go 言語によるイーサリアム プロトコルの実装です。Geth は Go Ethereum 内のコマンドライン プログラムで、コマンドラインで実行し、フラグで設定して、イーサリアム ネットワークとやり取りするために使用します。リポジトリ内のその他のものはすべて、それをラップしたライブラリとヘルパーです。「Geth ノード」とは、Geth を起動し、`chaindata` ディレクトリを指定して、イーサリアム メインネットと通信できるようにしたマシンです。

同じプロトコルでも、異なるクライアントが存在する。C#で書かれたNethermind、Javaで書かれたBesu、そしてRustで書かれたErigonとRethなどだ。ワイヤフォーマットは同じだが、コードもパフォーマンスも開発経緯も異なる。

Geth はそれらの中で最も古いものです。400 人以上が貢献しており、Péter Szilágyi が長年その中心となってきました。本拠地は Ethereum Foundation で、ソースコードは GitHub の ethereum/go-ethereum にあります。ライセンスは GNU General Public License、バイナリは GPL-3.0、ライブラリコードは LGPL-3.0 です。この記事を書いている時点での現在の安定版は、v1.17.2 (コードネーム「EMF Suppressor」) で、2026 年 3 月 30 日にリリースされました。このバージョンでは 3 つの CVE (CVE-2026-26313、-26314、-26315) が修正され、クライアントが Prague 以前の履歴が既に削除されているチェーンと同期する方法が教えられました。

Gethには、いくつかの姉妹ツールが同梱されています。Clefは、秘密鍵をノード自体から隔離する独立した署名ツールです。Abigenは、Solidity ABIを実際に使用できるGoバインディングに変換します。`evm`ツールを使用すると、特定のデバッグが必要な場合にバイトコードを分離して実行できます。どれも必須ではありませんが、1週間以内に少なくとも1つは使うことになるでしょう。

ノードを運用する理由:プライバシー、スピード、主権

独自の Geth ノードを運用する人のほとんどは、次の 3 つの理由のいずれかに該当します。まず第一にプライバシーです。ウォレットがホスト型 RPC と通信する場合、そのプロバイダはすべてのアドレス、すべてのコントラクト呼び出し、すべての見積もりリクエストを見ることができます。自己ホスト型ノードでは、このリンクが遮断されます。プロバイダは存在しません。ウォレットは自分のマシンに問い合わせ、マシンはネットワークに問い合わせ、パターンを見るのは自分のマシンだけです。

パフォーマンスは2番目の理由です。ホストされたRPCはスロットリングされます。Infuraの無料ティアは1日あたり10万リクエストに制限されています。チームティアは1日あたり7500万リクエストで月額225ドルかかります。ローカルノードはメモリ速度でトラフィックを処理し、呼び出しごとのコストはゼロです。ページ読み込みごとに状態を取得するdAppの場合、レイテンシの違いは顕著です。mempoolをスキャンするアービトラージボットの場合、取引を行うか、取引が通り過ぎるのを見ているかの違いになります。メインネット自体は2026年第1四半期に約2億40万トランザクションを処理し、1月16日には288万トランザクションでピークに達したため、ネットワークに追いつくことができるノードは実際に仕事をしていることになります。

3つ目は主権です。イーサリアムにステーキングする場合、ネットワークはバリデーターが順番が来たときにブロックを公開することを期待します。その公開を共有RPCに委託することは技術的には可能ですが、運用上脆弱です。独自の実行レイヤークライアントを実行すれば、自分のスロットを制御できます。これは、本格的なdApp開発者、オンチェーンアナリスト、MEVサーチ担当者、そしてイーサリアムが利用できることがビジネスに不可欠なすべての人にも当てはまります。

マージ後:Gethとコンセンサスクライアント

2022年9月以前は、単一のGethプロセスがすべての処理を行っていました。ネットワークとのピアリング、EVMの実行、プルーフ・オブ・ワークによるマイニングを通じて競合するブロックの中から勝者を選出するなどです。マージによってその処理は半分に分割されました。Gethは引き続きEVMを実行し、状態を保持します。2つ目のプログラムであるコンセンサス・クライアントがプルーフ・オブ・ステークを処理します。つまり、バリデーター間でブロックをゴシップし、何が有効かを投票で決定し、どのフォークが正統であるかをGethに伝えるのです。

つまり、最新のGethの設定はすべて、単一のプロセスではなく、ペアのプロセスで構成されています。Gethと並行して実行するコンセンサスクライアントを選択してください。選択肢としては、Lighthouse(Rust)、Prysm(Go)、Teku(Java)、Nimbus(Nim)、Lodestar(TypeScript)があります。2つのプロセスは、Engine APIと呼ばれるプライベートチャネルを介して通信します。このチャネルは、一度生成して`--authrpc.jwtsecret`で両側に渡すJWTシークレットによって保護されています。

コンセンサス・クライアントなしでGethを単独で起動すると、ログには「ネットワークはマージされましたが、ビーコン・クライアントが見つかりません。チェーンを追跡するためにビーコン・クライアントを起動してください!」といったメッセージが表示されます。ノードはそこに静かに佇み、何の役にも立ちません。Geth単体では、もはや完全なイーサリアム・ノードとは言えません。両者が組み合わさって初めて機能するのです。

クライアントの多様性はここで重要になります。イーサリアムコミュニティは、オペレーターに対し、分裂の両側の実装に分散するよう求めています。なぜなら、バリデーターの3分の2以上が同じバグのあるクライアントに集まってしまうと、何かが壊れたときにバリデーターは32 ETHのスラッシングペナルティを全額受けることになるからです。clientdiversity.orgの最新のデータでは、2026年には実行クライアントの約41%がGethになるとされています。Stake.fishの2026年のレポートでは、50%に近いとされています。いずれにしても、これは2023年の86%以上から減少していますが、コミュニティが理想的と考える33%の安全閾値を依然として上回っています。そのため、Gethが最初のステップとしては簡単であるにもかかわらず、一部の新規オペレーターは意図的にNethermind、Besu、またはRethを選択しています。

2025年5月7日に有効化されたPectra(Prague + Electraアップグレード)は、オペレーターの日常業務も変革しました。EIP-7251により、バリデーター1人あたりの最大有効残高が32 ETHから2,048 ETHに引き上げられました。以前は1,000人のバリデーターを個別に管理していたステーキングオペレーターは、今ではそれらを16人の大規模なバリデーターに統合できます。EIP-6110により、入金からアクティブになるまでの待ち時間が約12時間から約13分に短縮されました。EIP-7002により、バリデーターは、元の入金署名者に頼むのではなく、自分で出金をトリガーできるようになりました。2026年にGethペアのバリデータースタックを運用することは、2024年よりも大幅に簡単になりました。

ハードウェア:Gethノード用のCPU、RAM、およびSSD

2026年におけるハードウェアの性能基準は、公式文書が認めているよりも高い。今後3年間を見据えて計画を立てるべきであり、過去3年間を見据えるべきではない。

成分Geth公式ドキュメント(2023年版、現在も有効)オペレーターレベルの現実(Cherry Servers、Chainstack、2026年)アーカイブノード(パスベース、v1.16以降)
CPUクアッドコア8コア/16スレッドの最新のAMDまたはIntelプロセッサ8コア以上、高シングルスレッド
ラム16ギガバイト最低32GB、64GBでよりスムーズ64GB以上
ストレージ2TB SSD 4~8TBのNVMe SSD 4TB NVMe(パスベース、使用容量約2TB)
ネットワーク25MbpsフルRPCの場合、300~500Mbps 300Mbps以上
UPS推奨UPSを強くお勧めしますUPSが必要です

新規オペレーターを驚かせるのはストレージ容量です。スナップ同期され、最適化されたGethフルノードの現在の容量は約650GBです。Gethの公式ドキュメントによると、週に約14GBずつ増加します。コンセンサスクライアントを追加し、数か月分の成長余地を確保し、処理予定のL2 RPCトラフィックを追加すれば、あっという間に4~8TBのNVMe容量が必要になります。

ディスクの種類について一言。SATA SSDは技術的には動作しますが、負荷がかかると同期が停止したり、認証が失敗したりします。2026年にはNVMeは必須です。回転式ディスクは何年も前から実用的ではありません。プロバイダーが低価格プランでSATAしか提供していない場合は、料金を支払うべきです。計算は厳しいものです。SATAディスクが停止すると、エポックごとにバリデーター報酬を逃すことになります。

RAMは2つ目の落とし穴です。2023年に最後に更新されたGethの公式ハードウェアページには、依然として16GBと記載されています。2026年までに、Cherry Servers、Chainstack、bacloudはすべて、動作に必要な最低容量を32GBとし、快適な動作環境としては64GBを採用しています。Gethはメモリにかなりの量のステートをキャッシュします。コンセンサスクライアントもその分を必要とします。Prometheus、Grafana、その他実際に使用するものを追加すると、16GBではすぐに足りなくなります。

CPU は 3 つの中で最も簡単です。最新のデスクトップ チップには、Geth がどうしたらいいかわからないほどの余裕があります。クロック速度はほとんど問題になりません。コア数と最新の命令の方が重要です。AVX2 により署名検証が高速になります。8 つのコアにより、同期サージでマシンがフリーズするのを防ぎます。将来を見据えると、ブロック ガスの上限は 2024 年半ばから 2025 年 11 月にかけて 3,000 万から 4,500 万、そして 6,000 万に跳ね上がりました。イーサリアム財団は 2026 年まで 1 億以上を予告しています。あなたがサイジングの対象とするのは、昨年の負荷ではなく、このカーブです。

イーサリアムブロックチェーン向けGeth同期モード

同期モードは、Gethを使い始めたばかりのオペレーターにとって最も重要な設定項目です。間違った設定をすると、実際には必要のないデータをダウンロードするために1週間も無駄にしてしまう可能性があります。

モード何を保管しているか2026年のディスク時刻同期使用事例
スナップ(デフォルト)最新の状態 + 最新の領収書約650GB、週あたり14GB増加1~3日(NVMeではさらに高速) dApps、ウォレット、バリデーター
満杯最新の状態 + 創世記まで遡るすべてのヘッダー約1TB 3~5日ジェネシスからのすべてのブロックを検証します
アーカイブ(パスベース、v1.16以降)逆差分による履歴状態1.9~2.0TB 1~2週間ほとんどのアーカイブ利用事例
アーカイブ(従来のハッシュベース)あらゆる歴史的状態、あらゆる領収書、あらゆる試み12~20TB 4~8週間eth_getProofを必要とするDeFiインデクサー

Snapはデフォルトであり、ほとんどの場合最適な選択肢です。ピアから最新の状態スナップショットを取得し、その背後にあるヘッダーとレシートを静かに埋めます。適切なハードウェアであれば、数日で動作するGethノードを構築できます。ウォレット、dApps、バリデーターにも問題なく対応できます。ただし、「2017年10月7日のVitalikの残高はいくらだったか?」といった過去の質問に答えることはできません。もしそれが重要でないなら、同期モードについて考える必要はありません。

フル同期機能は引き続き提供されますが、ほとんどのユーザーは必要ありません。フルモードでは、すべてのブロックをジェネシスブロックまで遡ってすべてのトランザクションを再実行し、クライアントがスナップショットを信頼するのではなく、ブロックチェーンをエンドツーエンドで検証できるようにします。スナップショットに不安がある場合や、履歴を整理したアーカイブをシードする場合に役立ちますが、通常の運用には適していません。

アーカイブは容量の大きいもので、2025年にアーカイブノードが変更されました。v1.16リリースまでは、アーカイブノードは12~20TBの高速SSDを意味し、実質的には小型サーバーでした。v1.16では、履歴状態を逆差分として保存し、メインネットでのディスク要件を約1.9~2.0TBに削減するパスベースのアーカイブモードが出荷されました。これにより、GethのフットプリントはErigon(約1.77TB)に近くなりました。当初のトレードオフは、パスベースのアーカイブが履歴マークル証明(古いブロックの`eth_getProof`)をサポートしていなかったことです。DeFiインデクサーやその他の証明を多用するワークロードは、依然として従来のハッシュベースのアーカイブを必要としていました。2026年2月のv1.17.0では、一部の構成でパスベースモードに証明サポートが追加されました。正確なバージョンについてはリリースノートを確認してください。一般的なアーカイブオペレーターは、ブロックエクスプローラー、フォレンジックチーム、本格的な分析会社です。このガイドを読んでいるほとんどの人は、アーカイブを必要とすることはありません。

補足事項:ライトクライアントモード(旧`--syncmode "light"`フラグ)は非推奨となり、メインネットではメンテナンスされなくなりました。2026年のチュートリアルでGethをライトモードで起動するように指示されている場合は、そのチュートリアルは古くなっています。

ゲスノード

Ubuntu、macOS、WindowsにGethをインストールする

インストール手順は簡単です。お使いのノートパソコンにインストールされているプラットフォームではなく、実際に実行する予定のプラットフォームを選択してください。

Linux / Ubuntu(主力OS)

ほとんどのプロダクション環境のGethノードはUbuntu上で稼働しています。イーサリアムチームはPPAを管理しており、Ubuntuパッケージマネージャーで以下の3つのコマンドを実行するだけで動作するバイナリを入手できます。

「`」

sudo add-apt-repository -y ppa:ethereum/ethereum

sudo apt-get update

sudo apt-get install ethereum

「`」

確認するには、`geth version` を実行してください。PPA は最新の安定版を追跡します。本番環境では、通常 `apt-get install ethereum=1.17.2-...` のように既知の正常なビルドを固定し、「apt が気が向いたとき」ではなく、より落ち着いたスケジュールでアップグレードします。

macOS(開発者向け)

macOSでは、Homebrewがその作業を行います。たった2行です。

「`」

イーサリアム/イーサリアムをタップする

brew install ethereum

「`」

Macはテストネットでの実験やdApp開発には最適です。しかし、メインネットのバリデーターをMacで運用している人はほとんどいません。電源管理が過剰で、macOSは不適切なタイミングでビーコンノードをスリープ状態にしてしまうからです。

Windows

geth.ethereum.org およびプロジェクトの GitHub リリース ページには、.exe インストーラーと .zip アーカイブがあります。インストーラーの手順に従って PATH を編集し、コマンド プロンプトまたは PowerShell を開いて `geth version` を実行してください。応答があるはずです。

Windows Server は、スタンドアロンの Geth ノードを問題なくホストできます。バリデータースタックは、コンセンサス クライアントが Linux を優先して提供されるため、Linux に偏りがちですが、必要に応じて混在させることも可能です。このガイドの残りの部分は、Linux シェル スタイルでコマンドを記述しています。PowerShell への変換は、主にパス区切り文字と行継続の方法の違いに関するものです。

ドッカー

`docker pull ethereum/client-go:stable` を実行すると、クリーンなコンテナが作成されます。Docker は、ホストを壊すことなく新しい Geth リリースをテストする最も簡単な方法です。また、チームが既にコンテナ環境に慣れている場合は、本番環境へのデプロイにも適しています。ただし、注意点があります。`chaindata` を格納する Docker ボリュームは NVMe 上に配置する必要があります。通常の EBS ボリューム、HDD データストア、または Mac 上の Docker Desktop ボリュームに配置すると、Reddit で報告されている「同期が停止する」という問題が再現されます。

ソースコードからビルド

ソースビルドには、Go 1.23 以降と C コンパイラが必要です。`make geth` はノードのみをビルドします。`make all` は、geth、clef、abigen、evm、devp2p、rlpdump といったユーティリティスイート全体をビルドします。まだパッケージ化されていないリリースが必要な場合、またはフォークとしてメンテナンスしたくないプライベートパッチがある場合は、ソースビルドをご利用ください。

Geth を実行する: 最初の同期と JSON-RPC コンソール

バイナリがインストールされ、JWTシークレットが生成され、コンセンサスクライアントの準備が整いました。メインネットマシンでの最初のコマンドは、おおよそ次のようになります。

「`」

ゲス \

--メインネット

--datadir /var/lib/geth \

--syncmode snap \

--http \

--http.addr 127.0.0.1 \

--http.port 8545 \

--http.api eth,net,web3 \

--authrpc.addr 127.0.0.1 \

--authrpc.port 8551 \

--authrpc.jwtsecret /etc/geth/jwt.hex \

--authrpc.vhosts localhost

「`」

ここでは3つのポートが重要な役割を果たします。TCPとUDPの30303番ポートは、イーサリアムの他の部分へのピアツーピア接続です。8545番ポートは、ウォレットやスクリプトが通過するHTTP-RPCポートです。8551番ポートは、コンセンサスクライアントのみがアクセスでき、JWTシークレットによって保護されたエンジンAPIです。

実行中のノードを操作するには、Gethコンソールをアタッチします。(これはノードのAPIに接続されたJavaScriptコンソールです。)2つ目のシェルを開きます。

「`」

geth attach http://127.0.0.1:8545

「`」

現在、すべての JSON-RPC メソッドは JavaScript 呼び出しです。`eth.blockNumber`、`net.peerCount`(メインネットでは 30 前後が正常値です)。`eth.syncing` は、ノードが同期されると `false` を返します。残高を知りたいですか?`web3.fromWei(eth.getBalance('0x...'), 'ether')`。これが対話可能なインターフェースのすべてです。

次にログファイルを確認してください。確認すべき行は「Imported new chain segment」です。これは、Gethが最新のチェーンセグメントを捕捉し、イーサリアムブロックチェーンネットワークから新しいトランザクションリストが送信されるたびに、それらをすべて処理していることを意味します。ログに「Looking for peers」とだけ表示される場合は、ファイアウォールが受信P2Pをブロックしています。TCPとUDPのポート30303を開放し、Gethを再起動して、もう一度試してください。これでほとんどの場合解決します。

自動化に関しては、使用する価値のあるすべての Ethereum ライブラリは、HTTP 上で JSON-RPC を使用するか、`--ws` オプションも渡せば WebSocket 上で動作します。ethers.js、web3.js、viem、Go クライアント、Python クライアントなどです。これらはすべて、ローカルの Geth ノードを Infura とまったく同じように扱います。`http://127.0.0.1:8545` を指定して停止します。コードは同じままです。変わったのは、呼び出しに応答する者だけです。

Geth を使用する: アカウント、Clef、およびトランザクション

Gethには依然としてアカウントマネージャーが付属していますが、最近の推奨事項は、Clefを実行して署名をノードから分離することです。Clefは、鍵を保持し、何かが鍵を使用しようとするたびに明示的な確認を求める、小さな独立したプログラムです。

Clefでアカウントを作成する手順は以下のとおりです。

「`」

clef newaccount --keystore /var/lib/geth/keystore

「`」

Clefは最低10文字のパスワードを要求します。暗号化されたキーストアファイルを作成し、アドレスを返します。そのアドレスは外部所有アカウント(EOA)であり、ハードウェアウォレットやMetaMaskが作成するのと同じ種類のものです。特に変わった点はありません。

Geth で Clef を使用するには、ノードを Clef の IPC ソケットに向けます: `--signer=/path/to/clef.ipc`。この時点から、Geth コンソールからでも JSON-RPC API を使用する dApp からでも、すべてのトランザクション要求は Clef ターミナルで承認される必要があります。これが、Geth チームが 2026 年に推奨するモデルです。キーはノードの外に存在します。ノード自体は、 1 ウェイを消費することはできません。

コンソールからの転送は次のようになります。

「`」

eth.sendTransaction({

from: '0xca57f3b40b42fcce3c37b8d18adbca5260ca72ec',

to: '0xce8dba5e4157c2b284d8853afeeea259344c1653',

value: web3.toWei(0.1, 'ether')

});

「`」

Clefがポップアップ表示されます。確認すると、トランザクションはmempoolに入り、数秒後にはブロックに取り込まれます。このたった1行の背後で、Gethはnonceの検索、手数料の見積もり、Clefへの署名の引き渡し、ブロードキャスト、そして包含チェックを実行しました。この同じループは、すべてのdAppで実行されます。

より複雑な処理の場合、同じ JSON-RPC エンドポイントはトランザクションの送信、イベントの購読、ビュー関数の呼び出し、およびトレースを受け付けます。ライブラリの観点から見ると、ローカルの Geth インスタンスはホストされたノードと区別がつきません。ただし、ローカルのインスタンスの方が高速で、呼び出しごとに無料であり、しかも自分のものになります。

バリデーター設定:イーサリアムをステーキングして報酬を獲得しよう

Gethノードが同期され、コンセンサスクライアントとペアリングされると、バリデーターの追加はほぼ設定作業になります。新しいノードをインストールする必要はありません。実行レイヤー(Geth)は引き続きその役割を果たします。コンセンサスクライアントはバリデーターの役割を担い、エポックごとに証明書に署名し、プロトコルがバリデーターを選択すると、Gethにブロックコンテンツの組み立てを依頼します。

オンラインにするには、3 つの要素を稼働させる必要があります。まず、32 イーサのデポジットが必要です。公式のデポジット CLI を使用してバリデータ キーを生成し、デポジット トランザクションをメインネット上のコントラクトに送信して、アクティベーションを待ちます。次に、バリデータ クライアント プロセスです。これはビーコン ノードと並行して実行され、署名キーを保持し、スケジュールに従ってアテステーションに署名します。3 つ目は、基本報酬に加えてトランザクション順序報酬が必要な場合は、MEV-Boost またはリレー セットアップです。Geth 自体はバリデーターを実行しません。コンセンサス クライアントが実行します。Geth は、バリデーターのスロットが起動したときに実際のブロック ペイロードを構築する実行エンドポイントです。

バリデーターが日々重視するのは、欠落したアテステーション数、同期稼働時間、ディスク負荷の3つの数値です。アテステーションの欠落は、ほぼ必ずヘッドに遅れたノードが原因であり、さらにその原因はほぼ必ずディスクI/Oまたはピアの損失にあります。Gethにおける典型的な原因はディスク負荷です。推奨されるNVMe仕様を下回ると、アテステーションの有効性が低下し、それに伴って報酬も減少します。

ほとんどのホームステーカーは、専用のミニPC(Intel NUC、Beelink、またはカスタムRyzenビルド)を運用しています。ハードウェアは、800ドルから2,000ドルの一括払いになります。電力とインターネットは、さらに月額10ドルから20ドルかかります。Coin Bureauの2026年の内訳では、プロのHetznerバリデーターは月額30ドルから40ドル、AWSベーシックフルノードは100ドル未満、AWSアーカイブノードは約1,500ドルとなっています。ソロステーキングでは、基本報酬に対して約4%のAPYが得られ、MEV-Boostを使用すると5~6%に上昇します。ホームハードウェアの場合、現在のイーサリアム価格で約4~6か月で損益分岐点に達します。2025年末時点で、ネットワークには約106万人のアクティブなバリデーターがおり、3,500万~3,700万ETH(供給量の29~31%)を保有しています。Lidoだけで、ステーキングされた総量の27.7%をコントロールしています。 Coinbaseは8.4%を占めている。独立したバリデーターが増えるごとに、その集中度は静かに逆方向に傾いていく。これが、ソロステーキングが今でも多くの人に行われている理由の大きな部分を占めている。

テストネットとメインネット:イーサリアムノードを実行する場所

メインネットでは開始しないでください。テストネットではミスは簡単に起こり得ますし、無料よりも安いものはありません。Gethは、サポートされているすべてのネットワークを単一のフラグで処理します。

2026年に注目すべきイーサリアムのテストネットは、長期間稼働しているバリデーター重視のテストネットである Holesky と、より軽量でアプリケーション重視のテストネットである Sepolia の 2 つです。Sepolia の Geth ノードが必要な場合は、`--mainnet` を `--sepolia` に変更します。Holesky の場合は `--holesky` に変更します。データ ディレクトリは、メインネットの `chaindata` とは別のパスにする必要があります。同じフォルダを再利用すると、チェーン ID が一致しないため、Geth が起動を拒否します。これは、修正に 30 秒、原因の特定に 1 時間かかるようなエラー メッセージです。

テストネットのイーサは無料です。Paradigm MultifaucetやSepolia faucet.sepolia.devなどの蛇口から、コントラクトのデプロイ、統合テストの実行、数千件のトランザクションの送信に必要なSepolia ETHが配布されます。「イーサ」は偽物です。それ以外はすべて本物です。EVMの動作も、JSON-RPC APIも、コンセンサスクライアントとの連携も、運用上の苦労も、すべて同じです。メインネットに何かを接続する前に、Sepolia上で1週間ほどスタックを運用してみてください。

古いテストネットは廃止されました。Ropsten、Rinkeby、Kovan、Goerliはすべて廃止されています。チュートリアルでGethを`--ropsten`オプション付きで起動するように指示されている場合は、それはMerge以前のバージョンなので、タブを閉じてください。

真のプライベート環境を構築するには、独自のネットワークを運用しましょう。Gethの`--dev`モードは、シングルノードチェーンを数秒で起動するため、ユニットテストに最適です。マルチマシンのプライベートネットワークを構築するには、カスタムの`genesis.json`ファイルを作成し、各マシンで共有して、新しいchaindataフォルダを指す`--datadir`オプションを指定して各Gethプロセスを起動します。Kurtosisフレームワークは、これらの設定をすべて1つのコマンドで実行できるため、手動で設定する必要がありません。

Gethノードでよく発生する問題とそのトラブルシューティング

ゲスによるインシデントのほとんどは、限られたパターンに当てはまる。そのパターンを認識できれば、通常は迅速に解決できる。

同期が数パーセントで停止しました。Gethノードはオンラインですが、追いついていません。ピア数が少なすぎるか、帯域幅が飽和しているか、ディスクが追いついていない可能性があります。コンソールで `net.peerCount` を確認してください。15 未満の場合、受信 P2P ポートがファイアウォールでブロックされています。30303 TCP および UDP を開いてください。正常であれば、同期中に Linux で `iostat -xm 5` を実行してください。SSD の使用率が 100% に達している場合は、I/O がボトルネックになっており、より高速なストレージが必要です。バージョン固有の注意: Geth v1.17.1 (2026 年 3 月 3 日) は、v1.17.0 の snap-sync の不具合を修正するために特別にリリースされました。このバージョンで止まっている場合は、アップグレードすることで解決します。

「ネットワークはマージされましたが、ビーコンクライアントが見つかりません。」コンセンサスクライアントが実行されていないか、JWTシークレットが一致しないか、コンセンサスクライアントが間違ったAuthRPCポートを指しています。JWTパス、ポート8551、および両方のプロセスが同じシークレットファイルで起動されたことを確認してください。

ディスクが一晩でいっぱいになります。スナップ同期は、初期の状態修復フェーズ中にディスク使用量を急増させる可能性があります。その後、プルーニングが自動的に実行されます。1 TB SSD で開始した場合、いずれヘッドが追いつきます。解決策は常に容量を増やすことであり、プルーニングをより積極的に行うことではありません。Geth のプルーニングは既に調整済みだからです。チェーンデータをより大きな NVMe に移動して、rsync で転送してください。

Geth が起動しません:「このバージョンの geth と互換性のあるデータベースが見つかりません。」以前の実行は、異なるチェーン ID、古い Geth バージョン、または破損した状態で行われました。`chaindata` フォルダーが一致していません。新しいデータ ディレクトリに再同期するか、以前の Geth リリースにロールバックしてください。

バリデーターが認証を欠落しています。Gethノードが新しいブロックをすべて正しく読み取っているにもかかわらず、バリデーターが認証を欠落している場合は、まずディスク負荷、次にネットワーク、最後に CPU を確認してください。Netdata などの監視ツールでは、認証ウィンドウ中にディスクの PSI (Pressure Stall Information) が 30% 以上になるというパターンが明確に現れます。

RPCリクエストの処理が遅くなることがあります。`eth_getLogs`や`debug_traceTransaction`を頻繁に呼び出す負荷の高いdAppクライアントは、GethのCPUを飽和状態にする可能性があります。そのようなトラフィックを別のノードに移動するか、`--rpc.gascap`と`--rpc.txfeecap`を使用して負荷の高い呼び出しを制限してください。

最後に、習慣として、最初の1週間はログを継続的に監視し、実際の負荷がかかった状態でもGethが安定して動作するようにしてください。Netdata、Prometheus + Grafana、あるいは単に`journalctl -fu geth`といったツールを使えば、初期の障害モードがすぐに分かります。2週目以降は、認証の欠落やディスク使用率に関するアラートを設定するだけで十分です。

Gethと他のイーサリアムクライアントの比較:それぞれのメリットとデメリット

Gethはデフォルトの最初のステップです。しかし、それだけが唯一の選択肢ではなく、「切り替えるべきか」という問いへの答えは、あなたのニーズによって異なります。

クライアント言語2026年のシェア(clientdiversity.org / Stake.fish 範囲)強み次のような場合に使用してください。
ゲス行く41~50%安定性、大規模なコミュニティ、公式デフォルト設定最も安全な最初のノードが欲しい
ネザーマインドC# 25~38%高速スナップ同期、プラグイン対応、Hyperledger Go以外の実行クライアントが必要ですか?
ベスJava 10~16%エンタープライズ機能、パーミッションチェーン、Hyperledgerあなたは許可制のチェーンを運用しています
レスさび2~8%モジュール式でモダンなコードベース、高速同期最高のRustクライアントが欲しい
エリゴンRust/Go 3~7%コンパクトなアーカイブ(約1.77TB)、高速な履歴クエリ小さなアーカイブノードが必要です

Geth以外のクライアントを選択するコミュニティの主張は、クライアントの多様性です。メインネット上で単一の実行クライアントが3分の2の超多数派の支持を上回り、バグのあるアップグレードをリリースした場合、そのクライアントのバリデーターはスラッシングのリスクにさらされます。バリデーター群を2つのクライアントに分散させることで、そのリスクを半分に減らすことができます。個人ステーカーにとっては、計算はもっと単純です。維持できるクライアントを選択し、それを適切に運用し、特別な理由がある場合にのみ切り替えればよいのです。ノードアーキテクチャはどのクライアントでも似ているため、後から切り替えるのは想像以上に簡単です。特にErigonとRethは、もはや単なる好奇心の対象ではなく、主要なクライアントとして十分に成熟しています。

質問は?

いいえ。イーサリアムは、2022年9月のマージで、プルーフ・オブ・ワークからプルーフ・オブ・ステークに移行し、マイニングを廃止しました。最新のGethはEVMのみを実行し、ブロック生成はコンセンサスクライアントとバリデーターに委ねられます。`miner.start()`について言及しているチュートリアルはマージ以前のものであり、正しく動作しません。

2026年時点で実際に動作する最低限のスペックは、4コアCPU、16GB RAM、2TB NVMe SSD、そして無制限の25Mbps回線です。これ以下のスペックでは、同期中にノードが停止したり、バリデーターの認証を逃したりします。アーカイブノードは、これの約8倍のストレージ容量と、より多くのRAMを必要とします。

ノードを単独で運用してもイーサリアムは得られません。その代わりに、3つの収益源が開かれます。バリデーターとして32 ETHをステーキングする(年利約4~6%)、MEV検索、そしてRPCアクセスを再販することです。個人運営者にとって、実際のメリットは通常、収入ではなくプライバシーの保護とdAppの速度向上です。

はい、メインネットとすべてのアクティブなテストネットで稼働しています。マージ以降、Gethは実行レイヤーのみを実行しています。プルーフ・オブ・ステークは、コンセンサス・クライアント(Lighthouse、Prysm、Teku、Nimbus、またはLodestar)によって実現されています。これらのクライアントは、共有JWTシークレットによって保護されたEngine APIを介してポート8551で通信します。

NVMe上で正常なピアと同期する場合、メインネットでは1~3日かかります。ディスクの速度が遅い場合は1週間かかることもあります。アーカイブ同期はすべての履歴状態を再構築するため、4~8週間かかります。事前同期済みのサービスでは、2~4時間でスナップショットを取得できます。

イーサリアムのピアツーピアネットワークに接続された、go-ethereumを実行するマシン。ブロックをダウンロードし、EVM上のすべてのトランザクションをチェックし、チェーンの状態の同期コピーをディスクに保存します。ネットワークにとって、これは台帳の独立した証人として機能します。

Ready to Get Started?

Create an account and start accepting payments – no contracts or KYC required. Or, contact us to design a custom package for your business.

Make first step

Always know what you pay

Integrated per-transaction pricing with no hidden fees

Start your integration

Set up Plisio swiftly in just 10 minutes.