FABRIC單機開發者模式啟動


在開始之前需要導出一個自定義變量,方便后續操作:

export FABRIC=/opt/gopath/src/github.com/hyperledger/fabric/devenv

1.在真機上執行如下操作,進入虛擬機

cd $FABRIC
vagrant up//啟動虛擬機
vagrant ssh//進入虛擬機

2.在虛擬機中執行如下操作,啟動memberserv和peer,並保持該終端的啟動,命名為T1

cd /opt/gopath/src/github.com/hyperledger/fabric/yaml
docker-compose -f docker-compose-dev.yaml up

附docker-compose-dev.yaml

membersrvc:
  image: hyperledger/fabric-membersrvc
  ports:
    - "7054:7054"
  command: membersrvc
vp0:
  image: hyperledger/fabric-peer
  ports:
    - "7050:7050"
    - "7051:7051"
    - "7053:7053"
  environment:
    - CORE_PEER_ADDRESSAUTODETECT=true
    - CORE_VM_ENDPOINT=unix:///var/run/docker.sock
    - CORE_LOGGING_LEVEL=DEBUG
    - CORE_PEER_ID=vp0
    - CORE_PEER_PKI_ECA_PADDR=membersrvc:7054
    - CORE_PEER_PKI_TCA_PADDR=membersrvc:7054
    - CORE_PEER_PKI_TLSCA_PADDR=membersrvc:7054
    - CORE_SECURITY_ENABLED=false
    - CORE_SECURITY_ENROLLID=test_vp0
    - CORE_SECURITY_ENROLLSECRET=MwYpmSRjupbT
  links:
    - membersrvc
  command: sh -c "sleep 5; peer node start --peer-chaincodedev"

3.新開一個終端,用於啟動chaincode程序,保持該終端的開啟,命名為T2

 

cd $FABRIC
vagrant ssh//進入虛擬機
cd /opt/gopath/src/github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02//進入要部署的chaincode所在目錄
go build//編譯代碼,生成chaincode_example02可執行程序
CORE_CHAINCODE_ID_NAME=mycc01 CORE_PEER_ADDRESS=172.17.0.3:7051 ./chaincode_example02//注冊chaincode,並為其注冊一個名稱CORE_CHAINCODE_ID_NAME

 

返回信息如下:

02:06:56.192 [shim] DEBU : Peer address: 172.17.0.3:7051
02:06:56.197 [shim] DEBU : os.Args returns: [./chaincode_example02]
02:06:56.200 [shim] DEBU : Registering.. sending REGISTER
02:06:56.228 [shim] DEBU : []Received message REGISTERED from shim
02:06:56.229 [shim] DEBU : []Handling ChaincodeMessage of type: REGISTERED(state:created)
02:06:56.229 [shim] DEBU : Received REGISTERED, ready for invocations

 

4.新開一個終端,用於部署chaincode程序,命名為T3

 

cd $FABRIC
vagrant ssh//進入虛擬機
CORE_PEER_ADDRESS=172.17.0.3:7051 peer chaincode deploy -n mycc01 -c '{ "Args":["init"]}'//部署chaincode

 

在T2終端打印:

02:07:10.906 [shim] DEBU : [mycc01]Received message INIT from shim
02:07:10.906 [shim] DEBU : [mycc01]Handling ChaincodeMessage of type: INIT(state:established)
02:07:10.907 [shim] DEBU : Entered state init
02:07:10.907 [shim] DEBU : [mycc01]Received INIT, initializing chaincode
02:07:10.908 [shim] DEBU : [mycc01]Init succeeded. Sending COMPLETED
02:07:10.909 [shim] DEBU : [mycc01]Move state message COMPLETED
02:07:10.909 [shim] DEBU : [mycc01]Handling ChaincodeMessage of type: COMPLETED(state:init)
02:07:10.909 [shim] DEBU : [mycc01]send state message COMPLETED
在T3終端打印:

Deploy chaincode: mycc01

這里返回chaincode id,生產模式下打印的是chaincode對應的hash值

 

之后就可以進行相應的invoke或者query操作了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM