Hyperledger Fabric 命令整理

Peer節點命令

Peer node

start

啓動一個Peer節點:html

peer node start

status

獲取當前節點的狀態信息node

peer node status

reset

重置當前節點加入的通道全部的數據到創世區塊,意思就是說刪除當前Peer接收到的全部區塊信息。執行當前命令時,節點必須處於離線狀態,當節點再次上線時,將會從Orderer或其餘Peer節點處從新接收區塊數據。git

peer node reset

rollback

回滾當前Peer節點接收到的區塊數據到指定的區塊號。執行當前命令時,節點必須處於離線狀態,當節點再次上線時,將會從Orderer或其餘Peer節點處從新接收區塊數據。github

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

獲取具體的通道信息app

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

列出指定的節點已加入的通道fetch

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

一般用於轉換protobufJSON格式的文件,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

相關文章
相關標籤/搜索