ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • building your first network
    하이퍼레저 패브릭/실습 2019. 3. 31. 10:44

    building your first network

    ../bin/cryptogen generate --config=./crypto-config.yaml

     인증서 생성

    export FABRIC_CFG_PATH=$PWD

     configtxgen toolconfigtx.yaml를 찾기위해 살펴봐야하는 폴더를 알려줌.

    ../bin/configtxgen -profile TwoOrgsOrdererGenesis -outputBlock ./channel-artifacts/genesis.block

     configtxgen tool을 이용해 orderer genesis block 생성

    export CHANNEL_NAME=mychannel

     CHANNEL_NAME을 전체에서 사용할 수 있도록 환경변수로 설정.

    ../bin/configtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./channel-artifacts/channel.tx -channelID $CHANNEL_NAME

     채널구성 트랜잭션 생성

    ../bin/configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org1MSPanchors.tx -channelID $CHANNEL_NAME -asOrg Org1MSP

     org1의 앵커피어 설정

    ../bin/configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org2MSPanchors.tx -channelID $CHANNEL_NAME -asOrg Org2MSP

     org2의 앵커피어 설정

    docker-compose -f docker-compose-cli.yaml up -d

     네트워크 시작

     

     

    CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp

    CORE_PEER_ADDRESS=peer0.org1.example.com:7051

    CORE_PEER_LOCALMSPID="Org1MSP"

    CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt

     환경변수 4개 설정

     

    docker exec -it cli bash

     docker exec커맨드를 이용해 CLI 컨테이너에 접속

      root@0d78bb69300d:/opt/gopath/src/github.com/hyperledger/fabric/peer#

     

    export CHANNEL_NAME=mychannel

    peer channel create -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./channel-artifacts/channel.tx --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem

     채널 생성

     블록이 생성된다.

    peer channel join -b mychannel.block

     peer0.org1.example.commychannel에 조인

    CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp CORE_PEER_ADDRESS=peer0.org2.example.com:7051 CORE_PEER_LOCALMSPID="Org2MSP" CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt peer channel join -b mychannel.block

     CLI 컨테이너의 기본 환경변수를 재정의하여 peer0.org2.example.com mychannel에 조인

    peer channel update -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./channel-artifacts/Org1MSPanchors.tx --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem

     Org1의 앵커 피어를 peer0.org1.example.com로 정의하도록 채널 정의를 업데이트

    CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp CORE_PEER_ADDRESS=peer0.org2.example.com:7051 CORE_PEER_LOCALMSPID="Org2MSP" CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt peer channel update -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./channel-artifacts/Org2MSPanchors.tx --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem

    → Org2의 앵커 피어를 peer0.org2.example.com로 정의하도록 채널 정의를 업데이트

    peer chaincode install -n mycc -v 1.0 -p github.com/chaincode/chaincode_example02/go/

     Go 체인코드 설치(org1에 설치)

     

    export CHANNEL_NAME=mychannel

    CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp CORE_PEER_ADDRESS=peer0.org2.example.com:7051 CORE_PEER_LOCALMSPID="Org2MSP" CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt peer chaincode install -n mycc -v 1.0 -p github.com/chaincode/chaincode_example02/go/

     org2에 체인코드 설치

    peer chaincode instantiate -o orderer.example.com:7050 --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C $CHANNEL_NAME -n mycc -v 1.0 -c '{"Args":["init","a", "100", "b","200"]}' -P "AND ('Org1MSP.peer','Org2MSP.peer')"

     체인코드 인스턴스화

     

     

    peer chaincode query -C $CHANNEL_NAME -n mycc -c '{"Args":["query","a"]}'

     a의 값을 불러오기

     

     

    peer chaincode invoke -o orderer.example.com:7050 --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C $CHANNEL_NAME -n mycc --peerAddresses peer0.org1.example.com:7051 --tlsRootCertFiles /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt --peerAddresses peer0.org2.example.com:7051 --tlsRootCertFiles /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt -c '{"Args":["invoke","a","b","10"]}'

    → a에서 b10만큼 이동

    peer chaincode query -C $CHANNEL_NAME -n mycc -c '{"Args":["query","a"]}'

     

     a를 쿼리했을 때 값이 90으로 바뀐 것을 확인할 수 있다.

     

    '하이퍼레저 패브릭 > 실습' 카테고리의 다른 글

    CA 서버, CA 클라이언트  (0) 2019.04.01
    Adding an Org to a Channel  (0) 2019.04.01
    commercial paper tutorial  (0) 2019.04.01
    Writing Your First Application - new  (0) 2019.03.31
    Fabric CA User's Guide  (1) 2019.03.31
Designed by Tistory.