Пир организации (Hyperledger Fabric) может присоединиться к каналу, который он не должен - PullRequest
0 голосов
/ 10 октября 2019

Я тестирую некоторые функции в сети Hyperledger Fabric (1.4.3), развернутой на моей локальной машине. Одноранговый узел организации, который (согласно configtx.yaml) не может получить доступ к каналу, достигает выборки блоков и присоединяется к каналу, когда это не нужно. Одноранговый узел отображает некоторые журналы предупреждений, после чего происходит сбой «получения информации о равноправном канале» ... Но фактом является то, что «извлечение одноранговых каналов» и «соединение одноранговых каналов» завершены успешно.

Сеть состоит из 2 организаций. У org0 есть 1 заказчик и 2 пира. У org1 есть 2 заказчика и 2 пира. Консенсус службы заказа - Raft.

Криптографический материал для этих тестов был сгенерирован криптогеном из:

# crypto-config.yaml

OrdererOrgs:

  - Name: org0
    Domain: org0
    EnableNodeOUs: true
    Users:
      Count: 1
    Specs:
      - Hostname: orderer0
      - Hostname: peer0
      - Hostname: peer1

  - Name: org1
    Domain: org1
    EnableNodeOUs: true
    Users:
      Count: 1
    Specs:
      - Hostname: orderer0
      - Hostname: orderer1
      - Hostname: peer0
      - Hostname: peer1

Мой configtx.yaml выглядит так:

Organizations:
    - &Org0
        Name: org0
        ID: org0
        MSPDir: crypto-config/ordererOrganizations/org0/msp
        Policies:
            Readers:
                Type: Signature
                Rule: "OR('org0.member')"
            Writers:
                Type: Signature
                Rule: "OR('org0.member')"
            Admins:
                Type: Signature
                Rule: "OR('org0.admin')"
        AnchorPeers:
            - Host: peer0.org0
              Port: 7051
    - &Org1
        Name: org1
        ID: org1
        MSPDir: crypto-config/ordererOrganizations/org1/msp
        Policies:
            Readers:
                Type: Signature
                Rule: "OR('org1.member')"
            Writers:
                Type: Signature
                Rule: "OR('org1.member')"
            Admins:
                Type: Signature
                Rule: "OR('org1.admin')"
        AnchorPeers:
            - Host: peer0.org1
              Port: 8051
Capabilities:
    Channel: &ChannelCapabilities
        V1_4_2: true
    Orderer: &OrdererCapabilities
        V1_4_2: true
    Application: &ApplicationCapabilities
        V1_4_2: true
        V1_3: false
        V1_2: false
        V1_1: false
Application: &ApplicationDefaults
    Organizations:        
    ACLs: &ACLsDefault
        lscc/ChaincodeExists: /Channel/Application/Readers
        lscc/GetDeploymentSpec: /Channel/Application/Readers
        lscc/GetChaincodeData: /Channel/Application/Readers
        lscc/GetInstantiatedChaincodes: /Channel/Application/Readers
        qscc/GetChainInfo: /Channel/Application/Readers
        qscc/GetBlockByNumber: /Channel/Application/Readers
        qscc/GetBlockByHash: /Channel/Application/Readers
        qscc/GetTransactionByID: /Channel/Application/Readers
        qscc/GetBlockByTxID: /Channel/Application/Readers
        cscc/GetConfigBlock: /Channel/Application/Readers
        cscc/GetConfigTree: /Channel/Application/Readers
        cscc/SimulateConfigTreeUpdate: /Channel/Application/Readers
        # cscc/JoinChain: /Channel/Application/Writers
        peer/Propose: /Channel/Application/Writers
        peer/ChaincodeToChaincode: /Channel/Application/Readers
        event/Block: /Channel/Application/Readers
        event/FilteredBlock: /Channel/Application/Readers
    Policies:
        Readers:
            Type: ImplicitMeta
            Rule: "ANY Readers"
        Writers:
            Type: ImplicitMeta
            Rule: "ANY Writers"
        Admins:
            Type: ImplicitMeta
            Rule: "MAJORITY Admins"
    Capabilities:
        <<: *ApplicationCapabilities
Orderer: &OrdererDefaults
    OrdererType: etcdraft    
    EtcdRaft:
        Consenters:
        - Host: orderer0.org0
          Port: 7050
          ClientTLSCert: crypto-config/ordererOrganizations/org0/orderers/orderer0.org0/tls/server.crt
          ServerTLSCert: crypto-config/ordererOrganizations/org0/orderers/orderer0.org0/tls/server.crt
        - Host: orderer0.org1
          Port: 7050
          ClientTLSCert: crypto-config/ordererOrganizations/org1/orderers/orderer0.org1/tls/server.crt
          ServerTLSCert: crypto-config/ordererOrganizations/org1/orderers/orderer0.org1/tls/server.crt
        - Host: orderer1.org1
          Port: 7050
          ClientTLSCert: crypto-config/ordererOrganizations/org1/orderers/orderer1.org1/tls/server.crt
          ServerTLSCert: crypto-config/ordererOrganizations/org1/orderers/orderer1.org1/tls/server.crt    
    Addresses:
        - orderer0.org0:7050
        - orderer0.org1:7050
        - orderer1.org1:7050
    Organizations:
        - *Org0
        - *Org1
    BatchTimeout: 1s
    BatchSize:
        MaxMessageCount: 10
        AbsoluteMaxBytes: 99 MB
        PreferredMaxBytes: 512 KB
    Organizations:
    Policies:
        Readers:
            Type: ImplicitMeta
            Rule: "ANY Readers"
        Writers:
            Type: ImplicitMeta
            Rule: "ANY Writers"
        Admins:
            Type: ImplicitMeta
            Rule: "MAJORITY Admins"
        BlockValidation:
            Type: ImplicitMeta
            Rule: "ANY Writers"
Channel: &ChannelDefaults
    Policies:
        Readers:
            Type: ImplicitMeta
            Rule: "ANY Readers"
        Writers:
            Type: ImplicitMeta
            Rule: "ANY Writers"
        Admins:
            Type: ImplicitMeta
            Rule: "MAJORITY Admins"
    Capabilities:
        <<: *ChannelCapabilities
Profiles:
    Raft:
        <<: *ChannelDefaults
        Capabilities:
            <<: *ChannelCapabilities
        Orderer:
            <<: *OrdererDefaults
            Capabilities:
                <<: *OrdererCapabilities
        Application:
            <<: *ApplicationDefaults
            Organizations:
                - *Org0
                - *Org1
        Consortiums:
            SampleConsortium:
                Organizations:
                    - *Org0
                    - *Org1
            Org0Consortium:
                Organizations:
                    - *Org0
            Org1Consortium:
                Organizations:
                    - *Org1
    TwoOrgsChannel:
        Consortium: SampleConsortium
        <<: *ChannelDefaults
        Application:
            <<: *ApplicationDefaults
            Organizations:
                - *Org0
                - *Org1
            Capabilities:
                <<: *ApplicationCapabilities
    Org0Channel:
        Consortium: Org0Consortium
        <<: *ChannelDefaults
        Application:
            <<: *ApplicationDefaults
            Organizations:
                - *Org0
            Capabilities:
                <<: *ApplicationCapabilities
    Org1Channel:
        Consortium: Org1Consortium
        <<: *ChannelDefaults
        Application:
            <<: *ApplicationDefaults
            Organizations:
                - *Org1
            Capabilities:
                <<: *ApplicationCapabilities

Одноранговые узлы org0 успешно присоединяются к каналу, определенному как Org1Channel, когда они не должны. После присоединения одноранговые журналы периодически показывают:

2019-10-10 06:44:30.979 UTC [gossip.gossip] Gossip -> WARN 10cf29 Failed obtaining gossipChannel of [111 114 103 49] aborting

"111 114 103 49" является десятичным для "org1" ASCII.

"getinfo канала равноправного канала" завершается неудачно после присоединения, но фактчто «извлечение канала равноправного канала» и «соединение равноправного канала» были успешны раньше, когда они не должны.

Есть идеи, почему это происходит? Может ли это быть связано с тем, что организация org0 является частью службы заказа?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...