🐣

Hyperledger Besu を動かしてみる(シンプル編)

2022/03/04に公開

はじめに

イーサリアムのノードを動かす場合、一番使われているのは Geth というプログラムだが、実はそれ以外にもいろいろあるようだ。その中で、Hyperledger Besu というものを動かしてみたいと思う。

今回は Dockerも使わず、コマンドラインから立ち上げる一番シンプルな方法とする。これでもイーサリアムの動作テストには十分使える。

参考サイト

https://besu.hyperledger.org/en/stable/

Hyperledger Besu とは?

Hyperledger Besu は Apache 2.0 ライセンス(オープンソース)の Ethereum クライアントで、以下のような特徴がある。

  • Java ベース
  • 複数のコンセンサスメカニズム
    • Proof of Work
      • Ethash
    • Proof of Authority
      • IBFT 2.0
      • Clique
      • QBFT
  • プライバシーやパーミッションなどの企業向け機能をサポート

ということで、企業向け機能を持つ、というのが最も大きなメリットかもしれない。企業向けにプライベートチェーンの構築にも使えるし、普通にイーサリアムのメインネットに接続することもできるようだ。

ただあまり名前を聞かないし、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