diff --git a/.bumpversion.cfg b/.bumpversion.cfg index fe49dbb2b..8d0e23700 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.14.1 +current_version = 0.15.0 commit = True tag = True parse = (?P\d+)\.(?P\d+)\.(?P\d+)((?P[a-z]+)(?P\d+))? diff --git a/CHANGELOG.md b/CHANGELOG.md index d1df65a9f..665aa0c45 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,7 +21,7 @@ at anytime. * ### Changed - * + * Persist DHT node id * ### Added diff --git a/lbrynet/conf.py b/lbrynet/conf.py index cbbf5bd6d..c8c58ae8d 100644 --- a/lbrynet/conf.py +++ b/lbrynet/conf.py @@ -287,6 +287,7 @@ class Config(object): self._installation_id = None self._session_id = base58.b58encode(utils.generate_id()) + self._node_id = None self._fixed_defaults = fixed_defaults self._adjustable_defaults = adjustable_defaults @@ -528,6 +529,18 @@ class Config(object): install_id_file.write(self._installation_id) return self._installation_id + def get_node_id(self): + node_id_filename = os.path.join(self.ensure_data_dir(), "node_id") + if not self._node_id: + if os.path.isfile(node_id_filename): + with open(node_id_filename, "r") as node_id_file: + self._node_id = base58.b58decode(node_id_file.read()) + if not self._node_id: + self._node_id = utils.generate_id() + with open(node_id_filename, "w") as node_id_file: + node_id_file.write(base58.b58encode(self._node_id)) + return self._node_id + def get_session_id(self): return self._session_id @@ -551,5 +564,6 @@ def initialize_settings(load_conf_file=True): settings = Config(FIXED_SETTINGS, ADJUSTABLE_SETTINGS, environment=get_default_env()) settings.installation_id = settings.get_installation_id() + settings.node_id = settings.get_node_id() if load_conf_file: settings.load_conf_file_settings() diff --git a/lbrynet/daemon/Daemon.py b/lbrynet/daemon/Daemon.py index 8f790dabb..7219477f8 100644 --- a/lbrynet/daemon/Daemon.py +++ b/lbrynet/daemon/Daemon.py @@ -207,7 +207,7 @@ class Daemon(AuthJSONRPCServer): # of the daemon, but I don't want to deal with that now self.analytics_manager = analytics_manager - self.lbryid = utils.generate_id() + self.lbryid = conf.settings.node_id self.wallet_user = None self.wallet_password = None diff --git a/tests/mocks.py b/tests/mocks.py index 5ef7d7a5c..67374ad98 100644 --- a/tests/mocks.py +++ b/tests/mocks.py @@ -280,6 +280,7 @@ def mock_conf_settings(obj, settings={}): original_settings = conf.settings conf.settings = conf.Config(conf.FIXED_SETTINGS, conf.ADJUSTABLE_SETTINGS) conf.settings.installation_id = conf.settings.get_installation_id() + conf.settings.node_id = conf.settings.get_node_id() conf.settings.update(settings) def _reset_settings():