Commit graph

1265 commits

Author SHA1 Message Date
Matt Corallo
0faf7bb094
Merge pull request #281 from ariard/harden-inbound-htlc-resolved
Harden test for logging of inbound htlc being resolved
2019-01-04 23:07:29 -05:00
Antoine Riard
cb53ae76f3 Log resolution of offered HTLC by HTLC-timeout tx 2019-01-02 21:06:04 -05:00
Matt Corallo
24577344fa Move fail-backwards up for no to-remote output claims
This fixes HTLC fail-backwards in case we haven't yet sent enough
to have a to_remote output to claim, plus some edge cases where it
could be removed due to a fee update, though hopefully that goes
away with simplified_commitment.
2018-12-31 20:26:07 -05:00
Matt Corallo
13dc1db100
Merge pull request #278 from TheBlueMatt/2018-12-fail-on-unrevoked-remote
Fail HTLC backwards on unrevoked remote commitment tx broadcast
2018-12-31 20:25:44 -05:00
Antoine Riard
93fd3e8bb9 More comments/hardening test_fail_backwards_unrevoked_remote_announce 2018-12-31 19:56:32 -05:00
Matt Corallo
608cf1c89d Fail HTLC backwards on unrevoked remote commitment tx broadcast 2018-12-31 19:56:32 -05:00
Matt Corallo
726674ddb5 Macro-out BroadcastChannelUpdate-on-channel-close in func tests 2018-12-22 07:03:17 -05:00
Matt Corallo
36954fde6e Log errors forwarding/failing HTLCs 2018-12-22 07:03:17 -05:00
Matt Corallo
ce08061518 Remove long-stale TODO 2018-12-22 07:03:17 -05:00
Matt Corallo
eb933d90f3
Merge pull request #276 from TheBlueMatt/2018-12-async-fail
Fail HTLCs backwards asynchronously
2018-12-22 07:02:41 -05:00
Matt Corallo
044edd6e86 Fail HTLCs backwards asynchronously 2018-12-21 15:17:42 -05:00
Matt Corallo
c220a5c5cf Add an enum option to pending forwards to fail backwards 2018-12-20 22:56:32 -05:00
Matt Corallo
e5c1716f5c Refactor HTLCForwardInfo into an enum in prep for delayed-fail 2018-12-20 22:56:32 -05:00
Matt Corallo
4aa814d53c macro-out a bunch of PendingHTLCsForwardable+forward calls 2018-12-20 22:56:32 -05:00
Matt Corallo
04ff26efa9 Move process_onion_failure into onion_utils 2018-12-20 22:56:32 -05:00
Matt Corallo
3bfea5b659
Merge pull request #275 from TheBlueMatt/2018-12-manager-split
Split up ChannelManager
2018-12-20 14:59:22 -05:00
Matt Corallo
28e2480c6e Drop needless mut found by rustc 1.22 2018-12-20 14:32:02 -05:00
Matt Corallo
2053edbe53 Move ChannelManager network tests into their own module 2018-12-20 14:32:02 -05:00
Matt Corallo
dcaa53d560 Move onion encryption/decryption/etc into an onion_utils module 2018-12-19 20:36:34 -05:00
Matt Corallo
6cf8158519 Drop channel_held_info which was only for the channel fuzz target 2018-12-19 20:36:34 -05:00
Matt Corallo
50ed320503
Merge pull request #270 from TheBlueMatt/2018-12-drop-rust-crypto
Drop rust-crypto for bitcoin_hashes
2018-12-19 20:35:46 -05:00
Matt Corallo
f5dc762754 trace_log more in channelmonitor 2018-12-19 20:02:36 -05:00
Matt Corallo
7ea39a13b2 Use bitcoin_hashes' fixed_time_eq, removing the rust-crypto dep 2018-12-19 20:02:36 -05:00
Matt Corallo
202c0aedcb Drop rust-crypto trait usage 2018-12-19 20:02:36 -05:00
Matt Corallo
7511a82195 Steal rust-crypto's Poly1305 implementation wholesale 2018-12-19 20:02:36 -05:00
Matt Corallo
09c7f2f641 Steal rust-crypto's ChaCha20 implementation wholesale 2018-12-19 20:02:36 -05:00
Matt Corallo
8e07259326 Use bitcoin_hashes' Ripemd160/Hash160 from rust-crypto+rust-bitcoin
Note that this requires rewriting full_stack_target tests, which
sucks, but it does let the fuzzer hit more stuff since the real
ripemd160 isn't ever actually called anymore.
2018-12-19 20:02:36 -05:00
Matt Corallo
f1e400f142 Switch Sha256 to using bitcoin_hashes and our own HKDF 2018-12-19 17:13:25 -05:00
Matt Corallo
f904690b00 Change the way channel keys are generated
This fixes a somewhat-misuse of HKDF in ChannelKeys::new_from_seed,
but much more importantly removes a use of rust-crypto's HKDF funcs
2018-12-17 23:55:38 -05:00
Matt Corallo
ec513b81df
Merge pull request #274 from TheBlueMatt/2018-12-243-review
Onion Error Handling
2018-12-17 23:33:22 -05:00
Matt Corallo
caeff85368 Update incorrect_payment_amount generation/handling for BOLT uptd
ie dont generate them as they're a really obvious privacy leak.
Luckily we were already handling them the same aside from log
printing so don't have to touch anything there. I was lazy in
updating tests but it only effects log printing, so whatever.
2018-12-17 22:57:47 -05:00
Yuntai Kyong
3f4ab940d4 Add tests for process_onion_failure return value sanity 2018-12-17 22:55:45 -05:00
Matt Corallo
8783a748bb Add test_util for overriding session privs for onion crypt 2018-12-17 22:55:45 -05:00
Matt Corallo
38702358d1 Add some additional channel-creation-broadcast-msg sanity checks 2018-12-17 22:55:45 -05:00
Matt Corallo
b7e76c5c40 Always return malformed for BADONION errors
Also be willing to forward something with a pubkey that we know is
complete garbage, but upstream will just fail that with BADONION
when they get it.

I think this is kinda intended by the spec, but it definitely needs
to be clarified.
2018-12-17 22:55:45 -05:00
Matt Corallo
7cfb09c797 Add TODO noting confusion over |20 (channel_disabled) definition 2018-12-17 22:55:45 -05:00
Yuntai Kyong
4839ef7b83 Include flags when sending channel_disabled onion errors 2018-12-17 22:55:45 -05:00
Yuntai Kyong
7a8bec750d Rewrite most of process_onion_failure 2018-12-17 22:55:45 -05:00
Yuntai Kyong
096892cefe Swap an if let for a match and add some TODO 2018-12-17 22:55:45 -05:00
Matt Corallo
077b8e8c32
Merge pull request #273 from ariard/2018-12-17-replace-by-permanent-channel-failure
Replace some unknown_next_peer by permanent_channel_failure
2018-12-17 22:55:22 -05:00
Antoine Riard
b1712eb38e Replace some unknown_next_peer by permanent_channel_failure 2018-12-17 20:47:19 -05:00
Matt Corallo
832fc4fd44
Merge pull request #269 from TheBlueMatt/2018-12-198-review
Detect HTLC-resolving on-chain actions and pass them to ChannelManager
2018-12-17 12:11:36 -05:00
Matt Corallo
d56b47968c Add some TODOs for correctness in ChannelMonitor 2018-12-14 17:01:12 -05:00
Matt Corallo
d0dfaf8abc Add constant for HTLC failure anti-reorg delay 2018-12-14 17:01:12 -05:00
Matt Corallo
150e9f0f8c Include the node id in ChannelManager test logs 2018-12-14 17:01:12 -05:00
Matt Corallo
f5ccd4b4ef Add additional log traces in channelmonitor/manager 2018-12-14 17:01:12 -05:00
Antoine Riard
ea6e9a7880 Add logging of HTLC outputs resolved by remote peer justice tx
In case of broadcast of revoked local commitment tx, we may be
interested that we've screwed up
2018-12-14 17:00:51 -05:00
Antoine Riard
7a483e597c Typify payment_hash and payment_preimage
Fix variable name as payment_hash instead of txid for index
of remote_hash_commitment_number in ChannelMonitor reader
2018-12-14 17:00:50 -05:00
Matt Corallo
cdbd2ef5a2 Add bigger test for failing HTLCs claimed through revocation 2018-12-14 17:00:22 -05:00
Antoine Riard
0e9ac1144b Add test for failing/fulfilling HTLCs from on-chain actions
Including detection of timeout claims, fulfill claims, and
failing all current HTLCs in case of revoked-commitment broadcast.
2018-12-14 17:00:22 -05:00