[英]Hyperledger Fabric Updating Ledger Fail
我試圖通過Hyperledger Fabric中的第一個演示“編寫您的第一個應用程序” https://hyperledger-fabric.readthedocs.io/en/release-1.2/write_first_app.html 。 我成功運行了查詢部分(queryAllCars和queryCar方法)。 我在更新分類帳部分時遇到問題。 我就是做這個的:
將值放在invoke.js文件中:
var request = { //targets: let default to the peer assigned to the client chaincodeId: 'fabcar', fcn: 'createCar', args: ['CAR10', 'Chevy', 'Volt', 'Red', 'Nick'], chainId: 'mychannel', txId: tx_id};
運行節點invoke.js並進入終端:
商店路徑:/ home / krystian / hyperledger-test / fabric-samples / fabcar / hfc-key-store
從持久性成功加載user1
分配transaction_id:0dfca05d6f19187275c6a31febc81429ddca3a284fd590c631961a10f8da5aee
交易建議很好
已成功發送投標並收到投標響應:狀態-200,消息-“”
無法 成功 調用 ::錯誤:eventhub存在問題:: 14 無法使用:TCP寫入失敗
at createStatusError (/home/krystian/hyperledger-test/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/src/client.js:64:15) at ClientDuplexStream._emitStatusIfDone (/home/krystian/hyperledger-test/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/src/client.js:270:19) at ClientDuplexStream._receiveStatus (/home/krystian/hyperledger-test/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/src/client.js:248:8) at /home/krystian/hyperledger-test/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/src/client.js:804:12
這是我的package.json
{
"name": "fabcar",
"version": "1.0.0",
"description": "Hyperledger Fabric Car Sample Application",
"main": "fabcar.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"dependencies": {
"fabric-ca-client": "^1.2.1",
"fabric-client": "^1.2.1",
"grpc": "^1.15.1"
},
"author": "Anthony O'Dowd",
"license": "Apache-2.0",
"keywords": [
"Hyperledger",
"Fabric",
"Car",
"Sample",
"Application"
]
}
這是invoke.js崩潰的一部分:
let event_hub = fabric_client.newEventHub();
event_hub.setPeerAddr('grpc://localhost:7053');
// using resolve the promise so that result status may be processed
// under the then clause rather than having the catch clause process
// the status
let txPromise = new Promise((resolve, reject) => {
let handle = setTimeout(() => {
event_hub.disconnect();
resolve({event_status : 'TIMEOUT'}); //we could use reject(new Error('Trnasaction did not complete within 30 seconds'));
}, 3000);
**event_hub.connect();
event_hub.registerTxEvent(transaction_id_string, (tx, code) => {
// this is the callback for transaction event status
// first some clean up of event listener
clearTimeout(handle);
event_hub.unregisterTxEvent(transaction_id_string);**
event_hub.disconnect();
我試圖刪除fabcar / node_modules並再次運行npm install。 我也嘗試過運行sudo節點invoke.js。 我完成了建立您的第一個網絡教程,一切正常。
節點版本v8.9.0
NPM版本5.5.1
我正在使用Linux Mint
當initLedger方法和查詢工作沒有問題時,更新分類帳哪里會有問題?
我再次遇到該錯誤,終於解決了。 在grpc版本上不匹配。 我曾經擁有使用grpc@1.14.2的Hyperledger Fabric網絡v1.3.0,並且我的客戶端應用程序已在package.json文件中設置了fabric-client v.1.1.0和grpc 1.6.6。
解決后,我又遇到了另一個錯誤:
無法成功調用:: TypeError:fabric_client.newEventHub不是函數
但是,該錯誤已在此處解決: 無法找到newEventHub函數 。
因此,如果您遇到相同的問題,則必須在網絡和客戶端應用程序中使用相同版本的軟件包。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.