Qt: remove the 'local watchtower' option from GUI.
It is not realistic to expect Electrum to be used as a watchtower in GUI mode, and possibly counter-productive (may set wrong expectations). A proper watchtower should be configured as a daemon. The documentation will be updated to reflect this change.
This commit is contained in:
@@ -370,8 +370,6 @@ class ElectrumGui(Logger):
|
|||||||
with self._num_wizards_lock:
|
with self._num_wizards_lock:
|
||||||
if self._num_wizards_in_progress > 0 or len(self.windows) > 0:
|
if self._num_wizards_in_progress > 0 or len(self.windows) > 0:
|
||||||
return
|
return
|
||||||
if self.config.get('persist_daemon'):
|
|
||||||
return
|
|
||||||
self.app.quit()
|
self.app.quit()
|
||||||
self.app.setQuitOnLastWindowClosed(False) # so _we_ can decide whether to quit
|
self.app.setQuitOnLastWindowClosed(False) # so _we_ can decide whether to quit
|
||||||
self.app.lastWindowClosed.connect(quit_after_last_window)
|
self.app.lastWindowClosed.connect(quit_after_last_window)
|
||||||
|
|||||||
@@ -746,7 +746,8 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, Logger):
|
|||||||
tools_menu.addAction(_("Electrum preferences"), self.settings_dialog)
|
tools_menu.addAction(_("Electrum preferences"), self.settings_dialog)
|
||||||
|
|
||||||
tools_menu.addAction(_("&Network"), self.gui_object.show_network_dialog).setEnabled(bool(self.network))
|
tools_menu.addAction(_("&Network"), self.gui_object.show_network_dialog).setEnabled(bool(self.network))
|
||||||
tools_menu.addAction(_("Local &Watchtower"), self.gui_object.show_watchtower_dialog).setEnabled(bool(self.network and self.network.local_watchtower))
|
if self.network and self.network.local_watchtower:
|
||||||
|
tools_menu.addAction(_("Local &Watchtower"), self.gui_object.show_watchtower_dialog)
|
||||||
tools_menu.addAction(_("&Plugins"), self.plugins_dialog)
|
tools_menu.addAction(_("&Plugins"), self.plugins_dialog)
|
||||||
tools_menu.addSeparator()
|
tools_menu.addSeparator()
|
||||||
tools_menu.addAction(_("&Sign/verify message"), self.sign_verify_message)
|
tools_menu.addAction(_("&Sign/verify message"), self.sign_verify_message)
|
||||||
|
|||||||
@@ -161,31 +161,13 @@ channels graph and compute payment path locally, instead of using trampoline pay
|
|||||||
gossip_cb.stateChanged.connect(on_gossip_checked)
|
gossip_cb.stateChanged.connect(on_gossip_checked)
|
||||||
lightning_widgets.append((gossip_cb, None))
|
lightning_widgets.append((gossip_cb, None))
|
||||||
|
|
||||||
help_local_wt = _("""If this option is checked, Electrum will
|
help_remote_wt = ' '.join([
|
||||||
run a local watchtower and protect your channels even if your wallet is not
|
_("A watchtower is a daemon that watches your channels and prevents the other party from stealing funds by broadcasting an old state."),
|
||||||
open. For this to work, your computer needs to be online regularly.""")
|
_("If you have private a watchtower, enter its URL here."),
|
||||||
local_wt_cb = QCheckBox(_("Run a local watchtower"))
|
_("Check our online documentation if you want to configure Electrum as a watchtower."),
|
||||||
local_wt_cb.setToolTip(help_local_wt)
|
])
|
||||||
local_wt_cb.setChecked(bool(self.config.get('run_local_watchtower', False)))
|
|
||||||
def on_local_wt_checked(x):
|
|
||||||
self.config.set_key('run_local_watchtower', bool(x))
|
|
||||||
local_wt_cb.stateChanged.connect(on_local_wt_checked)
|
|
||||||
lightning_widgets.append((local_wt_cb, None))
|
|
||||||
|
|
||||||
help_persist = _("""If this option is checked, Electrum will persist after
|
|
||||||
you close all your wallet windows, and the Electrum icon will be visible in the taskbar.
|
|
||||||
Use this if you want your local watchtower to keep running after you close your wallet.""")
|
|
||||||
persist_cb = QCheckBox(_("Persist after all windows are closed"))
|
|
||||||
persist_cb.setToolTip(help_persist)
|
|
||||||
persist_cb.setChecked(bool(self.config.get('persist_daemon', False)))
|
|
||||||
def on_persist_checked(x):
|
|
||||||
self.config.set_key('persist_daemon', bool(x))
|
|
||||||
persist_cb.stateChanged.connect(on_persist_checked)
|
|
||||||
lightning_widgets.append((persist_cb, None))
|
|
||||||
|
|
||||||
help_remote_wt = _("""To use a remote watchtower, enter the corresponding URL here""")
|
|
||||||
remote_wt_cb = QCheckBox(_("Use a remote watchtower"))
|
remote_wt_cb = QCheckBox(_("Use a remote watchtower"))
|
||||||
remote_wt_cb.setToolTip(help_remote_wt)
|
remote_wt_cb.setToolTip('<p>'+help_remote_wt+'</p>')
|
||||||
remote_wt_cb.setChecked(bool(self.config.get('use_watchtower', False)))
|
remote_wt_cb.setChecked(bool(self.config.get('use_watchtower', False)))
|
||||||
def on_remote_wt_checked(x):
|
def on_remote_wt_checked(x):
|
||||||
self.config.set_key('use_watchtower', bool(x))
|
self.config.set_key('use_watchtower', bool(x))
|
||||||
|
|||||||
@@ -351,7 +351,7 @@ class Network(Logger, NetworkRetryManager[ServerAddr]):
|
|||||||
|
|
||||||
# lightning network
|
# lightning network
|
||||||
self.channel_blacklist = ChannelBlackList()
|
self.channel_blacklist = ChannelBlackList()
|
||||||
if self.config.get('run_local_watchtower', False):
|
if self.config.get('run_watchtower', False):
|
||||||
from . import lnwatcher
|
from . import lnwatcher
|
||||||
self.local_watchtower = lnwatcher.WatchTower(self)
|
self.local_watchtower = lnwatcher.WatchTower(self)
|
||||||
self.local_watchtower.start_network(self)
|
self.local_watchtower.start_network(self)
|
||||||
|
|||||||
@@ -316,7 +316,7 @@ fi
|
|||||||
|
|
||||||
if [[ $1 == "configure_test_watchtower" ]]; then
|
if [[ $1 == "configure_test_watchtower" ]]; then
|
||||||
# carol is the watchtower of bob
|
# carol is the watchtower of bob
|
||||||
$carol setconfig -o run_local_watchtower true
|
$carol setconfig -o run_watchtower true
|
||||||
$carol setconfig -o watchtower_user wtuser
|
$carol setconfig -o watchtower_user wtuser
|
||||||
$carol setconfig -o watchtower_password wtpassword
|
$carol setconfig -o watchtower_password wtpassword
|
||||||
$carol setconfig -o watchtower_address 127.0.0.1:12345
|
$carol setconfig -o watchtower_address 127.0.0.1:12345
|
||||||
|
|||||||
Reference in New Issue
Block a user