1

最近一直在学习一些关于 Hyperledger Fabric 和 Hyperledger Caliper 的知识。

最近一直在关注 Hyperledger Caliper Fabric 基准测试教程以了解更多关于它的信息。

它使用 Fabric Samples 网络作为示例,使用的示例链代码是资产转移基本 javascript。

例如,在运行 caliper 以创建 1000 个资产时。

在资产创建操作期间初始化测试时偶尔会出现错误,如下所示:

    2021-05-05T21:28:58.344Z - error: [DiscoveryHandler]: compareProposalResponseResults[undefined] - read/writes result sets do not match index=1
2021-05-05T21:28:58.344Z - error: [Transaction]: Error: No valid responses from any peers. Errors:
    peer=undefined, status=grpc, message=Peer endorsements do not match
2021.05.05-22:28:58.344 error [caliper] [connectors/v2/FabricGateway]   Failed to perform submit transaction [CreateAsset] using arguments [0_231,blue,20,penguin,500],  with error: Error: No valid responses from any peers. Errors:
    peer=undefined, status=grpc, message=Peer endorsements do not match

示例链码操作非常简单:

// CreateAsset issues a new asset to the world state with given details.
    async CreateAsset(ctx, id, color, size, owner, appraisedValue) {
        const asset = {
            ID: id,
            Color: color,
            Size: size,
            Owner: owner,
            AppraisedValue: appraisedValue,
        };
        ctx.stub.putState(id, Buffer.from(JSON.stringify(asset)));
        return JSON.stringify(asset);
    }

发生这样的错误是否有任何特殊原因?即使偶尔。

4

1 回答 1

1

caliper 中的教程明确检查了织物样本中的特定标签。这是因为main分支中的链代码示例中有一个错误,该错误在特定的 git 提交中不存在。该错误导致您看到的问题您实际上已将该错误包含在您发布的代码段中。在链码中它是行

ctx.stub.putState(id, Buffer.from(JSON.stringify(asset)));

这是不正确的。它应该是

await ctx.stub.putState(id, Buffer.from(JSON.stringify(asset)));
于 2021-05-06T04:29:06.397 回答