지난번 포스트에서 Windows10에 docker와 hyperledger fabric samples 실행을 성공했다고 언급한적이 있습니다. 그리고는 제대로 테스트하기 위해서 제 github에 올라가있는 basic-netowrk를 다운받아 실행했습니다. 항상 공부용 맥북에서만 개발,테스트 후 원격 저장소에 푸쉬했기 때문에 Windows에서도 문제없이 돌아갈지 궁금했거든요.
start.sh로 실행했는데.. 시작부터 에러가 발생합니다.
1 2 3 4 5 6 7 8 9 10 11
$ ./start.sh org1.example.com 2020-05-29 11:56:21.048 KST [common.tools.configtxgen] main -> FATA 001 Missing channelID, please specify it with '-channelID' 2020-05-29 11:56:21.116 KST [common.tools.configtxgen] main -> INFO 001 Loading configuration 2020-05-29 11:56:21.142 KST [common.tools.configtxgen.localconfig] Load -> INFO 002 Loaded configuration: C:\Users\KimYongTaek\hyperledger-fabric-basic-network\configtx.yaml 2020-05-29 11:56:21.142 KST [common.tools.configtxgen] doOutputChannelCreateTx -> INFO 003 Generating new channel configtx 2020-05-29 11:56:21.142 KST [common.tools.configtxgen] main -> FATA 004 Error on outputChannelCreateTx: could not generate default config template: error parsing configuration: error adding policies to channel group: no policies defined 2020-05-29 11:56:21.189 KST [common.tools.configtxgen] main -> INFO 001 Loading configuration 2020-05-29 11:56:21.225 KST [common.tools.configtxgen.localconfig] Load -> INFO 002 Loaded configuration: C:\Users\KimYongTaek\hyperledger-fabric-basic-network\configtx.yaml 2020-05-29 11:56:21.225 KST [common.tools.configtxgen] doOutputAnchorPeersUpdate -> INFO 003 Generating anchor peer update 2020-05-29 11:56:21.225 KST [common.tools.configtxgen] main -> FATA 004 Error on inspectChannelCreateTx: error parsing profile as ch
그럼 그렇지.. 쉽게 될리가..
에러 로그는 configtxgen을 실행하면서 -channelID 인자를 넣어주지 않아서 생기는 문제였습니다.
configtxgen의 위치를 찾아보니 최신 버전으로 설치한 fabric-samples/bin안에 있는 파일을 참조하고 있었습니다. 최신 fabric 버전과 구버전 실행 스크립트간의 버전 불일치로 발생한 문제로 보입니다. 맥북의 fabric-samples는 5개월 전쯤에 1.4버전대로 설치한것으로 기억합니다.
설치한 fabric의 버전을 알기 위해 맥북(MacOs)과 데스크탑(Windows)의 cryptogen의 version을 확인해봅니다.
MacOs
1 2 3 4 5 6 7
% cd fabric-samples/bin bin % ./cryptogen version cryptogen: Version: 1.4.3 Commit SHA: b8c4a6a Go version: go1.11.5 OS/Arch: darwin/amd64
Windows
1 2 3 4 5 6 7
$ cd fabric-samples/bin $ cryptogen version cryptogen: Version: 2.1.0 Commit SHA: 1bdf97537 Go version: go1.14.1 OS/Arch: windows/amd64
역시 예상한 대로 버전이 상이합니다.
Windows에 깔려있는 fabric-samples를 1.4.3버전으로 재설치 후 다시 실행해보니 정상 작동합니다.
야호!
이제 basic-network의 fabric-samples/bin 폴더의 의존성을 끊기 위해 1.4.3버전의 bin 폴더를 basic-network안에 복사해 넣고 start.sh의 bin폴더 경로를 방금 복사한 1.4.3 버전의 bin 폴더로 지정했습니다. 앞으로 다른 환경에서도 잘 동작할겁니다 :)