
본 프로젝트는 블록체인 놀이터 교육장에서 제공하는 교육 프로그램인 하이퍼레저 패브릭을 활용한 블록체인 앱(dApp) 개발에서 수행한 개인 프로젝트로 기업 간 거래에서 발생하는 거래 데이터 중 정산 데이터를 블록체인으로 연동하여 처리하는 “블록체인 기반 실시간 기업 간 정산 시스템 기술” 개발을 목표로 한다.
“블록체인 기반 실시간 기업 간 정산 시스템 기술” 의 디렉토리는 총 4개로 구성된다.
- chaincode: 블록체인 비즈니스 네트워크에 배포될 실시간 정산을 위한 체인코드 소스 디렉토리 (javascript로 작성)
- gateway: 블록체인 비즈니스 네트워크에 배포된 실시간 정산 체인코드와 연동하여 사용자의 요청에 의해 데이터를 전달하는 HTTP 기반 실시간 정산을 위한 API 서버 소스
- network: 실시간 정산 비즈니스 네트워크를 구성하는 하이퍼레저 기반 실시간 정산 비즈니스 네트워크 구성 소스
- ui: 사용자 UI
export SETDAPPHOME=/home/aaa/setdApp
- 블록체인 비즈니스 네트워크 구동
- Org1 인증서 생성
- Org2 인증서 생성
- Channel-Artifacts 생성: 6개의 프로파일을 생성한다.이 중 Org1OrdererGenesis, Org1Channel를 사용한다.
- Org1OrdererGenesis
- Org1Channel
- Org2OrdererGenesis
- Org2Channel
- Org12OrdererGenesis
- Org12Channel
- 블록체인 네트워크를 구동
- Settlement Business Network 구동 (체인코드 1.0 배포)
- Org2 추가 (체인코드 2.0 배포)
cd ${SETDAPPHOME}/network
./start.sh
- hosts 파일 수정
아래 정보를 추가한다. 이유는 인증서를 내려받기 위해서 ca에 접속하는데
도메인 이름으로 접속하기 때문에 아래와 같이 hosts 파일에 ca 정보를 추가한다.
sudo vi /etc/hosts
127.0.0.1 ca.org1.biz1.com
127.0.0.1 ca.org2.biz2.com
- connection profile 수정
org1_connection.json, org1_connection.yaml, org2_connection.json, org2_connection.yaml 파일 내용 중
tlsCaCert path 부분을 각자의 디렉토리에 맞게 수정한다.
...
"orderers": {
"orderer.settle.com": {
"url": "grpcs://localhost:7050",
"grpcOptions": {
"ssl-target-name-override": "orderer.settle.com",
"grpc-max-send-message-length": -1
},
"tlsCACerts": {
"path": "<디렉토리 변경>/network/crypto-config/ordererOrganizations/settle.com/tlsca/tlsca.settle.com-cert.pem"
}
}
},
"peers": {
"peer0.org1.biz1.com": {
"url": "grpcs://localhost:7051",
"tlsCACerts": {
"path": "<디렉토리 변경>/network/crypto-config/peerOrganizations/org1.biz1.com/tlsca/tlsca.org1.biz1.com-cert.pem"
},
"grpcOptions": {
"ssl-target-name-override": "peer0.org1.biz1.com"
}
},
"peer1.org1.biz1.com": {
"url": "grpcs://localhost:8051",
"tlsCACerts": {
"path": "<디렉토리 변경>/setdApp/network/crypto-config/peerOrganizations/org1.biz1.com/tlsca/tlsca.org1.biz1.com-cert.pem"
},
"grpcOptions": {
"ssl-target-name-override": "peer1.org1.biz1.com"
}
}
},
...
- 게이트웨이 구동
cd ${SETDAPPHOME}/gateway/test/javascript/org1
npm install
rm -rf ${SETDAPPHOME}/gateway/wallet/org1
node enrollAdmin.js
node registerUser.js
node createRate.js
cd ${SETDAPPHOME}/gateway
yarn
PORT=3002 ORG=org1 yarn start
- UI 구동
cd ${SETDAPPHOME}/ui
yarn
yarn start
- 블록체인 비즈니스 네트워크 종료
cd ${SETDAPPHOME}/network
./stop.sh

Leave a Reply