]>
git.bitcoin.ninja Git - rust-lightning/log
Matt Corallo [Wed, 24 Oct 2018 14:34:16 +0000 (10:34 -0400)]
Redo ChannelMonitor deserialization to avoid read_to_end()
This slightly changes the serialization format, but we're still
early enough that that's OK.
Matt Corallo [Wed, 24 Oct 2018 14:33:42 +0000 (10:33 -0400)]
impl some additional (de)serializers, including a u48 wrapper type
Matt Corallo [Fri, 19 Oct 2018 01:34:41 +0000 (21:34 -0400)]
impl Readable/Writable for Route
Matt Corallo [Sat, 20 Oct 2018 22:46:03 +0000 (18:46 -0400)]
Add a BIG lock to ChannelManager
During normal operation we should never need to take this, so we
use a RwLock that allows normal parallelism until we want to
serialize out our ChannelManager, at which point we can take the
write-mode lock.
Matt Corallo [Thu, 18 Oct 2018 19:00:12 +0000 (15:00 -0400)]
Give ChannelMonitor a logger via new ReadableArgs trait
Matt Corallo [Thu, 18 Oct 2018 18:58:56 +0000 (14:58 -0400)]
Add a second Readable trait for state args, clean macros slightly
Matt Corallo [Thu, 18 Oct 2018 18:17:20 +0000 (14:17 -0400)]
Store [u8; 32]s instead of SharedSecrets (for deserialization)
Matt Corallo [Sat, 20 Oct 2018 22:48:14 +0000 (18:48 -0400)]
Fix and test update_add_htlc but disconnect pre-commitment_signed
Matt Corallo [Sat, 20 Oct 2018 22:17:19 +0000 (18:17 -0400)]
Avoid reentrancy of send_data from PeerHandler::read_bytes.
This greatly simplifies clients of PeerHandler, and because almost
all response messages have already been moved to process_events
this doesn't change much effeciency-wise.
Matt Corallo [Sat, 20 Oct 2018 21:50:34 +0000 (17:50 -0400)]
Send channel_reestablish out-of-band to ensure ordered deliver
Matt Corallo [Sat, 20 Oct 2018 21:18:53 +0000 (17:18 -0400)]
Respond to channel_reestablish out-of-band for ordered delivery
Matt Corallo [Sat, 20 Oct 2018 16:56:42 +0000 (12:56 -0400)]
Send RAA/CS messages out-of-band to ensure ordered delivery
Matt Corallo [Sat, 20 Oct 2018 01:50:16 +0000 (21:50 -0400)]
Send shutdown/closing_signed msgs out-of-band for ordered delivery
Matt Corallo [Fri, 19 Oct 2018 21:30:52 +0000 (17:30 -0400)]
Send announcement_signatures msgs out-of-band for ordered delivery
Matt Corallo [Fri, 19 Oct 2018 21:06:40 +0000 (17:06 -0400)]
Send funding_signed messages out-of-band to ensure ordered delivery
Matt Corallo [Fri, 19 Oct 2018 20:49:12 +0000 (16:49 -0400)]
Send AcceptChannel responses out-of-band to ensure ordered delivery
Matt Corallo [Fri, 19 Oct 2018 20:25:32 +0000 (16:25 -0400)]
Split Event, move MessageSendEvent push() inside channel_state lock
Antoine Riard [Fri, 26 Oct 2018 17:41:07 +0000 (13:41 -0400)]
Integrate destination_script from KeysInterface in ChannelManager/Channel
Drop channel_monitor_claim_key from ChannelKeys
Antoine Riard [Fri, 26 Oct 2018 17:35:57 +0000 (13:35 -0400)]
Integrate shutdown_pubkey from KeysInterface in ChannelManager/Channel
Drop channel_close_key from ChannelKeys
Antoine Riard [Fri, 26 Oct 2018 15:40:01 +0000 (11:40 -0400)]
Integrate KeysInterface to ChannelManager with Arc
Antoine Riard [Fri, 26 Oct 2018 15:21:33 +0000 (11:21 -0400)]
Implement KeysInterface for KeysManager util
Antoine Riard [Fri, 26 Oct 2018 15:15:55 +0000 (11:15 -0400)]
Add a KeysInterface which provides keys from user
Move ChannelKeys into keysinterface for generate a set of it from
master_seed and change return type to panic on bogus data
Antoine Riard [Fri, 19 Oct 2018 02:44:40 +0000 (02:44 +0000)]
Generate Events from ChannelMonitor to indicate spendable ouputs
Extend KeyStorage with delayed_payment_base_key and per_commitment_point
to derive local_delayed private key
Matt Corallo [Fri, 26 Oct 2018 01:21:54 +0000 (21:21 -0400)]
Merge pull request #224 from TheBlueMatt/2018-10-221-whitespace
#221 with a few trailing spaces removed
Yuntai Kyong [Thu, 25 Oct 2018 22:35:09 +0000 (07:35 +0900)]
Comments updated for PaymentReceived
Matt Corallo [Thu, 25 Oct 2018 19:19:06 +0000 (15:19 -0400)]
Merge pull request #220 from TheBlueMatt/2018-10-oops-xxx
Fix XXXs that slipped into router and handle HTLCFailCHannelUpdates
Matt Corallo [Thu, 25 Oct 2018 18:33:10 +0000 (14:33 -0400)]
Run travis-fuzz on Rust 1.29.2 due to 1.30 breaking honggfuzz build
Yuntai Kyong [Thu, 25 Oct 2018 08:21:41 +0000 (17:21 +0900)]
Add PaymentFailReason for fail_htlc_backwards
to indicate fail reason after a PaymentReceived event
Matt Corallo [Wed, 24 Oct 2018 04:44:15 +0000 (00:44 -0400)]
Fix XXXs that slipped into router and handle HTLCFailCHannelUpdates
Matt Corallo [Tue, 23 Oct 2018 20:45:50 +0000 (16:45 -0400)]
Merge pull request #213 from TheBlueMatt/2018-10-monitor-fail-pause
Add ChannelManager support for monitor update failure in one place
Matt Corallo [Thu, 18 Oct 2018 01:26:48 +0000 (21:26 -0400)]
Add basic sanity testing for channel monitor update failure handle
Matt Corallo [Wed, 17 Oct 2018 22:21:06 +0000 (18:21 -0400)]
ChannelManager support for monitor update failure in one place
Matt Corallo [Wed, 17 Oct 2018 22:19:55 +0000 (18:19 -0400)]
Add Channel support for monitor-update-failed pausing
Matt Corallo [Wed, 17 Oct 2018 15:35:26 +0000 (11:35 -0400)]
Add an Event for sending revoke_and_ack messages out-of-band
Matt Corallo [Thu, 18 Oct 2018 16:01:01 +0000 (12:01 -0400)]
Pull out the HTLC forwarding loop into a function
Matt Corallo [Wed, 17 Oct 2018 14:35:33 +0000 (10:35 -0400)]
Pull out regenerating RAA/CS in channel_reestablish handling
Matt Corallo [Wed, 17 Oct 2018 12:47:33 +0000 (08:47 -0400)]
Move channel monitor updates inside the channel_state lock
This really, really sucks as it defeats almost all of the
cross-channel parallelism we'd intended to have - waiting on a
client to update a watchtower for an unrelated channel to process
any messages is really shitty. We should revisit this with
per-channel locks as a compile-time option post-0.1.
Matt Corallo [Tue, 23 Oct 2018 20:03:08 +0000 (16:03 -0400)]
Merge pull request #212 from TheBlueMatt/2018-10-two-updates-disconnect
Fix reconnect message order on remote updates while waiting on RAA
Matt Corallo [Thu, 18 Oct 2018 01:17:01 +0000 (21:17 -0400)]
Add test for two-updates-in-flight disconnect channel resumption
Matt Corallo [Thu, 18 Oct 2018 02:13:31 +0000 (22:13 -0400)]
Fix reconnect message order on remote updates while waiting on RAA
Matt Corallo [Wed, 17 Oct 2018 22:06:13 +0000 (18:06 -0400)]
Add message ordering return value to handling channel_reestablish
Matt Corallo [Tue, 23 Oct 2018 19:25:07 +0000 (15:25 -0400)]
Merge pull request #219 from TheBlueMatt/2018-10-157-merge
Partially implement more onion error handling for sent payments
Yuntai Kyong [Mon, 22 Oct 2018 15:12:44 +0000 (11:12 -0400)]
Move HTLCFailChannelUpdate handling out-of-band
While this isn't neccessary for message ordering consistency, this
does mean that we won't end up processing an HTLCFailChannelUpdate
from a update_fail_htlc prior to it being fully committed (where if
the peer disconnects/reconnects it could theoretically give us a
different result, eg if their next-hop reconnected to them).
Yuntai Kyong [Sun, 14 Oct 2018 13:35:26 +0000 (22:35 +0900)]
Partially implement more onion error handling for sent payments
Also refactor out onion error handling into a function instead of
in update_fail_htlc.
Cache the initial htlc_msat that we sent instead of recalculating
it to check validity of the error returned.
Yuntai Kyong [Sun, 14 Oct 2018 13:34:45 +0000 (22:34 +0900)]
Some changes in comments and error messages.
Yuntai Kyong [Sun, 14 Oct 2018 13:30:21 +0000 (22:30 +0900)]
Error handling in decoding onion
Yuntai Kyong [Sun, 14 Oct 2018 13:11:21 +0000 (22:11 +0900)]
Add is_permanent field to ChannelClosed message and add NodeFailure
message
Matt Corallo [Tue, 16 Oct 2018 15:40:21 +0000 (11:40 -0400)]
Avoid needless on-chain channel failing for timing-out HTLCs
See new comments in code for more details
Matt Corallo [Thu, 18 Oct 2018 13:34:35 +0000 (09:34 -0400)]
Merge pull request #211 from TheBlueMatt/2018-10-misc-cleanups
Miscellaneous Cleanups
Matt Corallo [Wed, 17 Oct 2018 11:41:27 +0000 (07:41 -0400)]
Test double-reconnect
Matt Corallo [Mon, 15 Oct 2018 12:55:19 +0000 (08:55 -0400)]
Use APIError::ChannelUnavailable a bit more for consistency
Matt Corallo [Sun, 14 Oct 2018 20:37:21 +0000 (05:37 +0900)]
Ensure channel is live, not usable for sending fee updates
+ a freebie TODO removal
Matt Corallo [Sun, 14 Oct 2018 12:46:57 +0000 (21:46 +0900)]
Use live, not usable for list_usable_channels
Matt Corallo [Wed, 17 Oct 2018 01:05:17 +0000 (21:05 -0400)]
Merge pull request #210 from TheBlueMatt/2018-10-funding-disconnected
Fix + test funding tx confirmation while peer is disconnected
Matt Corallo [Tue, 16 Oct 2018 20:36:03 +0000 (16:36 -0400)]
Fix + test funding tx confirmation while peer is disconnected
Matt Corallo [Tue, 16 Oct 2018 17:17:28 +0000 (13:17 -0400)]
Merge pull request #208 from TheBlueMatt/2018-10-reconnect-fixes
Fix channel_reestablish exchanging in case of lost messages
Matt Corallo [Tue, 16 Oct 2018 03:04:59 +0000 (23:04 -0400)]
Add documentation about PaymentSent/Failed event duplication bug
Matt Corallo [Tue, 16 Oct 2018 02:11:52 +0000 (22:11 -0400)]
Test reconnecting after lost message(s) during the commitment dance
Matt Corallo [Tue, 16 Oct 2018 02:03:12 +0000 (22:03 -0400)]
Fix channel_reestablish exchanging in case of lost messages
This uses the new storage in HTLC state enums to reproduce the
various updates in a CommitmentUpdate group which is obviously
required to re-send a commitment_update after pending unreceived
updates were dropped.
Does not yet handle dropped update_fee updates properly.
Matt Corallo [Mon, 15 Oct 2018 19:11:02 +0000 (15:11 -0400)]
Store onion packet in OutboundHTLCState so we can regen update_add
Matt Corallo [Mon, 15 Oct 2018 18:38:19 +0000 (14:38 -0400)]
Store per-state HTLC data in the state enum itself (and store more)
Matt Corallo [Mon, 15 Oct 2018 17:03:44 +0000 (13:03 -0400)]
Split create_chan_between_nodes into two steps
Matt Corallo [Sat, 6 Oct 2018 03:49:26 +0000 (20:49 -0700)]
Merge pull request #206 from TheBlueMatt/2018-10-189-rebase
#189 rebased
Matt Corallo [Sat, 6 Oct 2018 02:55:55 +0000 (11:55 +0900)]
Further simplify get_{inbound,outbound}_pending_htlc_stats
Yuntai Kyong [Wed, 3 Oct 2018 00:19:22 +0000 (09:19 +0900)]
Split get_pending_htlc_stats
to get_inbound_pending_htlc_stats and get_outbound_pending_htlc_stats
Matt Corallo [Mon, 1 Oct 2018 21:48:22 +0000 (17:48 -0400)]
Check that reserves are met or progress is made on commitment tx gen
Yuntai Kyong [Sat, 6 Oct 2018 03:05:35 +0000 (12:05 +0900)]
Add test for channel_reserve with holding cell HTLCs counted
Yuntai Kyong [Mon, 1 Oct 2018 09:13:37 +0000 (18:13 +0900)]
Add simple test for channel_reserve/max_htlc_value_in_flight_msat
Yuntai Kyong [Mon, 1 Oct 2018 09:13:05 +0000 (18:13 +0900)]
Break up test channel creation to specify values explicitly
Yuntai Kyong [Mon, 1 Oct 2018 09:11:33 +0000 (18:11 +0900)]
Add a ChannelValueStat getter to simplify tests
Yuntai Kyong [Tue, 25 Sep 2018 14:17:11 +0000 (23:17 +0900)]
Document channel reserve behavior a bit better
Yuntai Kyong [Wed, 19 Sep 2018 11:48:03 +0000 (20:48 +0900)]
Fix checking of channel_reserve values
Matt Corallo [Sat, 6 Oct 2018 01:32:24 +0000 (18:32 -0700)]
Merge pull request #196 from yuntai/shutdown-apify
Raise APIError from close_channel
Yuntai Kyong [Thu, 27 Sep 2018 03:58:05 +0000 (12:58 +0900)]
add a ChannelUnavailable error
Yuntai Kyong [Tue, 25 Sep 2018 15:32:30 +0000 (00:32 +0900)]
raise APIError from close_channel
Matt Corallo [Mon, 1 Oct 2018 14:32:00 +0000 (10:32 -0400)]
Merge pull request #201 from TheBlueMatt/2018-09-channelerror-1
Introduce a Channel-specific Err type and return it in a few places
Matt Corallo [Mon, 1 Oct 2018 00:03:35 +0000 (20:03 -0400)]
Use new ChannelError in get_channel_announcement
Matt Corallo [Sun, 30 Sep 2018 23:51:15 +0000 (19:51 -0400)]
Use new ChannelError in channel_reestablish handling
Matt Corallo [Sun, 30 Sep 2018 23:33:03 +0000 (19:33 -0400)]
Use new ChannelError in HTLC-removal msgs, filling out more handling
Matt Corallo [Sun, 30 Sep 2018 23:11:01 +0000 (19:11 -0400)]
Use new ChannelError in funding_locked, filling out more handling
Matt Corallo [Sun, 30 Sep 2018 23:08:24 +0000 (19:08 -0400)]
Use new ChannelError type in accept_channel
Matt Corallo [Sun, 30 Sep 2018 22:19:59 +0000 (18:19 -0400)]
Introduce a Channel-specific Err type and return it in a few places
This is way simpler than writing out the whole ErrorAction mess and
we can just convert it as appropriate in ChannelManager.
Matt Corallo [Sun, 30 Sep 2018 01:09:50 +0000 (21:09 -0400)]
Merge pull request #199 from TheBlueMatt/2018-09-184-fixed-monitor
Fix simple to_local revoked output claim and rebase #184
Matt Corallo [Sun, 30 Sep 2018 00:43:14 +0000 (20:43 -0400)]
Merge pull request #200 from TheBlueMatt/2018-09-187-tweaks
#187 rebased + squashed
Matt Corallo [Sun, 30 Sep 2018 00:24:30 +0000 (20:24 -0400)]
Macro-out checking a tx validly spends another (and add one more)
Antoine Riard [Sat, 29 Sep 2018 18:51:45 +0000 (14:51 -0400)]
Test htlc outputs single tx claim due to timeout case
Antoine Riard [Thu, 20 Sep 2018 00:52:02 +0000 (00:52 +0000)]
Test htlc outputs shared tx claim case
Matt Corallo [Sat, 29 Sep 2018 18:26:12 +0000 (14:26 -0400)]
Fix and test simple remote-revoked-commitment-output claiming
Matt Corallo [Thu, 27 Sep 2018 21:46:08 +0000 (17:46 -0400)]
Add 2-inbound-in-flight update_fee test (that we wouldn't generate)
Matt Corallo [Thu, 27 Sep 2018 21:45:04 +0000 (17:45 -0400)]
Annotate test_update_fee to make events more clear
Matt Corallo [Thu, 27 Sep 2018 01:38:48 +0000 (21:38 -0400)]
Add test for out-of-order update_fee commitment_signed/RAA
Matt Corallo [Thu, 27 Sep 2018 00:04:56 +0000 (20:04 -0400)]
Add test for send_commitment pending non-committed feerate updates
Matt Corallo [Fri, 28 Sep 2018 23:06:41 +0000 (19:06 -0400)]
Note that update_fee is likely not gonna be our final API
Yuntai Kyong [Wed, 26 Sep 2018 23:56:13 +0000 (19:56 -0400)]
Add update_fee tests
Yuntai Kyong [Wed, 26 Sep 2018 23:55:47 +0000 (19:55 -0400)]
Expose updating fee on an individual channel
Yuntai Kyong [Wed, 26 Sep 2018 23:54:28 +0000 (19:54 -0400)]
Implement update_fee handling
Matt Corallo [Wed, 26 Sep 2018 19:28:20 +0000 (15:28 -0400)]
Macro out one-monitor-added check in network tests (thanks @yuntai)
Originally suggested by Yuntai Kyong <yuntai.kyong@gmail.com> in
some new tests.
Matt Corallo [Wed, 26 Sep 2018 23:50:39 +0000 (19:50 -0400)]
Macro out getting payment_preimage/hash in network tests
Matt Corallo [Sat, 29 Sep 2018 18:27:01 +0000 (14:27 -0400)]
Merge pull request #197 from TheBlueMatt/master
Fix fuzztarget failures
Matt Corallo [Thu, 27 Sep 2018 21:36:10 +0000 (17:36 -0400)]
Avoid double-panic in ChannelManager when tests fail