0

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

4

2 回答 2

0

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

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

caliper 向peer请求peer的chaincode(javascript),peer接收请求,执行chaincode(golang),并返回结果。
这意味着,它完全独立于链码语言。

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

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);
于 2020-12-15T01:08:51.743 回答
0

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

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

于 2020-12-15T12:38:42.060 回答