Matt Corallo
335012640a
Update msg_targets with new, must-roundtrip, and hole messages
2018-08-29 18:04:55 -04:00
Matt Corallo
b9a793a0a0
Correct excess-data handling in NodeAnnouncement
...
Breaks parsing of padding within addresses, but nothing currently
generates such messages, and I'm proposing we remove it in the spec
2018-08-29 18:03:10 -04:00
Matt Corallo
9902fce585
Correct excess-data handling in ChannelUpdate
2018-08-29 18:01:15 -04:00
Matt Corallo
0881bf4b74
Correct excess-data handling in ChannelAnnouncement verif in Router
2018-08-29 17:59:25 -04:00
Matt Corallo
10bc7aa3df
Ignore invalid lnd msgs by matching DecodeError instead of a macro
2018-08-29 17:57:40 -04:00
Matt Corallo
c1c7cc96ac
Remove unused test variable left orphaned by 5d923e2a63
2018-08-29 17:54:57 -04:00
Matt Corallo
d2b44ca7a6
Merge pull request #133 from TheBlueMatt/2018-08-announcement_sigs
...
Clean up/clarify channel announcement_signatures handling
2018-08-29 13:49:52 -04:00
Matt Corallo
bec25955f1
Merge pull request #135 from yuntai/201808-channelreestablish
...
Make my_current_per_commitment_point in ChannelReestablish optional
2018-08-29 13:49:40 -04:00
Yuntai Kyong
9a28496388
Use Option<DataLossProtect> for ChannelReestablish
...
and fix test
2018-08-30 01:48:36 +09:00
Yuntai Kyong
5d923e2a63
Fix test for ChannelReestablish
2018-08-29 13:00:34 +09:00
Yuntai Kyong
7dc215edcb
Make my_current_per_commitment_point Option
...
Per Bolt #2 , both your_last_per_commitment_secret &
my_current_per_commitment_point are optional depending on
`data_loss_protect`
2018-08-29 12:55:11 +09:00
Matt Corallo
30b47bbb14
Clean up/clarify channel announcement_signatures handling
2018-08-28 12:56:29 -04:00
Matt Corallo
63bef2b44e
Make note about complying with BOLT 7 announcement_signatures
2018-08-28 12:12:27 -04:00
Matt Corallo
765987759a
Merge pull request #132 from TheBlueMatt/2018-08-bolt-4-spec-return-fail
...
Return a malformed HTLC message when ephemeral pubkey is garbage
2018-08-27 12:44:13 -04:00
Matt Corallo
a34e80f4e9
Remove incorrect auto-generated header from error_message_target
2018-08-27 11:47:11 -04:00
Matt Corallo
42e908883f
Return a malformed HTLC message when ephemeral pubkey is garbage
...
This resolves a spec-compliance bug with BOLT 4 where we simply
failed to deserialize the message and thus could never return an
HTLC failure message. However, note that BOLT 4 incorrectly hints
that a non-malformed message should be used ("...MUST report a
route failure to the origin node") which we cannot do as we cannot
derive a SharedSecret to encrypt a regular update_fail_htlc message
2018-08-27 11:47:11 -04:00
Matt Corallo
4ca5bcf8cf
Update PendingHTLCStatus to hold malformed HTLC error messages
2018-08-26 16:39:21 -04:00
Matt Corallo
7d6aab7f22
Add update_fail_malformed_htlcs vec to CommitmentUpdate
...
Not sure why this wasn't there to begin with
2018-08-26 16:39:21 -04:00
Matt Corallo
b83443f0cc
Merge pull request #131 from TheBlueMatt/2018-08-bolt-1-compliance
...
update Error/Init handling to be BOLT 1 compliant
2018-08-26 15:37:05 -04:00
Matt Corallo
a33b3a2695
Merge pull request #130 from TheBlueMatt/2018-08-fuzz-fixes-6
...
Fix crash introduced in #124
2018-08-26 15:36:58 -04:00
Matt Corallo
755b76bf83
Update error deserialization in compliance with BOLT #1
2018-08-25 17:21:09 -04:00
Matt Corallo
a3247abb4e
Handle Error messages by closing channels as required by BOLT 1
2018-08-25 17:20:58 -04:00
Matt Corallo
8f36386bee
Ensure we never send messages prior to Init for BOLT 1 compliance
2018-08-25 14:49:18 -04:00
Matt Corallo
32e2f7eef5
Remove unused node_id tracking in ChannelManager tests
2018-08-24 16:58:27 -04:00
Matt Corallo
4f77c812a4
Fix crash introduced in #124
...
I'm rapidly starting to regret holding failed HTLCs in Channel,
given we allow them to violate the no-duplicate-hashes
precondition.
Found by fuzzer
2018-08-24 16:58:27 -04:00
Matt Corallo
a66e597e95
Merge pull request #127 from TheBlueMatt/2018-08-fuzz-fixes-5
...
Fix several panics introduced by #125 (#114 ) and #124
2018-08-23 18:19:40 -04:00
Matt Corallo
7ce13da728
Fix integer overflow panic in new HTLC-forwarding fee checks
...
Found by fuzzer
2018-08-23 17:23:46 -04:00
Matt Corallo
dfc04ad0b4
Fix duplicate payment_hashes one immediately failed, one fail crash
...
Found by fuzzer
2018-08-23 17:04:31 -04:00
Matt Corallo
dbff6010c7
Merge pull request #124 from TheBlueMatt/2018-08-htlc-fail-spec
...
Do not return UpdateFailHTLC updates until the HTLC is committed
2018-08-23 16:44:34 -04:00
Matt Corallo
f5b4759208
Merge pull request #126 from TheBlueMatt/2018-08-restore-full-fuzz
...
Restore full_stack_target fuzzer
2018-08-23 16:41:53 -04:00
Matt Corallo
ab00e4ccff
Merge HTLC-update events, remove FailHTLC ErrorAction
...
UpdateFailHTLC isn't really an error anymore now that its handled
async after channel commitment (as required by BOLT 2), and since
its unused this is free. To resolve the TODO which intended to use
it for HTLC failure when trying to route forwards, we instead opt
to merge all the HTLC update events into one UpdateHTLCs event
which just contains a CommitmentUpdate object.
2018-08-23 16:11:20 -04:00
Matt Corallo
0647cf4bf1
Restore push_msat in full_stack_target
2018-08-23 16:11:20 -04:00
Matt Corallo
6e50a84f14
Do not return UpdateFailHTLC updates until the HTLC is committed
...
This fixes a violation of BOLT 2 and will let us consolidate some
HTLC update handling. Good bit of code movement, but is mostly
refactor to store HTLC failure status in pending_htlcs in Channel.
2018-08-23 16:11:20 -04:00
Matt Corallo
a1bd563456
Restore full_stack_target fuzzer
2018-08-23 16:11:12 -04:00
Matt Corallo
7345c0b3ce
Add trace logs for Errs when handling peer messages
2018-08-23 16:11:12 -04:00
Matt Corallo
4330ae5d4f
Merge pull request #123 from TheBlueMatt/2018-08-secp-0.10
...
Update to rust-secp256k1 v0.11 and rust-bitcoin v0.14
2018-08-23 15:29:21 -04:00
Matt Corallo
d0e1e7fead
Merge pull request #125 from TheBlueMatt/2018-08-114-rebase
...
Rebase of #114
2018-08-23 15:29:15 -04:00
Matt Corallo
11e5975523
Update to rust-secp256k1 v0.11 and rust-bitcoin v0.14
2018-08-23 14:52:43 -04:00
Matt Corallo
5ee88ad9f2
Clean up excess \ns in route debug, use all debug encoders
2018-08-23 14:52:43 -04:00
Matt Corallo
6ab31a0d50
Return channel_updates when failing a HTLC for fee/CLTV reasons
2018-08-23 14:52:43 -04:00
Antoine Riard
0523403887
Add Display trait on network structs for routing bug track
2018-08-23 14:52:42 -04:00
Antoine Riard
05552c0988
Check amt_to_forward and outgoing_cltv_value in add_update_htlc
2018-08-23 14:52:36 -04:00
Matt Corallo
1e118743bd
Merge pull request #111 from TheBlueMatt/2018-08-full-stack-target-upstream-1
...
Expand full_stack_target somewhat
2018-08-20 14:43:33 -04:00
Matt Corallo
06d3b4babe
Add a full_stack_target sample test to avoid unintentional breakage
2018-08-20 13:58:31 -04:00
Matt Corallo
87aabff8ab
Disable push_msat in full_stack_target temporarily
2018-08-20 13:58:31 -04:00
Matt Corallo
1b8f4acb27
Upgrade AFL to 0.4 with persistent mode fuzzing
2018-08-20 13:58:31 -04:00
Matt Corallo
9f2c67ae60
Expand full_stack_target somewhat
2018-08-20 13:58:31 -04:00
Matt Corallo
f476a19bde
Add simple utility to ChannelManager to force close all channels
2018-08-20 13:58:31 -04:00
Matt Corallo
7a04595269
Only enforce no-dup-payment_hash precondition on non-removed HTLCs
...
This fixes a panic found by fuzzer.
2018-08-20 13:58:31 -04:00
Matt Corallo
7318a97b15
Merge pull request #122 from TheBlueMatt/2018-08-doc-usability-fixes
...
Simple log usability fix, add some missing docs
2018-08-20 13:57:35 -04:00