Commit graph

6362 commits

Author SHA1 Message Date
Matt Corallo
9942994012
Merge pull request #2773 from johncantrell97/apeermanager-lbs
simplify GossipVerifier types using APeerManager
2023-12-05 22:13:50 +00:00
John Cantrell
67659677d4 simplify GossipVerifier types using APeerManager 2023-12-05 16:01:29 -05:00
valentinewallace
37150b4d69
Merge pull request #2764 from TheBlueMatt/2023-11-chacha-cleanup
Trivial ChaCha cleanups
2023-12-05 12:00:40 -05:00
Matt Corallo
242e6aedb2
Merge pull request #2642 from Sharmalm/2346
logging every sent receive onion message
2023-12-05 00:10:01 +00:00
Wilmer Paulino
12c2086d58
Merge pull request #2753 from TheBlueMatt/2023-11-inbound-preimages
Provide inbound HTLC preimages to the `EcdsaChannelSigner`
2023-12-04 13:15:10 -08:00
Wilmer Paulino
7f96446294
Merge pull request #2771 from tnull/2023-12-log-details-for-ignored-first-hop
Log additional details when ignoring first hops
2023-12-04 11:38:21 -08:00
Matt Corallo
262072d816 Provide inbound HTLC preimages to the EcdsaChannelSigner
The VLS signer has a desire to see preimages for resolved forwarded
HTLCs when they are first claimed by us, even if that claim was for
the inbound edge (where claiming strictly increases our balance).

Luckily, providing that information is rather trivial, which we do
here.

Fixes #2356
2023-12-04 19:36:49 +00:00
Wilmer Paulino
4d66cce487
Merge pull request #2769 from TheBlueMatt/2023-12-2314-cleanups-3
Post-#2314 Cleanups #3
2023-12-04 10:09:52 -08:00
Elias Rohrer
52ecce9e28
Log additional details when ignoring first hops
Users are often confused when we fail to find a route due to some
requirements on the first hop are not being met. While we now take note
and log such candidates, we still previously required users to check
additional details to figure out why exactly the router refused to route
over a particular first hop.

Here, we add additional TRACE logging, in particular for
`ChannelDetails::next_outbound_htlc_limit_msat` and
`ChannelDetails::next_outbound_htlc_minimum_msat` when they are
relevant.
2023-12-04 19:07:54 +01:00
Matt Corallo
1eddd1ef8f
Merge pull request #2768 from benthecarman/preimage-helper
Add helper function for getting preimage from PaymentPurpose
2023-12-04 17:10:33 +00:00
Elias Rohrer
ac06a6a2f6
Merge pull request #2766 from TheBlueMatt/2023-12-2314-cleanups-2
Marginally optimize test logging
2023-12-04 12:15:56 +01:00
Matt Corallo
cf0539eba4 Doc that Record::node_id may be missing even with channel_id
There are various place where we log something related to a channel
but fail to fill in the channel's counterparty information. This is
somewhat surprising, given channel counterparty information is
always known, but simply is sometimes not readily accessible to LDK
when a log is printed.
2023-12-03 19:42:21 +00:00
Matt Corallo
2be5e370e3 Set log metadata in a few additional locations in channelmanager 2023-12-03 19:42:21 +00:00
Matt Corallo
b0606a1193 Log next-hop metadata when forwarding or failing to forward HTLC 2023-12-03 19:42:21 +00:00
Matt Corallo
2fc79cbfd3 Include next-hop counterparty node id in log metadata when sending 2023-12-03 19:42:21 +00:00
Matt Corallo
0ce0d48319 Add missing counterparty node id metadata to logs in HTLC decoding 2023-12-03 19:42:21 +00:00
benthecarman
00f578adee
Add helper function for getting preimage from PaymentPurpose 2023-12-03 12:42:17 -06:00
Matt Corallo
f57295f9d9 Include counterparty node id and channel id in shutdown log
This avoids an important shutdown log being about a channel but not
having the channel metadata.
2023-12-02 20:03:19 +00:00
Matt Corallo
ec1a66e4cd Add missing unwrap in reload_tests.rs 2023-12-02 19:19:07 +00:00
Matt Corallo
dfb02f1878 Marginally optimize test logging
973636bd2a introduced a new `HashMap`
in the `TestLogger` but then did lookups by iterating the entire
map. This fixes that, and also takes this opportunity to stop
allocating new `String`s for the module to store each log entry in
the `TestLogger`
2023-12-02 19:19:07 +00:00
henghonglee
ff5e5221d2 logging every sent and receive onion message
Logs every sent + receive for P2P messages
solves #2346
2023-12-03 00:24:14 +05:30
Matt Corallo
6b43153861
Merge pull request #2314 from henghonglee/issue-2292
Add peer_id and channel_id explicitly to log records
2023-12-02 17:43:32 +00:00
Jeffrey Czyz
e21a500668
Refactor ChainMonitor::update_channel error case
Move the handling of ChannelMonitorUpdateStatus::UnrecoverableError to
the point of error to avoid needing an unwrap later when re-wrapping the
logger.
2023-12-01 11:54:00 -06:00
Jeffrey Czyz
e6d8f350fc
Remove unused handle_error macro rule 2023-12-01 11:54:00 -06:00
henghonglee
df3ab2ee27
Use wrapper to add context to logging
Using a decorator pattern, add peer_id and channel_id to Record
stored on Logger.
2023-12-01 11:53:55 -06:00
henghonglee
a727ccab94
Add WithChannelMonitor 2023-12-01 11:50:34 -06:00
henghonglee
aa502fe948
Add WithChannelContext 2023-12-01 11:30:19 -06:00
henghonglee
fa7f2f4986
Add WithChannelDetails 2023-12-01 11:30:19 -06:00
henghonglee
973636bd2a
Add WithContext and Tests 2023-12-01 11:30:19 -06:00
Jeffrey Czyz
a42aeb5667
Add semantics to logger::Records
Include optional peer and channel ids to logger::Record. This will be
used by wrappers around Logger in order to provide more context (e.g.,
the peer that sent a message, the channel an operation is pertaining to,
etc.). Implementations of Logger can include this as metadata to aid in
searching logs.
2023-12-01 11:30:19 -06:00
henghonglee
0cba31fd38
Pass Record by value to Logger
Instead of passing a reference to a Record, pass the Logger an owned
Record so that it can be decorated with semantic context.
2023-12-01 11:30:19 -06:00
valentinewallace
74bc9e2b4a
Merge pull request #2540 from valentinewallace/2023-08-blinded-errors
Route blinding: support forwarding as the intro node
2023-11-30 23:29:10 -05:00
Matt Corallo
c79cf82224 Add inline suggestion tags to ChaCha20 SIMD wrappers
These are obviously super hot, and while LLVM shouldn't be
braindead here you never know, so we might as well `#[inline]`.
2023-11-30 23:38:31 +00:00
Matt Corallo
e0480b531d Drop unnecessary SIMD subtraction in ChaCha20 round
While its all constant arithmetic to calculate the shift, which
LLVM likely optimizes out for us, there's no reason to do it four
times, which just makes the code harder to read.
2023-11-30 23:35:43 +00:00
Valentine Wallace
6af786af6b
Test blinding point serialization in Channel. 2023-11-29 22:46:54 -05:00
Valentine Wallace
e510e3c2d9
Add release note for blinded HTLC backwards compat. 2023-11-29 22:46:54 -05:00
Valentine Wallace
4d43ccdf0f
Test intro node failing blinded intercept HTLC. 2023-11-29 22:46:54 -05:00
Valentine Wallace
0a4587020e
Test intro node blinded HTLC failing in process_pending_htlc_fwds. 2023-11-29 22:46:54 -05:00
Valentine Wallace
b767d379c1
Correctly fail back downstream-failed blinded HTLCs as intro 2023-11-29 22:46:54 -05:00
Valentine Wallace
09cf4847bd
Correctly fail back blinded inbound fwd HTLCs when adding to a Channel
As the intro node.
2023-11-29 22:46:54 -05:00
Valentine Wallace
8c0c3a37db
Extract blinded route param creation into test util 2023-11-29 22:46:54 -05:00
Valentine Wallace
67d24633ae
Correctly fail back on outbound channel check for blinded HTLC
Forwarding intro nodes should always fail with 0x8000|0x4000|24.
2023-11-29 22:46:49 -05:00
Valentine Wallace
c8adb54b71
Test blinded forwarding payload encoded as receive error case 2023-11-29 22:43:13 -05:00
Valentine Wallace
918f09c529
Test blinded forward failure to calculate outbound cltv expiry
Intro node failure only.
2023-11-29 22:43:12 -05:00
Valentine Wallace
d2222c8224
Remove now-unused Readable impl for ReceiveTlvs 2023-11-29 22:43:12 -05:00
Valentine Wallace
47d34c3668
Support forwarding blinded HTLCs as intro node.
Error handling will be completed in upcoming commits.
2023-11-29 22:43:11 -05:00
Valentine Wallace
1a7254c178
Parse blinded forward-as-intro onion payloads
Previously, we only parsed blinded receive payloads.
2023-11-29 17:23:29 -05:00
Valentine Wallace
50c850fdd0
Set update_add blinding point on HTLC forward
Used by the next hop to decode their blinded onion payload.
2023-11-29 17:18:40 -05:00
Valentine Wallace
a2b2fb0ceb
Parameterize Channel's htlc forward method by outbound blinding point
Used in the next commit to set the update_add blinding point on HTLC forward.
2023-11-29 17:18:40 -05:00
Valentine Wallace
21ae9fdd69
Set HTLCPreviousHopData::blinded on intro node forward.
Useful so we know to fail back blinded HTLCs where we are the intro node with
the invalid_onion_blinding error per BOLT 4.

We don't set this field for blinded received HTLCs because we don't support
receiving to multi-hop blinded paths yet, and there's no point in setting it
for HTLCs received to 1-hop blinded paths because per the spec they should fail
back using an unblinded error code.
2023-11-29 17:18:39 -05:00