Les étapes suivantes vous aideront à accéder à la découverte de services à partir de l'application cliente.
1. Avant d'exécuter le réseau (pair), ajoutez le CORE_PEER_GOSSIP_EXTERNALENDPOINT des informations au service homologue de docker-compose.yml dossier. Il sera utile de fixer au moins un pair d'ancrage à chaque organisation.
services:
peer1.org1.example.com:
environment:
- CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer1.org1.example.com:5051
# Need to change the peer domain and port with your desired value
- CORE_PEER_GOSSIP_USELEADERELECTION=true
- CORE_PEER_GOSSIP_ORGLEADER=false
Le point de terminaison externe aidera les pairs d'autres organisations à trouver le pair.
2. Mettez à jour les informations sur les pairs du fichier networkConnection.yml avec découvrir : vrai qui est utilisé pour connecter l'application avec le réseau.
channels:
testchannel:
peers:
peer1.org1.example.com:
endorsingPeer: true
chaincodeQuery: true
ledgerQuery: true
eventSource: true
discover: true
3. Activer la découverte pendant la création de la passerelle à partir de l'application
Gateway.Builder builder = Gateway.createBuilder();
...
builder.discovery(true).identity(wallet, userName).networkConfig(connectionProfile);
// Connect to gateway using application specified parameters
gateway = builder.connect();
Après avoir exécuté l'application, elle utilisera le service de découverte du pair peer1.org1.example.com et obtiendra des informations sur les pairs des autres organisations (par exemple peer2.org2.example.com, peer1.org2.example.com) à partir du canal.
J'espère que cela résoudra votre problème.
Mais il ne fonctionnera pas avec les domaines (peer1.org1.example.com, peer1.org2.example.com, peer2.org2.example.com) car les domaines ne sont pas liés à l'IP actuelle. Vous devez ajouter la route dans votre /etc/hosts pour tester l'application ( Mettez à jour 127.0.0.1 avec l'adresse IP souhaitée. ).
127.0.0.1 peer1.org1.example.com
127.0.0.1 peer1.org2.example.com
127.0.0.1 peer2.org2.example.com
Exécutez à nouveau l'application client et vérifiez si elle fonctionne correctement.