0

我试图用超级账本卡尺监控我的区块链。我使用 repo 中给出的模板中的一个创建了自己的基准文件。但我收到了这个错误

Error: Network configuration file "F:Blockchain\hyperledger-caliper\networks\fabric\docker-compose\3org1peercouchdb\docker-compose.yaml" is missing its "caliper.blockchain" string attribute
at Function.assertConfigurationFilePaths (F:\SE\3rd_Year\FYP\Blockchain\hyperledger-caliper\node_modules\@hyperledger\caliper-core\lib\common\utils\caliper-utils.js:75:19)

任何想法如何解决这一问题?

4

1 回答 1

1

问题

问题在于您提供给 Caliper 的网络配置文件。根据Hyperledger Caliper的官方文档,网络配置包含一个YAML 网络配置文件。该文件需要有一个对象caliper,因为它是Required和一个Non-empty object,其中包含一个属性blockchain,即RequiredNon-empty string。您的日志说您指定的文件中缺少此对象和特定属性。

解决方案

您指定的文件是 docker-composer 文件。Fabric 区块链的网络配置文件应该类似于,例如,位于“networks/fabric/v1/v1.4.1/2org1peercouchdb/fabric-go.yaml”的文件,其中包含 Hyperledger Caliper 所需的网络配置参数和在caliper对象内的属性命令中管理docker容器。

您可以在caliper github 存储库中获取这些文件,也可以查看 Hyperledger Caliper官方文档以获得更好的理解。

例子

您应该有一个网络配置文件,该文件在属性 caliper.blockchain 上指定您正在使用的区块链,以及如何在属性 caliper.command 上管理 docker 容器就像其余和必需的参数一样)。例如:

...
caliper:
  blockchain: fabric
  command:
    start: export FABRIC_VERSION=1.4.0;export FABRIC_CA_VERSION=1.4.0;docker-compose -f networks/fabric/docker-compose/2org1peercouchdb/docker-compose.yaml up -d;sleep 3s
    end: docker-compose -f networks/fabric/docker-compose/2org1peercouchdb/docker-compose.yaml down;(test -z \"$(docker ps -aq)\") || docker rm $(docker ps -aq);(test -z \"$(docker images dev* -q)\") || docker rmi $(docker images dev* -q);rm -rf /tmp/hfc-*
  ...
...

笔记

我使用 JSON 文件作为 Hyperledger Sawtooth 和 Ethereum 的网络配置文件,以及 Hyperledger Caliper。但是,我不确定 JSON 文件是否适用于 Fabric 基准测试。

于 2021-04-07T13:37:31.110 回答