1
0

lnpeer: log both sent and recv msgs; use pubkey for incoming transports

Previously for incoming transports, the diagnostic_name (for log messages)
was just "responder" -- not sufficient to distinguish peers.
We now use the pubkey instead.

For outgoing transports it is f"{host}:{port}" (unchanged).
We could just use the pubkey for both uniformly; but it is quite long, and
it is hard to distinguish them at a glance.
This commit is contained in:
SomberNight
2021-03-29 21:29:51 +02:00
parent 5a3ec45b16
commit f2040b19ea
3 changed files with 25 additions and 5 deletions

View File

@@ -157,6 +157,9 @@ class LNTransportBase:
def close(self):
self.writer.close()
def remote_pubkey(self) -> Optional[bytes]:
raise NotImplementedError()
class LNResponderTransport(LNTransportBase):
"""Transport initiated by remote party."""
@@ -166,9 +169,12 @@ class LNResponderTransport(LNTransportBase):
self.reader = reader
self.writer = writer
self.privkey = privkey
self._pubkey = None # remote pubkey
def name(self):
return "responder"
pubkey = self.remote_pubkey()
pubkey_hex = pubkey.hex() if pubkey else pubkey
return f"{pubkey_hex}(in)"
async def handshake(self, **kwargs):
hs = HandshakeState(privkey_to_pubkey(self.privkey))
@@ -221,8 +227,12 @@ class LNResponderTransport(LNTransportBase):
_p = aead_decrypt(temp_k3, 0, hs.update(c), t)
self.rk, self.sk = get_bolt8_hkdf(ck, b'')
self.init_counters(ck)
self._pubkey = rs
return rs
def remote_pubkey(self) -> Optional[bytes]:
return self._pubkey
class LNTransport(LNTransportBase):
"""Transport initiated by local party."""
@@ -276,3 +286,6 @@ class LNTransport(LNTransportBase):
self.writer.write(msg)
self.sk, self.rk = get_bolt8_hkdf(hs.ck, b'')
self.init_counters(ck)
def remote_pubkey(self) -> Optional[bytes]:
return self.peer_addr.pubkey