Hyperledger Caliper Besuの落とし穴まとめ(1) 公式サイトサンプル地雷除去

抽象的な

Caliper は Hyperledger のサブプロジェクトであり、ブロックチェーン スマート コントラクトのパフォーマンスをテストするためのツールです。
非常に多様なテストの組み合わせを設定でき、スループット、レイテンシ、リソース使用量などの結果が得られます。
ホームページに掲載されているテストはどれも落とし穴で合格できないため、その解決過程を記録しメモとして残しておきます。

リポジトリ

  • この記事では公式 Web サイトで提供されている例を使用しています

https://hyperledger.github.io/caliper/v0.4.2/getting-started/#sample-networks

  • Github 上のオープンソース

https://github.com/hyperledger/caliper-benchmarks

目次

  1. Chapter1: 落とし穴への第一歩
  2. 第2章 構造解析と各種設定
  3. 参照

第1章

git clone [email protected]:hyperledger/caliper-benchmarks.git

プロジェクトに入る前に初期化する必要があります。そうしないと、次の手順が失敗します。

cd caliper-benchmarks
npm init

キャリパーをインストールし
、besu の最新バージョンにバインドします。ここで、バインディングのバージョンを選択できますが、その後の一連の設定はこのバージョンと一致している必要があることに注意してください。

npm install --only=prod @hyperledger/[email protected]
npx caliper bind --caliper-bind-sut besu:latest

Caliper 管理者が使用する重要な設定ファイルが 2 つあります
。ベンチマークはテスト パラメーターの構成に使用され、networkconfig は名前が示すように、ブロックチェーンに接続するために使用されます。

npx caliper launch manager \
--caliper-benchconfig benchmarks/scenario/simple/config.yaml \
--caliper-networkconfig networks/besu/1node-clique/networkconfig.json \
--caliper-workspace .

もちろんスムーズにはいきません、ここでエラーが報告されます(2022/02/21:実行日)

21 05:58:37.499+00:00 | main | INFO  | Besu | Starting Besu version: besu/v22.1.0-RC4/linux-x86_64/openjdk-java-11

besu_clique  | Invalid value for option '--rpc-ws-apis'

besu_clique  | 

besu_clique  | To display full help:

besu_clique  | besu [COMMAND] --help

エラーは--rpc-ws-apis値が不正であることです

network/besu/1node-clique/docker-compose.yml にアクセスして確認してください。確かに不正です。
不正な小文字のパラメータを大文字に変更してください。

--rpc-ws-apis admin,eth,miner,web3,net
--rpc-ws-apis ADMIN,ETH,MINER,WEB3,NET

ここのDockerイメージは間違っているようなので、以前バインドしたものに変更する必要があります。

image: hyperledger/besu:latest

上記の管理者コマンドを再度実行するnpx caliper launch manager ...
と、一連の Docker がロードされ、インストールされていることがわかります。以下がbesu_clique開始され
、コントラクトの作成が開始されます。

Container besu_clique  Starting
Container besu_clique  Started
2022.02.21-15:22:57.588 info  [caliper] [caliper-engine]        Executed start command in 65.953 seconds
2022.02.21-15:22:57.602 info  [caliper] [caliper-engine]        Executed "init" step in 0.014 seconds
2022.02.21-15:22:57.602 info  [caliper] [ethereum-connector]    Creating contracts...
2022.02.21-15:22:57.615 error [caliper] [caliper-engine]        Error while performing "install" step: Error: connection not open on send()

ここにはまだ例外がありますが、理由はわかりませんが、Docker を見返してみると、ブロックは正常に生成されており、問題がないことがわかりました。

1 | INFO  | BlockMiner | Produced #45 / 0 tx / 0 om / 0 (0.0%) gas / (0x6544b1ce8b974d297190d4fc832e0b5229762850197c94a1f0de78c26f6d0f92) in 0.007s

ポート設定も正しいです。
いろいろ探しましたが原因が見つからなかったので、再度管理者コマンドを実行したところ成功しました。
少し言葉を失いましたが、
その後、テストは正常に実行され、レポートが出力されました。

+----------+------+------+-----------------+-----------------+-----------------+-----------------+------------------+
| Name     | Succ | Fail | Send Rate (TPS) | Max Latency (s) | Min Latency (s) | Avg Latency (s) | Throughput (TPS) |
|----------|------|------|-----------------|-----------------|-----------------|-----------------|------------------|
| open     | 1000 | 0    | 50.1            | 29.13           | 1.78            | 14.35           | 20.5             |
|----------|------|------|-----------------|-----------------|-----------------|-----------------|------------------|
| query    | 1000 | 0    | 100.1           | 0.01            | 0.00            | 0.00            | 100.1            |
|----------|------|------|-----------------|-----------------|-----------------|-----------------|------------------|
| transfer | 50   | 0    | 5.1             | 4.95            | 0.14            | 2.54            | 3.9              |
+----------+------+------+-----------------+-----------------+-----------------+-----------------+------------------+

report.html ファイルが root の下に生成され、ブラウザを通じて表示できます。
キャリパーレポート

第2章

Caliperは主に、ブロックチェーンの構築、スマートコントラクトの展開、テストの3つの部分に分かれており、自由に分割したり組み合わせたりすることができます。

いいえ 組み合わせ 述べる
1 ブロックチェーン構築 Docker が自動的にビルドします。必要に応じて自分でビルドできます。
2 スマートコントラクトの展開 コントラクトの abi.json を指定すると、Caliper がバイトコードをチェーンにデプロイします
*注意: ここには abi.json の要件があり、これについては独自のスマート コントラクトのデプロイに関する次の記事で詳しく説明します。
3 テスト テストを実行してレポートを生成する

ブロックチェーン構築:
Caliper は Docker を使用して自動構築され、networks/besu/1node-clique/docker-compose.yml に設定され、起動とStart停止endnetworks/besu/1node-clique/networkconfig.json で制御されますcalipercommand

スマート コントラクトの展開:
ブロックチェーンにリンクされているすべての設定を network/besu/1node-clique/networkconfig.json で構成します (主に port url) contractsここの設定を参照して、後で独自のコントラクトをデプロイできます。
contractDeployerAddress, contractDeployerAddressPrivateKey,fromAddressSeedは、Caliper が提供するアドレスに設定する必要があります。ここでサンプルを実行する場合は変更する必要はありません。後で独自のコントラクトをデプロイするときに、独自の状況に応じて設定する必要があります。

テスト:
すべてのテスト ケースは scenario/simple/config.yaml で構成されており、送信 TPS の変更、ワーカー数の設定などが可能です。

参照

おすすめ

転載: blog.csdn.net/weixin_44565484/article/details/122857254