Visual studio code IBM区块链VSCode:调用链码演示合约失败

Visual studio code IBM区块链VSCode:调用链码演示合约失败,visual-studio-code,hyperledger-fabric,ibm-blockchain,Visual Studio Code,Hyperledger Fabric,Ibm Blockchain,我遵循IBM区块链教程“A4:从VS代码调用智能合约”。我使用合同语言“TypeScript”创建了一个带有IBM区块链扩展的演示合同项目,如教程中所述。但在步骤A4.4中,我无法在Fabric Gateways视图中展开通道树以显示可用事务 我使用的Mac电脑具有最新的VS代码和IBM区块链扩展,以及最新的Docker Desktop版本3.3.3 我注意到,在将合同部署到“1 Org Local Fabric”环境的过程中出现了一个问题(有关完整的日志,请参阅以下内容): 在VSCode控制

我遵循IBM区块链教程“A4:从VS代码调用智能合约”。我使用合同语言“TypeScript”创建了一个带有IBM区块链扩展的演示合同项目,如教程中所述。但在步骤A4.4中,我无法在Fabric Gateways视图中展开通道树以显示可用事务

我使用的Mac电脑具有最新的VS代码和IBM区块链扩展,以及最新的Docker Desktop版本3.3.3

我注意到,在将合同部署到“1 Org Local Fabric”环境的过程中出现了一个问题(有关完整的日志,请参阅以下内容):

在VSCode控制台中,我还获得了这些日志,其中指出chaincode调用存在问题:

15.5.2021 16:18:13] [INFO] affectionate_diffie|[        org1peer] 2021-05-15 14:18:13.867 UTC [endorser] callChaincode -> INFO 119 finished chaincode: demo-contract duration: 974ms channel=mychannel txID=c962db53
[15.5.2021 16:18:13] [INFO] affectionate_diffie|[        org1peer] 2021-05-15 14:18:13.867 UTC [endorser] SimulateProposal -> ERRO 11a failed to invoke chaincode demo-contract, error: exit status 1
[15.5.2021 16:18:13] [INFO] affectionate_diffie|[        org1peer] builder 'node' run failed
[15.5.2021 16:18:13] [INFO] affectionate_diffie|[        org1peer] 2021-05-15 14:18:13.867 UTC [endorser] callChaincode -> INFO 119 finished chaincode: demo-contract duration: 974ms channel=mychannel txID=c962db53
[15.5.2021 16:18:13] [INFO] affectionate_diffie|[        org1peer] 2021-05-15 14:18:13.867 UTC [endorser] SimulateProposal -> ERRO 11a failed to invoke chaincode demo-contract, error: exit status 1
[15.5.2021 16:18:13] [INFO] affectionate_diffie|[        org1peer] builder 'node' run failed
在docker容器中引用的/tmp/npm cache/_logs/2021-05-15T14_28_30_384Z-debug.log文件中,我看到以下错误:

6 info lifecycle demo-contract@0.0.1~start: demo-contract@0.0.1
7 verbose lifecycle demo-contract@0.0.1~start: unsafe-perm in lifecycle true
8 verbose lifecycle demo-contract@0.0.1~start: PATH: /opt/node/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/opt/microfab/data/peer-org1/data/externalbuilder/builds/demo-contract_0.0.1-d66596dd67ab1c8de75d7ad3c0ce89d18584a27a4d804b1cb97cda493a13d8d9/bld/node_modules/.bin:/opt/microfab/bin:/opt/fabric/bin:/opt/gradle/bin:/opt/maven/bin:/opt/go/bin:/opt/node/bin:/opt/java/bin:/opt/couchdb/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
9 verbose lifecycle demo-contract@0.0.1~start: CWD: /opt/microfab/data/peer-org1/data/externalbuilder/builds/demo-contract_0.0.1-d66596dd67ab1c8de75d7ad3c0ce89d18584a27a4d804b1cb97cda493a13d8d9/bld
10 silly lifecycle demo-contract@0.0.1~start: Args: [
10 silly lifecycle   '-c',
10 silly lifecycle   'fabric-chaincode-node start "--peer.address=172.17.0.2:2005"'
10 silly lifecycle ]
11 silly lifecycle demo-contract@0.0.1~start: Returned: code: 1  signal: null
12 info lifecycle demo-contract@0.0.1~start: Failed to exec start script
13 verbose stack Error: demo-contract@0.0.1 start: `fabric-chaincode-node start "--peer.address=172.17.0.2:2005"`
13 verbose stack Exit status 1
13 verbose stack     at EventEmitter.<anonymous> (/opt/node/lib/node_modules/npm/node_modules/npm-lifecycle/index.js:332:16)
13 verbose stack     at EventEmitter.emit (events.js:315:20)
13 verbose stack     at ChildProcess.<anonymous> (/opt/node/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:55:14)
13 verbose stack     at ChildProcess.emit (events.js:315: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 demo-contract@0.0.1
15 verbose cwd /opt/microfab/data/peer-org1/data/externalbuilder/builds/demo-contract_0.0.1-d66596dd67ab1c8de75d7ad3c0ce89d18584a27a4d804b1cb97cda493a13d8d9/bld
16 verbose Linux 4.19.121-linuxkit
17 verbose argv "/opt/node/bin/node" "/opt/node/bin/npm" "start" "--" "--peer.address=172.17.0.2:2005"
18 verbose node v12.17.0
19 verbose npm  v6.14.4
20 error code ELIFECYCLE
21 error errno 1
22 error demo-contract@0.0.1 start: `fabric-chaincode-node start "--peer.address=172.17.0.2:2005"`
22 error Exit status 1
23 error Failed at the demo-contract@0.0.1 start script.
23 error This is probably not a problem with npm. There is likely additional logging output above.
24 verbose exit [ 1, true ]

我猜您选择了typescript作为链码/契约的语言,但它似乎没有将typescript代码转换为javascript。我怀疑package.json中有一个build选项,因此请尝试在存储智能合约的目录中的vscode终端中运行
npm run build
(该目录中应该有一个package.json文件)。如果由于找不到
tsc
而失败,那么您需要先运行
npm install
来安装所有预请求,然后您应该能够运行
npm run build


一旦您的智能合约成功传输(dist目录中应该有index.js文件,这是您发布的错误消息所抱怨的),您应该能够再次打包链码/合约并安装它(重新安装新软件包之前,您可能需要更改其版本号,这是package.json文件中的
version
字段。

它与TypeScript合同语言有关。当我更改为JavaScript时,它可以工作。可能是什么?谢谢。是的,这很有帮助。我仔细检查了教程。)说明和
npm run build
步骤在这里没有提到,所以我假设部署过程可以传输typescript代码。有可能是扩展用于或应该为您执行npm run build,但由于某种原因无法工作?我已经有一段时间没有为typescript dev使用扩展了
6 info lifecycle demo-contract@0.0.1~start: demo-contract@0.0.1
7 verbose lifecycle demo-contract@0.0.1~start: unsafe-perm in lifecycle true
8 verbose lifecycle demo-contract@0.0.1~start: PATH: /opt/node/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/opt/microfab/data/peer-org1/data/externalbuilder/builds/demo-contract_0.0.1-d66596dd67ab1c8de75d7ad3c0ce89d18584a27a4d804b1cb97cda493a13d8d9/bld/node_modules/.bin:/opt/microfab/bin:/opt/fabric/bin:/opt/gradle/bin:/opt/maven/bin:/opt/go/bin:/opt/node/bin:/opt/java/bin:/opt/couchdb/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
9 verbose lifecycle demo-contract@0.0.1~start: CWD: /opt/microfab/data/peer-org1/data/externalbuilder/builds/demo-contract_0.0.1-d66596dd67ab1c8de75d7ad3c0ce89d18584a27a4d804b1cb97cda493a13d8d9/bld
10 silly lifecycle demo-contract@0.0.1~start: Args: [
10 silly lifecycle   '-c',
10 silly lifecycle   'fabric-chaincode-node start "--peer.address=172.17.0.2:2005"'
10 silly lifecycle ]
11 silly lifecycle demo-contract@0.0.1~start: Returned: code: 1  signal: null
12 info lifecycle demo-contract@0.0.1~start: Failed to exec start script
13 verbose stack Error: demo-contract@0.0.1 start: `fabric-chaincode-node start "--peer.address=172.17.0.2:2005"`
13 verbose stack Exit status 1
13 verbose stack     at EventEmitter.<anonymous> (/opt/node/lib/node_modules/npm/node_modules/npm-lifecycle/index.js:332:16)
13 verbose stack     at EventEmitter.emit (events.js:315:20)
13 verbose stack     at ChildProcess.<anonymous> (/opt/node/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:55:14)
13 verbose stack     at ChildProcess.emit (events.js:315: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 demo-contract@0.0.1
15 verbose cwd /opt/microfab/data/peer-org1/data/externalbuilder/builds/demo-contract_0.0.1-d66596dd67ab1c8de75d7ad3c0ce89d18584a27a4d804b1cb97cda493a13d8d9/bld
16 verbose Linux 4.19.121-linuxkit
17 verbose argv "/opt/node/bin/node" "/opt/node/bin/npm" "start" "--" "--peer.address=172.17.0.2:2005"
18 verbose node v12.17.0
19 verbose npm  v6.14.4
20 error code ELIFECYCLE
21 error errno 1
22 error demo-contract@0.0.1 start: `fabric-chaincode-node start "--peer.address=172.17.0.2:2005"`
22 error Exit status 1
23 error Failed at the demo-contract@0.0.1 start script.
23 error This is probably not a problem with npm. There is likely additional logging output above.
24 verbose exit [ 1, true ]
[        org1peer] 2021-05-15 15:43:10.424 UTC [chaincode.externalbuilder.node] waitForExit -> INFO 0b4 Error: Cannot find module '/opt/microfab/data/peer-org1/data/externalbuilder/builds/demo-contract_0.0.1-d66596dd67ab1c8de75d7ad3c0ce89d18584a27a4d804b1cb97cda493a13d8d9/bld/dist/index.js' command=run
[        org1peer] 2021-05-15 15:43:10.425 UTC [chaincode.externalbuilder.node] waitForExit -> INFO 0b5 Require stack: command=run
[        org1peer] 2021-05-15 15:43:10.425 UTC [chaincode.externalbuilder.node] waitForExit -> INFO 0b6 - /opt/microfab/data/peer-org1/data/externalbuilder/builds/demo-contract_0.0.1-d66596dd67ab1c8de75d7ad3c0ce89d18584a27a4d804b1cb97cda493a13d8d9/bld/node_modules/fabric-shim/lib/contract-spi/bootstrap.js command=run
[        org1peer] 2021-05-15 15:43:10.425 UTC [chaincode.externalbuilder.node] waitForExit -> INFO 0b7 - /opt/microfab/data/peer-org1/data/externalbuilder/builds/demo-contract_0.0.1-d66596dd67ab1c8de75d7ad3c0ce89d18584a27a4d804b1cb97cda493a13d8d9/bld/node_modules/fabric-shim/lib/cmds/metadata/lib/generate.js command=run
[        org1peer] 2021-05-15 15:43:10.425 UTC [chaincode.externalbuilder.node] waitForExit -> INFO 0b8 - /opt/microfab/data/peer-org1/data/externalbuilder/builds/demo-contract_0.0.1-d66596dd67ab1c8de75d7ad3c0ce89d18584a27a4d804b1cb97cda493a13d8d9/bld/node_modules/fabric-shim/lib/cmds/metadata.js command=run
[        org1peer] 2021-05-15 15:43:10.425 UTC [chaincode.externalbuilder.node] waitForExit -> INFO 0b9 - /opt/microfab/data/peer-org1/data/externalbuilder/builds/demo-contract_0.0.1-d66596dd67ab1c8de75d7ad3c0ce89d18584a27a4d804b1cb97cda493a13d8d9/bld/node_modules/yargs/index.js command=run
[        org1peer] 2021-05-15 15:43:10.425 UTC [chaincode.externalbuilder.node] waitForExit -> INFO 0ba - /opt/microfab/data/peer-org1/data/externalbuilder/builds/demo-contract_0.0.1-d66596dd67ab1c8de75d7ad3c0ce89d18584a27a4d804b1cb97cda493a13d8d9/bld/node_modules/fabric-shim/cli.js command=run
[        org1peer] 2021-05-15 15:43:10.425 UTC [chaincode.externalbuilder.node] waitForExit -> INFO 0bb     at Function.Module._resolveFilename (internal/modules/cjs/loader.js:966:15) command=run
[        org1peer] 2021-05-15 15:43:10.425 UTC [chaincode.externalbuilder.node] waitForExit -> INFO 0bc     at Function.Module._load (internal/modules/cjs/loader.js:842:27) command=run
[        org1peer] 2021-05-15 15:43:10.425 UTC [chaincode.externalbuilder.node] waitForExit -> INFO 0bd     at Module.require (internal/modules/cjs/loader.js:1026:19) command=run
[        org1peer] 2021-05-15 15:43:10.425 UTC [chaincode.externalbuilder.node] waitForExit -> INFO 0be     at require (internal/modules/cjs/helpers.js:72:18) command=run
[        org1peer] 2021-05-15 15:43:10.425 UTC [chaincode.externalbuilder.node] waitForExit -> INFO 0bf     at Function.getInfoFromContract (/opt/microfab/data/peer-org1/data/externalbuilder/builds/demo-contract_0.0.1-d66596dd67ab1c8de75d7ad3c0ce89d18584a27a4d804b1cb97cda493a13d8d9/bld/node_modules/fabric-shim/lib/contract-spi/bootstrap.js:77:23) command=run
[        org1peer] 2021-05-15 15:43:10.425 UTC [chaincode.externalbuilder.node] waitForExit -> INFO 0c0     at Function.bootstrap (/opt/microfab/data/peer-org1/data/externalbuilder/builds/demo-contract_0.0.1-d66596dd67ab1c8de75d7ad3c0ce89d18584a27a4d804b1cb97cda493a13d8d9/bld/node_modules/fabric-shim/lib/contract-spi/bootstrap.js:54:63) command=run
[        org1peer] 2021-05-15 15:43:10.425 UTC [chaincode.externalbuilder.node] waitForExit -> INFO 0c1     at Object.exports.handler (/opt/microfab/data/peer-org1/data/externalbuilder/builds/demo-contract_0.0.1-d66596dd67ab1c8de75d7ad3c0ce89d18584a27a4d804b1cb97cda493a13d8d9/bld/node_modules/fabric-shim/lib/cmds/startCommand.js:46:40) command=run
[        org1peer] 2021-05-15 15:43:10.425 UTC [chaincode.externalbuilder.node] waitForExit -> INFO 0c2     at Object.runCommand (/opt/microfab/data/peer-org1/data/externalbuilder/builds/demo-contract_0.0.1-d66596dd67ab1c8de75d7ad3c0ce89d18584a27a4d804b1cb97cda493a13d8d9/bld/node_modules/yargs/build/lib/command.js:196:48) command=run
[        org1peer] 2021-05-15 15:43:10.425 UTC [chaincode.externalbuilder.node] waitForExit -> INFO 0c3     at Object.parseArgs [as _parseArgs] (/opt/microfab/data/peer-org1/data/externalbuilder/builds/demo-contract_0.0.1-d66596dd67ab1c8de75d7ad3c0ce89d18584a27a4d804b1cb97cda493a13d8d9/bld/node_modules/yargs/build/lib/yargs.js:1043:55) command=run
[        org1peer] 2021-05-15 15:43:10.425 UTC [chaincode.externalbuilder.node] waitForExit -> INFO 0c4     at Object.get [as argv] (/opt/microfab/data/peer-org1/data/externalbuilder/builds/demo-contract_0.0.1-d66596dd67ab1c8de75d7ad3c0ce89d18584a27a4d804b1cb97cda493a13d8d9/bld/node_modules/yargs/build/lib/yargs.js:986:25) { command=run
[        org1peer] 2021-05-15 15:43:10.425 UTC [chaincode.externalbuilder.node] waitForExit -> INFO 0c5   code: 'MODULE_NOT_FOUND', command=run
[        org1peer] 2021-05-15 15:43:10.425 UTC [chaincode.externalbuilder.node] waitForExit -> INFO 0c6   requireStack: [ command=run
[        org1peer] 2021-05-15 15:43:10.425 UTC [chaincode.externalbuilder.node] waitForExit -> INFO 0c7     '/opt/microfab/data/peer-org1/data/externalbuilder/builds/demo-contract_0.0.1-d66596dd67ab1c8de75d7ad3c0ce89d18584a27a4d804b1cb97cda493a13d8d9/bld/node_modules/fabric-shim/lib/contract-spi/bootstrap.js', command=run
[        org1peer] 2021-05-15 15:43:10.425 UTC [chaincode.externalbuilder.node] waitForExit -> INFO 0c8     '/opt/microfab/data/peer-org1/data/externalbuilder/builds/demo-contract_0.0.1-d66596dd67ab1c8de75d7ad3c0ce89d18584a27a4d804b1cb97cda493a13d8d9/bld/node_modules/fabric-shim/lib/cmds/metadata/lib/generate.js', command=run
[        org1peer] 2021-05-15 15:43:10.425 UTC [chaincode.externalbuilder.node] waitForExit -> INFO 0c9     '/opt/microfab/data/peer-org1/data/externalbuilder/builds/demo-contract_0.0.1-d66596dd67ab1c8de75d7ad3c0ce89d18584a27a4d804b1cb97cda493a13d8d9/bld/node_modules/fabric-shim/lib/cmds/metadata.js', command=run
[        org1peer] 2021-05-15 15:43:10.425 UTC [chaincode.externalbuilder.node] waitForExit -> INFO 0ca     '/opt/microfab/data/peer-org1/data/externalbuilder/builds/demo-contract_0.0.1-d66596dd67ab1c8de75d7ad3c0ce89d18584a27a4d804b1cb97cda493a13d8d9/bld/node_modules/yargs/index.js', command=run
[        org1peer] 2021-05-15 15:43:10.425 UTC [chaincode.externalbuilder.node] waitForExit -> INFO 0cb     '/opt/microfab/data/peer-org1/data/externalbuilder/builds/demo-contract_0.0.1-d66596dd67ab1c8de75d7ad3c0ce89d18584a27a4d804b1cb97cda493a13d8d9/bld/node_modules/fabric-shim/cli.js' command=run
[        org1peer] 2021-05-15 15:43:10.425 UTC [chaincode.externalbuilder.node] waitForExit -> INFO 0cc   ] command=run
[        org1peer] 2021-05-15 15:43:10.425 UTC [chaincode.externalbuilder.node] waitForExit -> INFO 0cd } command=run
[        org1peer] 2021-05-15 15:43:10.436 UTC [chaincode.externalbuilder.node] waitForExit -> INFO 0ce npm ERR! code ELIFECYCLE command=run
[        org1peer] 2021-05-15 15:43:10.436 UTC [chaincode.externalbuilder.node] waitForExit -> INFO 0cf npm ERR! errno 1 command=run
[        org1peer] 2021-05-15 15:43:10.437 UTC [chaincode.externalbuilder.node] waitForExit -> INFO 0d0 npm ERR! demo-contract@0.0.1 start: `fabric-chaincode-node start "--peer.address=172.17.0.2:2005"` command=run
[        org1peer] 2021-05-15 15:43:10.437 UTC [chaincode.externalbuilder.node] waitForExit -> INFO 0d1 npm ERR! Exit status 1 command=run
[        org1peer] 2021-05-15 15:43:10.437 UTC [chaincode.externalbuilder.node] waitForExit -> INFO 0d2 npm ERR!  command=run
[        org1peer] 2021-05-15 15:43:10.438 UTC [chaincode.externalbuilder.node] waitForExit -> INFO 0d3 npm ERR! Failed at the demo-contract@0.0.1 start script. command=run
[        org1peer] 2021-05-15 15:43:10.438 UTC [chaincode.externalbuilder.node] waitForExit -> INFO 0d4 npm ERR! This is probably not a problem with npm. There is likely additional logging output above. command=run
[        org1peer] 2021-05-15 15:43:10.443 UTC [chaincode.externalbuilder.node] waitForExit -> INFO 0d5  command=run
[        org1peer] 2021-05-15 15:43:10.443 UTC [chaincode.externalbuilder.node] waitForExit -> INFO 0d6 npm ERR! A complete log of this run can be found in: command=run
[        org1peer] 2021-05-15 15:43:10.443 UTC [chaincode.externalbuilder.node] waitForExit -> INFO 0d7 npm ERR!     /tmp/npm-cache/_logs/2021-05-15T15_43_10_439Z-debug.log command=run
[        org1peer] 2021-05-15 15:43:10.448 UTC [lifecycle] Work -> WARN 0d8 could not launch chaincode 'demo-contract_0.0.1:d66596dd67ab1c8de75d7ad3c0ce89d18584a27a4d804b1cb97cda493a13d8d9': chaincode registration failed: failed to wait on container exit: builder 'node' run failed: exit status 1