Peer節點命令
Peer node
start
啟動一個Peer
節點:
peer node start
status
獲取當前節點的狀態信息
peer node status
reset
重置當前節點加入的通道所有的數據到創世區塊,意思就是說刪除當前Peer
接收到的所有區塊信息。執行當前命令時,節點必須處於離線狀態,當節點再次上線時,將會從Orderer
或其他Peer
節點處重新接收區塊數據。
peer node reset
rollback
回滾當前Peer
節點接收到的區塊數據到指定的區塊號。執行當前命令時,節點必須處於離線狀態,當節點再次上線時,將會從Orderer
或其他Peer
節點處重新接收區塊數據。
peer node rollback -b 需要回滾到的區塊號 -c 指定的通道ID
Peer channel
這一部分涉及Peer
節點對通道的操作
create
創建一個通道並將創世區塊寫入文件
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
fetch
獲取一個具體區塊信息並寫入文件
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
getinfo
獲取具體的通道信息
peer channel getinfo -c 通道ID
#全局變量
--tls 是否使用TLS加密 --cafile CA證書路徑 --certfile X509公鑰文件路徑 -o Orderer節點主機:端口
#例子
peer channel getinfo -c mychannel
join
將一個指定的節點加入通道
peer channel join -b 包含創世區塊的路徑
#全局變量
--tls 是否使用TLS加密 --cafile CA證書路徑 --certfile X509公鑰文件路徑 -o Orderer節點主機:端口
#例子
peer channel join -b ./mychannel.genesis.block
list
列出指定的節點已加入的通道
peer channel list
#全局變量
--tls 是否使用TLS加密 --cafile CA證書路徑 --certfile X509公鑰文件路徑 -o Orderer節點主機:端口
signconfigtx
對文件系統中用於更新配置信息的文件簽名
peer channel signconfigtx -f 文件
#全局變量
--tls 是否使用TLS加密 --cafile CA證書路徑 --certfile X509公鑰文件路徑 -o Orderer節點主機:端口
#例子
peer channel signconfigtx -f updatechannel.tx
update
簽名並發送配置更新文件到通道中,一般用於錨節點更新
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 chaincode
這一部分涉及Peer
節點對鏈碼的相關操作
install
打包鏈碼數據為可部署的結構,並存儲到當前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
instantiate
鏈碼實例化
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')"
invoke
調用鏈碼的功能
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"]}'
list
如果指定通道,則列出已實例化的鏈碼,否則列出所有已安裝的鏈碼
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
package
將打包鏈碼為可部署的結構
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
query
調用鏈碼功能對鏈碼數據進行查詢,不寫入區塊
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"]}'
signpackage
對已打包的鏈碼進行簽名
peer chaincode signpackage
#全局變量
--tls 是否使用TLS加密 --cafile CA證書路徑 --certfile X509公鑰文件路徑 -o Orderer節點主機:端口
#例子
peer chaincode signpackage ccwith1sig.pak ccwith2sig.pak
upgrade
更新一個存在的鏈碼.命令與實例化鏈碼相似。
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 version
打印當前Peer
服務器的版本
peer version
configtxgen
該命令允許用戶創建與檢查通道配置信息
-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
configtxlator
通常用於轉換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
#打印版本信息
cryptogen
用於生成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