【问题标题】:Difficulty creating a benchmark test using Hyperledger Caliper使用 Hyperledger Caliper 创建基准测试有困难
【发布时间】:2020-12-14 21:03:15
【问题描述】:

我正在尝试使用 Hyperledger Caliper 框架来衡量基于 Hyperledger Fabric 的区块链网络的性能,该网络包含 3 个节点和 1 个排序节点和单独的共识。 我已经安装了网络并使用智能合约在不同的远程虚拟机上正确响应。我知道我必须创建一个网络配置文件和一个用于测试配置的文件。在这一点上,我的怀疑开始了。在我看到的所有示例中,在这个配置文件中,用于测试的 javascripts 文件都是相关的,但我的智能合约是用 golang 编写的。 我的测试必须使用 javascript 编写吗?我可以在这个文件中引用一个 golang 文件吗?有人能给我举个例子吗?我已经研究了几个星期,但我无法理解框架提供的示例。 任何人都可以给我任何帮助,即使它是我还没有看到的链接以进一步搜索。

【问题讨论】:

    标签: configuration hyperledger-fabric hyperledger-caliper


    【解决方案1】:

    caliper的javascript的关键是调用peer。也就是说,并不是直接连接特定的智能合约(golang)来执行的。

    Caliper(javascript) <-> Peer <-> Chaincode(golang)

    caliper 向peer请求peer的chaincode(javascript),peer收到请求,执行chaincode(golang),返回结果。
    也就是说,它完全独立于链码语言。

    请参阅下面的链接。 在实际caliper的JavaScript中调用chaincode的代码,只需要chaincode名称、函数和入参即可。

    hyperledger-caliper-fabric-tutorial

    (ex)
    ...
    const contractID = fabcar;
    const chaincodeFunction = 'createCar';
    const invokerIdentity = 'Admin@org1.example.com';
    const chaincodeArguments = [assetID,'blue','ford','focus','jim'];
    
    const result = await bc.bcObj.invokeSmartContract(ctx, contractID, version, myArgs);
    console.log(result);
    

    【讨论】:

      【解决方案2】:

      目前所有 caliper 工作负载都在主要是 javascript 引擎的 node.js 中执行(链码可以用任何结构支持的语言编写)。随着 node.js 引擎增加它的 wasm 功能,未来可能会以原生方式支持其他语言,也可能通过转换为 javascript 或编译为 wasm 来替代。

      我建议您查看最新的织物教程,可以在这里找到https://hyperledger.github.io/caliper/v0.4.2/fabric-tutorial/ 由于卡尺有一些重大改进(超过 v0.3.2 版本)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多