測驗peer節點寫入檔案位置
1.原始碼中定位到peer節點的區塊寫入位置
common/ledger/blkstorage/blockfile_mgr.go
cd /home/yqcong/go/src/github.com/hyperledger/fabric/common/ledger/blkstorage/blockfile_mgr.go
2.對檔案進行改造,可追加陳述句進行追蹤
fmt.Print("\nVery Good! test for write block to file:%s \n",deriveBlockfilePath(mgr.rootDir,mgr.blockfilesInfo.latestFileNumber))

3.原始碼編譯
只需再fabric目錄下單獨編譯peer模塊
make peer
4.啟動網路
我這里使用的是test-network測驗網路
cd ~/go/src/github.com/hyperledger/fabric/fabric-samples/test-network
啟動網路
./network.sh up
創建通道
./network.sh createChannel
部署鏈碼
./network.sh deployCC -ccn basic -ccp ../asset-transfer-basic/chaincode-go -ccl go
5.與網路進行互動
確保二進制檔案可用
export PATH=$PATH:$GOPATH/src/github.com/hyperledger/fabric/release/linux-amd64/bin
FABRIC_CFG_PATH設定為指向fabric-samples的core.yaml檔案:
export FABRIC_CFG_PATH=$PWD/../config/
設定環境變數,以允許作為Org1操作peer CLI
# Environment variables for 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
初始化賬本,涉及區塊寫入
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":[]}'
獲取通道資訊(-c:指定通道名稱)
peer channel getinfo -c mychannel

可再次呼叫鏈碼,再次查詢資訊

此時并沒有發現我們修改的資訊
打開一個新的終端視窗
docker logs peer0.org1.example.com
在日志中發現蹤跡,確實寫入區塊

關于peer節點的一些常見命令補充
使用newest選項獲取最新的區塊
peer channel fetch newest mychannel.block -c mychannel
ls -l
可以看到最新的區塊是7,區塊資訊寫入mychannel.block
獲取指定的區塊,如第5塊,并存入默認檔案夾
peer channel fetch 5 -c mychannel
結果如下

peer channel list
列出當前節點加入的通道清單

轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/328165.html
標籤:區塊鏈
