经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 其他 » 区块链 » 查看文章
Hyperledger Fabric 命令整理
来源:cnblogs  作者:触不可及`  时间:2019/7/12 8:52:46  对本文有异议

Peer节点命令

Peer node

start

启动一个Peer节点:

  1. peer node start

status

获取当前节点的状态信息

  1. peer node status

reset

重置当前节点加入的通道所有的数据到创世区块,意思就是说删除当前Peer接收到的所有区块信息。执行当前命令时,节点必须处于离线状态,当节点再次上线时,将会从Orderer或其他Peer节点处重新接收区块数据。

  1. peer node reset

rollback

回滚当前Peer节点接收到的区块数据到指定的区块号。执行当前命令时,节点必须处于离线状态,当节点再次上线时,将会从Orderer或其他Peer节点处重新接收区块数据。

  1. peer node rollback -b 需要回滚到的区块号 -c 指定的通道ID

Peer channel

这一部分涉及Peer节点对通道的操作

create

创建一个通道并将创世区块写入文件

  1. peer channel create -c 通道ID -f channel.tx -f 超时值
  2. #全局变量
  3. --tls 是否使用TLS加密 --cafile CA证书路径 --certfile X509公钥文件路径 -o Orderer节点主机:端口
  4. #例子
  5. peer channel create -c mychannel --orderer orderer.example.com:7050 -f ./createchannel.txn -t 30s

fetch

获取一个具体区块信息并写入文件

  1. peer channel fetch <newest|oldest|config|(number)> [输出文件路径名] -c 通道ID
  2. #全局变量
  3. --tls 是否使用TLS加密 --cafile CA证书路径 --certfile X509公钥文件路径 -o Orderer节点主机:端口
  4. #例子
  5. peer channel fetch newest mychannel.block -c mychannel --orderer orderer.example.com:7050
  6. peer channel fetch 16 -c mychannel --orderer orderer.example.com:7050

getinfo

获取具体的通道信息

  1. peer channel getinfo -c 通道ID
  2. #全局变量
  3. --tls 是否使用TLS加密 --cafile CA证书路径 --certfile X509公钥文件路径 -o Orderer节点主机:端口
  4. #例子
  5. peer channel getinfo -c mychannel

join

将一个指定的节点加入通道

  1. peer channel join -b 包含创世区块的路径
  2. #全局变量
  3. --tls 是否使用TLS加密 --cafile CA证书路径 --certfile X509公钥文件路径 -o Orderer节点主机:端口
  4. #例子
  5. peer channel join -b ./mychannel.genesis.block

list

列出指定的节点已加入的通道

  1. peer channel list
  2. #全局变量
  3. --tls 是否使用TLS加密 --cafile CA证书路径 --certfile X509公钥文件路径 -o Orderer节点主机:端口

signconfigtx

对文件系统中用于更新配置信息的文件签名

  1. peer channel signconfigtx -f 文件
  2. #全局变量
  3. --tls 是否使用TLS加密 --cafile CA证书路径 --certfile X509公钥文件路径 -o Orderer节点主机:端口
  4. #例子
  5. peer channel signconfigtx -f updatechannel.tx

update

签名并发送配置更新文件到通道中,一般用于锚节点更新

  1. peer channel update -c 通道ID -f 配置更新文件
  2. #全局变量
  3. --tls 是否使用TLS加密 --cafile CA证书路径 --certfile X509公钥文件路径 -o Orderer节点主机:端口
  4. #例子
  5. peer channel update -c mychannel -f ./updatechannel.txn -o orderer.example.com:7050

Peer chaincode

这一部分涉及Peer节点对链码的相关操作

install

打包链码数据为可部署的结构,并存储到当前Peer节点的路径,简而言之就是安装链码。

  1. peer chaincode install -l 编写链码所使用的语言 -n 链码名称 -p 链码路径 -v 链码版本
  2. #全局变量
  3. --tls 是否使用TLS加密 --cafile CA证书路径 --certfile X509公钥文件路径 -o Orderer节点主机:端口
  4. #例子
  5. peer chaincode install -n mycc -v 1.0 -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02

instantiate

链码实例化

  1. peer chaincode instantiate -C 通道ID -l 编写链码所使用的语言 -n 链码名称 -v 链码版本 -P 指定链码的策略 -E 指定对该用户链码进行背书的系统链码 -V 指定对该用户链码进行验证的系统链码
  2. #全局变量
  3. --tls 是否使用TLS加密 --cafile CA证书路径 --certfile X509公钥文件路径 -o Orderer节点主机:端口
  4. #例子
  5. 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

调用链码的功能

  1. peer chaincode invoke -C 通道ID -n 链码名称 -c 传入的参数
  2. #全局变量
  3. --tls 是否使用TLS加密 --cafile CA证书路径 --certfile X509公钥文件路径 -o Orderer节点主机:端口
  4. #例子
  5. 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

如果指定通道,则列出已实例化的链码,否则列出所有已安装的链码

  1. peer chaincode list -C 通道ID
  2. --installed
  3. --instantiated
  4. #全局变量
  5. --tls 是否使用TLS加密 --cafile CA证书路径 --certfile X509公钥文件路径 -o Orderer节点主机:端口
  6. #例子
  7. peer chaincode list --installed
  8. peer chaincode list --instantiated -C mychannel

package

将打包链码为可部署的结构

  1. peer chaincode package -i 实例化策略 -l 编写链码所使用的语言 -n 链码名称 -p 链码的本地路径 -s 创建一个用于部署链码的标准结构 -S 对用于部署链码的标准结构使用本地MSP签名 -v 链码版本 -o Orderer节点主机:端口
  2. #全局变量
  3. --tls 是否使用TLS加密 --cafile CA证书路径 --certfile X509公钥文件路径
  4. #例子
  5. peer chaincode package ccpack.out -n mycc -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 -v 1.1 -s -S

query

调用链码功能对链码数据进行查询,不写入区块

  1. peer chaincode query -C 通道ID -n 链码名称 -c 参数 -x 如果成功查询,则输出16进制结果
  2. #全局变量
  3. --tls 是否使用TLS加密 --cafile CA证书路径 --certfile X509公钥文件路径 -o Orderer节点主机:端口
  4. #例子
  5. peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'

signpackage

对已打包的链码进行签名

  1. peer chaincode signpackage
  2. #全局变量
  3. --tls 是否使用TLS加密 --cafile CA证书路径 --certfile X509公钥文件路径 -o Orderer节点主机:端口
  4. #例子
  5. peer chaincode signpackage ccwith1sig.pak ccwith2sig.pak

upgrade

更新一个存在的链码.命令与实例化链码相似。

  1. peer chaincode upgrade -C 通道ID -n 链码名称 -p 链码的本地路径 -P 链码的实例化策略 -v 链码的版本 -E 指定对该用户链码进行背书的系统链码 -V 指定对该用户链码进行验证的系统链码
  2. #全局变量
  3. --tls 是否使用TLS加密 --cafile CA证书路径 --certfile X509公钥文件路径 -o Orderer节点主机:端口
  4. #例子
  5. 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服务器的版本

  1. peer version

configtxgen

该命令允许用户创建与检查通道配置信息

  1. -asOrg 根据组织名称生成配置信息
  2. -channelCreateTxBaseProfile
  3. -channeID 使用配置文件中的通道ID
  4. -configPath 指定配置文件的路径
  5. -inspectBlock 打印具体路径下的区块的配置信息
  6. -inspectChannelCreateTx 打印具体路径下的Transaction的配置信息
  7. -outputAnchorPeersUpdate 创建一个用于更新锚节点的配置信息
  8. -outputBlock 在指定的路径下生成创世区块
  9. -outputCreateChannelTx 在指定的路径下生成创建通道的配置文件
  10. -printOrg JSON的格式打印组织的信息
  11. -profile configtx.yaml文件中生成profile 默认为``SampleInsecureSolo``
  12. -version 打印版本信息

例子

  1. #生成创世区块
  2. configtxgen -outputBlock genesis_block.pb -profile SampleSingleMSPSoloV1_1 -channelID orderer-system-channel
  3. #生成创建通道配置文件
  4. configtxgen -outputCreateChannelTx create_chan_tx.pb -profile SampleSingleMSPChannelV1_1 -channelID application-channel-1
  5. #查看创世区块信息
  6. configtxgen -inspectBlock genesis_block.pb
  7. #查看创建通道配置信息
  8. configtxgen -inspectChannelCreateTx create_chan_tx.pb
  9. #打印组织信息
  10. configtxgen -printOrg Org1
  11. #生成锚节点配置文件
  12. configtxgen -outputAnchorPeersUpdate anchor_peer_tx.pb -profile SampleSingleMSPChannelV1_1 -asOrg Org1

configtxlator

通常用于转换protobufJSON格式的文件,protobuf一般为后缀为.pb的文件,由configtxgen生成

  1. ================start================
  2. configtxlator start
  3. --hostname="0.0.0.0"
  4. --port=7059
  5. --CORS=CORS
  6. #启动configtxlator REST 服务
  7. ================start================
  8. ================proto_encode================
  9. #转换``JSON``格式文件到``protobuf``格式
  10. configtxlator proto_encode
  11. --type=TYPE #``protobuf``格式的文件的类型,如'common.Config'
  12. --input=/dev/stdin #包含'JSON'文件的地址
  13. --output=/dev/stdout #输出地址
  14. ================proto_encode================
  15. ================proto_decode================
  16. #转换``protobuf``格式到``JSON``格式文件
  17. configtxlator proto_encode
  18. --type=TYPE
  19. --input=/dev/stdin
  20. --output=/dev/stdout
  21. ================proto_decode================
  22. ================compute_update================
  23. ================version================
  24. configtxlator version
  25. #打印版本信息

cryptogen

用于生成Fabric中的密钥,用于测试环境下,生产环境下不使用

  1. ============generate====================
  2. cryptogen generate
  3. --output="crypto-config" 将文件生成到crypto-config文件夹下
  4. --config=CONFIG 使用模板配置
  5. ============generate====================
  6. ============showtemplate====================
  7. cryptogen showtemplate
  8. #显示模板配置
  9. ============showtemplate====================
  10. ============extend====================
  11. cryptogen extend
  12. 扩展已存在的网络
  13. --output="crypto-config" 将文件生成到crypto-config文件夹下
  14. --config=CONFIG 使用模板配置
  15. ============extend====================
  16. ============version====================
  17. cryptogen version
  18. #打印版本信息
  19. ============version====================

参考文档:https://hyperledger-fabric.readthedocs.io/en/release-1.4/command_ref.html

原文链接:http://www.cnblogs.com/cbkj-xd/p/11170654.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号