Hyperledger Besu を動かしてみる(シンプル編)
はじめに
イーサリアムのノードを動かす場合、一番使われているのは Geth というプログラムだが、実はそれ以外にもいろいろあるようだ。その中で、Hyperledger Besu というものを動かしてみたいと思う。
今回は Dockerも使わず、コマンドラインから立ち上げる一番シンプルな方法とする。これでもイーサリアムの動作テストには十分使える。
参考サイト
Hyperledger Besu とは?
Hyperledger Besu は Apache 2.0 ライセンス(オープンソース)の Ethereum クライアントで、以下のような特徴がある。
- Java ベース
- 複数のコンセンサスメカニズム
- Proof of Work
- Ethash
- Proof of Authority
- IBFT 2.0
- Clique
- QBFT
- Proof of Work
- プライバシーやパーミッションなどの企業向け機能をサポート
ということで、企業向け機能を持つ、というのが最も大きなメリットかもしれない。企業向けにプライベートチェーンの構築にも使えるし、普通にイーサリアムのメインネットに接続することもできるようだ。
ただあまり名前を聞かないし、twitterの公式アカウントのフォロワーも少なく、もしかしたら人気がないのかもしれない。
そもそも名前が紛らわしい。Besu と書いて「ベイス」と読むとのことだが、どうしても Basuと書いてしまう。前回書いた web3.pyの記事でも何箇所か間違えていたので修正しました。Orz
ローカル環境での導入作業
手元の Debian11環境に Hyperledger Besuをインストールし、起動させる。コンパイルとかも不要でとても簡単である。Javaの環境などは当然必要なので、求められる場合は適時インストールしてください。
インストール
以下のサイトから最新版のファイルを落としてくる。サイズは 130MBぐらい。
https://github.com/hyperledger/besu/releases
展開する
$ tar -xvzf ~/download/besu-22.1.1.tar.gz
テスト実行
$ cd besu-22.1.1
$ bin/besu --help
エラーがでず、HELPが帰ってくればOK。
起動
$ bin/besu --network=dev --miner-enabled --miner-coinbase=0xfe3b557e8fb62b89f4916b721be55ceb828dbd73 --rpc-http-cors-origins="all" --host-allowlist="*" --rpc-ws-enabled --rpc-http-enabled --data-path=/tmp/tmpDatdir
これで普通に起動し、マイニングが開始され、ブロックが生成される。
起動オプションの説明
開発環境として起動
--network=dev
もし、Ropstenなどで動かす場合は以下のように指定する。
--network=ropsten
何も指定しない場合はメインネットへの接続となるので注意。 私は試したことは無いです。。
マイニングを行う
--miner-enabled
コインベースの指定
--miner-coinbase=0xfe3b557e8fb62b89f4916b721be55ceb828dbd73
これが無いと起動しなかった。コインベースは開発環境ではこのアドレス指定すればいいようだ。
データディレクトリの指定
--data-path=/tmp/tmpDatdir
ブロックチェーンを初期化したい場合はこのディレクトリを削除すればよい。
その他のオプションはだいたいわかると思うので省略。
ブロックチェーンといいつつ、1台単に立ち上げただけだが、イーサリアムの開発環境が簡単に立ち上がるのはとても便利ですね。
次は複数台構成の、もっと本格的な環境に挑戦してみたい。
Discussion