Тестирование Hyperledger Fabric / Hyperledger Caliper

Недавно узнал немного о Hyperledger Fabric и Hyperledger Caliper.

Недавно следили за руководством по тестированию производительности Hyperledger Caliper Fabric, которое здесь, чтобы узнать об этом подробнее.

В качестве примера он использует сеть Fabric Samples, где в качестве примера используется код цепи, являющийся основным javascript-кодом для передачи активов.

Например, при запуске измерителя для создания 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);
    }

Есть ли какая-то конкретная причина возникновения подобных ошибок? Даже если изредка.


person BSantos    schedule 05.05.2021    source источник


Ответы (1)


Учебник по штангенциркулю явно проверяет конкретный тег в образцах ткани. Это связано с тем, что в примерах цепного кода в ветке main есть ошибка, которой нет в конкретном коммите git. Эта ошибка вызывает проблему, которую вы видите. Вы действительно включили эту ошибку в опубликованный вами фрагмент. В цепном коде это строка

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

что неверно. Должен быть

await ctx.stub.putState(id, Buffer.from(JSON.stringify(asset)));
person david_k    schedule 06.05.2021
comment
Вот и все! Странно, что я не подумал о пропавшем ожидании. Спасибо! - person BSantos; 06.05.2021
comment
Я тоже столкнулся с той же проблемой. Теперь решено! Спасибо @david_k - person Umesh Kumar Sharma; 17.05.2021