티스토리 뷰

반응형

■ 사전 준비

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 Githubhttps://github.com/hyperledger/fabric-samples

 

hyperledger/fabric-samples

Contribute to hyperledger/fabric-samples development by creating an account on GitHub.

github.com

Hyperledger Fabric Docshttps://hyperledger-fabric.readthedocs.io/en/latest/

 

A Blockchain Platform for the Enterprise — hyperledger-fabricdocs main documentation

Docs » A Blockchain Platform for the Enterprise Edit on GitHub Built with Sphinx using a theme provided by Read the Docs.

hyperledger-fabric.readthedocs.io

 

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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 29 30 31
글 보관함