mirror of
https://github.com/LBRYFoundation/LBRY-Vault.git
synced 2025-09-02 18:25:21 +00:00
lnworker: check chain_hash when decoding channel update.
This commit is contained in:
parent
756c7db888
commit
5efaaa523a
1 changed files with 8 additions and 2 deletions
|
@ -902,18 +902,24 @@ class LNWallet(LNWorker):
|
||||||
# we try decoding both ways here.
|
# we try decoding both ways here.
|
||||||
try:
|
try:
|
||||||
message_type, payload = decode_msg(channel_update_typed)
|
message_type, payload = decode_msg(channel_update_typed)
|
||||||
|
assert payload['chain_hash'] == constants.net.rev_genesis_bytes()
|
||||||
payload['raw'] = channel_update_typed
|
payload['raw'] = channel_update_typed
|
||||||
except: # FIXME: too broad
|
except: # FIXME: too broad
|
||||||
message_type, payload = decode_msg(channel_update_as_received)
|
message_type, payload = decode_msg(channel_update_as_received)
|
||||||
payload['raw'] = channel_update_as_received
|
payload['raw'] = channel_update_as_received
|
||||||
|
# sanity check
|
||||||
|
if payload['chain_hash'] != constants.net.rev_genesis_bytes():
|
||||||
|
self.logger.info(f'could not decode channel_update for failed htlc: {channel_update_as_received.hex()}')
|
||||||
|
return True
|
||||||
categorized_chan_upds = self.channel_db.add_channel_updates([payload])
|
categorized_chan_upds = self.channel_db.add_channel_updates([payload])
|
||||||
blacklist = False
|
blacklist = False
|
||||||
|
short_channel_id = ShortChannelID(payload['short_channel_id'])
|
||||||
if categorized_chan_upds.good:
|
if categorized_chan_upds.good:
|
||||||
self.logger.info("applied channel update on our db")
|
self.logger.info(f"applied channel update to {short_channel_id}")
|
||||||
peer.maybe_save_remote_update(payload)
|
peer.maybe_save_remote_update(payload)
|
||||||
elif categorized_chan_upds.orphaned:
|
elif categorized_chan_upds.orphaned:
|
||||||
# maybe it is a private channel (and data in invoice was outdated)
|
# maybe it is a private channel (and data in invoice was outdated)
|
||||||
self.logger.info("maybe channel update is for private channel?")
|
self.logger.info(f"Could not find {short_channel_id}. maybe update is for private channel?")
|
||||||
start_node_id = route[sender_idx].node_id
|
start_node_id = route[sender_idx].node_id
|
||||||
self.channel_db.add_channel_update_for_private_channel(payload, start_node_id)
|
self.channel_db.add_channel_update_for_private_channel(payload, start_node_id)
|
||||||
elif categorized_chan_upds.expired:
|
elif categorized_chan_upds.expired:
|
||||||
|
|
Loading…
Add table
Reference in a new issue