[fabcar 예제 오류 발생]
* (2018.05.08) 새로 fabric-samples 프로젝트를 받아서 fabcar 예제를 진행할 경우 아래와 같은 오류가 발생합니다.
* startFabric.sh 실행 -> node enrollAdmin.js 실행 시 오류!
[user@localhost fabcar]$ node enrollAdmin.js
module.js:549
throw err;
^
Error: Cannot find module './api.js'
at Function.Module._resolveFilename (module.js:547:15)
at Function.Module._load (module.js:474:25)
at Module.require (module.js:596:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/home/user/go/src/github.com/hyperledger/fabric-samples/fabcar/node_modules/fabric-ca-client/lib/FabricCAClientImpl.js:19:11)
at Module._compile (module.js:652:30)
at Object.Module._extensions..js (module.js:663:10)
at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)
at Function.Module._load (module.js:497:3)
[원인 파악 및 해결]
* 이유는 fabric-ca-client 의 FabricCAClientImpl.js 에서 api.js 를 사용하는데
해당 위치 (./fabcar/node_modules/fabric-ca-client/lib/) 에 api.js 파일이 없습니다.
* fabric-ca-client 패키지를 확인해보니 최신버전이 1.1.0 -> 1.1.1 로 업데이트 되면서 내용이 약간씩 바뀌었으며 그로인해 필요한 파일들이 누락된듯 합니다.
* 따라서 저는 기존 1.1.0 버전 모듈로 다시 설치해서 문제를 해결했습니다.
<fabcar 폴더 안의 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.1.0",
"fabric-client": "~1.1.0",
"grpc": "^1.6.0"
},
"author": "Anthony O'Dowd",
"license": "Apache-2.0",
"keywords": [
"Hyperledger",
"Fabric",
"Car",
"Sample",
"Application"
]
}
"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.1.0",
"fabric-client": "~1.1.0",
"grpc": "^1.6.0"
},
"author": "Anthony O'Dowd",
"license": "Apache-2.0",
"keywords": [
"Hyperledger",
"Fabric",
"Car",
"Sample",
"Application"
]
}
[user@localhost fabcar]$ npm install --unsafe-perm
.......
[user@localhost fabcar]$ node enrollAdmin.js
* 추후에 fabric-ca-client 모듈이 안정화 되면 신경쓰지 않으셔도 될 듯 합니다.
* 기존 모듈에서 api.js 파일을 복사해 와도 가능할 것으로 보이지만 그 외 어떤 다른파일이 누락되어 있을지 알 수 없어서
이전버전을 설치하는 방향으로 진행했습니다.
--------------------------------------------------------------
(English)
['fabcar' example error]
* (2018.05.08) If you take a new fabric-samples project and proceed with the fabcar example, the following error occurs.
* Run 'startFabric.sh' -> error when running 'node enrollAdmin.js'
[user@localhost fabcar]$ node enrollAdmin.js
module.js:549
throw err;
^
Error: Cannot find module './api.js'
at Function.Module._resolveFilename (module.js:547:15)
at Function.Module._load (module.js:474:25)
at Module.require (module.js:596:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/home/user/go/src/github.com/hyperledger/fabric-samples/fabcar/node_modules/fabric-ca-client/lib/FabricCAClientImpl.js:19:11)
at Module._compile (module.js:652:30)
at Object.Module._extensions..js (module.js:663:10)
at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)
at Function.Module._load (module.js:497:3)
[Cause & Solution]
* There is no api.js file in that location (./fabcar/node_modules/fabric-ca-client/lib/).
* Checking the fabric-ca-client package shows that the latest version has been updated with 1.1.0 -> 1.1.1, and the contents have been slightly changed, so that the necessary files are missing.
* So I reinstalled it with the existing 1.1.0 version module and solved the problem.
<'package.json' contents in fabcar folder>
{
"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.1.0",
"fabric-client": "~1.1.0",
"grpc": "^1.6.0"
},
"author": "Anthony O'Dowd",
"license": "Apache-2.0",
"keywords": [
"Hyperledger",
"Fabric",
"Car",
"Sample",
"Application"
]
}
{
"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.1.0",
"fabric-client": "~1.1.0",
"grpc": "^1.6.0"
},
"author": "Anthony O'Dowd",
"license": "Apache-2.0",
"keywords": [
"Hyperledger",
"Fabric",
"Car",
"Sample",
"Application"
]
}
[user@localhost fabcar]$ npm install --unsafe-perm
.......
[user@localhost fabcar]$ node enrollAdmin.js
* If the 'fabric-ca-client' module stabilizes later, you do not need to worry about it.
* It seems possible to copy the 'api.js' file from the existing module(1.1.0), but I could not figure out what other files were missing, so i proceeded to install the previous version.
'Programming > BlockChain' 카테고리의 다른 글
[HyperLedger Fabric] 환경 구축 및 Fabcar 소스 실행 (CentOS 7) (2) | 2018.04.24 |
---|