rust-lightning
5 years agoExpand comment on ChannelMonitorUpdateErr::PermanentFailure a bit 2018-12-monitor-fail-2
Matt Corallo [Tue, 11 Dec 2018 18:16:38 +0000 (13:16 -0500)]
Expand comment on ChannelMonitorUpdateErr::PermanentFailure a bit

5 years agoAdd test for monitor update failure on CS/RAA/CR handling
Matt Corallo [Thu, 29 Nov 2018 22:19:53 +0000 (17:19 -0500)]
Add test for monitor update failure on CS/RAA/CR handling

5 years agoHandle monitor update failures in msg-recv functions
Matt Corallo [Tue, 27 Nov 2018 02:54:14 +0000 (21:54 -0500)]
Handle monitor update failures in msg-recv functions

This adds a few TODOs around further message rebroadcasting which
needs to be implemented as well as some loss of tracking of HTLCs
on permanent channel failure which needs to get transferred over to
the appropriate in-memory ChannelMonitor.

5 years agoSwap handle_monitor_update_fail for a macro ala try_chan_entry
Matt Corallo [Mon, 26 Nov 2018 21:40:15 +0000 (16:40 -0500)]
Swap handle_monitor_update_fail for a macro ala try_chan_entry

This resolves an API bug where send_payment may return a
MonitorUpdateFailed Err both when the payment will not be sent and
when the HTLC will be retried automatically when monitor updating
is restored. This makes it impossible for a client to know when
they should retry a payment and when they should not.

5 years agoMerge pull request #268 from TheBlueMatt/2015-12-fuzz-fix-output-idx
Matt Corallo [Mon, 10 Dec 2018 20:39:37 +0000 (15:39 -0500)]
Merge pull request #268 from TheBlueMatt/2015-12-fuzz-fix-output-idx

Check tx output matches monitor output data (and is sufficient len)

5 years agoCheck tx output matches monitor output data (and is sufficient len) 2015-12-fuzz-fix-output-idx
Matt Corallo [Mon, 10 Dec 2018 20:02:50 +0000 (15:02 -0500)]
Check tx output matches monitor output data (and is sufficient len)

Fixes a panic found by fuzzer in case the monitor per-commitment
data is garbage. We had a similar check for revoked commitment tx
but didn't copy it down to non-revoked commitment tx, so do that
now.

5 years agoMerge pull request #264 from TheBlueMatt/2018-12-198-first-commit
Matt Corallo [Tue, 4 Dec 2018 19:01:22 +0000 (14:01 -0500)]
Merge pull request #264 from TheBlueMatt/2018-12-198-first-commit

Refactor KeyStorage as Storage

5 years agoUnify the update pattern in provide_latest_local_commitment_tx_info 2018-12-198-first-commit
Matt Corallo [Sun, 2 Dec 2018 19:26:07 +0000 (14:26 -0500)]
Unify the update pattern in provide_latest_local_commitment_tx_info

5 years agoSimplify ChannelMonitor Storage updates a bit
Matt Corallo [Sun, 2 Dec 2018 19:11:13 +0000 (14:11 -0500)]
Simplify ChannelMonitor Storage updates a bit

5 years agoSimplify insert_combine by unimplemented!()ing unimplemented things
Matt Corallo [Sun, 2 Dec 2018 19:04:50 +0000 (14:04 -0500)]
Simplify insert_combine by unimplemented!()ing unimplemented things

5 years agoRefactor KeyStorage as Storage
Antoine Riard [Tue, 27 Nov 2018 00:50:16 +0000 (19:50 -0500)]
Refactor KeyStorage as Storage

Move PrivMode as Local, SigsMode as Watchtower

Cut funnding_txo from ChannelMonitor, move it inside Local

Rename log_funding_option as log_funding_info

5 years agoMerge pull request #265 from TheBlueMatt/2018-12-fuzz-fix-no-witness
Matt Corallo [Mon, 3 Dec 2018 19:38:56 +0000 (14:38 -0500)]
Merge pull request #265 from TheBlueMatt/2018-12-fuzz-fix-no-witness

Fix crash on no-witness tx in ChannelMonitor found by fuzzer

5 years agoAvoid writing to stdout during fuzz tests 2018-12-fuzz-fix-no-witness
Matt Corallo [Mon, 3 Dec 2018 18:58:11 +0000 (13:58 -0500)]
Avoid writing to stdout during fuzz tests

5 years agoRemove unused import in full_stack_target
Matt Corallo [Mon, 3 Dec 2018 18:30:18 +0000 (13:30 -0500)]
Remove unused import in full_stack_target

5 years agoFix crash on no-witness tx in ChannelMonitor found by fuzzer
Matt Corallo [Sun, 2 Dec 2018 23:22:40 +0000 (18:22 -0500)]
Fix crash on no-witness tx in ChannelMonitor found by fuzzer

Tehnically we can't currently hit this, but a theoretical future
watchtower could, and full_stack_target crashes on it.

5 years agoMerge pull request #261 from TheBlueMatt/2018-11-reestablish-fix
Matt Corallo [Mon, 3 Dec 2018 18:17:54 +0000 (13:17 -0500)]
Merge pull request #261 from TheBlueMatt/2018-11-reestablish-fix

Fix channel_reestablish generation/handling around next_remote.

5 years agoFix channel_reestablish generation/handling around next_remote. 2018-11-reestablish-fix
Matt Corallo [Mon, 26 Nov 2018 23:31:51 +0000 (18:31 -0500)]
Fix channel_reestablish generation/handling around next_remote.

5 years agoMerge pull request #260 from yuntai/201811-sessionkey
Matt Corallo [Tue, 27 Nov 2018 03:09:42 +0000 (22:09 -0500)]
Merge pull request #260 from yuntai/201811-sessionkey

Add a method to get session secret for onion packet to KeysInterface

5 years agoAdd a method to get session secret for onion packet to KeysInterface
Yuntai Kyong [Mon, 26 Nov 2018 11:10:01 +0000 (20:10 +0900)]
Add a method to get session secret for onion packet to KeysInterface

5 years agoMerge pull request #258 from TheBlueMatt/2018-11-close-locked
Matt Corallo [Mon, 26 Nov 2018 15:56:18 +0000 (10:56 -0500)]
Merge pull request #258 from TheBlueMatt/2018-11-close-locked

Simplify + document the ChannelManager Err flow, fix close-outside-lock race, finish ChannelError conversion

5 years agoMerge pull request #259 from TheBlueMatt/2018-11-256-redux
Matt Corallo [Fri, 23 Nov 2018 20:21:35 +0000 (15:21 -0500)]
Merge pull request #259 from TheBlueMatt/2018-11-256-redux

Add test_claim_on_remote_revoked_sizeable_push_msat

5 years agoAdd test_claim_on_remote_revoked_sizeable_push_msat 2018-11-256-redux
Antoine Riard [Fri, 23 Nov 2018 00:45:11 +0000 (19:45 -0500)]
Add test_claim_on_remote_revoked_sizeable_push_msat

5 years agoRefactor check spendable outputs macros into one
Antoine Riard [Fri, 23 Nov 2018 00:42:02 +0000 (19:42 -0500)]
Refactor check spendable outputs macros into one

In consequence, harden spendable outputs tests

Fix vocabulary abuse

5 years agoSimplify + document the ChannelManager Err flow a bit 2018-11-close-locked
Matt Corallo [Fri, 23 Nov 2018 03:45:51 +0000 (22:45 -0500)]
Simplify + document the ChannelManager Err flow a bit

This removes all the channel-closure stuff from handle_error!() and
MsgHandleErrInternal, making all the Err handling consistent by
closing the channel before releasing the channel_state lock and
then calling handle_error!() outside of the lock.

5 years agoRemove MsgHandleErrInternal::from_chan_maybe_close as it's useless
Matt Corallo [Fri, 23 Nov 2018 00:38:28 +0000 (19:38 -0500)]
Remove MsgHandleErrInternal::from_chan_maybe_close as it's useless

Technically funding_transaction_generated was fine using it, but
calling force_shutdown on an empty Channel inside the channel_state
lock isn't a big deal and almost any other use of it would be
unsafe.

5 years agoProperly handle ChannelError::Close results in update_fee.
Matt Corallo [Thu, 22 Nov 2018 23:58:23 +0000 (18:58 -0500)]
Properly handle ChannelError::Close results in update_fee.

Best reviewed with -b

5 years agoProperly handle ChannelError::Close results in send_payment.
Matt Corallo [Thu, 22 Nov 2018 23:48:28 +0000 (18:48 -0500)]
Properly handle ChannelError::Close results in send_payment.

Best reviewed with -b

5 years agoClose channels on Err returns inside the same channel_state lock
Matt Corallo [Mon, 19 Nov 2018 03:01:32 +0000 (22:01 -0500)]
Close channels on Err returns inside the same channel_state lock

If we never accessed channels for a peer outside of a message
handler for that peer then this wouldn't be a problem since message
handlers are required to be serialized per-peer. However, that
isn't the world we live in - we may want to forward payments or we
may get a send_payment call.

5 years agoStop needlessly returning &HTLCSource out of Channel.
Matt Corallo [Thu, 22 Nov 2018 21:17:46 +0000 (16:17 -0500)]
Stop needlessly returning &HTLCSource out of Channel.

This moves a clone() inside Channel from ChannelManager making
references simpler for the coming refactors.

5 years agoRemove remaining uses of HandleError in Channel Err return values
Matt Corallo [Fri, 23 Nov 2018 01:50:13 +0000 (20:50 -0500)]
Remove remaining uses of HandleError in Channel Err return values

This converts block_connected failures to returning the
ErrorMessage that needs to be sent directly, since it always
results in channel closure and never results in needing to call
force_shutdown. It also converts update_add_htlc and closing_signed
handlers to ChannelError as the rest of the message handlers.

5 years agoSplit channel_reserve_test so we don't rely on unfilled Err actions
Matt Corallo [Fri, 23 Nov 2018 04:44:42 +0000 (23:44 -0500)]
Split channel_reserve_test so we don't rely on unfilled Err actions

Currently channel_reserve_test sends a garbage update_add_htlc
message and then relies on it being silently ignored to continue
using the channel. This shouldn't be the case, so take the easy
way out and split the test in two, at first not delivering the
bogus update_add_htlc and then delivering it, but not running the
rest of the test.

5 years agoMerge pull request #257 from TheBlueMatt/2018-11-007-bump
Matt Corallo [Wed, 21 Nov 2018 21:45:17 +0000 (16:45 -0500)]
Merge pull request #257 from TheBlueMatt/2018-11-007-bump

Bump to 0.0.7 for API rev

5 years agoBump to 0.0.7 for API rev 2018-11-007-bump
Matt Corallo [Wed, 21 Nov 2018 21:18:02 +0000 (16:18 -0500)]
Bump to 0.0.7 for API rev

5 years agoMerge pull request #246 from TheBlueMatt/2018-11-fuzz-crash-redux
Matt Corallo [Wed, 21 Nov 2018 21:17:01 +0000 (16:17 -0500)]
Merge pull request #246 from TheBlueMatt/2018-11-fuzz-crash-redux

Several fuzz-found bugfixes.

5 years agoMerge pull request #255 from TheBlueMatt/2018-11-230-ext
Matt Corallo [Wed, 21 Nov 2018 16:41:42 +0000 (11:41 -0500)]
Merge pull request #255 from TheBlueMatt/2018-11-230-ext

Two post-#230 fixups

5 years agoCheck P2WPKH script against expected before gen'ing an output event 2018-11-230-ext
Matt Corallo [Tue, 20 Nov 2018 20:09:47 +0000 (15:09 -0500)]
Check P2WPKH script against expected before gen'ing an output event

This fixes a bug in 3518f1f85d8a3daff451b3fe56cc7854b833e2bd 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.

5 years agoProvide commitment point to monitor with the remote txn update
Matt Corallo [Mon, 19 Nov 2018 22:12:17 +0000 (17:12 -0500)]
Provide commitment point to monitor with the remote txn update

This extends 1b33064554ae48c9173acf8bf1e0052d33a855df 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.

5 years agoMerge pull request #254 from TheBlueMatt/2018-11-channelerror
Matt Corallo [Wed, 21 Nov 2018 00:00:49 +0000 (19:00 -0500)]
Merge pull request #254 from TheBlueMatt/2018-11-channelerror

Move a ton of Channel functions to ChannelError from HandleError

5 years agoFix two compiler warnings introduced in a51dbb4a4de014238ab67ba507c 2018-11-channelerror
Matt Corallo [Tue, 20 Nov 2018 21:34:40 +0000 (16:34 -0500)]
Fix two compiler warnings introduced in a51dbb4a4de014238ab67ba507c

5 years agoMove a ton of Channel functions to ChannelError from HandleError
Matt Corallo [Tue, 30 Oct 2018 00:38:29 +0000 (20:38 -0400)]
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.

5 years agoCreate simple ChannelMonitor-specific Err type
Matt Corallo [Thu, 15 Nov 2018 12:47:07 +0000 (07:47 -0500)]
Create simple ChannelMonitor-specific Err type

5 years agoMerge pull request #231 from philipr-za/philip-204-check-commitment-transaction-fee
Matt Corallo [Tue, 20 Nov 2018 21:29:21 +0000 (16:29 -0500)]
Merge pull request #231 from philipr-za/philip-204-check-commitment-transaction-fee

Check funder can afford commitment transaction fee when receiving update_fee

5 years agoMerge pull request #230 from ariard/handle_sizeable_push_msat
Matt Corallo [Tue, 20 Nov 2018 20:51:27 +0000 (15:51 -0500)]
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

5 years agoAdd test_static_output_closing_tx
Antoine Riard [Wed, 7 Nov 2018 00:41:45 +0000 (00:41 +0000)]
Add test_static_output_closing_tx

5 years agoAdd test_dynamic_spendable_outputs_local_htlc_*
Antoine Riard [Tue, 6 Nov 2018 03:24:07 +0000 (03:24 +0000)]
Add test_dynamic_spendable_outputs_local_htlc_*

Cover both local HTLC-Timeout/Success case

5 years agoAdd key_storage selection in ChannelMonitor insert_combine
Antoine Riard [Tue, 6 Nov 2018 03:23:22 +0000 (03:23 +0000)]
Add key_storage selection in ChannelMonitor insert_combine

Based on commitment_number

5 years agoAdd test_static_spendable_outputs_justice_tx_revoked_htlc*
Antoine Riard [Tue, 6 Nov 2018 00:43:06 +0000 (00:43 +0000)]
Add test_static_spendable_outputs_justice_tx_revoked_htlc*

Cover both HTLC-Timeout/Success cases

5 years agoAdd test_static_spendable_outputs_justice_tx_revoked_commitment_tx
Antoine Riard [Mon, 5 Nov 2018 02:17:33 +0000 (02:17 +0000)]
Add test_static_spendable_outputs_justice_tx_revoked_commitment_tx

5 years agoAdd test_claim_on_remote_sizeable_push_msat
Antoine Riard [Mon, 5 Nov 2018 01:31:49 +0000 (01:31 +0000)]
Add test_claim_on_remote_sizeable_push_msat

Contrary to sizeable push_msat on local
commitment tx, the output go to a P2WPKH

5 years agoAdd check_spend_closing_transaction ChannelMonitor
Antoine Riard [Sat, 17 Nov 2018 01:52:33 +0000 (20:52 -0500)]
Add check_spend_closing_transaction ChannelMonitor

Aims to send back closing output descriptor to user wallet

5 years agoAdd test_static_spendable_outputs_preimage_tx
Antoine Riard [Thu, 1 Nov 2018 03:22:56 +0000 (03:22 +0000)]
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

5 years agoEnsure fuzz release builds use codegen-units=1 and LTO 2018-11-fuzz-crash-redux
Matt Corallo [Sun, 18 Nov 2018 20:34:13 +0000 (15:34 -0500)]
Ensure fuzz release builds use codegen-units=1 and LTO

5 years agoDon't unwrap() get_channel_update result in HTLC router
Matt Corallo [Sun, 18 Nov 2018 21:15:08 +0000 (16:15 -0500)]
Don't unwrap() get_channel_update result in HTLC router

This fixes a bug in 78232f2aeded08b32fa4ebfeb0b77d80b337518d 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

5 years agoFix pre-noise peer disconnect panic on non-Err disconnect
Matt Corallo [Thu, 8 Nov 2018 00:06:34 +0000 (10:36 +1030)]
Fix pre-noise peer disconnect panic on non-Err disconnect

366e79615b7251771465d6c69c2941ac233674da 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.

5 years agoMerge pull request #253 from TheBlueMatt/2018-11-misc-tweaks
Matt Corallo [Fri, 16 Nov 2018 16:47:50 +0000 (11:47 -0500)]
Merge pull request #253 from TheBlueMatt/2018-11-misc-tweaks

Misc Tweaks

5 years agoSplit provide_their_next_commitment_point from provide_secret
Antoine Riard [Thu, 1 Nov 2018 03:19:37 +0000 (03:19 +0000)]
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

5 years agoAdd test_claim_sizeable_push_msat
Antoine Riard [Wed, 31 Oct 2018 02:51:25 +0000 (02:51 +0000)]
Add test_claim_sizeable_push_msat

Aims to cover both claiming of sizeable_push_msat and
spendable output generation for to_local output

5 years agoAdd TxOut in DynamicOutput
Antoine Riard [Sun, 11 Nov 2018 20:59:03 +0000 (15:59 -0500)]
Add TxOut in DynamicOutput

5 years agoTrack local_commitment_tx at funding_created
Antoine Riard [Wed, 31 Oct 2018 02:49:19 +0000 (02:49 +0000)]
Track local_commitment_tx at funding_created

Goal to claim sizeable push_msat and in event of
local commitment tx being broadcast without htlcs

5 years agoImplement spendable output to_local output on local commitment tx
Antoine Riard [Wed, 31 Oct 2018 02:45:50 +0000 (02:45 +0000)]
Implement spendable output to_local output on local commitment tx

5 years agoMerge pull request #249 from stevenroose/bitcoin-0.15
Matt Corallo [Thu, 15 Nov 2018 17:37:44 +0000 (06:37 +1300)]
Merge pull request #249 from stevenroose/bitcoin-0.15

Update to rust-bitcoin v0.15

5 years agoPanic if funding transaction has non-witness inputs 2018-11-misc-tweaks
Matt Corallo [Sun, 4 Nov 2018 01:56:54 +0000 (12:56 +1100)]
Panic if funding transaction has non-witness inputs

5 years agoClarify get_update_*_htlc docs and tweak one case slightly
Matt Corallo [Sun, 4 Nov 2018 08:35:37 +0000 (19:35 +1100)]
Clarify get_update_*_htlc docs and tweak one case slightly

5 years agoExpand test_funding_peer_disconnect somewhat by being non-symmetric
Matt Corallo [Sat, 3 Nov 2018 03:52:44 +0000 (23:52 -0400)]
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.

5 years agoCheck affordability of new fee during update_fee call #204
Philip Robinson [Tue, 30 Oct 2018 12:31:57 +0000 (14:31 +0200)]
Check affordability of new fee during update_fee call #204

5 years agoUpdate to rust-bitcoin v0.15
Steven Roose [Sun, 11 Nov 2018 22:40:01 +0000 (22:40 +0000)]
Update to rust-bitcoin v0.15

5 years agoMerge pull request #248 from TheBlueMatt/2018-11-monitor-test-split
Matt Corallo [Tue, 13 Nov 2018 22:50:54 +0000 (09:20 +1030)]
Merge pull request #248 from TheBlueMatt/2018-11-monitor-test-split

Split up channel_monitor_network_test a little bit

5 years agoMerge pull request #247 from TheBlueMatt/2018-11-202-redux
Matt Corallo [Tue, 13 Nov 2018 20:48:40 +0000 (07:18 +1030)]
Merge pull request #247 from TheBlueMatt/2018-11-202-redux

Handle-initial_routing_sync-requests-from-peers-in-their-Init-messages

5 years agoSplit up channel_monitor_network_test a little bit 2018-11-monitor-test-split
Matt Corallo [Fri, 9 Nov 2018 04:31:53 +0000 (15:01 +1030)]
Split up channel_monitor_network_test a little bit

5 years agoHandle-initial_routing_sync-requests-from-peers-in-their-Init-messages 2018-11-202-redux
Schalk van Heerden [Tue, 2 Oct 2018 14:02:17 +0000 (16:02 +0200)]
Handle-initial_routing_sync-requests-from-peers-in-their-Init-messages

5 years agoAdd test justice tx on revoked htlc_success
Antoine Riard [Thu, 8 Nov 2018 02:21:28 +0000 (02:21 +0000)]
Add test justice tx on revoked htlc_success

Extend channel_monitor_network_test to cover
all check_spend_remote_htlc cases

5 years agoMerge pull request #242 from yuntai/201811-malformed
Matt Corallo [Mon, 5 Nov 2018 21:14:34 +0000 (16:14 -0500)]
Merge pull request #242 from yuntai/201811-malformed

Fail channel when BADONION is not set

5 years agofail channel when BADONION is not set.
Yuntai Kyong [Mon, 5 Nov 2018 12:10:17 +0000 (21:10 +0900)]
fail channel when BADONION is not set.

5 years agoMerge pull request #241 from TheBlueMatt/2018-10-peer-free-panic
Matt Corallo [Sat, 3 Nov 2018 03:59:59 +0000 (23:59 -0400)]
Merge pull request #241 from TheBlueMatt/2018-10-peer-free-panic

Fix pre-noise outbound peer disconnect panic found by fuzzer

5 years agoMerge pull request #233 from TheBlueMatt/2018-10-shutdown-updates
Matt Corallo [Sat, 3 Nov 2018 03:07:54 +0000 (23:07 -0400)]
Merge pull request #233 from TheBlueMatt/2018-10-shutdown-updates

Shutdown Updates

5 years agoTest the various shutdown handling updates 2018-10-shutdown-updates
Matt Corallo [Fri, 2 Nov 2018 01:45:59 +0000 (21:45 -0400)]
Test the various shutdown handling updates

5 years agoRebroadcast shutdown on channel_reestablish (and reprocess them)
Matt Corallo [Thu, 1 Nov 2018 21:17:28 +0000 (17:17 -0400)]
Rebroadcast shutdown on channel_reestablish (and reprocess them)

5 years agoDelay closing_signed until update_fee exchanges complete
Matt Corallo [Thu, 1 Nov 2018 21:12:20 +0000 (17:12 -0400)]
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.

5 years agoFail incoming HTLCs sent after we start shutdown, not the chan
Matt Corallo [Wed, 31 Oct 2018 01:47:56 +0000 (21:47 -0400)]
Fail incoming HTLCs sent after we start shutdown, not the chan

5 years agoAvoid double-panic in full_stack_target to assist debugging 2018-10-peer-free-panic
Matt Corallo [Fri, 2 Nov 2018 14:54:25 +0000 (10:54 -0400)]
Avoid double-panic in full_stack_target to assist debugging

5 years agoFix pre-noise outbound peer disconnect panic found by fuzzer
Matt Corallo [Fri, 2 Nov 2018 14:50:32 +0000 (10:50 -0400)]
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.

5 years agoAdd logging for (dis)connect in peer_handler/channelmanager
Matt Corallo [Fri, 2 Nov 2018 14:45:29 +0000 (10:45 -0400)]
Add logging for (dis)connect in peer_handler/channelmanager

5 years agoSend closing_signed when appropriate as pending HTLCs clear
Matt Corallo [Tue, 30 Oct 2018 20:25:38 +0000 (16:25 -0400)]
Send closing_signed when appropriate as pending HTLCs clear

5 years agoAlways send Shutdown resposnes to Shutdown messages
Matt Corallo [Tue, 30 Oct 2018 19:53:34 +0000 (15:53 -0400)]
Always send Shutdown resposnes to Shutdown messages

We always require that any changes to Channel state be committed
immediately (within the same lock) so we should never have
uncommitted changes which would prevent us from sending a Shutdown
response.

5 years agoRefactor out first-closing-sent creation
Matt Corallo [Tue, 30 Oct 2018 18:39:20 +0000 (14:39 -0400)]
Refactor out first-closing-sent creation

5 years agoUse ChannelError in shutdown handling, clean up, impl err actions
Matt Corallo [Mon, 29 Oct 2018 21:38:16 +0000 (17:38 -0400)]
Use ChannelError in shutdown handling, clean up, impl err actions

5 years agoAdd warnings reminding users to use SegWit funding inputs
Matt Corallo [Tue, 30 Oct 2018 00:21:47 +0000 (20:21 -0400)]
Add warnings reminding users to use SegWit funding inputs

5 years agoMerge pull request #235 from TheBlueMatt/2018-10-229-redux
Matt Corallo [Thu, 1 Nov 2018 02:44:16 +0000 (22:44 -0400)]
Merge pull request #235 from TheBlueMatt/2018-10-229-redux

Bug fix using same seed sequence for channel key geneartion

5 years agoBug fix using same seed sequence for channel key geneartion 2018-10-229-redux
Yuntai Kyong [Sun, 28 Oct 2018 05:35:49 +0000 (14:35 +0900)]
Bug fix using same seed sequence for channel key geneartion

5 years agoMerge pull request #234 from TheBlueMatt/2018-10-169-redux
Matt Corallo [Wed, 31 Oct 2018 20:25:29 +0000 (16:25 -0400)]
Merge pull request #234 from TheBlueMatt/2018-10-169-redux

169 Tweaked

5 years agoAdded config interface to allow users to specify channel limits 2018-10-169-redux
Schalk van Heerden [Wed, 31 Oct 2018 18:51:39 +0000 (14:51 -0400)]
Added config interface to allow users to specify channel limits

5 years agoRequire at least 1k sat for outbound channels and meet BTC's dust
Matt Corallo [Wed, 31 Oct 2018 18:45:29 +0000 (14:45 -0400)]
Require at least 1k sat for outbound channels and meet BTC's dust

5 years agoUse non-funder's funding block wait instead of max with ours
Matt Corallo [Wed, 31 Oct 2018 18:38:07 +0000 (14:38 -0400)]
Use non-funder's funding block wait instead of max with ours

This is both required by the protocol and also makes sense - if
we're the funder we don't mind accepting payment on the channel
after one confirmation because we assume we won't double-spend
ourselves.

5 years agoMerge pull request #232 from TheBlueMatt/master
Matt Corallo [Wed, 31 Oct 2018 19:05:19 +0000 (15:05 -0400)]
Merge pull request #232 from TheBlueMatt/master

Fix a full_stack_target crash

5 years ago[full_stack_target] don't allow double-confirming txn
Matt Corallo [Mon, 29 Oct 2018 18:24:21 +0000 (14:24 -0400)]
[full_stack_target] don't allow double-confirming txn

5 years agoGive ManyChannelMonitor a logger and trace add_update events
Matt Corallo [Mon, 29 Oct 2018 17:38:15 +0000 (13:38 -0400)]
Give ManyChannelMonitor a logger and trace add_update events

5 years agoMerge pull request #226 from TheBlueMatt/2018-10-0.0.6
Matt Corallo [Sat, 27 Oct 2018 14:49:05 +0000 (10:49 -0400)]
Merge pull request #226 from TheBlueMatt/2018-10-0.0.6

Bump version to 0.0.6

5 years agoMerge pull request #223 from TheBlueMatt/2018-10-chanmanager-serialize
Matt Corallo [Sat, 27 Oct 2018 14:46:12 +0000 (10:46 -0400)]
Merge pull request #223 from TheBlueMatt/2018-10-chanmanager-serialize

Implement and document Channel/ChannelManager (de)serialization

5 years agoMerge pull request #222 from TheBlueMatt/2018-10-pre-commit-disconnect
Matt Corallo [Sat, 27 Oct 2018 14:46:04 +0000 (10:46 -0400)]
Merge pull request #222 from TheBlueMatt/2018-10-pre-commit-disconnect

Fix and test update_add_htlc but disconnect pre-commitment_signed

5 years agoMerge pull request #217 from TheBlueMatt/2018-10-msg-resp-overhaul
Matt Corallo [Sat, 27 Oct 2018 14:45:53 +0000 (10:45 -0400)]
Merge pull request #217 from TheBlueMatt/2018-10-msg-resp-overhaul

Send ChannelManager messages out-of-band to ensure ordered delivery