从具有与我自己相同的PKI-ID的对等方收到AliveMessage

时间:2017-05-22 16:54:47

标签: kubernetes hyperledger-fabric

我正在尝试将Hyperledger Fabric入门移植到Kubernetes。但我正在努力让peer1部署。如果我启用CORE_PEER_GOSSIP_BOOTSTRAP,则会收到错误“从具有与我自己相同的PKI-ID的对等方收到AliveMessage”。

如何调试据报道具有与另一个PKI-ID相同的PKI-ID?

以此为出发点:

https://hyperledger-fabric.readthedocs.io/en/latest/getting_started.html

我能够创建:

    {li> orderer以及cli命名空间中的default个广告
  • peer0在每个org1 | org2命名空间中都有一个。
  • peer1,但仅限于我禁用(注释掉)CORE_PEER_GOSSIP_BOOTSTRAP

如果我为CORE_PEER_GOSSIP_BOOTSTRAP启用peer1,我会收到以下警告和错误:

[gossip/gossip#10.0.0.10:7051] NewGossipService -> WARN 01c External endpoint is empty, peer will not be accessible outside of its organization
...
[gossip/discovery#10.0.0.10:7051] handleAliveMessage -> ERRO 02a Bad configuration detected: Received AliveMessage from a peer with the same PKI-ID as myself: tag:EMPTY alive_msg:<membership:<pki_id:"[[REDACTED]]" > timestamp:<inc_number:1495468533769417608 seq_num:416 > >

为了更好地将OrdererPeers映射到DNS名称,我正在使用Kubernetes命名空间和此配置:

OrdererOrgs:
  - Name: Orderer
    Domain: default.svc.cluster.local
    Specs:
      - Hostname: orderer
PeerOrgs:
  - Name: Org1
    Domain: org1.svc.cluster.local
    Template:
      Count: 2
    Users:
      Count: 2
  - Name: Org2
    Domain: org2.svc.cluster.local
    Template:
      Count: 2
    Users:
      Count: 2

为了将peer0公开给组织中的其他对等方并公开orderer,我为ClusterIP提供peer0服务(只选择peer0'和orderer。它不够优雅,但我想让它工作得更漂亮。

我能够在部署为群集默认的pod中使用nslookup解析orderer.default.svc.cluster.localpeer0.org1.svc.cluster.local,`peer0.org2.svc.cluster.local'。

如果没有类似卷曲的gPRC工具,我可以在70517053上针对这些端点打开套接字。

2 个答案:

答案 0 :(得分:1)

如果对等体是从同一节点启动的,则可能是为两个对等体安装了相同的加密材料(mspconfig目录的路径)。如果是这种情况,请将两个对等体的目录结构分开,并在其中保留各自的证书,在docker-compose文件中更新msp的相应路径并尝试运行。

答案 1 :(得分:1)

首先,请确保您使用的证书正确。 其次,验证您的gossip的环境/配置设置正确

environment:
  - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer1.org1.example.com:8051
  - CORE_PEER_GOSSIP_BOOTSTRAP=peer0.org1.example.com:7051
  - CORE_PEER_GOSSIP_ENDPOINT=peer0.org1.example.com:7051

core.yaml中的

peer:
  gossip:
    bootstrap: peer0.org1.example.com:7051
    externalEndpoint: peer1.org1.example.com:8051
    endpoint: peer0.org1.example.com:7051

已编辑:另外,请确保您已正确设置CA

希望这对我有帮助。而且我能够成功地连接同伴。