Skip to content
This repository was archived by the owner on Apr 22, 2025. It is now read-only.

Commit a8ef7ce

Browse files
committed
FABJ-442 Servicediscovery logging enhancements.
Change-Id: Ifcee5666086aba778749f02cd54d2bbdf21804f8 Signed-off-by: rickr <cr22rc@gmail.com>
1 parent 0dd377e commit a8ef7ce

File tree

2 files changed

+46
-7
lines changed

2 files changed

+46
-7
lines changed

src/main/java/org/hyperledger/fabric/sdk/Channel.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1141,7 +1141,7 @@ void sdUpdate(SDNetwork sdNetwork) throws InvalidArgumentException, ServiceDisco
11411141
return;
11421142
}
11431143
if (null == orderer) {
1144-
logger.debug(format("Channel %s doing channel update adding new orderer endpoint: %s", name, sdOrderer.getEndPoint()));
1144+
logger.debug(format("Channel %s doing channel update adding new orderer mspid: %s, endpoint: %s", name, sdOrderer.getMspid(), sdOrderer.getEndPoint()));
11451145

11461146
sdOrdererAddition.addOrderer(new SDOrdererAdditionInfo() {
11471147

@@ -1217,7 +1217,7 @@ public Map<String, Orderer> getEndpointMap() {
12171217
return;
12181218
}
12191219

1220-
logger.debug(format("Channel %s doing channel update found new peer endpoint %s", name, sdEndorser.getEndpoint()));
1220+
logger.debug(format("Channel %s doing channel update found new peer mspid: %s, endpoint: %s", name, sdEndorser.getMspid(), sdEndorser.getEndpoint()));
12211221

12221222
sdPeerAddition.addPeer(new SDPeerAdditionInfo() {
12231223

src/main/java/org/hyperledger/fabric/sdk/ServiceDiscovery.java

Lines changed: 44 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
import org.hyperledger.fabric.sdk.transaction.TransactionContext;
5151

5252
import static java.lang.String.format;
53+
import static org.hyperledger.fabric.sdk.helper.Utils.toHexString;
5354

5455
public class ServiceDiscovery {
5556
private static final Log logger = LogFactory.getLog(ServiceDiscovery.class);
@@ -114,11 +115,17 @@ class SDNetwork {
114115
long discoveryTime;
115116

116117
void addTlsCert(String mspid, byte[] cert) {
118+
if (IS_TRACE_LEVEL) {
119+
logger.trace(format("Channel %s service discovery MSPID %s adding TLSCert %s", channelName, mspid, toHexString(cert)));
120+
}
117121
tlsCerts.computeIfAbsent(mspid, k -> new LinkedList<>()).add(cert);
118122

119123
}
120124

121125
void addTlsIntermCert(String mspid, byte[] cert) {
126+
if (IS_TRACE_LEVEL) {
127+
logger.trace(format("Channel %s service discovery MSPID %s adding intermediate TLSCert %s", channelName, mspid, toHexString(cert)));
128+
}
122129
tlsIntermCerts.computeIfAbsent(mspid, k -> new LinkedList<>()).add(cert);
123130

124131
}
@@ -173,21 +180,31 @@ Set<String> getChaincodesNames() {
173180

174181
}
175182

176-
Collection<byte[]> getTlsCerts(String mspid) {
183+
Collection<byte[]> getTlsCerts(final String mspid) {
184+
177185
final Collection<byte[]> bytes = tlsCerts.get(mspid);
178186
if (null == bytes) {
187+
logger.debug(format("Channel %s no tls ca certs for mspid: %s", channelName, mspid));
179188
return Collections.emptyList();
180189

181190
}
191+
if (bytes.isEmpty()) {
192+
logger.debug(format("Channel %s no tls ca certs for mspid: %s", channelName, mspid));
193+
}
182194
return Collections.unmodifiableCollection(bytes);
183195
}
184196

185197
Collection<byte[]> getTlsIntermediateCerts(String mspid) {
186198
final Collection<byte[]> bytes = tlsIntermCerts.get(mspid);
199+
187200
if (null == bytes) {
201+
logger.debug(format("Channel %s no tls intermediary ca certs for mspid: %s", channelName, mspid));
188202
return Collections.emptyList();
189203

190204
}
205+
if (bytes.isEmpty()) {
206+
logger.debug(format("Channel %s no tls intermediary ca certs for mspid: %s", channelName, mspid));
207+
}
191208
return Collections.unmodifiableCollection(bytes);
192209

193210
}
@@ -211,7 +228,7 @@ SDNetwork networkDiscovery(TransactionContext ltransactionContext, boolean force
211228
}
212229
ret = null;
213230

214-
for (Peer serviceDiscoveryPeer : speers) {
231+
for (final Peer serviceDiscoveryPeer : speers) {
215232

216233
try {
217234

@@ -306,9 +323,19 @@ SDNetwork networkDiscovery(TransactionContext ltransactionContext, boolean force
306323

307324
Protocol.Endpoints value = i.getValue();
308325
for (Protocol.Endpoint l : value.getEndpointList()) {
309-
logger.trace(format("Channel %s discovered orderer MSPID: %s, endpoint: %s:%s", channelName, mspid, l.getHost(), l.getPort()));
326+
logger.trace(format("Channel: %s peer: %s discovered orderer MSPID: %s, endpoint: %s:%s", channelName, serviceDiscoveryPeer, mspid, l.getHost(), l.getPort()));
310327
String endpoint = (l.getHost() + ":" + l.getPort()).trim().toLowerCase();
311328

329+
SDOrderer discoveredAlready = ordererEndpoints.get(endpoint);
330+
if (discoveredAlready != null) {
331+
if (!mspid.equals(discoveredAlready.getMspid())) {
332+
logger.error(format("Service discovery in channel: %s, peer: %s found Orderer endpoint: %s with two mspids: '%s', '%s'", channelName, serviceDiscoveryPeer, endpoint, mspid, discoveredAlready.getMspid()));
333+
continue; // report it and ignore.
334+
}
335+
logger.debug(format("Service discovery in channel: %s, peer: %s found Orderer endpoint: %s mspid: %s discovered twice", channelName, serviceDiscoveryPeer, endpoint, mspid));
336+
continue;
337+
}
338+
312339
final SDOrderer sdOrderer = new SDOrderer(mspid, endpoint, lsdNetwork.getTlsCerts(mspid), lsdNetwork.getTlsIntermediateCerts(mspid));
313340

314341
ordererEndpoints.put(sdOrderer.getEndPoint(), sdOrderer);
@@ -322,12 +349,24 @@ SDNetwork networkDiscovery(TransactionContext ltransactionContext, boolean force
322349

323350
for (Map.Entry<String, Protocol.Peers> peers : membership.getPeersByOrgMap().entrySet()) {
324351
final String mspId = peers.getKey();
325-
Protocol.Peers peer = peers.getValue();
352+
final Protocol.Peers peer = peers.getValue();
326353

327354
for (Protocol.Peer pp : peer.getPeersList()) {
328355

329356
SDEndorser ppp = new SDEndorser(pp, lsdNetwork.getTlsCerts(mspId), lsdNetwork.getTlsIntermediateCerts(mspId));
330-
logger.trace(format("Channel %s discovered peer MSPID: %s, endpoint: %s", channelName, mspId, ppp.getEndpoint()));
357+
358+
SDEndorser discoveredAlready = lsdNetwork.endorsers.get(ppp.getEndpoint());
359+
if (null != discoveredAlready) {
360+
if (!mspId.equals(discoveredAlready.getMspid())) {
361+
logger.error(format("Service discovery in channel: %s, peer: %s, found endorser endpoint: %s with two mspids: '%s', '%s'", channelName, serviceDiscoveryPeer, ppp.getEndpoint(), mspId, discoveredAlready.getMspid()));
362+
continue; // report it and ignore.
363+
}
364+
logger.debug(format("Service discovery in channel %s peer: %s found Endorser endpoint: %s mspid: %s discovered twice", channelName, serviceDiscoveryPeer, ppp.getEndpoint(), mspId));
365+
continue;
366+
}
367+
368+
logger.trace(format("Channel %s peer: %s discovered peer mspid group: %s, endpoint: %s, mspid: %s", channelName, serviceDiscoveryPeer, mspId, ppp.getEndpoint(), ppp.getMspid()));
369+
331370
lsdNetwork.endorsers.put(ppp.getEndpoint(), ppp);
332371

333372
}

0 commit comments

Comments
 (0)