Help us understand the problem. What is going on with this article?

go-ethereumを読む(1) 準備編

More than 1 year has passed since last update.

ブロックチェーンの勉強のためにEthereumのデファクトとなっているgo-ethereumのソースコードを読んだのでそれを記録としてまとめます。
v1.8.15ベースに解説します。

debug

pritty printがあると便利

go-ethereumはgovendorを使っているので下記のコマンドでインストールしておくのをおすすめ

$ govendor fetch github.com/k0kubun/pp@=v2.3.0

使い方

geth

urfave/cli

gethでつかっているcliライブラリ

主要なディレクトリ構成

名前 説明
accounts Ethereumはアカウントベースなので、アドレスや鍵のプログラムがここにある 
cmd gethコマンド,puppethコマンドなどコマンドのmain.goなどがある
common Addressなどの汎用的に使う型やそれ用の関数がある
consensus ethash(PoW), clique(PoA)などのロジックがある
core Ethereumのコア機能の実装がある
eth EthServiceの機能がある
ethclient rpcリクエスト用のクライアントがある
ethdb LevelDBのwrapper
event FeedやSubscriptionといったものがある
miner マイニング用の汎用的なロジックがある(ethash, cliqueなどの特化したロジック以外)
node nodeをセットアップ、起動するためのロジックがある
p2p p2pのロジックがある
rlp Recursive Length PrefixというEthereumで独自定義されているバイナリフォーマット用のロジックがある
rpc http,ws,ipcなど具体的なrpcサーバのロジックがある
trie データ保存形式の作成ロジックがある
t10471
mercari
フリマアプリ「メルカリ」を、グローバルで開発しています。
https://tech.mercari.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away