티스토리 뷰
Blockchain/Hyperledger Fabric
[Hyperledger Fabric v2.3] fabric-samples/test-network 실행 및 체인코드 배포 방법
miiingo 2021. 4. 15. 17:38반응형
■ 사전 준비
fabric-samples/test-network 프로젝트를 실행하기 위해서는 다음이 필요합니다.
- Git
- cURL
- Docker (20.10.5)
- Docker Compose (1.27.2)
- Go
- jq
● 설치 확인
설치를 확인합니다.
# Git 설치 확인 (version: 2.7.4)
git version
# cURL 설치 확인 (version: 7.47.0)
curl --version
# Docker 설치 확인 (version: 20.10.5)
docker version
# Docker Compose 설치 확인 (version: 1.27.2)
docker-compose -v
# go 설치 확인 (version: go1.15.10)
go version
# jq 설치 확인 (version: jq-1.5-1-a5b5cbe)
jq --version
설치되지 않은 것들에 대해서는 별도의 설치 과정이 필요합니다.
■ 설치 방법
● Git 설치
# Git 설치
sudo apt-get install git -y
# Git 설치 확인 (version: 2.7.4)
git version
● cURL 설치
# cURL 설치
sudo apt-get install curl -y
# cURL 설치 확인 (version: 7.47.0)
curl --version
● Docker 설치
# 패키지 설치
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
software-properties-common
# Docker 공식 GPG 키 추가
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
# stable 저장소 설정
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
# 패키지 업데이트
sudo apt-get update
# 최신 버전의 Docker CE 설치
sudo apt-get -y install docker-ce
# 사용자에게 Docker 명령어 처리 가능하게 권한 부여
sudo usermod -a -G docker $(id -un)
# Docker 설치 확인 (version: 20.10.5)
docker version
● Docker Compose 설치
test-network를 정상적으로 수행하기 위해선 Docker Compose의 최신 버전이 필요합니다. 기존에 설치된 이전 버전이 있다면 지우고 다시 설치해야 합니다.
여기에서는 1.11.2 버전을 지우고, 1.27.2 버전을 새로 설치합니다.
# 기존에 설치된 Docker Compose 제거
sudo rm /usr/local/bin/docker-compose
# Docker Compose 제거 확인
docker-compose -v
# Docker Compose 1.27.2 버전 설치
sudo curl -L "https://github.com/docker/compose/releases/download/1.27.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 바이너리에 실행 권한 추가
sudo chmod +x /usr/local/bin/docker-compose
# Docker Compose 설치 확인 (version: 1.27.2)
docker-compose -v
● Go 설치
cd /opt
# go1.13 설치
sudo wget https://golang.org/dl/go1.13.linux-amd64.tar.gz
sudo tar -C /opt -xzf go1.13.linux-amd64.tar.gz
sudo rm go1.13.linux-amd64.tar.gz
# go1.15 설치
sudo wget https://golang.org/dl/go1.15.10.linux-amd64.tar.gz
sudo tar -C /opt -xzf go1.15.10.linux-amd64.tar.gz
sudo rm go1.15.10.linux-amd64.tar.gz
# go 설치 확인 (version: go1.15.10)
go version
● jq 설치
# jq 설치
sudo apt-get install jq -y
# jq 설치 확인 (version: jq-1.5-1-a5b5cbe)
jq --version
■ fabric-samples/test-network 실행
● Fabric 네트워크 실행
# 기존의 fabric-samples 제거 후 새로 설치
cd /opt/gopath/src/github.com/hyperledger/
rm -rf fabric-samples/
curl -sSL https://bit.ly/2ysbOFE | bash -s -- 2.3.1 1.4.9
cd /opt/gopath/src/github.com/hyperledger/fabric-samples/test-network
# 기본 네트워크 실행
./network.sh up createChannel -c mychannel
# CA 및 couchdb를 사용하는 네트워크 실행
./network.sh up createChannel -ca -c mychannel -s couchdb
● 체인코드 배포 및 실행 테스트
# 기본 환경변수 세팅
export PATH=${PWD}/../bin:$PATH
export FABRIC_CFG_PATH=$PWD/../config/
export CORE_PEER_TLS_ENABLED=true
export ORDERER_CA=${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
export CORE_PEER_LOCALMSPID="Org1MSP"
export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
export CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
export CORE_PEER_ADDRESS=localhost:7051
# 기본 샘플 체인코드 배포 (asset-transfer-basic)
./network.sh deployCC -ccn basic -ccp ../asset-transfer-basic/chaincode-javascript/ -ccl javascript
# 기본 샘플 체인코드 invoke
peer chaincode invoke -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --tls --cafile "$ORDERER_CA" -C mychannel -n basic --peerAddresses localhost:7051 --tlsRootCertFiles ${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt --peerAddresses localhost:9051 --tlsRootCertFiles ${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt -c '{"function":"InitLedger","Args":[]}'
# 기본 샘플 체인코드 query
peer chaincode query -C mychannel -n basic -c '{"Args":["GetAllAssets"]}'
# Private Data 샘플 체인코드 배포 (asset-transfer-private-data)
./network.sh deployCC -ccn private -ccp ../fabric-samples/asset-transfer-private-data/chaincode-go/ -ccl go -ccep "OR('Org1MSP.peer','Org2MSP.peer')" -cccg ../asset-transfer-private-data/chaincode-go/collections_config.json
# Private Data 샘플 체인코드 invoke
export ASSET_PROPERTIES=$(echo -n "{\"objectType\":\"asset\",\"assetID\":\"asset1\",\"color\":\"green\",\"size\":20,\"appraisedValue\":100}" | base64 | tr -d \\n)
peer chaincode invoke -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --tls --cafile "$ORDERER_CA" -C mychannel -n private -c '{"function":"CreateAsset","Args":[]}' --transient "{\"asset_properties\":\"$ASSET_PROPERTIES\"}"
# Private Data 샘플 체인코드 query
peer chaincode query -C mychannel -n private -c '{"function":"ReadAsset","Args":["asset1"]}'
■ fabric-samples/test-network 종료
● Fabric 네트워크 종료
# 네트워크 실행 종료
cd /opt/gopath/src/github.com/hyperledger/fabric-samples/test-network
./network.sh down
■ 참고 사이트
hyperledger/fabric-samples Github - https://github.com/hyperledger/fabric-samples
Hyperledger Fabric Docs - https://hyperledger-fabric.readthedocs.io/en/latest/
반응형
'Blockchain > Hyperledger Fabric' 카테고리의 다른 글
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Blockchain
- 직딩잇템
- Hyperledger Fabric v1.1
- 블록 체인
- Hyperledger Fabric
- 문제풀이
- 코테
- 어서와 데이터는 처음이지
- 빅데이터
- ubuntu
- 빅데이터 강의
- DOCs
- 하이퍼레저 페브릭
- Hyperledger Indy
- 하이퍼레저 인디
- 기초 of 기초 데이터 개념
- Hyperledger Fabric v1.2
- 코딜리티
- 빅데이터 기초
- 코딩테스트
- 하이퍼레저 패브릭
- ambrosus
- 암브로셔스
- docker
- 알고리즘
- javascript
- 빅데이터 교육
- Private Data
- 블록체인
- codility
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함