Hyperledger

[Hyperledger] p.51 Balance Transfer 예제 따라하기 (unbuntu 18.04)

bocoder
728x90
반응형

책을 따라하다가 중간에 해결 불가능한 에러 발생... 앞서 first-network 예제를 따라하며 중복되는 부분 때문인 것 같다고 생각해서 다시 fabric-samples 지우고 설치

curl -sSL http://bit.ly/2ysbOFE | bash -s 1.4.0

0-1. 백그라운드에서 네트워크 구동

cd ~/go/src/github.com/hyperledger/fabric/fabric-samples/balance-transfer/artifacts
docker-compose -f ./docker-compose.yaml up -d

 

===============에러 발생 시================

> ERROR: for orderer.example.com Cannot create container for service orderer.example.com: Conflict. The container name "/orderer.example.com" is already in use by container "20beeb07348333c09fcb9bc0a

기존 예제에서 실행했던 container 때문인 것으로 추정,, 아래 명령어로 모두 삭제 후 재실행

docker rm $(docker ps -a -q)

======================================

0-2. fabric-client fabric-ca-client 노드 모듈 설치 (다른 위치에서 실행 시 하다가 에러남..)

cd ~/go/src/github.com/hyperledger/fabric/fabric-samples/balance-transfer
npm install

 

0-3. 포트 지정 및 app.js 구동

port=4000 node app

1. 멤버와 조직 등록

curl -s -X POST http://localhost:4000/users -H "content-type: application/x-www-form-urlencoded" -d 'username=Jim&orgName=Org1'
curl -s -X POST http://localhost:4000/users -H "content-type: application/x-www-form-urlencoded" -d 'username=Barry&orgName=Org2'
sudo apt install jq
ORG1_TOKEN=$(echo $ORG1_TOKEN | jq ".token" | sed "s/\"//g")
ORG1_TOKEN=$(echo $ORG1_TOKEN | jq ".token" | sed "s/\"//g")

 

===================미동작====================

위 명령어로 안들어 가진다...왜지?.. 그냥 직접 "token" 결과값을 복사해서 넣어주자 (개인별로 다름)

ORG1_TOKEN="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1NzcxOTk1MTksInVzZXJuYW1lIjoiSmltIiwib3JnTmFtZSI6Ik9yZzEiLCJpYXQiOjE1NzcxNjM1MTl9.akU7QMh_jJYsofYjwO-FAlEyiwqMS5Sx90YsK0gRiy8"
ORG2_TOKEN="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1NzcxOTk2OTQsInVzZXJuYW1lIjoiQmFycnkiLCJvcmdOYW1lIjoiT3JnMiIsImlhdCI6MTU3NzE2MzY5NH0.cQzcl78ebOlcu1GbMFgzPpTh0PCAzjOVkTwa9sIbJsE"

=========================================

2. 채널 생성

curl -s -X POST http://localhost:4000/channels -H "authorization: Bearer $ORG1_TOKEN" -H "content-type: application/json" -d '{
"channelName":"mychannel",
"channelConfigPath":"../artifacts/channel/mychannel.tx"
}'

3. 채널에 조인하기

curl -s -X POST http://localhost:4000/channels/mychannel/peers \
-H "authorization: Bearer $ORG1TOKEN" \
-H "content-type: application/json" \
-d '{ "peers": ["peer0.org1.example.com","peer1.org1.example.com"]}'

=====================에러 발생=========================

>UnauthorizedError: No authorization token was found at middleware (/home/asd/go/src/github.com/hyperledger/fabric/fabric-samples/balance-transfer/node_modules/express-jwt/lib/index.js:76:21)

TOKEN 값을 직접 넣어줘서 그런가?.......안된다........뭐지 뭘까.....

실수로 VM을 suspend 하지않고 power off 했다... 그리고 역시나 ubuntu가 재실행되지 않는다.

이유를 모르겠네,, 다시 지우고 재설치 한다..

일단 해결못하고 포기 ... page.55

====================================================

(참고) # admin 계정의 토큰 값 출력

curl 'http://localhost:4000/users' -H 'Content-Type: application/json' -d '{"username":"admin"}' | jq -r .token

 

728x90
반응형