Ethereum(2) - genesisブロックの作成とgethの起動

前回は、Ethereumに参加するためのクライアントgethをインストールしました。

今回は、genesisブロックの作成gethの起動を行います。

genesisブロックの作成

まずはプライベートネット用のデータディレクトリを作成します。

[コマンド]

1
mkdir ~/eth_net/

次に、作成したディレクトリの中に1番最初のブロックであるGenesisブロック(genesis.json)を作成します。

[genesis.json]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{
"config": {
"chainId": 15,
"homesteadBlock": 0,
"eip150Block": 0,
"eip155Block": 0,
"eip158Block": 0,
"byzantiumBlock": 0,
"constantinopleBlock": 0,
"petersburgBlock": 0,
"istanbulBlock": 0
},
"nonce": "0x0000000000000042",
"mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"alloc": {},
"coinbase": "0x0000000000000000000000000000000000000000",
"timestamp": "0x00",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"extraData": "0x00",
"gasLimit": "0x1312d00"
}

初期化処理

ブロックチェーンの初期化処理を行います。

–datadirにデータ用のディレクトリを指定し、initにgenesisファイルを指定します。

[コマンド]

1
geth --datadir "~/eth_net" init ~/eth_net/genesis.json

[結果]

1
2
3
4
5
6
7
8
(途中略)
INFO [06-23|06:42:21.095] Writing custom genesis block
INFO [06-23|06:42:21.095] Persisted trie from memory database nodes=0 size=0.00B time="3.706µs" gcnodes=0 gcsize=0.00B gctime=0s livenodes=1 livesize=0.00B
INFO [06-23|06:42:21.096] Successfully wrote genesis state database=chaindata hash=76d747..1a5e65
INFO [06-23|06:42:21.096] Allocated cache and file handles database=/home/aki/eth_net/geth/lightchaindata cache=16.00MiB handles=16
INFO [06-23|06:42:21.112] Writing custom genesis block
INFO [06-23|06:42:21.112] Persisted trie from memory database nodes=0 size=0.00B time="2.441µs" gcnodes=0 gcsize=0.00B gctime=0s livenodes=1 livesize=0.00B
INFO [06-23|06:42:21.113] Successfully wrote genesis state database=lightchaindata hash=76d747..1a5e65

最後にSuccessfully wrote genesis stateというログが表示されていれば、初期化処理は正常終了しています。

gethの起動

下記のコマンドを実行し、gethを起動します。

[コマンド]

1
geth --networkid "10" --nodiscover --datadir "~/eth_net" --rpc --rpcaddr "localhost" --rpcport "8545" --rpccorsdomain "*" --rpcapi "eth,net,web3,personal" console 2>> ~/eth_net/geth_err.log

[結果]

1
2
3
4
5
6
7
8
9
Welcome to the Geth JavaScript console!

instance: Geth/v1.10.4-stable-aa637fd3/linux-amd64/go1.16.4
at block: 0 (Thu Jan 01 1970 09:00:00 GMT+0900 (JST))
datadir: /home/aki/eth_net
modules: admin:1.0 debug:1.0 eth:1.0 ethash:1.0 miner:1.0 net:1.0 personal:1.0 rpc:1.0 txpool:1.0 web3:1.0

To exit, press ctrl-d
>

上記のように表示されていれば問題なくgethが起動しています。

次回はアカウントの作成を行います。