在Hyperledger Fabric中,如果我无法使用对等通道获取命令,如何加入通道



我希望能够让我的同伴加入一个频道(在本例中为 mychannel)。此特定对等方的文件系统上没有 mychannel.block 文件。

然后我尝试的是使用peer channel fetch 0 -c mychannel.然后我收到以下错误:

2019-01-15 08:11:18.948 UTC [msp] Validate -> DEBU 036 MSP ZafitMSP validating identity
2019-01-15 08:11:18.949 UTC [msp] GetDefaultSigningIdentity -> DEBU 037 Obtaining default signing identity
2019-01-15 08:11:18.949 UTC [grpc] DialContext -> DEBU 038 parsed scheme: ""
2019-01-15 08:11:18.949 UTC [grpc] DialContext -> DEBU 039 scheme "" not registered, fallback to default scheme
2019-01-15 08:11:18.949 UTC [grpc] watcher -> DEBU 03a ccResolverWrapper: sending new addresses to cc: [{peer1.zafit.example.com:7051 0  <nil>}]
2019-01-15 08:11:18.949 UTC [grpc] switchBalancer -> DEBU 03b ClientConn switching balancer to "pick_first"
2019-01-15 08:11:18.950 UTC [grpc] HandleSubConnStateChange -> DEBU 03c pickfirstBalancer: HandleSubConnStateChange: 0xc4202b78d0, CONNECTING
2019-01-15 08:11:18.952 UTC [grpc] HandleSubConnStateChange -> DEBU 03d pickfirstBalancer: HandleSubConnStateChange: 0xc4202b78d0, READY
2019-01-15 08:11:18.953 UTC [channelCmd] InitCmdFactory -> INFO 03e Endorser and orderer connections initialized
2019-01-15 08:11:18.953 UTC [msp] GetDefaultSigningIdentity -> DEBU 03f Obtaining default signing identity
2019-01-15 08:11:18.953 UTC [msp] GetDefaultSigningIdentity -> DEBU 040 Obtaining default signing identity
2019-01-15 08:11:18.953 UTC [msp/identity] Sign -> DEBU 041 Sign: plaintext: 0AF2060A1508051A0608A6ABF6E10522...1BB3248E4BFA12080A021A0012021A00
2019-01-15 08:11:18.953 UTC [msp/identity] Sign -> DEBU 042 Sign: digest: C8988576954088FD1A61D6D4FFA7A7280E52F10B2F2671693C260B54B09F3B89
2019-01-15 08:11:18.954 UTC [cli/common] readBlock -> INFO 043 Got status: &{NOT_FOUND}

但是,当我从另一个对等方复制mychannel.block文件时,我能够成功加入mychannel。加入频道后,peer channel fetch命令也能成功运行。

对我来说,这似乎是一个先有鸡还是先有蛋的场景,我需要以同行的身份加入频道,但我不能加入,因为我需要创世区块。但是我无法获得创世区块,因为我需要加入频道?

所以问题是检索创世mychannel.block文件的适当命令是什么?

事实证明,我需要添加排序器参数-o。此外,由于我正在使用 TLS 连接,我需要指定--tls true以及指定--cafile

完整命令如下:?

peer channel fetch 0 -c mychannel -o orderer.example.com:7050 --tls true --cafile $ORDERER_CA

您需要

添加 -o--orderer ) 标志并将其设置为排序服务端点。 如果您没有设置此标志,则peer channel fetch尝试从对等方获取块(显然没有它)。 您还可以在没有-o的情况下运行时指定不同的--peer.address / CORE_PEER_ADDRESS,以便从不同的对等方获取配置块。

peer channel fetch 0 -c mychannel 

注意:您无需获取频道即可加入频道创建频道将提供 .block 文件作为成功的象征。

加入

频道将利用此时间完成加入过程

如果你错过了.block,那么你需要获取命令

注意:对于最新的抓取命令

https://hyperledger-fabric.readthedocs.io/en/release-1.4/commands/peerchannel.html

对等通道加入 -B channel.block --TLS --cafile/etc/hyperledger/crypto/peer/tls/ca.crt

当您尝试加入 cahnnel 时,您必须联系排序器以获取配置信息,这就是为什么您会提到 -o orderer_name 以便通过 CLI 了解排序器

相关内容

  • 没有找到相关文章

最新更新