#node.js #npm #hyperledger-fabric
Вопрос:
Доброе утро всем, у меня была эта ошибка в течение 3 месяцев, и я не мог ее решить, если у вас есть какая-либо информация об этом, пожалуйста, помогите.
Я запускаю два цепных кода и 7 одноранговых узлов ( CA,MSP,контейнер цепного кода на одноранговый узел) в общей сложности для 42 контейнеров docker. Все работает гладко, пока не придет время выполнять транзакции, все одноранговые узлы docker, содержащие цепной код, выходят с этой ошибкой, кроме первого запущенного
Я не знаю, является ли это ошибкой, связанной с hlf, или ошибкой, связанной с npm, и я проверял везде, этот тип ошибки иногда является hlf, а иногда npm, и в любом случае нет четкого решения для ее решения! Я сдался и сейчас прошу о помощи, что очень ценится, так как это мой выпускной проект
Я использую hyperledger fabric v 2 и использую npm,узел,java-скрипт вот содержимое моего файла package.json
{
"name": "student-smart-contract",
"version": "1.0.0",
"description": "smart contract for courses",
"main": "index.js",
"engines": {
"node": ">=12",
"npm": ">=5"
},
"scripts": {
"init-lint": "eslint --init",
"lint": "eslint .",
"pretest": "npm run lint",
"test": "nyc mocha --recursive",
"start": "fabric-chaincode-node start"
},
"engineStrict": true,
"author": "Hyperledger",
"license": "Apache-2.0",
"dependencies": {
"ajv": "^5.5.2",
"fabric-contract-api": "^2.2.1",
"fabric-shim": "^2.2.1",
"grpc": "^1.24.5"
},
"devDependencies": {
"chai": "^4.1.2",
"eslint": "^7.32.0",
"eslint-config-standard": "^16.0.3",
"eslint-plugin-import": "^2.24.2",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-promise": "^5.1.0",
"mocha": "^8.0.1",
"nyc": "^14.1.1",
"sinon": "^6.0.0",
"sinon-chai": "^3.2.0"
},
"nyc": {
"exclude": [
"coverage/**",
"test/**",
"index.js",
".eslintrc.js"
],
"reporter": [
"text-summary",
"html"
],
"all": true,
"check-coverage": true,
"statements": 100,
"branches": 100,
"functions": 100,
"lines": 100
}
}
и ниже приведена ошибка, заранее спасибо
> Executing task: docker logs --tail 1000 -f 0f3588111617d412d11768c32df6f9f724da08c46217257953a32c90e6288d98 <
CHAINCODE_DIR=/usr/local/src
cd /usr/local/src
npm start -- --peer.address peer0.Aswan.com:8052
> student-smart-contract@1.0.0 start /usr/local/src
> fabric-chaincode-node start "--peer.address" "peer0.Aswan.com:8052"
2021-10-27T12:33:11.636Z info [c-api:contracts-spi/bootstrap.js] No metadata file supplied in contract, introspection will generate all the data
2021-10-27T12:33:11.643Z info [c-api:./lib/contract.js] Creating new Contract
2021-10-27T12:33:11.644Z info [c-api:./lib/contract.js] Creating new Contract
2021-10-27T12:33:11.644Z info [c-api:./lib/contract.js] Creating new Contract
2021-10-27T12:33:11.645Z info [c-api:./lib/contract.js] Creating new Contract
2021-10-27T12:33:11.645Z info [c-api:./lib/contract.js] Creating new Contract "org.hyperledger.fabric"
2021-10-27T12:33:11.712Z info [c-api:lib/chaincode.js] Registering with peer peer0.Aswan.com:8052 as chaincode "CoursesSmartContract:e2401ca75fc0abab992210baee01c0d10f4d5cbb48e701d5818772f8fda3a82a"
2021-10-27T12:33:11.727Z info [c-api:fabric-shim/cli]
Command succeeded
2021-10-27T12:33:11.774Z info [c-api:lib/handler.js] Successfully registered with peer node. State transferred to "established"
2021-10-27T12:33:11.775Z info [c-api:lib/handler.js] Successfully established communication with peer node. State transferred to "ready"
2021-10-27T12:33:41.770Z error [c-api:lib/handler.js] Received unknown message from the peer. Exiting.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! student-smart-contract@1.0.0 start: `fabric-chaincode-node start "--peer.address" "peer0.Aswan.com:8052"`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the student-smart-contract@1.0.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2021-10-27T12_33_41_777Z-debug.log
и когда я следовал /root/.npm/
У меня есть это
0 info it worked if it ends with ok
1 verbose cli [
1 verbose cli '/usr/local/bin/node',
1 verbose cli '/usr/local/bin/npm',
1 verbose cli 'start',
1 verbose cli '--',
1 verbose cli '--peer.address',
1 verbose cli 'peer0.Aswan.com:8052'
1 verbose cli ]
2 info using npm@6.13.4
3 info using node@v12.16.1
4 verbose run-script [ 'prestart', 'start', 'poststart' ]
5 info lifecycle student-smart-contract@1.0.0~prestart: student-smart-contract@1.0.0
6 info lifecycle student-smart-contract@1.0.0~start: student-smart-contract@1.0.0
7 verbose lifecycle student-smart-contract@1.0.0~start: unsafe-perm in lifecycle true
8 verbose lifecycle student-smart-contract@1.0.0~start: PATH: /usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/usr/local/src/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
9 verbose lifecycle student-smart-contract@1.0.0~start: CWD: /usr/local/src
10 silly lifecycle student-smart-contract@1.0.0~start: Args: [
10 silly lifecycle '-c',
10 silly lifecycle 'fabric-chaincode-node start "--peer.address" "peer0.Aswan.com:8052"'
10 silly lifecycle ]
11 silly lifecycle student-smart-contract@1.0.0~start: Returned: code: 1 signal: null
12 info lifecycle student-smart-contract@1.0.0~start: Failed to exec start script
13 verbose stack Error: student-smart-contract@1.0.0 start: `fabric-chaincode-node start "--peer.address" "peer0.Aswan.com:8052"`
13 verbose stack Exit status 1
13 verbose stack at EventEmitter.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/index.js:332:16)
13 verbose stack at EventEmitter.emit (events.js:311:20)
13 verbose stack at ChildProcess.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:55:14)
13 verbose stack at ChildProcess.emit (events.js:311:20)
13 verbose stack at maybeClose (internal/child_process.js:1021:16)
13 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:286:5)
14 verbose pkgid student-smart-contract@1.0.0
15 verbose cwd /usr/local/src
16 verbose Linux 5.11.0-25-generic
17 verbose argv "/usr/local/bin/node" "/usr/local/bin/npm" "start" "--" "--peer.address" "peer0.Aswan.com:8052"
18 verbose node v12.16.1
19 verbose npm v6.13.4
20 error code ELIFECYCLE
21 error errno 1
22 error student-smart-contract@1.0.0 start: `fabric-chaincode-node start "--peer.address" "peer0.Aswan.com:8052"`
22 error Exit status 1
23 error Failed at the student-smart-contract@1.0.0 start script.
23 error This is probably not a problem with npm. There is likely additional logging output above.
24 verbose exit [ 1, true ]
Комментарии:
1. Я вижу, что вы используете много контейнеров docker и много одноранговых узлов. Вы сказали, что у вас есть два цепных кода и 7 одноранговых узлов. Сколько у вас организаций? И сколько сверстников у каждого из них? Кроме того, где установлен каждый цепной код? Какой тип транзакции вы пытаетесь выполнить, и вы получаете ошибку?
2. также 7 организаций по одному одноранговому узлу на организацию, мои транзакции-это транзакции моего смарт-контракта, вы хотите, чтобы я показал вам код?
3. Итак, вы вызываете цепной код с помощью node sdk? Или что именно вы используете? К какому одноранговому узлу вы обращаетесь? происходит ли это со всеми сверстниками? Я имею в виду, пробовали ли вы ту же структуру в другой сети, в которой есть только одна организация и один одноранговый узел, например, чтобы узнать, связано ли это с определенным одноранговым узлом?
4. это происходит еще до того, как я что-либо вызову, но да, я вызываю его с помощью node sdk, я не пробовал эту структуру с другой сетью, потому что в этой сети с этой структурой был весь смысл, и необходимость тестировать ее таким образом будет означать, что мне придется заново создавать все с нуля, но только для одного узла, что противоречит цели 🙁 ошибка происходит с 6 организациями, если они просто выходят из контейнеров ( я проверяю их из расширения docker в vs code..)
5. «Получено неизвестное сообщение от однорангового узла» (которое исходит от github.com/hyperledger/fabric-chaincode-node/blob/… ) Такое нечасто увидишь. Обычно существует определенный набор состояний, через которые код одноранговой цепочки проходит перед транзакцией. Было бы также полезно проверить журналы одноранговых узлов. Вы сказали, что это единая организация с 7 коллегами… но вы также упоминаете 6 организаций?