啓動一個Peer
節點:html
peer node start
獲取當前節點的狀態信息node
peer node status
重置當前節點加入的通道全部的數據到創世區塊,意思就是說刪除當前Peer
接收到的全部區塊信息。執行當前命令時,節點必須處於離線狀態,當節點再次上線時,將會從Orderer
或其餘Peer
節點處從新接收區塊數據。git
peer node reset
回滾當前Peer
節點接收到的區塊數據到指定的區塊號。執行當前命令時,節點必須處於離線狀態,當節點再次上線時,將會從Orderer
或其餘Peer
節點處從新接收區塊數據。github
peer node rollback -b 須要回滾到的區塊號 -c 指定的通道ID
這一部分涉及Peer
節點對通道的操做服務器
建立一個通道並將創世區塊寫入文件網絡
peer channel create -c 通道ID -f channel.tx -f 超時值 #全局變量 --tls 是否使用TLS加密 --cafile CA證書路徑 --certfile X509公鑰文件路徑 -o Orderer節點主機:端口 #例子 peer channel create -c mychannel --orderer orderer.example.com:7050 -f ./createchannel.txn -t 30s
獲取一個具體區塊信息並寫入文件併發
peer channel fetch <newest|oldest|config|(number)> [輸出文件路徑名] -c 通道ID #全局變量 --tls 是否使用TLS加密 --cafile CA證書路徑 --certfile X509公鑰文件路徑 -o Orderer節點主機:端口 #例子 peer channel fetch newest mychannel.block -c mychannel --orderer orderer.example.com:7050 peer channel fetch 16 -c mychannel --orderer orderer.example.com:7050
獲取具體的通道信息app
peer channel getinfo -c 通道ID #全局變量 --tls 是否使用TLS加密 --cafile CA證書路徑 --certfile X509公鑰文件路徑 -o Orderer節點主機:端口 #例子 peer channel getinfo -c mychannel
將一個指定的節點加入通道測試
peer channel join -b 包含創世區塊的路徑 #全局變量 --tls 是否使用TLS加密 --cafile CA證書路徑 --certfile X509公鑰文件路徑 -o Orderer節點主機:端口 #例子 peer channel join -b ./mychannel.genesis.block
列出指定的節點已加入的通道fetch
peer channel list #全局變量 --tls 是否使用TLS加密 --cafile CA證書路徑 --certfile X509公鑰文件路徑 -o Orderer節點主機:端口
對文件系統中用於更新配置信息的文件簽名
peer channel signconfigtx -f 文件 #全局變量 --tls 是否使用TLS加密 --cafile CA證書路徑 --certfile X509公鑰文件路徑 -o Orderer節點主機:端口 #例子 peer channel signconfigtx -f updatechannel.tx
簽名併發送配置更新文件到通道中,通常用於錨節點更新
peer channel update -c 通道ID -f 配置更新文件 #全局變量 --tls 是否使用TLS加密 --cafile CA證書路徑 --certfile X509公鑰文件路徑 -o Orderer節點主機:端口 #例子 peer channel update -c mychannel -f ./updatechannel.txn -o orderer.example.com:7050
這一部分涉及Peer
節點對鏈碼的相關操做
打包鏈碼數據爲可部署的結構,並存儲到當前Peer
節點的路徑,簡而言之就是安裝鏈碼。
peer chaincode install -l 編寫鏈碼所使用的語言 -n 鏈碼名稱 -p 鏈碼路徑 -v 鏈碼版本 #全局變量 --tls 是否使用TLS加密 --cafile CA證書路徑 --certfile X509公鑰文件路徑 -o Orderer節點主機:端口 #例子 peer chaincode install -n mycc -v 1.0 -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02
鏈碼實例化
peer chaincode instantiate -C 通道ID -l 編寫鏈碼所使用的語言 -n 鏈碼名稱 -v 鏈碼版本 -P 指定鏈碼的策略 -E 指定對該用戶鏈碼進行背書的系統鏈碼 -V 指定對該用戶鏈碼進行驗證的系統鏈碼 #全局變量 --tls 是否使用TLS加密 --cafile CA證書路徑 --certfile X509公鑰文件路徑 -o Orderer節點主機:端口 #例子 peer chaincode instantiate -o orderer.example.com:7050 --tls --cafile $ORDERER_CA -C mychannel -n mycc -v 1.0 -c '{"Args":["init","a","100","b","200"]}' -P "AND ('Org1MSP.peer','Org2MSP.peer')"
調用鏈碼的功能
peer chaincode invoke -C 通道ID -n 鏈碼名稱 -c 傳入的參數 #全局變量 --tls 是否使用TLS加密 --cafile CA證書路徑 --certfile X509公鑰文件路徑 -o Orderer節點主機:端口 #例子 peer chaincode invoke -o orderer.example.com:7050 -C mychannel -n mycc --peerAddresses peer0.org1.example.com:7051 --peerAddresses peer0.org2.example.com:9051 -c '{"Args":["invoke","a","b","10"]}'
若是指定通道,則列出已實例化的鏈碼,不然列出全部已安裝的鏈碼
peer chaincode list -C 通道ID --installed --instantiated #全局變量 --tls 是否使用TLS加密 --cafile CA證書路徑 --certfile X509公鑰文件路徑 -o Orderer節點主機:端口 #例子 peer chaincode list --installed peer chaincode list --instantiated -C mychannel
將打包鏈碼爲可部署的結構
peer chaincode package -i 實例化策略 -l 編寫鏈碼所使用的語言 -n 鏈碼名稱 -p 鏈碼的本地路徑 -s 建立一個用於部署鏈碼的標準結構 -S 對用於部署鏈碼的標準結構使用本地MSP簽名 -v 鏈碼版本 -o Orderer節點主機:端口 #全局變量 --tls 是否使用TLS加密 --cafile CA證書路徑 --certfile X509公鑰文件路徑 #例子 peer chaincode package ccpack.out -n mycc -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 -v 1.1 -s -S
調用鏈碼功能對鏈碼數據進行查詢,不寫入區塊
peer chaincode query -C 通道ID -n 鏈碼名稱 -c 參數 -x 若是成功查詢,則輸出16進制結果 #全局變量 --tls 是否使用TLS加密 --cafile CA證書路徑 --certfile X509公鑰文件路徑 -o Orderer節點主機:端口 #例子 peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'
對已打包的鏈碼進行簽名
peer chaincode signpackage #全局變量 --tls 是否使用TLS加密 --cafile CA證書路徑 --certfile X509公鑰文件路徑 -o Orderer節點主機:端口 #例子 peer chaincode signpackage ccwith1sig.pak ccwith2sig.pak
更新一個存在的鏈碼.命令與實例化鏈碼類似。
peer chaincode upgrade -C 通道ID -n 鏈碼名稱 -p 鏈碼的本地路徑 -P 鏈碼的實例化策略 -v 鏈碼的版本 -E 指定對該用戶鏈碼進行背書的系統鏈碼 -V 指定對該用戶鏈碼進行驗證的系統鏈碼 #全局變量 --tls 是否使用TLS加密 --cafile CA證書路徑 --certfile X509公鑰文件路徑 -o Orderer節點主機:端口 #例子 peer chaincode upgrade -o orderer.example.com:7050 --tls --cafile $ORDERER_CA -C mychannel -n mycc -v 1.2 -c '{"Args":["init","a","100","b","200","c","300"]}' -P "AND ('Org1MSP.peer','Org2MSP.peer')"
打印當前Peer
服務器的版本
peer version
該命令容許用戶建立與檢查通道配置信息
-asOrg 根據組織名稱生成配置信息 -channelCreateTxBaseProfile -channeID 使用配置文件中的通道ID -configPath 指定配置文件的路徑 -inspectBlock 打印具體路徑下的區塊的配置信息 -inspectChannelCreateTx 打印具體路徑下的Transaction的配置信息 -outputAnchorPeersUpdate 建立一個用於更新錨節點的配置信息 -outputBlock 在指定的路徑下生成創世區塊 -outputCreateChannelTx 在指定的路徑下生成建立通道的配置文件 -printOrg 以JSON的格式打印組織的信息 -profile 從configtx.yaml文件中生成profile 默認爲``SampleInsecureSolo`` -version 打印版本信息
#生成創世區塊 configtxgen -outputBlock genesis_block.pb -profile SampleSingleMSPSoloV1_1 -channelID orderer-system-channel #生成建立通道配置文件 configtxgen -outputCreateChannelTx create_chan_tx.pb -profile SampleSingleMSPChannelV1_1 -channelID application-channel-1 #查看創世區塊信息 configtxgen -inspectBlock genesis_block.pb #查看建立通道配置信息 configtxgen -inspectChannelCreateTx create_chan_tx.pb #打印組織信息 configtxgen -printOrg Org1 #生成錨節點配置文件 configtxgen -outputAnchorPeersUpdate anchor_peer_tx.pb -profile SampleSingleMSPChannelV1_1 -asOrg Org1
一般用於轉換protobuf
與JSON
格式的文件,protobuf
通常爲後綴爲.pb
的文件,由configtxgen
生成
================start================ configtxlator start --hostname="0.0.0.0" --port=7059 --CORS=CORS #啓動configtxlator REST 服務 ================start================ ================proto_encode================ #轉換``JSON``格式文件到``protobuf``格式 configtxlator proto_encode --type=TYPE #``protobuf``格式的文件的類型,如'common.Config' --input=/dev/stdin #包含'JSON'文件的地址 --output=/dev/stdout #輸出地址 ================proto_encode================ ================proto_decode================ #轉換``protobuf``格式到``JSON``格式文件 configtxlator proto_encode --type=TYPE --input=/dev/stdin --output=/dev/stdout ================proto_decode================ ================compute_update================ ================version================ configtxlator version #打印版本信息
用於生成Fabric中的密鑰,用於測試環境下,生產環境下不使用
============generate==================== cryptogen generate --output="crypto-config" 將文件生成到crypto-config文件夾下 --config=CONFIG 使用模板配置 ============generate==================== ============showtemplate==================== cryptogen showtemplate #顯示模板配置 ============showtemplate==================== ============extend==================== cryptogen extend 擴展已存在的網絡 --output="crypto-config" 將文件生成到crypto-config文件夾下 --config=CONFIG 使用模板配置 ============extend==================== ============version==================== cryptogen version #打印版本信息 ============version====================
參考文檔:https://hyperledger-fabric.readthedocs.io/en/release-1.4/command_ref.html