https://allround.tistory.com/4
hyperledger 테스트 환경 사전 구축 진행
먼저 환경 구축이 필요 docker docker-compose docker 설치 (hyperledger 구축 하기 위하여 여러개의 node 들이 필요한데 이를 docker 로 커버침) docker-compose 설치 (docker 를 관리하기 위한 툴 ?) 이미 설..
allround.tistory.com
이전 포스팅에 구조를 사전에 설치 했다는 전제에 테스트 진행

https://hyperledger-fabric.readthedocs.io/en/latest/test_network.html#before-you-begin
Using the Fabric test network — hyperledger-fabricdocs main documentation
Docs » Getting Started - Run Fabric » Using the Fabric test network Edit on GitHub Using the Fabric test network After you have downloaded the Hyperledger Fabric Docker images and samples, you can deploy a test network by using scripts that are provided
hyperledger-fabric.readthedocs.io
기능의 상세한 설명은 영어로된 레퍼런스 사이트를 확인 하면 더욱 도움이 됩니다~
간단 명령팁!
./network.sh down (서비스 종료 - 주의 체인을 전부 초기화 해버림)
./network.sh up (체인 구동)
./network.sh createChannel -c mychannel (채널 구동 - mychannel)
./network.sh up createChannel -c mychannel (한방구동!)
./network.sh deployCC -ccn basic -ccp ../asset-transfer-basic/chaincode-go -ccl go
(체인코드 배포 basic 네트워크에 go언으로 ./asset-transfer-basic/chaincode-go 체인을 배포합니다!)
사전 환경 Path 진행 (.profile 안에 추가 하여 test-network 폴더에서 source ~/.profile 하는것 권장)
#PATH 설정
export PATH=${PWD}/../bin:$PATH
#FABRIC 경로 설정
export FABRIC_CFG_PATH=$PWD/../config/
# Environment variables for Org1 -> peer 환경을 Org1로
export CORE_PEER_TLS_ENABLED=true
export CORE_PEER_LOCALMSPID="Org1MSP"
export CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp export CORE_PEER_ADDRESS=localhost:7051
# Environment variables for Org2 -> peer 환경을 Org2로
export CORE_PEER_TLS_ENABLED=true
export CORE_PEER_LOCALMSPID="Org2MSP"
export CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp export CORE_PEER_ADDRESS=localhost:9051
----------------------------------------------------------------------------------------------
@ peer 명령을 통하여 InitLedger 를 실행함 (체인 내부에 func 실행)
peer chaincode invoke -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --tls --cafile "${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem" -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":[]}
성공하면 [ -> INFO 001 Chaincode invoke successful. result: status:200 ] 반환됨
----------------------------------------------------------------------------------------------
@ peer 명령을통하여 Init 데이터 전체 확인 (이것도 체인내부에 func 를 실행함)
peer chaincode query -C mychannel -n basic -c '{"Args":["GetAllAssets"]}'
성공하면 결과값!
[ {"ID": "asset1", "color": "blue", "size": 5, "owner": "Tomoko", "appraisedValue": 300}, {"ID": "asset2", "color": "red", "size": 5, "owner": "Brad", "appraisedValue": 400}, {"ID": "asset3", "color": "green", "size": 10, "owner": "Jin Soo", "appraisedValue": 500}, {"ID": "asset4", "color": "yellow", "size": 10, "owner": "Max", "appraisedValue": 600}, {"ID": "asset5", "color": "black", "size": 15, "owner": "Adriana", "appraisedValue": 700}, {"ID": "asset6", "color": "white", "size": 15, "owner": "Michel", "appraisedValue": 800} ]
----------------------------------------------------------------------------------------------
@ peer 명령을 통해서 TransferAsset asset6 Christopher 전달 (asset6 의 onwer 를 변경하는 명령)
peer chaincode invoke -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --tls --cafile "${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem" -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":"TransferAsset","Args":["asset6","Christopher"]}'
성공시 응답 [chaincodeCmd] chaincodeInvokeOrQuery -> INFO 001 Chaincode invoke successful. result: status:200
----------------------------------------------------------------------------------------------
@ peer 명령을 통해서 asset6 을 조회함 (사이트에선 Org2로 설정 체인지해서 하는데... 뭐 그게 그거라..)
peer chaincode query -C mychannel -n basic -c '{"Args":["ReadAsset","asset6"]}'
결과값 {"ID":"asset6","color":"white","size":15,"owner":"Christopher","appraisedValue":800}
----------------------------------------------------------------------------------------------
서버구동 방법에 대해선 network.sh 스크립트를 분석 할 필요가 있고
test-network 로 서버를 구축하고 거기에 따른 peer 명령으로 chaindata를 입력 조회 하는 부분에 대해서 확인 을 했습니다
물론 이것을 서비스 할려면 peer명령이 아닌 직접 chain app을 개발 하는 부분이 필요합니다
지원 언어는 go/java/javascript 가 샘플로 제공됩니다만... 개발자가 편한 언어로 하면 될듯 합니다만... 체인블럭에서는 go 가 대새적인 언어 인듯 하네여 (기회가 되면 다른 포스트에서 시간될떄 한번 포스팅을 해보겠습니다~)
'Hyperledger Fabric' 카테고리의 다른 글
원장백업? (0) | 2021.09.02 |
---|---|
hyperledger 테스트 환경 사전 구축 진행 (0) | 2021.09.02 |
Ubuntu 셋팅 설치 (0) | 2021.09.02 |
하이퍼레저패브릭 구동 테스트 (셋팅준비) (0) | 2021.09.01 |