オープンソースのブロックチェーンを試す(6) - Ethereum(イーサリアム)のアカウント登録とマイニング

前回はUbuntuで、Ethereumの起動テストまでを行いました。

今回はアカウントの登録とマイニングを行います。

アカウントの登録

アカウントを登録するためにはpersonal.newAccountコマンドを使います。

コマンド入力後、パスフレーズを2回入力する必要がありますが、このパスフレーズは絶対に忘れないようにしてください。

パスフレーズを忘れた場合の救済措置は一切ありません

[コマンド]

1
personal.newAccount()

[実行結果]

途中実行ログが表示されてしまって少々見づらいですが、最終行に表示されている文字列がアカウントを表す情報となります。

ちなみに、eth.accountsコマンドを使うと、登録されているアカウントの一覧を表示することができます。

[コマンド]

1
eth.accounts

[実行結果]

マイニング

Ethereumでは何かを行うときに、ether(コイン、報酬)が必要となります。

理由は仲間内のブロックチェーンでも、チェーンがつながるためには複数ノードのよるマイニングが必要で、そのマイニングする動機づけとして報酬が必要だからです。

というわけで、下記コマンドを使ってマイニングを開始します。

[コマンド]

1
minert.start()

[実行結果]

マイニングを開始すると下記のようなログが表示されるようになります。

[実行結果]

  • Commit new mining work
    「新しいマイニング作業をコミットした(始まった)」・・・という意味でしょうか。
  • Successfully sealed new block
    「新しいブロックのシール貼りが成功した」・・・という意味でしょうか。
  • mined potential block
    「潜在的なブロックを採掘した」・・・という意味でしょうか。

マイニングしている雰囲気を感じてもらえたら十分かと思います。🙇‍♀️🙇‍♀️🙇‍♀️

マイニング状況の確認

しばらくマイニングを続けたら、一旦下記コマンドでマイニングを止めます。

[コマンド]

1
miner.stop()

[実行結果]

採掘されたブロック数を確認します。

[コマンド]

1
eth.blockNumber

[実行結果]

次に残高(マイニングして得た報酬)を確認します。

[コマンド]

1
eth.getBalance("アカウント")

[実行結果]

マイニングを行うことで、ブロックが生成され、マイニングを行ったアカウントに対して報酬(ether)を入手できることが確認できました。

オープンソースのブロックチェーンを試す(5) - Ethereum(イーサリアム)の起動2回目

前回はWSL上で、Ethereumの起動テストを行いまして失敗しました。

調べたところWSLだとListen設定ができないとのことで、WindowsにVirtualBoxをインストールし、ゲストOSとしてUbuntu20.04を設定し、再度Ethereumの起動テストを行いました。

さらに、これまでWSL上で実行してきた手順オープンソースのブロックチェーンを試す(1)~(3)をやり直しました。

以下はその続きとなります。

ジェネシス・ブロックの準備

まず、Ethereum起動の前準備としてジェネシス・ブロックを用意します。

[ジェネシス・ブロック genblock.json]

1
2
3
4
5
6
7
8
9
10
11
12
13
{
"config": {
"chainId": 1100
},
"nonce": "0x0000000000000033",
"timestamp": "0x0",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"gasLimit": "0x8000000",
"difficulty": "0x100",
"mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"coinbase": "0x3333333333333333333333333333333333333333",
"alloc": {}
}

環境の初期化

次に下記のコマンドを実行し、環境の初期化を行います。

datadirオプションにはデータを保存するディレクトリを指定します。

initには作成したジェネシス・ブロック(genblock.json)を指定します。

[Ethereum起動コマンド]

1
geth --datadir ./data init ./genblock.json

[実行結果]

Ethereumの起動

初期化が完了したら、いよいよEthereumの起動を行います。

下記コマンドを実行します。

なおnetworkidオプションには、genblock.jsonのchainIdで設定した値と同じものを指定します。

[Ethereum起動コマンド]

1
geth --networkid "1100" --datadir ./data  console

[実行結果]

一部エラーは出ていますが、起動自体はできているようです。

次回は、アカウントの登録とマイニングを行ってみます。


Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×