What changed, and why it matters
This commit only changes log messages so that wallet files are named in Lightning Network peer diagnostics. It makes debugging easier when multiple wallets are open, but it does not alter security behavior, fix a bug, or introduce any user-facing risk.
No security action needed; this is a logging/diagnostics-only change.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The patch modifies diagnostic_name() in lnpeer.py and lnworker.py to return the underlying wallet/gossip object’s diagnostic_name() (e.g., the wallet filename) instead of the generic class name ‘LNWallet’ or ‘LNGossip’. It also moves Logger.init() later in LNPeerManager.init so the logger can use the new diagnostic_name() once _lnwallet_or_lngossip is set. No protocol, cryptographic, or access-control logic is changed.
Changed components
electrum/lnpeer.pyelectrum/lnworker.pyInspect captured patch +7 / −2
diff --git a/electrum/lnpeer.py b/electrum/lnpeer.py
index 2809a79..f10d556 100644
--- a/electrum/lnpeer.py
+++ b/electrum/lnpeer.py
@@ -199,7 +199,8 @@ class Peer(Logger, EventListener):
return chan
def diagnostic_name(self):
- return self.lnworker.__class__.__name__ + ', ' + self.transport.name()
+ lnw_name = self.lnworker.diagnostic_name() or self.lnworker.__class__.__name__
+ return lnw_name + ', ' + self.transport.name()
async def ping_if_required(self):
if time.time() - self.last_message_time > 30:
diff --git a/electrum/lnworker.py b/electrum/lnworker.py
index 453de6d..4270dad 100644
--- a/electrum/lnworker.py
+++ b/electrum/lnworker.py
@@ -225,7 +225,6 @@ class LNPeerManager(Logger, EventListener, NetworkRetryManager[LNPeerAddr]):
features: LnFeatures,
config: 'SimpleConfig',
):
- Logger.__init__(self)
NetworkRetryManager.__init__(
self,
max_retry_delay_normal=3600,
@@ -236,6 +235,7 @@ class LNPeerManager(Logger, EventListener, NetworkRetryManager[LNPeerAddr]):
self.lock = threading.RLock()
self.node_keypair = node_keypair
self._lnwallet_or_lngossip = lnwallet_or_lngossip
+ Logger.__init__(self)
self._peers = {} # type: Dict[bytes, Peer] # pubkey -> Peer # needs self.lock
self._channelless_incoming_peers = set() # type: Set[bytes] # node_ids # needs self.lock
self.taskgroup = OldTaskGroup()
@@ -246,6 +246,10 @@ class LNPeerManager(Logger, EventListener, NetworkRetryManager[LNPeerAddr]):
self.stopping_soon = False # whether we are being shut down
self.register_callbacks()
+ def diagnostic_name(self):
+ lnw = self._lnwallet_or_lngossip
+ return lnw.diagnostic_name() or lnw.__class__.__name__
+
@property
def channel_db(self) -> 'ChannelDB':
return self.network.channel_db if self.network else None
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.