@Override public void chainedBlock(BlockHusk block) { if (handlerMap.isEmpty()) { log.trace("Active peer is empty to broadcast block"); return; } for (PeerHandler peerHandler : handlerMap.values()) { try { peerHandler.broadcastBlock(block); } catch (Exception e) { removeHandler(peerHandler); } } }
@Override public void receivedTransaction(TransactionHusk tx) { if (handlerMap.isEmpty()) { log.trace("Active peer is empty to broadcast transaction"); return; } for (PeerHandler peerHandler : handlerMap.values()) { try { peerHandler.broadcastTransaction(tx); } catch (Exception e) { removeHandler(peerHandler); } } }
@Override public void healthCheck(Peer owner) { if (handlerMap.isEmpty()) { log.trace("Active peer is empty to health check peer"); return; } for (PeerHandler handler : new ArrayList<>(handlerMap.values())) { try { String pong = handler.ping("Ping", owner); if ("Pong".equals(pong)) { continue; } } catch (Exception e) { log.warn(e.getMessage()); } log.warn("Health check fail. peer=" + handler.getPeer().getYnodeUri()); removeHandler(handler); } }