我希望我的同伴能够加入一个频道(在本例中为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
文件的适当命令是什么?
答案 0 :(得分:1)
原来,我需要添加订购者参数-o
。另外,由于我正在使用TLS进行连接,因此需要指定--tls true
和--cafile
。
完整命令如下:?
peer channel fetch 0 -c mychannel -o orderer.example.com:7050 --tls true --cafile $ORDERER_CA
答案 1 :(得分:0)
您需要添加-o
(--orderer
)标志并将其设置为订购服务端点。如果您未设置此标志,那么peer channel fetch
会尝试从对等方(显然没有)获取该块。在没有--peer.address / CORE_PEER_ADDRESS
的情况下运行时,您也可以指定一个不同的-o
来从另一个对等方获取配置块。
答案 2 :(得分:0)
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
当您尝试加入一个通道时,必须联系订购者以获取配置信息,这就是为什么您要提及-o orderer_name以便通过CLI了解订购者的原因