Я попытался развернуть цепной код в тестовой сети (образец фабрики / фабрика гиперледжера 2.2). Я выполнил эти шаги, упомянутые в документации https://hyperledger-fabric.readthedocs.io/en/release-2.0/deploy_chaincode.html.
это смарт-контракт:
'use strict';
const {Contract} = require ('fabric-contract-api');
class RegisterUser расширяет контракт {
async initLedger(ctx) {
console.info('============= START : Initialize Ledger ===========');
const users = [
{
UserId: 'admin',
FirstName : 'network',
LastName : 'supervisor',
BillFold : 'none',
},
];
for (let i = 0; i < users.length; i++) {
users[i].docType = 'user';
await ctx.stub.putState('USER' + i, Buffer.from(JSON.stringify(users[i])));
console.info('Added <--> ', users[i]);
}
console.info('============= END : Initialize Ledger ===========');
}
async queryUser(ctx, userId) {
const userAsBytes = await ctx.stub.getState(userId); e
if (!userAsBytes || userAsBytes.length === 0) {
throw new Error(`${userId} does not exist`);
}
console.info(userAsBytes.toString());
return userAsBytes.toString();
}
async createUser(ctx, userId, first_name, last_name,billfoldId) {
console.info('============= START : Create User ===========');
const user = {
UserId: userId,
doctype : 'user',
FirstName : first_name,
LastName : last_name,
BillFold : billfoldId,
};
await ctx.stub.putState(userId, Buffer.from(JSON.stringify(user)));
console.info('============= END : Create User ===========');
}
} module.exports = RegisterUser;
При запуске приложения узла, реализующего цепной код, возникает эта ошибка:
2021-03-30T10:55:42.115Z - error: [Transaction]: Error: No valid responses from any peers. Errors:
peer=peer0.org1.example.com:7051, status=500, message=error in simulation: failed to execute transaction 112a4c6dbf49bdea7aaa4ca5e24a03eeebf89a0989d278319cf6aecae061d310: could not launch chaincode usercontract_1.0:995a82a19e6a5e211d6ca52dff9eccb5cfd79249418657e0c9f599c9b1ffe9f0: chaincode registration failed: container exited with 1
peer=peer0.org2.example.com:9051, status=500, message=error in simulation: failed to execute transaction 112a4c6dbf49bdea7aaa4ca5e24a03eeebf89a0989d278319cf6aecae061d310: could not launch chaincode usercontract_1.0:995a82a19e6a5e211d6ca52dff9eccb5cfd79249418657e0c9f599c9b1ffe9f0: chaincode registration failed: container exited with 1





Во время установки докер-контейнер будет выделен в зависимости от языка вашего чейнкода. Следите за журналами этого док-контейнера, и вы увидите причину сбоя. Всего наилучшего. Если вы запускаете все это в Windows, то рабочий стол докера будет предоставлять вам представление в реальном времени о контейнерах, которые находятся в рабочем состоянии, и щелчком мыши вы также можете видеть журналы контейнера докера.
Без мониторинга журналов контейнера докеров трудно сказать, почему что-то выходит из строя. Всего наилучшего.