ethereum/go-ethereum
7 articles
前提知識
- ›Go 言語の基礎知識(インターフェース、パッケージ、struct の埋め込み)
- ›Ethereum の基本概念(ブロック、トランザクション、アカウント、EVM)
01
go-ethereum を読み解く:アーキテクチャ概観とディレクトリマップ
go-ethereum コードベースの構造をガイドツアー形式で解説。トップレベルの各パッケージがどのドメインに対応しているかを整理し、インターフェース駆動の設計思想を明らかにします。
02
main() からノード起動まで: Geth のブートプロセス
main() から始まり、CLI パース、Node の生成、Ethereum サービスの構築、ライフサイクルのステートマシンまで、起動シーケンスの全貌を追う。
03
ブロック実行:Blockchain、StateDB、そして EVM
ブロック実行の中核パイプラインを解説します。BlockChain の管理、コンセンサスによる検証、状態処理、そしてテーブル駆動型 EVM インタープリタのアーキテクチャを取り上げます。
04
ステート・ストレージ:StateDB からディスクまで
4層のストレージスタックを解剖する。StateDB、Merkle Patricia Trie、TrieDB(ハッシュ方式とパス方式)、そしてオンディスクのキーバリューストアまで。
05
トランザクションの流れ:プールアーキテクチャとP2P伝播
P2Pでの到着からプールへの受け入れ、ブロードキャスト、SubPoolアグリゲーターパターンまで、トランザクションのライフサイクルを追う。
06
世界に向けてサービスを提供する:JSON-RPC、Engine API、APIアーキテクチャ
GethがJSON-RPCを通じて機能を公開する仕組み、リフレクションベースの登録フレームワーク、そしてEngine APIについて解説します。
07
実践入門:Gethのビルド・テスト・コントリビューション
Gethのビルド方法、テスト戦略、コード生成パターン、そして新しいハードフォークの実装方法を解説する実践ガイド。