Matt Corallo [Fri, 3 Apr 2020 16:15:27 +0000 (16:15 +0000)]
Merge pull request #571 from ariard/2020-04-fix-minimalif
Enforce MINIMALIF-compliant witnesses
Antoine Riard [Thu, 2 Apr 2020 21:13:13 +0000 (17:13 -0400)]
Enforce MINIMALIF-compliant witness for spending revokable redeemscript
Antoine Riard [Thu, 2 Apr 2020 21:10:35 +0000 (17:10 -0400)]
Enforce MINIMALIF-compliant witness for timeout tx
Matt Corallo [Thu, 2 Apr 2020 20:06:00 +0000 (20:06 +0000)]
Merge pull request #568 from jkczyz/2020-03-handle-error-deadlock
Fix deadlock in ChannelManager's handle_error!()
Jeffrey Czyz [Fri, 27 Mar 2020 23:46:57 +0000 (16:46 -0700)]
Test failing backward any pending HTLCs
Upon channel failure, any pending HTLCs in a channel's holding cell must
be failed backward. The added test exercises this behavior and
demonstrates a deadlock triggered within the handle_error!() macro. The
deadlock occurs when the channel_state lock is already held and then
reacquired when finish_force_close_channel() is called.
Matt Corallo [Mon, 13 Jan 2020 21:10:30 +0000 (16:10 -0500)]
Fix deadlock in handle_error!() when we have HTLCs to fail-back.
This partially reverts
933ae3470309f21ef7537ffbcdc42070d60e1e74,
though note that
933ae3470309f21ef7537ffbcdc42070d60e1e74 fixed a
similar deadlock while introducing this one.
If we have HTLCs to fail backwards, handle_error!() will call
finish_force_close_channel() which will attempt to lock channel_state
while it is locked at the original caller. Instead, hold the lock for
shorter scopes such that it is not held upon entering handle_error!().
Co-authored-by: Matt Corallo <git@bluematt.me>
Co-authored-by: Jeffrey Czyz <jkczyz@gmail.com>
Matt Corallo [Fri, 27 Mar 2020 20:27:15 +0000 (20:27 +0000)]
Merge pull request #556 from valentinewallace/add-PR550-test
Test that do_attempt_write_data does not infinitely loop
Valentine Wallace [Fri, 20 Mar 2020 22:42:02 +0000 (18:42 -0400)]
Test that do_attempt_write_data does not infinitely loop
when all the channel messages can't fit into the buffer.
Adds a test for PR #550.
Matt Corallo [Sun, 23 Feb 2020 23:04:03 +0000 (18:04 -0500)]
Fix initial outbound sync infinite loop
Matt Corallo [Sat, 21 Mar 2020 22:21:38 +0000 (22:21 +0000)]
Merge pull request #555 from ariard/2020-03-begin-dryup-chanmon-keys
Begin dry-up ChannelMonitor key access
Antoine Riard [Fri, 20 Mar 2020 20:58:13 +0000 (16:58 -0400)]
Remove useless local commitment txn signatures
check_spend_local_transaction is tasked with detection of
onchain local commitment transaction and generate HTLC transaction.
Signing an already onchain tx isn't necessary.
Antoine Riard [Sat, 21 Mar 2020 18:26:58 +0000 (14:26 -0400)]
Dryup SecretKey from ChannelMonitor::OnchainDetection
Key access is provided through ChanSigner.
Antoine Riard [Wed, 18 Mar 2020 04:29:26 +0000 (00:29 -0400)]
Add ChanSigner in OnchainTxHandler
Rename ChannelMonitor::Storage to OnchainDetection,
holder of channel state (base_key+per_commitment_point)
to detect onchain transactions accordingly.
Going further between splitting detection and transaction
generation, we endow OnchainTxHandler with keys access.
That way, in latter commits, we may remove secret keys entirely
from ChannelMonitor.
Matt Corallo [Sat, 21 Mar 2020 19:10:26 +0000 (19:10 +0000)]
Merge pull request #557 from ariard/2020-03-link-arch-md
Link ARCH.md in README.md
Antoine Riard [Sat, 21 Mar 2020 03:13:37 +0000 (23:13 -0400)]
Link ARCH.md in README.md
Matt Corallo [Sat, 21 Mar 2020 01:50:53 +0000 (01:50 +0000)]
Merge pull request #516 from TheBlueMatt/2020-02-checkin-arch
Add some basic arch diagrams/descriptions.
Matt Corallo [Tue, 25 Feb 2020 20:57:58 +0000 (15:57 -0500)]
Add some basic arch diagrams/descriptions.
Matt Corallo [Fri, 20 Mar 2020 23:58:51 +0000 (23:58 +0000)]
Merge pull request #554 from TheBlueMatt/2020-03-stale-mon-fail-man-deser
Fail to deserialize ChannelManager if it is ahead of any monitor(s)
Antoine Riard [Wed, 18 Mar 2020 05:15:28 +0000 (01:15 -0400)]
Remove Watchtower mode from Storage enum and make it a struct
Watchtower will be supported through external signer interface
where a watchtower implementation may differ from a local one
by the scope of key access and pre-signed datas.
Matt Corallo [Fri, 20 Mar 2020 19:09:10 +0000 (19:09 +0000)]
Merge pull request #552 from ariard/2020-03-ismine-spendable
Introduce IsMine logic in ChannelMonitor for SpendableOutputDescriptor detection
Antoine Riard [Tue, 3 Mar 2020 19:43:09 +0000 (14:43 -0500)]
Add test_static_spendable_outputs_timeout_tx
Cover previously missing SpendableOuputDescriptor for
timeout tx on non-revoked remote commitment tx.
Fix #338
Matt Corallo [Fri, 20 Mar 2020 01:31:18 +0000 (21:31 -0400)]
Test that ChannelManager fails to deserialize if monitors are stale
Matt Corallo [Thu, 19 Mar 2020 23:15:06 +0000 (19:15 -0400)]
Fail to deserialize ChannelManager if it is ahead of any monitor(s)
If any monitors are out of sync with the Channel, we previously
closed the channel, but we should really only do that if the
monitor is ahead of the channel, opting to call the whole thing
invalid if the channel is ahead of the monitor.
Antoine Riard [Thu, 19 Mar 2020 00:58:05 +0000 (20:58 -0400)]
Implement reorg-safety for SpendableOutputDescriptor detection
We delay SpendableOutputDescriptor until reaching ANTI_REORG_DELAY
to avoid misleading user wallet in case of reorg and alternative
settlement on a channel output.
Fix tests in consequence.
Antoine Riard [Thu, 19 Mar 2020 01:39:28 +0000 (21:39 -0400)]
Move SpendableOutputDescriptor for closing tx in
is_paying_spendable_output
Add ChannelMonitor::shutdown_script to detect onchain tx
paying back to us
Antoine Riard [Wed, 18 Mar 2020 22:02:31 +0000 (18:02 -0400)]
Move SpendableOutputDescriptor::DynamicOutputP2WPKH in
is_paying_spendable_output
Add ChannelMonitor::broadcasted_remote_payment_script to detect
onchain remote txn paying back to us.
Antoine Riard [Wed, 18 Mar 2020 21:57:29 +0000 (17:57 -0400)]
Move SpendableOutputDescirptor::DynamicOutputP2WSH in
is_paying_spendable_output
Add ChannelMonitor::broadcasted_local_revokable_script to detect
onchain local txn paying back to us.
Fix tests in consequence
Antoine Riard [Wed, 18 Mar 2020 20:56:32 +0000 (16:56 -0400)]
Introduce ChannelMonitor::is_paying_spendable_output
Previously, we would generate SpendableOutputDescriptor::StaticOutput
in OnchainTxHandler even if our claiming transaction wouldn't confirm
onchain, misbehaving user wallet to think it receives more funds than
in reality.
Fix tests in consequence
Antoine Riard [Tue, 3 Mar 2020 19:41:13 +0000 (14:41 -0500)]
Add logger for SpendableOutputDescriptor
Matt Corallo [Fri, 20 Mar 2020 00:22:11 +0000 (00:22 +0000)]
Merge pull request #551 from TheBlueMatt/2020-03-no-chan-mon
Generate latest local commitment transactions via monitor avoiding Channel's copy
Matt Corallo [Thu, 19 Mar 2020 01:37:09 +0000 (21:37 -0400)]
Fetch latest commitment txn via monitor, not channel in test
Eventually, we want to remove the Channel's copy of its own
ChannelMonitor, reducing memory footprint and complexity of
ChannelManager greatly.
This removes the last uses of said ChannelMonitor for latest
local commitment transactions (though it is still used for
would_broadcast_at_height(), which is the last remaining use).
Matt Corallo [Thu, 19 Mar 2020 01:30:34 +0000 (21:30 -0400)]
Fetch latest local commitment txn via a macro in tests
This makes it easier to swap out how we fetch the latest local
commitment txn in testing (which we use to check or broadcast old
states).
Matt Corallo [Wed, 18 Mar 2020 20:30:05 +0000 (16:30 -0400)]
Broadcast final local txn via ChannelMonitorUpdate
Matt Corallo [Thu, 19 Mar 2020 22:16:07 +0000 (18:16 -0400)]
Deduplicate HTLC preimage events from channelmonitor.
This avoids calling get_update_fulfill_htlc_and_commit twice for
the same HTLC if we have to rescan a block.
Matt Corallo [Thu, 19 Mar 2020 01:10:22 +0000 (21:10 -0400)]
Remove bogus mon_update_id += 1 fulfilling already-fulfilled HTLCs
If we call get_update_fulfill_htlc (in this case via
ChannelManager::claim_funds_internal ->
Channel::get_update_fulfill_htlc_and_commit) and it finds that we
already have a holding-cell pending HTLC claim, it will return no
monitor update but leave latest_monitor_update_id incremented.
If we later go and add a new monitor update we'll panic as the
updates appear to have been applied out-of-order.
Matt Corallo [Thu, 19 Mar 2020 02:52:40 +0000 (02:52 +0000)]
Merge pull request #547 from valentinewallace/add-PR539-test
Verify commitment point on ChannelReestablish (no updates case).
Valentine Wallace [Tue, 17 Mar 2020 23:54:16 +0000 (19:54 -0400)]
Verify commitment point on ChannelReestablish (no updates case).
Adds a test for PR #537.
Matt Corallo [Tue, 17 Mar 2020 18:49:06 +0000 (18:49 +0000)]
Merge pull request #537 from TheBlueMatt/2020-03-data-loss-spec-550
Update pre-HTLC DataLossProtect to match new spec changes
Matt Corallo [Tue, 17 Mar 2020 18:47:48 +0000 (18:47 +0000)]
Merge pull request #546 from TheBlueMatt/2020-03-519-nits
Watch revoked HTLC-Success/Timeout outputs
Antoine Riard [Wed, 26 Feb 2020 23:21:53 +0000 (18:21 -0500)]
Add more logs in OnchainTxHandler
Antoine Riard [Wed, 26 Feb 2020 23:18:27 +0000 (18:18 -0500)]
Watch outputs of revoked HTLC-transactions
Bumping of justice txn on revoked HTLC-Success/HTLC-timeout is triggered
until our claim is confirmed onchain with at least
ANTI_REORG_DELAY_SAFE. Before this patch, we weren't tracking them in
check_spend_remote_htlc, leading us to infinite bumps.
Fix #411
Small fixes by Matt Corallo <git@bluematt.me>
Antoine Riard [Wed, 11 Mar 2020 19:10:29 +0000 (15:10 -0400)]
Fix duplicata of adjusted justice tx generation in OnchainTxHandler
Adjusted tx occurs when a previous aggregated claim tx has
seen one of its outpoint being partially claimed by a remote tx.
To pursue claiming of the remaining outpoint a adjusted claim tx
is generated with leftover of claimable outpoints.
Previously, in case of block-rescan where a partial claim occurs,
we would generate duplicated adjusted tx, wrongly inflating feerate
for next bumps. At rescan, if input has already been dropped from
outpoints map from a claiming request, don't regenerate again
a adjuste tx.
Matt Corallo [Tue, 17 Mar 2020 18:01:06 +0000 (18:01 +0000)]
Merge pull request #545 from TheBlueMatt/2020-03-fuzz-0-fee
Don't return a feerate of 0 in full_stack_target fuzz on EOF
Matt Corallo [Tue, 17 Mar 2020 17:59:22 +0000 (17:59 +0000)]
Merge pull request #544 from TheBlueMatt/2020-03-fix-mon-ser
Fix ChannelMonitor round-trip introduced by
3d640da5c343111f538f006
Matt Corallo [Tue, 17 Mar 2020 02:05:57 +0000 (22:05 -0400)]
Don't return a feerate of 0 in full_stack_target fuzz on EOF
This triggered a (legitimate) panic in OnChainTxHandler that the
feerate in use was non-0, which is required by the feerate API.
Matt Corallo [Mon, 16 Mar 2020 23:01:17 +0000 (19:01 -0400)]
Fix ChannelMonitor round-trip introduced by
3d640da5c343111f538f006
3d640da5c343111f538f006996c13c9a98e0d9e6 changed the indexes for
some enums in ChannelMonitor deserialization but not serialization.
Thus, the chanmon_deser_target fuzz target failed on travis on at
least one PR.
Matt Corallo [Mon, 16 Mar 2020 20:23:37 +0000 (20:23 +0000)]
Merge pull request #543 from TheBlueMatt/2020-03-513-warning
Add missing unwrap() in tests introduced in
4abfd515e554bef90c25dbe
Matt Corallo [Wed, 11 Mar 2020 20:10:01 +0000 (16:10 -0400)]
Add missing unwrap() in tests introduced in
4abfd515e554bef90c25dbe
Matt Corallo [Wed, 11 Mar 2020 19:57:38 +0000 (19:57 +0000)]
Merge pull request #513 from ariard/2020-02-fix-zero-msat-htlc
BOLT2: Check we don't send and accept 0-msat HTLC
Antoine Riard [Tue, 10 Mar 2020 23:29:56 +0000 (19:29 -0400)]
Add test_override_0msat_htlc_minimum
Antoine Riard [Tue, 10 Mar 2020 17:03:10 +0000 (13:03 -0400)]
Make htlc_minimum_msat configurable
Enforce a minimum htlc_minimum_msat of 1.
Instead of computing dynamically htlc_minimum_msat based on feerate,
relies on user-provided configuration value. This let user compute
an economical-driven channel parameter according to network dynamics.
Matt Corallo [Wed, 11 Mar 2020 17:41:57 +0000 (17:41 +0000)]
Merge pull request #472 from TheBlueMatt/2020-01-net-async-await
Rewrite lightning-net-tokio using async/await and tokio 0.2
Matt Corallo [Wed, 11 Mar 2020 17:32:33 +0000 (17:32 +0000)]
Merge pull request #541 from valentinewallace/fix-node-features
Fix node `with_relevant_init_flags`
Valentine Wallace [Tue, 10 Mar 2020 00:51:32 +0000 (20:51 -0400)]
Add test cases for feature messages from other lightning clients.
Valentine Wallace [Tue, 10 Mar 2020 00:50:41 +0000 (20:50 -0400)]
Fix blanking out non-node-context feature flags when pulling features from init context.
Fixes bug introduced in
912f877
Matt Corallo [Mon, 3 Feb 2020 23:47:38 +0000 (18:47 -0500)]
Fix typo in lightning-net-tokio crate description.
Matt Corallo [Fri, 28 Feb 2020 16:55:34 +0000 (11:55 -0500)]
Fix (and test) net-tokio outbound conns without a threaded env
Matt Corallo [Mon, 24 Feb 2020 19:17:04 +0000 (14:17 -0500)]
Fix long-standing race in net-tokio reading after a disconnect event
If rust-lightning tells us to disconnect a socket after we read
some bytes from the socket, but before we actually give those bytes
to rust-lightning, we may end up calling rust-lightning with a
Descriptor that isn't registered anymore.
Sadly, there really isn't a good way to solve this, and it should
be a pretty quick event, so we just busy-wait.
Matt Corallo [Sat, 1 Feb 2020 17:27:30 +0000 (12:27 -0500)]
Rewrite lightning-net-tokio using async/await and tokio 0.2
This is a rather major rewrite, using async/await and tokio 0.2,
which cleans up the code a ton as well as adds significantly to
readability.
Antoine Riard [Wed, 26 Feb 2020 21:05:00 +0000 (16:05 -0500)]
Add test_update_add_htlc_bolt2_receiver_zero_value_msat
Antoine Riard [Fri, 21 Feb 2020 00:20:29 +0000 (19:20 -0500)]
BOLT2: Check we don't send and accept 0-msat HTLC
Failing this requirement at sending means a strict receiver would
fail our channel while processing a HTLC routed from a third-party.
Fix by enforcing check on both sender and receiver side.
Matt Corallo [Sat, 1 Feb 2020 01:57:01 +0000 (20:57 -0500)]
Swap read_event read type for a slice isntead of a Vec
It looks like we don't currently use the Vec as a Vec, and can
happily take a slice, which makes things easier on the calling
side.
Matt Corallo [Mon, 9 Mar 2020 00:13:47 +0000 (00:13 +0000)]
Merge pull request #435 from TheBlueMatt/2020-01-node_announce
Add ability to broadcast our own node_announcement
Matt Corallo [Sat, 15 Feb 2020 03:32:30 +0000 (22:32 -0500)]
Update pre-HTLC DataLossProtect to match new spec changes
This was the way DataLossProtect was originally written, however it
didn't match other implementations at the time during testing. It
turns out, other implementations didn't agree with each other
anyway (depending on the exact timeline), so the spec was clarified
somewhat in https://github.com/lightningnetwork/lightning-rfc/pull/550
. This updates us to be in line with the new guidance and appears
to solve out-of-sync issues in testing.
Matt Corallo [Thu, 5 Mar 2020 23:01:06 +0000 (18:01 -0500)]
Use block timestamps as the min for generated update messages.
Fixes issue #493 and should resolve some issues where other nodes
(incorrectly) reject channel_update/node_announcement messages
which have a serial number that is not a relatively recent
timestamp.
Matt Corallo [Wed, 12 Feb 2020 18:40:29 +0000 (13:40 -0500)]
Further document the initial routing table send.
As requested by Arik at https://github.com/rust-bitcoin/rust-lightning/pull/435#discussion_r378093821
Matt Corallo [Fri, 3 Jan 2020 01:32:37 +0000 (20:32 -0500)]
Add ability to broadcast our own node_announcement.
This is a somewhat-obvious oversight in the capabilities of
rust-lightning, though not a particularly interesting one until we
start relying on node_features (eg for variable-length-onions and
Base AMP).
Sadly its not fully automated as we don't really want to store the
list of available addresses from the user. However, with a simple
call to ChannelManager::broadcast_node_announcement and a sensible
peer_handler, the announcement is made.
Matt Corallo [Thu, 5 Mar 2020 18:39:53 +0000 (13:39 -0500)]
Allow more than one address per type in node_announcement messages
lnd has been blatantly ignoring this line in the spec forever, so
its somewhat of a lost cause trying to enforce it.
Matt Corallo [Fri, 3 Jan 2020 19:03:46 +0000 (14:03 -0500)]
Allow node_announcement timestamps of 0 in accordance with BOLT 7
Unlike channel_update messages, node_announcement messages have no
requirement that the timestamp is greater than 0.
Matt Corallo [Thu, 5 Mar 2020 16:19:14 +0000 (16:19 +0000)]
Merge pull request #535 from TheBlueMatt/2020-03-462-nits
A few minor nits on #462
Matt Corallo [Wed, 4 Mar 2020 22:45:27 +0000 (17:45 -0500)]
Take multiple spent-txn to check_spends! in functional_tests
This reintroduces a check_spends!() removed in
3d640da5c343111f538f
due to check_spends not being able to check a transaction which
spends multiple other transactions.
It also simplifies a few calls in claim_htlc_outputs_single_tx by
using check_spends!().
Matt Corallo [Wed, 4 Mar 2020 22:36:12 +0000 (17:36 -0500)]
Drop redundant .clone() in check_spends calls.
The API to rust-bitcoin to check a transaction correctly spends
another changed some time ago, but we still have a lot of needless
.clone()s in our tests.
Matt Corallo [Wed, 4 Mar 2020 22:53:16 +0000 (17:53 -0500)]
Correct comment in onchaintx.rs
This comment was stale and referred to a previous implementation
of #462, which changed before it was merged.
Matt Corallo [Wed, 4 Mar 2020 22:27:03 +0000 (17:27 -0500)]
Flatten Vec passed from channelmonitor to onchaintx block_connected
Instead of passing a Vec of Vecs drop them into one as we go in
ChannelMonitor, hopefully avoiding a bit of memory fragmentation
and improving readability.
Matt Corallo [Wed, 4 Mar 2020 22:23:28 +0000 (22:23 +0000)]
Merge pull request #462 from ariard/2020-01-refactor-chan
Introduce OnchainTxHandler, move bumping and tracking logic
Antoine Riard [Mon, 2 Mar 2020 23:12:18 +0000 (18:12 -0500)]
Rename InputMaterial script to witness_script
Antoine Riard [Tue, 18 Feb 2020 18:11:56 +0000 (13:11 -0500)]
Comment better get_height_timer logic.
Height timer as an important component of a more-secure, fee-sensitive
claiming of time-constrained LN outputs, therefore document assumptions.
Antoine Riard [Fri, 24 Jan 2020 22:48:27 +0000 (17:48 -0500)]
Remove TestBroadcaster temporary dedup buffer
Antoine Riard [Wed, 12 Feb 2020 18:00:29 +0000 (13:00 -0500)]
Structurify claim request handed between detection/reaction
Antoine Riard [Fri, 24 Jan 2020 16:57:52 +0000 (11:57 -0500)]
Introduce OnchainTxHandler, move bumping and tracking logic
Encapsulates tracking and bumping of in-flight transactions in
its own component. This component may be latter abstracted
to reuse tracking and RBF for new features (e.g dual-funding,
splicing)
Build all transactions generation in one place. Also as fees
and signatures are closely tied, what keys do you have determine
what bumping mode you can use.
Matt Corallo [Wed, 4 Mar 2020 20:37:58 +0000 (20:37 +0000)]
Merge pull request #523 from TheBlueMatt/2020-02-router-ser-fix
Fix Router Serialization Roundtrip
Matt Corallo [Mon, 24 Feb 2020 04:26:10 +0000 (23:26 -0500)]
Test Router serialization round-trip in functional_tests.
This tests Router serialization round-trip at the end of each
functional test in the same way we do ChannelMonitors and
ChannelManagers to catch any cases where we were able to get into
a state which would have prevented reading a Router back off disk.
We further walk all of the announcements which both the original
and deserialized Routers would send to peers requesting initial
sync to ensure they match.
Matt Corallo [Mon, 24 Feb 2020 04:25:43 +0000 (23:25 -0500)]
Change Option<T> serialization format to include length
This is a cheap way to fix an error in Router serialization
roundtrip due to us calling read_to_end during the read of
channel/node announcement/updates. During normal message reading,
we only have limited bytes to read (specifically the message buffer)
so this is fine, however when we read them inside Router, we have
more data from other fields of the Router available as well. Thus,
we end up reading the entire rest of the Router into one message
field, and failing to deserialize.
Because such fields are always stored in Option<>s, we can simply
use a LengthLimitingStream in the Option<> serialization format and
make only the correct number of bytes available.
By using a variable-length integer for the new field, we avoid
wasting space compared to the existing serialization format.
Matt Corallo [Mon, 24 Feb 2020 04:12:19 +0000 (23:12 -0500)]
Make Readable::read a templated on the stream, not Readable itself
This makes Readable symmetric with Writeable and makes sense -
something which is Readable should be Readable for any stream which
implements std::io::Read, not only for a stream type it decides on.
This solves some lifetime-compatibility issues in trying to read()
from a LengthLimitingReader in arbitrary Readable impls.
Matt Corallo [Mon, 27 Jan 2020 15:38:13 +0000 (10:38 -0500)]
Impl ReadableArgs for Arc<ChannelManager>, not just ChannelManager.
This provides a simple wrapper for deserializing right into an
Arc<ChannelManager>, which improves UX a tiny bit when working with
SimpleArcChannelManager types.
Matt Corallo [Wed, 4 Mar 2020 19:28:23 +0000 (19:28 +0000)]
Merge pull request #534 from TheBlueMatt/2020-02-fuzz-on-stable
[travis] Build lightning-net-tokio on Rust 1.39.0+, fuzz on stable
Matt Corallo [Sat, 1 Feb 2020 17:37:50 +0000 (12:37 -0500)]
[travis] Build lightning-net-tokio on Rust 1.39.0+, fuzz on stable
This disables building the lightning-net-tokio crate on 1.34.2 on
Travis in anticiption of relying on async/await for
lightning-net-tokio, with the nice side-effect of reducing the
amount of work done on our slowest Travis job.
This also adds 1.39.0 to Travis as that is the new MSRV for
lightning-net-tokio and uses that for codecov generation.
This also moves fuzzing to Rust stable, as honggfuzz broke its MSRV
and it seems likely it will again in the future.
Matt Corallo [Sat, 29 Feb 2020 03:10:54 +0000 (03:10 +0000)]
Merge pull request #517 from ccdle12/2020-02-per-channel-config
Add an override optional UserConfig per new outbound channel
Matt Corallo [Sat, 29 Feb 2020 02:59:34 +0000 (02:59 +0000)]
Merge pull request #507 from moneyball/patch-2
Add project tracking and conventions we want to adopt
Steve Lee [Sat, 29 Feb 2020 01:01:16 +0000 (17:01 -0800)]
made fixes per val and matt feedback
Christopher Coverdale [Tue, 25 Feb 2020 12:03:25 +0000 (12:03 +0000)]
Add an override optional UserConfig per new outbound channel
Matt Corallo [Fri, 28 Feb 2020 20:10:38 +0000 (20:10 +0000)]
Merge pull request #520 from TheBlueMatt/2020-02-events-in-monitors
Move events into ChannelMonitor from ManyChannelMonitor
Matt Corallo [Fri, 28 Feb 2020 19:35:34 +0000 (14:35 -0500)]
Add comment noting that ChannelMonitor events are serialized
Matt Corallo [Fri, 28 Feb 2020 19:28:13 +0000 (14:28 -0500)]
Drop stale doc comment + TODO describing MessageSendEvents
Matt Corallo [Wed, 12 Feb 2020 21:55:04 +0000 (16:55 -0500)]
Move events into ChannelMonitor from ManyChannelMonitor
This is the next step after "Move pending-HTLC-updated ChannelMonitor
from ManyChannelMonitor", moving our events into ChannelMonitor as
well and leaving only new-outputs-to-watch in the return value for
ChannelMonitor::block_connected (which is fine as those are
duplicatively tracked in the ChannelMonitor directly, so
losing/replaying them is acceptable).
Matt Corallo [Wed, 12 Feb 2020 22:02:03 +0000 (17:02 -0500)]
Implement Readable/Writeable for Events
As noted in the docs, Events don't round-trip fully, but round-trip
in a way that is useful for ChannelManagers, specifically some events
don't make sense anymore after a restart.
Matt Corallo [Fri, 28 Feb 2020 19:08:43 +0000 (19:08 +0000)]
Merge pull request #522 from valentinewallace/chanmgr-fee-est-arc-to-deref
Update ChannelManager's FeeEstimator from Arc to Deref.
Matt Corallo [Thu, 27 Feb 2020 21:12:23 +0000 (21:12 +0000)]
Merge pull request #521 from TheBlueMatt/2020-02-ping-connection-possible
Dont treat a timer tick as no_connection_possible
Matt Corallo [Mon, 24 Feb 2020 23:47:38 +0000 (18:47 -0500)]
Dont treat a timer tick as no_connection_possible and log
In testing, due to other patches, I managed to flood the send queue
with messages and cause us not to be able to send pings, thus
getting a peer disconnected for ping timeout. To my surprise, this
also force-closed all of my channels with that peeer.
Obviously a ping timeout does not indicate that no future connection
with said peer will be possible, and we shouldn't be force-closing
channels as a result.
This also logs when a peer is disconnected to ping timeout to make
debug easier.
Matt Corallo [Mon, 24 Feb 2020 23:38:55 +0000 (18:38 -0500)]
Add logging on receipt of unknown message types.
This should make peer disconnection easier to debug.