我正在尝试使用Hyperledger Caliper框架来衡量基于Hyperledger Fabric的区块链网络的性能,该网络包含3个节点和1个订购者和solo共识。我已经安装了网络,并且可以在不同的远程虚拟机上正确响应智能合约。我知道我必须创建一个网络配置文件和一个用于测试配置的文件。这时我开始怀疑了。在我看到的所有示例中,在这个配置文件中,用于测试的javascript文件是相关的,但我的智能合约是用golang编写的。我的测试必须使用javascript编写吗?我可以在这个文件中引用golang文件吗?有人能给我举个例子吗?我已经研究了好几个星期了,但我不明白这个框架提供的例子。有人能给我任何帮助吗,即使这是一个我还没有看到的链接,需要进一步搜索。
卡尺javascript的关键是调用peer。换句话说,它不是通过直接连接特定的智能合约(golang(来执行的。
Caliper(javascript) <-> Peer <-> Chaincode(golang)
caliper向peer请求peer的链代码(javascript(,peer接收请求,执行链代码(golang(并返回结果。
这意味着,它完全独立于链代码语言。
请参阅下面的链接。在实际卡尺的JavaScript中调用chaincode的代码的情况下,只需要chaincode名称、函数和输入参数。
hyperledger卡尺织物教程
(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);
当前所有卡尺工作负载都在node.js中执行,node.js主要是一个javascript引擎(Chaincode可以用任何结构支持的语言编写(。对其他语言的支持可能会在未来出现,要么是原生的,要么是通过转换到javascript或编译到wasm来实现,因为node.js引擎增加了它的wasm功能。
我建议你看看最新的布料教程,可以在这里找到https://hyperledger.github.io/caliper/v0.4.2/fabric-tutorial/由于卡尺(相对于v0.3.2版本(有一些重大改进,