У меня есть 3 узла заказчиков и 5 одноранговых узлов в моей фабричной сети.
И я попытался использовать консенсус raft в своей фабричной сети, но в журналах заказов я получил такую ошибку:
2021-04-03 07:13:03.556 UTC [orderer.consensus.etcdraft] logSendFailure -> DEBU 1dc6 Failed to send StepRequest to 3, because: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial tcp 172.20.0.17:7548: connect: connection refused" channel=orderer-system-channel node=1
вот основные настройки одного из трех узлов заказов в docker-compose.yaml:
- FABRIC_LOGGING_SPEC=debug
- ORDERER_GENERAL_LISTENADDRESS=0.0.0.0
- ORDERER_GENERAL_BOOTSTRAPMETHOD=file
- ORDERER_GENERAL_BOOTSTRAPFILE=/etc/hyperledger/fabric/genesis.block
- ORDERER_GENERAL_LOCALMSPID=OrdererMSP
- ORDERER_GENERAL_LOCALMSPDIR=/etc/hyperledger/msp/orderer
- ORDERER_GENERAL_TLS_ENABLED=true
- ORDERER_GENERAL_TLS_PRIVATEKEY=/etc/hyperledger/tls/orderer/server.key
- ORDERER_GENERAL_TLS_CERTIFICATE=/etc/hyperledger/tls/orderer/server.crt
- ORDERER_GENERAL_TLS_ROOTCAS=[/etc/hyperledger/tls/orderer/ca.crt]
- ORDERER_GENERAL_CLUSTER_LISTENADDRESS=0.0.0.0
- ORDERER_GENERAL_CLUSTER_LISTENPORT=7055
- ORDERER_GENERAL_CLUSTER_SERVERCERTIFICATE=/etc/hyperledger/tls/orderer/server.crt
- ORDERER_GENERAL_CLUSTER_SERVERPRIVATEKEY=/etc/hyperledger/tls/orderer/server.key
- ORDERER_GENERAL_CLUSTER_CLIENTCERTIFICATE=/etc/hyperledger/tls/orderer/server.crt
- ORDERER_GENERAL_CLUSTER_CLIENTPRIVATEKEY=/etc/hyperledger/tls/orderer/server.key
- ORDERER_GENERAL_CLUSTER_ROOTCAS=[/etc/hyperledger/tls/orderer/ca.crt]
- ORDERER_GENERAL_TLS_CLIENTAUTHREQUIRED
- ORDERER_GENERAL_TLS_CLIENTROOTCAS
working_dir: /opt/gopath/src/github.com/hyperledger/fabric
command: orderer
volumes:
- ../fabric/genesis.block:/etc/hyperledger/fabric/genesis.block
- ../fabric/organizations/ordererOrganizations/food.com/orderers/orderer1.food.com/msp:/etc/hyperledger/msp/orderer
- ../fabric/organizations/ordererOrganizations/food.com/orderers/orderer1.food.com/tls/:/etc/hyperledger/tls/orderer
- orderer1.food.com:/var/hyperledger/production/orderer
ports:
- 7050:7050
- 7550:7055
и это основные настройки в configtx.yaml для "Orderer":
Orderer: &OrdererDefaults
# Orderer Type: The orderer implementation to start
OrdererType: etcdraft
# Addresses used to be the list of orderer addresses that clients and peers
# could connect to. However, this does not allow clients to associate orderer
# addresses and orderer organizations which can be useful for things such
# as TLS validation. The preferred way to specify orderer addresses is now
# to include the OrdererEndpoints item in your org definition
Addresses:
- orderer1.food.com:7050
- orderer2.food.com:7049
- orderer3.food.com:7048
EtcdRaft:
Consenters:
- Host: orderer1.food.com
Port: 7550
ClientTLSCert: ../fabric/organizations/ordererOrganizations/food.com/orderers/orderer1.food.com/tls/server.crt
ServerTLSCert: ../fabric/organizations/ordererOrganizations/food.com/orderers/orderer1.food.com/tls/server.crt
- Host: orderer2.food.com
Port: 7549
ClientTLSCert: ../fabric/organizations/ordererOrganizations/food.com/orderers/orderer2.food.com/tls/server.crt
ServerTLSCert: ../fabric/organizations/ordererOrganizations/food.com/orderers/orderer2.food.com/tls/server.crt
- Host: orderer3.food.com
Port: 7548
ClientTLSCert: ../fabric/organizations/ordererOrganizations/food.com/orderers/orderer3.food.com/tls/server.crt
ServerTLSCert: ../fabric/organizations/ordererOrganizations/food.com/orderers/orderer3.food.com/tls/server.crt
BatchTimeout: 2s
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"
и вот мой файл crypto-config.yaml, используемый для генерации крипто-конфигурации для узлов-заказчиков:
OrdererOrgs:
# ---------------------------------------------------------------------------
# Orderer
# ---------------------------------------------------------------------------
- Name: Orderer
Domain: food.com
EnableNodeOUs: true
Specs:
- Hostname: orderer1
SANS:
- localhost
- Hostname: orderer2
SANS:
- localhost
- Hostname: orderer3
SANS:
- localhost
кто-нибудь знает, как решить эту проблему?
порт все "7050". Порты не конфликтуют? Могу я узнать подробности? Например, настройки docker-compose? @ 李 可以
Я знаю, в чем ошибся. Связь плотного кластера была в сети докеров. Поэтому я должен установить порты «7055», которые я установил в docker-compose. Спасибо за напоминание. @ 李 可以
может быть порт неправильный, в портах тестовой сети похоже на эти lifegoeson.cn:8888/image/g4U5