show available monero nodes in network settings

This commit is contained in:
woodser 2024-11-29 09:52:02 -05:00
parent 1f385328de
commit dc8d854709
22 changed files with 100 additions and 95 deletions

View file

@ -40,7 +40,6 @@ import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
import org.apache.commons.lang3.exception.ExceptionUtils;
@ -64,7 +63,6 @@ import monero.common.MoneroRpcConnection;
import monero.common.TaskLooper;
import monero.daemon.MoneroDaemonRpc;
import monero.daemon.model.MoneroDaemonInfo;
import monero.daemon.model.MoneroPeer;
@Slf4j
@Singleton
@ -85,9 +83,9 @@ public final class XmrConnectionService {
private final XmrLocalNode xmrLocalNode;
private final MoneroConnectionManager connectionManager;
private final EncryptedConnectionList connectionList;
private final ObjectProperty<List<MoneroPeer>> peers = new SimpleObjectProperty<>();
private final ObjectProperty<List<MoneroRpcConnection>> connections = new SimpleObjectProperty<>();
private final IntegerProperty numConnections = new SimpleIntegerProperty(0);
private final ObjectProperty<MoneroRpcConnection> connectionProperty = new SimpleObjectProperty<>();
private final IntegerProperty numPeers = new SimpleIntegerProperty(0);
private final LongProperty chainHeight = new SimpleLongProperty(0);
private final DownloadListener downloadListener = new DownloadListener();
@Getter
@ -390,12 +388,12 @@ public final class XmrConnectionService {
// ----------------------------- APP METHODS ------------------------------
public ReadOnlyIntegerProperty numPeersProperty() {
return numPeers;
public ReadOnlyIntegerProperty numConnectionsProperty() {
return numConnections;
}
public ReadOnlyObjectProperty<List<MoneroPeer>> peerConnectionsProperty() {
return peers;
public ReadOnlyObjectProperty<List<MoneroRpcConnection>> connectionsProperty() {
return connections;
}
public ReadOnlyObjectProperty<MoneroRpcConnection> connectionProperty() {
@ -403,7 +401,7 @@ public final class XmrConnectionService {
}
public boolean hasSufficientPeersForBroadcast() {
return numPeers.get() >= getMinBroadcastConnections();
return numConnections.get() >= getMinBroadcastConnections();
}
public LongProperty chainHeightProperty() {
@ -782,16 +780,15 @@ public final class XmrConnectionService {
downloadListener.progress(percent, blocksLeft, null);
}
// set peer connections
// TODO: peers often uknown due to restricted RPC call, skipping call to get peer connections
// try {
// peers.set(getOnlinePeers());
// } catch (Exception err) {
// // TODO: peers unknown due to restricted RPC call
// }
// numPeers.set(peers.get().size());
numPeers.set(lastInfo.getNumOutgoingConnections() + lastInfo.getNumIncomingConnections());
peers.set(new ArrayList<MoneroPeer>());
// set available connections
List<MoneroRpcConnection> availableConnections = new ArrayList<>();
for (MoneroRpcConnection connection : connectionManager.getConnections()) {
if (Boolean.TRUE.equals(connection.isOnline()) && Boolean.TRUE.equals(connection.isAuthenticated())) {
availableConnections.add(connection);
}
}
connections.set(availableConnections);
numConnections.set(availableConnections.size());
// notify update
numUpdates.set(numUpdates.get() + 1);
@ -821,12 +818,6 @@ public final class XmrConnectionService {
}
}
private List<MoneroPeer> getOnlinePeers() {
return daemon.getPeers().stream()
.filter(peer -> peer.isOnline())
.collect(Collectors.toList());
}
private boolean isFixedConnection() {
return !"".equals(config.xmrNode) || preferences.getMoneroNodesOption() == XmrNodes.MoneroNodesOption.CUSTOM;
}

View file

@ -73,7 +73,7 @@ public class AppStartupState {
isWalletSynced.set(true);
});
xmrConnectionService.numPeersProperty().addListener((observable, oldValue, newValue) -> {
xmrConnectionService.numConnectionsProperty().addListener((observable, oldValue, newValue) -> {
if (xmrConnectionService.hasSufficientPeersForBroadcast())
hasSufficientPeersForBroadcast.set(true);
});

View file

@ -87,7 +87,7 @@ public class P2PNetworkSetup {
BooleanProperty initialP2PNetworkDataReceived = new SimpleBooleanProperty();
p2PNetworkInfoBinding = EasyBind.combine(bootstrapState, bootstrapWarning, p2PService.getNumConnectedPeers(),
xmrConnectionService.numPeersProperty(), hiddenServicePublished, initialP2PNetworkDataReceived,
xmrConnectionService.numConnectionsProperty(), hiddenServicePublished, initialP2PNetworkDataReceived,
(state, warning, numP2pPeers, numXmrPeers, hiddenService, dataReceived) -> {
String result;
int p2pPeers = (int) numP2pPeers;

View file

@ -1315,6 +1315,8 @@ settings.net.p2pHeader=Haveno network
settings.net.onionAddressLabel=My onion address
settings.net.xmrNodesLabel=Use custom Monero nodes
settings.net.moneroPeersLabel=Connected peers
settings.net.connection=Connection
settings.net.connected=Connected
settings.net.useTorForXmrJLabel=Use Tor for Monero network
settings.net.useTorForXmrAfterSyncRadio=After wallet is synchronized
settings.net.useTorForXmrOffRadio=Never

View file

@ -1043,6 +1043,8 @@ settings.net.p2pHeader=Síť Haveno
settings.net.onionAddressLabel=Moje onion adresa
settings.net.xmrNodesLabel=Použijte vlastní Monero node
settings.net.moneroPeersLabel=Připojené peer uzly
settings.net.connection=Připojení
settings.net.connected=Připojeno
settings.net.useTorForXmrJLabel=Použít Tor pro Monero síť
settings.net.moneroNodesLabel=Monero nody, pro připojení
settings.net.useProvidedNodesRadio=Použijte nabízené Monero Core nody

View file

@ -1043,6 +1043,8 @@ settings.net.p2pHeader=Haveno-Netzwerk
settings.net.onionAddressLabel=Meine Onion-Adresse
settings.net.xmrNodesLabel=Spezifische Monero-Knoten verwenden
settings.net.moneroPeersLabel=Verbundene Peers
settings.net.connection=Verbindung
settings.net.connected=Verbunden
settings.net.useTorForXmrJLabel=Tor für das Monero-Netzwerk verwenden
settings.net.moneroNodesLabel=Mit Monero-Knoten verbinden
settings.net.useProvidedNodesRadio=Bereitgestellte Monero-Core-Knoten verwenden

View file

@ -1044,6 +1044,8 @@ settings.net.p2pHeader=Red Haveno
settings.net.onionAddressLabel=Mi dirección onion
settings.net.xmrNodesLabel=Utilizar nodos Monero personalizados
settings.net.moneroPeersLabel=Pares conectados
settings.net.connection=Conexión
settings.net.connected=Conectado
settings.net.useTorForXmrJLabel=Usar Tor para la red Monero
settings.net.moneroNodesLabel=Nodos Monero para conectarse
settings.net.useProvidedNodesRadio=Utilizar nodos Monero Core proporcionados

View file

@ -1040,6 +1040,8 @@ settings.net.p2pHeader=Haveno network
settings.net.onionAddressLabel=آدرس onion من
settings.net.xmrNodesLabel=استفاده از گره‌های Monero اختصاصی
settings.net.moneroPeersLabel=همتایان متصل
settings.net.connection=اتصال
settings.net.connected=متصل
settings.net.useTorForXmrJLabel=استفاده از Tor برای شبکه مونرو
settings.net.moneroNodesLabel=گره‌های Monero در دسترس
settings.net.useProvidedNodesRadio=استفاده از نودهای بیتکوین ارائه شده

View file

@ -1045,6 +1045,8 @@ settings.net.p2pHeader=Le réseau Haveno
settings.net.onionAddressLabel=Mon adresse onion
settings.net.xmrNodesLabel=Utiliser des nœuds Monero personnalisés
settings.net.moneroPeersLabel=Pairs connectés
settings.net.connection=Connexion
settings.net.connected=Connecté
settings.net.useTorForXmrJLabel=Utiliser Tor pour le réseau Monero
settings.net.moneroNodesLabel=Nœuds Monero pour se connecter à
settings.net.useProvidedNodesRadio=Utiliser les nœuds Monero Core fournis

View file

@ -1042,6 +1042,8 @@ settings.net.p2pHeader=Rete Haveno
settings.net.onionAddressLabel=Il mio indirizzo onion
settings.net.xmrNodesLabel=Usa nodi Monero personalizzati
settings.net.moneroPeersLabel=Peer connessi
settings.net.connection=Connessione
settings.net.connected=Connesso
settings.net.useTorForXmrJLabel=Usa Tor per la rete Monero
settings.net.moneroNodesLabel=Nodi Monero a cui connettersi
settings.net.useProvidedNodesRadio=Usa i nodi Monero Core forniti

View file

@ -1043,6 +1043,8 @@ settings.net.p2pHeader=Havenoネットワーク
settings.net.onionAddressLabel=私のonionアドレス
settings.net.xmrNodesLabel=任意のモネロノードを使う
settings.net.moneroPeersLabel=接続されたピア
settings.net.connection=接続
settings.net.connected=接続されました
settings.net.useTorForXmrJLabel=MoneroネットワークにTorを使用
settings.net.moneroNodesLabel=接続するMoneroード:
settings.net.useProvidedNodesRadio=提供されたMonero Core ノードを使う

View file

@ -1044,6 +1044,8 @@ settings.net.p2pHeader=Rede Haveno
settings.net.onionAddressLabel=Meu endereço onion
settings.net.xmrNodesLabel=Usar nodos personalizados do Monero
settings.net.moneroPeersLabel=Pares conectados
settings.net.connection=Conexão
settings.net.connected=Conectado
settings.net.useTorForXmrJLabel=Usar Tor na rede Monero
settings.net.moneroNodesLabel=Conexão a nodos do Monero
settings.net.useProvidedNodesRadio=Usar nodos do Monero Core fornecidos

View file

@ -1041,6 +1041,8 @@ settings.net.p2pHeader=Rede do Haveno
settings.net.onionAddressLabel=O meu endereço onion
settings.net.xmrNodesLabel=Usar nós de Monero personalizados
settings.net.moneroPeersLabel=Pares conectados
settings.net.connection=Conexão
settings.net.connected=Conectado
settings.net.useTorForXmrJLabel=Usar Tor para a rede de Monero
settings.net.moneroNodesLabel=Nós de Monero para conectar
settings.net.useProvidedNodesRadio=Usar nós de Monero Core providenciados

View file

@ -1040,6 +1040,8 @@ settings.net.p2pHeader=Haveno network
settings.net.onionAddressLabel=Мой onion-адрес
settings.net.xmrNodesLabel=Использовать особые узлы Monero
settings.net.moneroPeersLabel=Подключенные пиры
settings.net.connection=Соединение
settings.net.connected=Подключено
settings.net.useTorForXmrJLabel=Использовать Tor для сети Monero
settings.net.moneroNodesLabel=Узлы Monero для подключения
settings.net.useProvidedNodesRadio=Использовать предоставленные узлы Monero Core

View file

@ -1040,6 +1040,8 @@ settings.net.p2pHeader=Haveno network
settings.net.onionAddressLabel=ที่อยู่ onion ของฉัน
settings.net.xmrNodesLabel=ใช้โหนดเครือข่าย Monero ที่กำหนดเอง
settings.net.moneroPeersLabel=เชื่อมต่อกับเน็ตเวิร์ก peers แล้ว
settings.net.connection=การเชื่อมต่อ
settings.net.connected=เชื่อมต่อ
settings.net.useTorForXmrJLabel=ใช้ Tor สำหรับเครือข่าย Monero
settings.net.moneroNodesLabel=ใช้โหนดเครือข่าย Monero เพื่อเชื่อมต่อ
settings.net.useProvidedNodesRadio=ใช้โหนดเครือข่าย Monero ที่ให้มา

View file

@ -1310,6 +1310,8 @@ settings.net.p2pHeader=Haveno ağı
settings.net.onionAddressLabel=Onion adresim
settings.net.xmrNodesLabel=Özel Monero düğümleri kullan
settings.net.moneroPeersLabel=Bağlı eşler
settings.net.connection=Bağlantı
settings.net.connected=Bağlı
settings.net.useTorForXmrJLabel=Monero ağı için Tor kullan
settings.net.useTorForXmrAfterSyncRadio=Cüzdan senkronize edildikten sonra
settings.net.useTorForXmrOffRadio=Asla

View file

@ -1042,6 +1042,8 @@ settings.net.p2pHeader=Haveno network
settings.net.onionAddressLabel=Địa chỉ onion của tôi
settings.net.xmrNodesLabel=Sử dụng nút Monero thông dụng
settings.net.moneroPeersLabel=Các đối tác được kết nối
settings.net.connection=Kết nối
settings.net.connected=Kết nối
settings.net.useTorForXmrJLabel=Sử dụng Tor cho mạng Monero
settings.net.moneroNodesLabel=nút Monero để kết nối
settings.net.useProvidedNodesRadio=Sử dụng các nút Monero Core đã cung cấp

View file

@ -1043,6 +1043,8 @@ settings.net.p2pHeader=Haveno 网络
settings.net.onionAddressLabel=我的匿名地址
settings.net.xmrNodesLabel=使用自定义比特币主节点
settings.net.moneroPeersLabel=已连接节点
settings.net.connection=连接
settings.net.connected=连接
settings.net.useTorForXmrJLabel=使用 Tor 连接 Monero 网络
settings.net.moneroNodesLabel=需要连接 Monero
settings.net.useProvidedNodesRadio=使用公共比特币核心节点

View file

@ -1043,6 +1043,8 @@ settings.net.p2pHeader=Haveno 網絡
settings.net.onionAddressLabel=我的匿名地址
settings.net.xmrNodesLabel=使用自定义Monero节点
settings.net.moneroPeersLabel=已連接節點
settings.net.connection=連接
settings.net.connected=連接完成
settings.net.useTorForXmrJLabel=使用 Tor 連接 Monero 網絡
settings.net.moneroNodesLabel=需要連接 Monero
settings.net.useProvidedNodesRadio=使用公共比特幣核心節點