Commit graph

6272 commits

Author SHA1 Message Date
Matt Corallo
dae97a4858
Merge pull request #257 from TheBlueMatt/2018-11-007-bump
Bump to 0.0.7 for API rev
2018-11-21 16:45:17 -05:00
Matt Corallo
bde921ea20 Bump to 0.0.7 for API rev 2018-11-21 16:18:18 -05:00
Matt Corallo
241b0cb449
Merge pull request #246 from TheBlueMatt/2018-11-fuzz-crash-redux
Several fuzz-found bugfixes.
2018-11-21 16:17:01 -05:00
Matt Corallo
93c8760086
Merge pull request #255 from TheBlueMatt/2018-11-230-ext
Two post-#230 fixups
2018-11-21 11:41:42 -05:00
Matt Corallo
3af20fd507 Check P2WPKH script against expected before gen'ing an output event
This fixes a bug in 3518f1f85d where
we may generate an output event for a P2WPKH output which is not
ours if the transaction has a sequence/lock_time combination which
false-positives our remote tx detection.

Also note that the TODO is removed as this should already be
covered without issue if the client properly replays the chain on
restart.
2018-11-20 19:03:57 -05:00
Matt Corallo
90b0ed937e Provide commitment point to monitor with the remote txn update
This extends 1b33064554 by
re-simplifying the ChannelMonitor <-> Channel interface a bit as we
never have any use for the latest remote commitment point until we
have knowledge of a remote transaction generated using it.
2018-11-20 19:03:57 -05:00
Matt Corallo
7687e02d6c
Merge pull request #254 from TheBlueMatt/2018-11-channelerror
Move a ton of Channel functions to ChannelError from HandleError
2018-11-20 19:00:49 -05:00
Matt Corallo
f2280e580a Fix two compiler warnings introduced in a51dbb4a4d 2018-11-20 16:34:40 -05:00
Matt Corallo
90816dd9d8 Move a ton of Channel functions to ChannelError from HandleError
This is a big patch, but its all very mechanical, everything here
should be pretty obvious, and it all has to happen at once due to a
few common utility functions all having the same return type.

Note that this exposes a race in channel closure where we may
access a channel via some non-peer-specific mechanism like
forwarding an HTLC or sending a payment during the time between
the channel gave us a Close error and expected us to never call it
again and the time we actually removed it from the channel_state
set outside of the internal_* handler.
2018-11-20 16:33:32 -05:00
Matt Corallo
3155890766 Create simple ChannelMonitor-specific Err type 2018-11-20 16:31:41 -05:00
Matt Corallo
86944d34a1
Merge pull request #231 from philipr-za/philip-204-check-commitment-transaction-fee
Check funder can afford commitment transaction fee when receiving update_fee
2018-11-20 16:29:21 -05:00
Matt Corallo
7efaf2e8ac
Merge pull request #230 from ariard/handle_sizeable_push_msat
Handle sizeable push msat (fix #195) + handle two first per_commitment_point + keys interface tests
2018-11-20 15:51:27 -05:00
Antoine Riard
3a7b40e494 Add test_static_output_closing_tx 2018-11-19 20:51:26 -05:00
Antoine Riard
890d1768b7 Add test_dynamic_spendable_outputs_local_htlc_*
Cover both local HTLC-Timeout/Success case
2018-11-19 20:51:17 -05:00
Antoine Riard
394b11c7b5 Add key_storage selection in ChannelMonitor insert_combine
Based on commitment_number
2018-11-19 20:42:55 -05:00
Antoine Riard
b6b5decfa9 Add test_static_spendable_outputs_justice_tx_revoked_htlc*
Cover both HTLC-Timeout/Success cases
2018-11-19 20:42:55 -05:00
Antoine Riard
73415a8951 Add test_static_spendable_outputs_justice_tx_revoked_commitment_tx 2018-11-19 20:42:55 -05:00
Antoine Riard
e22220d79f Add test_claim_on_remote_sizeable_push_msat
Contrary to sizeable push_msat on local
commitment tx, the output go to a P2WPKH
2018-11-19 20:42:52 -05:00
Antoine Riard
1255885a80 Add check_spend_closing_transaction ChannelMonitor
Aims to send back closing output descriptor to user wallet
2018-11-19 20:40:07 -05:00
Antoine Riard
3518f1f85d Add test_static_spendable_outputs_preimage_tx
Aims to covered both keysinterace preimage tx case and
detection of second remote commitment tx

Split DynamicDescriptor between *P2WSH and *P2WKH
2018-11-19 20:39:38 -05:00
Matt Corallo
3a066ccbf2 Ensure fuzz release builds use codegen-units=1 and LTO 2018-11-18 16:17:06 -05:00
Matt Corallo
e67d8c6314 Don't unwrap() get_channel_update result in HTLC router
This fixes a bug in 78232f2aed found
by fuzzer - if the channel isn't yet fully established we will call
get_channel_update(), get an Err result, and then unwrap() it. If
this actually happens it means someone on the network is making up
short_channel_ids and trying to route over them, but that shouldn't
result in us crashing
2018-11-18 16:17:06 -05:00
Matt Corallo
b4fc5b65e0 Fix pre-noise peer disconnect panic on non-Err disconnect
366e79615b fixed the same crash for
Errs that come up during handshake, but was incomplete and should
have just dropped the node_id being different based on
inbound/outbound. This patch does so and actually fixes the issue.

Found by fuzzer.
2018-11-18 12:59:02 -05:00
Matt Corallo
b14baa03ab
Merge pull request #253 from TheBlueMatt/2018-11-misc-tweaks
Misc Tweaks
2018-11-16 11:47:50 -05:00
Antoine Riard
1b33064554 Split provide_their_next_commitment_point from provide_secret
We needed it to be able to track remote_per_commitment_point
after channel opening and funds locking
2018-11-15 19:08:27 -05:00
Antoine Riard
f053169363 Add test_claim_sizeable_push_msat
Aims to cover both claiming of sizeable_push_msat and
spendable output generation for to_local output
2018-11-15 19:08:27 -05:00
Antoine Riard
f88f826b28 Add TxOut in DynamicOutput 2018-11-15 19:07:34 -05:00
Antoine Riard
8c638ffc81 Track local_commitment_tx at funding_created
Goal to claim sizeable push_msat and in event of
local commitment tx being broadcast without htlcs
2018-11-15 19:07:34 -05:00
Antoine Riard
04e6be9f00 Implement spendable output to_local output on local commitment tx 2018-11-15 19:07:34 -05:00
Matt Corallo
2258d2b6d3
Merge pull request #249 from stevenroose/bitcoin-0.15
Update to rust-bitcoin v0.15
2018-11-16 06:37:44 +13:00
Matt Corallo
968720344c Panic if funding transaction has non-witness inputs 2018-11-15 12:25:09 -05:00
Matt Corallo
ed006f5e46 Clarify get_update_*_htlc docs and tweak one case slightly 2018-11-15 12:22:16 -05:00
Matt Corallo
4a697dbdf2 Expand test_funding_peer_disconnect somewhat by being non-symmetric
I thought I found a bug in one-side-funded-first reconnect, but
seems I can't reproduce it here. Either way worth improving the
test coverage.
2018-11-15 12:22:16 -05:00
Philip Robinson
a51dbb4a4d Check affordability of new fee during update_fee call #204 2018-11-14 14:14:10 +02:00
Steven Roose
7ff7561f2d Update to rust-bitcoin v0.15 2018-11-14 11:43:54 +00:00
Matt Corallo
3c44d6beca
Merge pull request #248 from TheBlueMatt/2018-11-monitor-test-split
Split up channel_monitor_network_test a little bit
2018-11-14 09:20:54 +10:30
Matt Corallo
2be7c5debe
Merge pull request #247 from TheBlueMatt/2018-11-202-redux
Handle-initial_routing_sync-requests-from-peers-in-their-Init-messages
2018-11-14 07:18:40 +10:30
Matt Corallo
44f56f84b6 Split up channel_monitor_network_test a little bit 2018-11-09 15:01:53 +10:30
Schalk van Heerden
8d7b498974 Handle-initial_routing_sync-requests-from-peers-in-their-Init-messages 2018-11-09 13:53:13 +10:30
Antoine Riard
fa2ac8cd84 Add test justice tx on revoked htlc_success
Extend channel_monitor_network_test to cover
all check_spend_remote_htlc cases
2018-11-08 02:21:28 +00:00
Matt Corallo
74f59a2177
Merge pull request #242 from yuntai/201811-malformed
Fail channel when BADONION is not set
2018-11-05 16:14:34 -05:00
Yuntai Kyong
05b580e10b fail channel when BADONION is not set. 2018-11-05 21:10:17 +09:00
Matt Corallo
0e098d4bab
Merge pull request #241 from TheBlueMatt/2018-10-peer-free-panic
Fix pre-noise outbound peer disconnect panic found by fuzzer
2018-11-02 23:59:59 -04:00
Matt Corallo
af89de3d86
Merge pull request #233 from TheBlueMatt/2018-10-shutdown-updates
Shutdown Updates
2018-11-02 23:07:54 -04:00
Matt Corallo
182affc03b Test the various shutdown handling updates 2018-11-02 22:26:51 -04:00
Matt Corallo
224fb05cc5 Rebroadcast shutdown on channel_reestablish (and reprocess them) 2018-11-02 22:26:51 -04:00
Matt Corallo
527d036c1b Delay closing_signed until update_fee exchanges complete
See https://github.com/lightningnetwork/lightning-rfc/issues/499
for a bit more about the ambiguity we're addressing here.

Also drop holding cell update_fee the same way we drop holding
cell update_add_htlcs when sending shutdown, resolving a bug.
2018-11-02 22:26:51 -04:00
Matt Corallo
78232f2aed Fail incoming HTLCs sent after we start shutdown, not the chan 2018-11-02 22:26:51 -04:00
Matt Corallo
38584e3efe Avoid double-panic in full_stack_target to assist debugging 2018-11-02 10:54:25 -04:00
Matt Corallo
366e79615b Fix pre-noise outbound peer disconnect panic found by fuzzer
If we make an outbound connection to a peer who we are already
connected to, and the outbound connection fails
pre-noise-completion, we will remove the original peer connection
from our node_id_to_descriptor map.

The fuzzer managed to find this by crashing in Channel's assertions
that we don't do a get_channel_reestablish() when the Channel isn't
already marked disconnected.
2018-11-02 10:50:32 -04:00