Я тестирую некоторые функции в сети 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 является частью службы заказа?