• Hyperledger Fabric 命令整理


    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

    通常用于转换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

  • 相关阅读:
    FineReport: 参数为空选出全部值(按条件查询,空条件时直接过滤,不进行查询。。)
    BarManager菜单栏加载与菜单项点击事件详解|devExpress教程
    BarManager菜单栏加载与菜单项点击事件详解|devExpress教程
    C# 判断类型间能否隐式或强制类型转换,以及开放泛型类型转换 update
    C# 判断类型间能否隐式或强制类型转换,以及开放泛型类型转换 update
    Devexpress Chart series 点击时获取SeriesPoint的值
    Devexpress Chart series 点击时获取SeriesPoint的值
    IndexOf()、IndexOfAny()的用法 —— c#
    IndexOf()、IndexOfAny()的用法 —— c#
    Java并发问题乐观锁与悲观锁以及乐观锁的一种实现方式CAS
  • 原文地址:https://www.cnblogs.com/cbkj-xd/p/11170654.html
Copyright © 2020-2023  润新知