mirror of
https://github.com/haveno-dex/haveno.git
synced 2024-12-23 03:59:36 +00:00
set xmr node on startup w/ xmrNode, xmrNodeUsername, and xmrNodePassword
This commit is contained in:
parent
0f3b835abc
commit
896380218e
3 changed files with 40 additions and 5 deletions
|
@ -99,6 +99,9 @@ public class Config {
|
||||||
public static final String SEND_MSG_THROTTLE_SLEEP = "sendMsgThrottleSleep";
|
public static final String SEND_MSG_THROTTLE_SLEEP = "sendMsgThrottleSleep";
|
||||||
public static final String IGNORE_LOCAL_BTC_NODE = "ignoreLocalBtcNode";
|
public static final String IGNORE_LOCAL_BTC_NODE = "ignoreLocalBtcNode";
|
||||||
public static final String BITCOIN_REGTEST_HOST = "bitcoinRegtestHost";
|
public static final String BITCOIN_REGTEST_HOST = "bitcoinRegtestHost";
|
||||||
|
public static final String XMR_NODE = "xmrNode";
|
||||||
|
public static final String XMR_NODE_USERNAME = "xmrNodeUsername";
|
||||||
|
public static final String XMR_NODE_PASSWORD = "xmrNodePassword";
|
||||||
public static final String BTC_NODES = "btcNodes";
|
public static final String BTC_NODES = "btcNodes";
|
||||||
public static final String SOCKS5_DISCOVER_MODE = "socks5DiscoverMode";
|
public static final String SOCKS5_DISCOVER_MODE = "socks5DiscoverMode";
|
||||||
public static final String USE_ALL_PROVIDED_NODES = "useAllProvidedNodes";
|
public static final String USE_ALL_PROVIDED_NODES = "useAllProvidedNodes";
|
||||||
|
@ -179,6 +182,9 @@ public class Config {
|
||||||
public final int msgThrottlePer10Sec;
|
public final int msgThrottlePer10Sec;
|
||||||
public final int sendMsgThrottleTrigger;
|
public final int sendMsgThrottleTrigger;
|
||||||
public final int sendMsgThrottleSleep;
|
public final int sendMsgThrottleSleep;
|
||||||
|
public final String xmrNode;
|
||||||
|
public final String xmrNodeUsername;
|
||||||
|
public final String xmrNodePassword;
|
||||||
public final String btcNodes;
|
public final String btcNodes;
|
||||||
public final boolean useTorForBtc;
|
public final boolean useTorForBtc;
|
||||||
public final boolean useTorForBtcOptionSetExplicitly;
|
public final boolean useTorForBtcOptionSetExplicitly;
|
||||||
|
@ -326,14 +332,14 @@ public class Config {
|
||||||
.withValuesConvertedBy(new EnumValueConverter(BaseCurrencyNetwork.class))
|
.withValuesConvertedBy(new EnumValueConverter(BaseCurrencyNetwork.class))
|
||||||
.defaultsTo(BaseCurrencyNetwork.XMR_MAINNET);
|
.defaultsTo(BaseCurrencyNetwork.XMR_MAINNET);
|
||||||
|
|
||||||
ArgumentAcceptingOptionSpec<Boolean> ignoreLocalBtcNodeOpt =
|
ArgumentAcceptingOptionSpec<Boolean> ignoreLocalBtcNodeOpt = // TODO: update this to ignore local XMR node
|
||||||
parser.accepts(IGNORE_LOCAL_BTC_NODE,
|
parser.accepts(IGNORE_LOCAL_BTC_NODE,
|
||||||
"If set to true a Bitcoin Core node running locally will be ignored")
|
"If set to true a Monero node running locally will be ignored")
|
||||||
.withRequiredArg()
|
.withRequiredArg()
|
||||||
.ofType(Boolean.class)
|
.ofType(Boolean.class)
|
||||||
.defaultsTo(false);
|
.defaultsTo(false);
|
||||||
|
|
||||||
ArgumentAcceptingOptionSpec<String> bitcoinRegtestHostOpt =
|
ArgumentAcceptingOptionSpec<String> bitcoinRegtestHostOpt = // TODO: remove?
|
||||||
parser.accepts(BITCOIN_REGTEST_HOST, "Bitcoin Core node when using XMR_STAGENET network")
|
parser.accepts(BITCOIN_REGTEST_HOST, "Bitcoin Core node when using XMR_STAGENET network")
|
||||||
.withRequiredArg()
|
.withRequiredArg()
|
||||||
.ofType(String.class)
|
.ofType(String.class)
|
||||||
|
@ -500,6 +506,21 @@ public class Config {
|
||||||
.ofType(int.class)
|
.ofType(int.class)
|
||||||
.defaultsTo(50); // Pause in ms to sleep if we get too many messages to send
|
.defaultsTo(50); // Pause in ms to sleep if we get too many messages to send
|
||||||
|
|
||||||
|
ArgumentAcceptingOptionSpec<String> xmrNodeOpt =
|
||||||
|
parser.accepts(XMR_NODE, "URI of custom Monero node to use")
|
||||||
|
.withRequiredArg()
|
||||||
|
.defaultsTo("");
|
||||||
|
|
||||||
|
ArgumentAcceptingOptionSpec<String> xmrNodeUsernameOpt =
|
||||||
|
parser.accepts(XMR_NODE_USERNAME, "Username of custom Monero node to use")
|
||||||
|
.withRequiredArg()
|
||||||
|
.defaultsTo("");
|
||||||
|
|
||||||
|
ArgumentAcceptingOptionSpec<String> xmrNodePasswordOpt =
|
||||||
|
parser.accepts(XMR_NODE_PASSWORD, "Password of custom Monero node to use")
|
||||||
|
.withRequiredArg()
|
||||||
|
.defaultsTo("");
|
||||||
|
|
||||||
ArgumentAcceptingOptionSpec<String> btcNodesOpt =
|
ArgumentAcceptingOptionSpec<String> btcNodesOpt =
|
||||||
parser.accepts(BTC_NODES, "Custom nodes used for BitcoinJ as comma separated IP addresses.")
|
parser.accepts(BTC_NODES, "Custom nodes used for BitcoinJ as comma separated IP addresses.")
|
||||||
.withRequiredArg()
|
.withRequiredArg()
|
||||||
|
@ -682,6 +703,9 @@ public class Config {
|
||||||
this.msgThrottlePer10Sec = options.valueOf(msgThrottlePer10SecOpt);
|
this.msgThrottlePer10Sec = options.valueOf(msgThrottlePer10SecOpt);
|
||||||
this.sendMsgThrottleTrigger = options.valueOf(sendMsgThrottleTriggerOpt);
|
this.sendMsgThrottleTrigger = options.valueOf(sendMsgThrottleTriggerOpt);
|
||||||
this.sendMsgThrottleSleep = options.valueOf(sendMsgThrottleSleepOpt);
|
this.sendMsgThrottleSleep = options.valueOf(sendMsgThrottleSleepOpt);
|
||||||
|
this.xmrNode = options.valueOf(xmrNodeOpt);
|
||||||
|
this.xmrNodeUsername = options.valueOf(xmrNodeUsernameOpt);
|
||||||
|
this.xmrNodePassword = options.valueOf(xmrNodePasswordOpt);
|
||||||
this.btcNodes = options.valueOf(btcNodesOpt);
|
this.btcNodes = options.valueOf(btcNodesOpt);
|
||||||
this.useTorForBtc = options.valueOf(useTorForBtcOpt);
|
this.useTorForBtc = options.valueOf(useTorForBtcOpt);
|
||||||
this.useTorForBtcOptionSetExplicitly = options.has(useTorForBtcOpt);
|
this.useTorForBtcOptionSetExplicitly = options.has(useTorForBtcOpt);
|
||||||
|
|
|
@ -68,6 +68,7 @@ public final class CoreMoneroConnectionsService {
|
||||||
}
|
}
|
||||||
|
|
||||||
private final Object lock = new Object();
|
private final Object lock = new Object();
|
||||||
|
private final Config config;
|
||||||
private final CoreContext coreContext;
|
private final CoreContext coreContext;
|
||||||
private final CoreAccountService accountService;
|
private final CoreAccountService accountService;
|
||||||
private final CoreMoneroNodeService nodeService;
|
private final CoreMoneroNodeService nodeService;
|
||||||
|
@ -85,12 +86,14 @@ public final class CoreMoneroConnectionsService {
|
||||||
private TaskLooper updateDaemonLooper;;
|
private TaskLooper updateDaemonLooper;;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public CoreMoneroConnectionsService(CoreContext coreContext,
|
public CoreMoneroConnectionsService(Config config,
|
||||||
|
CoreContext coreContext,
|
||||||
WalletsSetup walletsSetup,
|
WalletsSetup walletsSetup,
|
||||||
CoreAccountService accountService,
|
CoreAccountService accountService,
|
||||||
CoreMoneroNodeService nodeService,
|
CoreMoneroNodeService nodeService,
|
||||||
MoneroConnectionManager connectionManager,
|
MoneroConnectionManager connectionManager,
|
||||||
EncryptedConnectionList connectionList) {
|
EncryptedConnectionList connectionList) {
|
||||||
|
this.config = config;
|
||||||
this.coreContext = coreContext;
|
this.coreContext = coreContext;
|
||||||
this.accountService = accountService;
|
this.accountService = accountService;
|
||||||
this.nodeService = nodeService;
|
this.nodeService = nodeService;
|
||||||
|
@ -328,6 +331,11 @@ public final class CoreMoneroConnectionsService {
|
||||||
// run once
|
// run once
|
||||||
if (!isInitialized) {
|
if (!isInitialized) {
|
||||||
|
|
||||||
|
// set monero connection from startup arguments
|
||||||
|
if (!"".equals(config.xmrNode)) {
|
||||||
|
connectionManager.setConnection(new MoneroRpcConnection(config.xmrNode, config.xmrNodeUsername, config.xmrNodePassword).setPriority(1));
|
||||||
|
}
|
||||||
|
|
||||||
// register connection change listener
|
// register connection change listener
|
||||||
connectionManager.addListener(this::onConnectionChanged);
|
connectionManager.addListener(this::onConnectionChanged);
|
||||||
|
|
||||||
|
@ -362,7 +370,7 @@ public final class CoreMoneroConnectionsService {
|
||||||
});
|
});
|
||||||
|
|
||||||
// connect to local node if available
|
// connect to local node if available
|
||||||
if (nodeService.isMoneroNodeRunning() && (connectionManager.getAutoSwitch() || !connectionManager.isConnected())) {
|
if (nodeService.isMoneroNodeRunning() && (!connectionManager.isConnected() || connectionManager.getAutoSwitch())) {
|
||||||
MoneroRpcConnection connection = connectionManager.getConnectionByUri(nodeService.getDaemon().getRpcConnection().getUri());
|
MoneroRpcConnection connection = connectionManager.getConnectionByUri(nodeService.getDaemon().getRpcConnection().getUri());
|
||||||
if (connection != null) {
|
if (connection != null) {
|
||||||
connection.checkConnection(connectionManager.getTimeout());
|
connection.checkConnection(connectionManager.getTimeout());
|
||||||
|
|
|
@ -75,6 +75,9 @@ public class BitcoinModule extends AppModule {
|
||||||
bind(File.class).annotatedWith(named(WALLET_DIR)).toInstance(config.walletDir);
|
bind(File.class).annotatedWith(named(WALLET_DIR)).toInstance(config.walletDir);
|
||||||
bind(int.class).annotatedWith(named(WALLET_RPC_BIND_PORT)).toInstance(config.walletRpcBindPort);
|
bind(int.class).annotatedWith(named(WALLET_RPC_BIND_PORT)).toInstance(config.walletRpcBindPort);
|
||||||
|
|
||||||
|
bindConstant().annotatedWith(named(Config.XMR_NODE)).to(config.xmrNode);
|
||||||
|
bindConstant().annotatedWith(named(Config.XMR_NODE_USERNAME)).to(config.xmrNodeUsername);
|
||||||
|
bindConstant().annotatedWith(named(Config.XMR_NODE_PASSWORD)).to(config.xmrNodePassword);
|
||||||
bindConstant().annotatedWith(named(Config.BTC_NODES)).to(config.btcNodes);
|
bindConstant().annotatedWith(named(Config.BTC_NODES)).to(config.btcNodes);
|
||||||
bindConstant().annotatedWith(named(Config.USER_AGENT)).to(config.userAgent);
|
bindConstant().annotatedWith(named(Config.USER_AGENT)).to(config.userAgent);
|
||||||
bindConstant().annotatedWith(named(Config.NUM_CONNECTIONS_FOR_BTC)).to(config.numConnectionsForBtc);
|
bindConstant().annotatedWith(named(Config.NUM_CONNECTIONS_FOR_BTC)).to(config.numConnectionsForBtc);
|
||||||
|
|
Loading…
Reference in a new issue