tDeprecate rescan script and create --rescan flag - electrum-personal-server - Maximally lightweight electrum server for a single user HTML git clone https://git.parazyd.org/electrum-personal-server DIR Log DIR Files DIR Refs DIR README --- DIR commit 8745c7c3c83a3a97a80f63b3681ff71a5b702520 DIR parent 8a3000b22333463b49582c92b62e056378c4ce9b HTML Author: chris-belcher <chris-belcher@users.noreply.github.com> Date: Thu, 18 Apr 2019 20:06:04 +0100 Deprecate rescan script and create --rescan flag The seperate rescan script is not really necessary. It's cleaner tto have a --rescan flag for the main script and have people use that. It will also be much easier when electrum personal server is packaged up with pyinstaller so there is only one executable. Diffstat: M electrumpersonalserver/server/comm… | 47 ++++++++++++++++++++----------- M setup.py | 2 +- 2 files changed, 31 insertions(+), 18 deletions(-) --- DIR diff --git a/electrumpersonalserver/server/common.py b/electrumpersonalserver/server/common.py t@@ -611,6 +611,10 @@ def parse_args(): parser = ArgumentParser(description='Electrum Personal Server daemon') parser.add_argument('config_file', help='configuration file (mandatory)') + parser.add_argument("--rescan", action="store_true", help="Start the " + + " rescan script instead") + parser.add_argument("-v", "--version", action="version", version= + "%(prog)s " + SERVER_VERSION_NUMBER) return parser.parse_args() #log for checking up/seeing your wallet, debug for when something has gone wrong t@@ -682,6 +686,10 @@ def main(): logger.error("Wallet related RPC calls not found, looks like the " + "bitcoin node was compiled with the disable wallet flag") return + + if opts.rescan: + rescan_script(logger, rpc) + return import_needed, relevant_spks_addrs, deterministic_wallets = \ get_scriptpubkeys_to_monitor(rpc, config) if import_needed: t@@ -748,7 +756,25 @@ def search_for_block_height_of_date(datestr, rpc): else: return -1 -def rescan(): +def rescan_script(logger, rpc): + user_input = input("Enter earliest wallet creation date (DD/MM/YYYY) " + "or block height to rescan from: ") + try: + height = int(user_input) + except ValueError: + height = search_for_block_height_of_date(user_input, rpc) + if height == -1: + return + height -= 2016 #go back two weeks for safety + + if input("Rescan from block height " + str(height) + " ? (y/n):") != 'y': + return + logger.info("Rescanning. . . for progress indicator see the bitcoin node's" + + " debug.log file") + rpc.call("rescanblockchain", [height]) + logger.info("end") + +def rescan_main(): opts = parse_args() try: t@@ -763,6 +789,8 @@ def rescan(): logger, logfilename = logger_config(logger, config) logger.info('Starting Electrum Personal Server rescan script') logger.info('Logging to ' + logfilename) + logger.info("The seperate rescan script is deprecated, use " + + "`electrum-personal-server --rescan` instead.") try: rpc_u = config.get("bitcoin-rpc", "rpc_user") rpc_p = config.get("bitcoin-rpc", "rpc_password") t@@ -775,19 +803,4 @@ def rescan(): port = int(config.get("bitcoin-rpc", "port")), user = rpc_u, password = rpc_p, wallet_filename=config.get("bitcoin-rpc", "wallet_filename").strip()) - user_input = input("Enter earliest wallet creation date (DD/MM/YYYY) " - "or block height to rescan from: ") - try: - height = int(user_input) - except ValueError: - height = search_for_block_height_of_date(user_input, rpc) - if height == -1: - return - height -= 2016 #go back two weeks for safety - - if input("Rescan from block height " + str(height) + " ? (y/n):") != 'y': - return - logger.info("Rescanning. . . for progress indicator see the bitcoin node's" - + " debug.log file") - rpc.call("rescanblockchain", [height]) - logger.info("end") + rescan_script(logger, rpc) DIR diff --git a/setup.py b/setup.py t@@ -13,7 +13,7 @@ setup( entry_points={ "console_scripts": [ "electrum-personal-server = electrumpersonalserver.server.common:main", - "electrum-personal-server-rescan = electrumpersonalserver.server.common:rescan", + "electrum-personal-server-rescan = electrumpersonalserver.server.common:rescan_main", ] }, package_data={"electrumpersonalserver": ["certs/*"]},