]>
git.bitcoin.ninja Git - rust-lightning/log
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
Matt Corallo [Wed, 26 Sep 2018 15:02:38 +0000 (11:02 -0400)]
Handle temporary_channel_id collision in fuzztarget mode
Matt Corallo [Wed, 26 Sep 2018 14:48:30 +0000 (10:48 -0400)]
Narrow check_spend_remote_htlc input/output count check.
This fixes a crash found by fuzztester where a 0-output tx causes a
[] panic (though this shouldn't happen in the real-world as
0-output txn should never be able to be mined).
Matt Corallo [Fri, 21 Sep 2018 08:59:37 +0000 (04:59 -0400)]
Merge pull request #193 from SWvheerden/Bolt2-specs-errors-of-closing-messages-
Added test for testing sciptpubkey of closing message per bolt 2 spec
Matt Corallo [Fri, 21 Sep 2018 08:42:57 +0000 (04:42 -0400)]
Merge pull request #194 from TheBlueMatt/2018-09-doc-cleanup
Make docs look nicer by adding explicit spacing
Schalk van Heerden [Thu, 20 Sep 2018 08:16:20 +0000 (10:16 +0200)]
Added test for testing sciptpubkey of closing message per bolt 2 spec
Matt Corallo [Thu, 20 Sep 2018 16:57:47 +0000 (12:57 -0400)]
Make docs look nicer by adding explicit spacing
Matt Corallo [Thu, 20 Sep 2018 16:14:59 +0000 (12:14 -0400)]
Merge pull request #191 from TheBlueMatt/2018-09-chanmon-ser-framework
Migrate ChannelMonitor writing/reading to new serialization framework
Matt Corallo [Thu, 20 Sep 2018 14:55:34 +0000 (10:55 -0400)]
Bump version to 0.0.5 to get new docs out
Matt Corallo [Tue, 18 Sep 2018 20:22:53 +0000 (16:22 -0400)]
Switch to -O1 in dev as we have long-running tests and O1 is cheap
Matt Corallo [Wed, 19 Sep 2018 17:31:14 +0000 (13:31 -0400)]
Migrate ChannelMonitor serialization to new ser framework(ish)
Sadly we can't straight up use the new serialization framework as
we have a few different serialization variants, but that's OK, it
looks identical and is just missing the Writeable impl
Matt Corallo [Wed, 19 Sep 2018 17:17:16 +0000 (13:17 -0400)]
Move ChannelMonitor deserialization to new ser framework
Matt Corallo [Wed, 19 Sep 2018 17:06:35 +0000 (13:06 -0400)]
Simplify DecodeError enum by removing some useless distinctions
Matt Corallo [Thu, 20 Sep 2018 14:44:23 +0000 (10:44 -0400)]
Merge pull request #192 from TheBlueMatt/2018-09-docs-docs-docs
Add module and all-pub-things docs and deny missing docs
Matt Corallo [Wed, 19 Sep 2018 21:39:43 +0000 (17:39 -0400)]
Add module and all-pub-things docs and deny missing docs
Matt Corallo [Wed, 19 Sep 2018 19:01:26 +0000 (15:01 -0400)]
Document ConfirmationTarget a little bit (closes #101)
Matt Corallo [Wed, 19 Sep 2018 17:55:14 +0000 (13:55 -0400)]
Document all the fields in Errors
Matt Corallo [Wed, 19 Sep 2018 21:37:51 +0000 (17:37 -0400)]
Make message fields pub(crate) and hide a few internal fns
Matt Corallo [Wed, 19 Sep 2018 21:33:05 +0000 (17:33 -0400)]
Log peer features in peer_handler (and check for all req bits)
Matt Corallo [Thu, 20 Sep 2018 02:47:07 +0000 (22:47 -0400)]
Remove fuzz channel_target.
It has bitrotted a lot and doesn't really make sense given all the
precondition enforcement that is in channelmanager, sadly.
Matt Corallo [Tue, 18 Sep 2018 20:14:49 +0000 (16:14 -0400)]
Merge pull request #186 from TheBlueMatt/2018-09-ser-rework-2
Drop old serialization framework
Matt Corallo [Tue, 18 Sep 2018 20:14:40 +0000 (16:14 -0400)]
Merge pull request #185 from TheBlueMatt/2018-09-ser-rework
Serialization Framework Tweaks
Matt Corallo [Sun, 16 Sep 2018 18:03:36 +0000 (14:03 -0400)]
Drop MsgEncodable in favor of default fns on Writeable
Matt Corallo [Sun, 16 Sep 2018 17:16:43 +0000 (13:16 -0400)]
Fix peer_handler message serialization
Fixes a bug introduced in
3e89106163b941aa4dc4ff92bdb484b7bbcf50c4
where messages were being encoded with their size instead of their
type.
Also utilizes the new size_hinting in peer_handler
Matt Corallo [Sun, 16 Sep 2018 18:02:58 +0000 (14:02 -0400)]
Make Writeable::write typed instead of Writeable
This lets us add some untyped default functions to the trait
Matt Corallo [Fri, 14 Sep 2018 22:05:13 +0000 (18:05 -0400)]
Utilize Writer size hinting in message fuzz targets and check them
Matt Corallo [Sun, 16 Sep 2018 17:50:42 +0000 (13:50 -0400)]
Stop checking size > 64KB in serialization
This removes a bunch of potentially new error handling in writers
and the checks were kinda useless anyway - in normal operation we
unwrap()ed anyway, and we're gonna want to use the serializtion
framework for ChannelMonitor/ChannelManager serialization, which
may generate things larger than 64KB anyway.
Matt Corallo [Fri, 14 Sep 2018 21:54:59 +0000 (17:54 -0400)]
Add size_hint in ser and call size_hint in all message serializers
Matt Corallo [Sun, 16 Sep 2018 17:39:39 +0000 (13:39 -0400)]
Remove MsgDecodable and most MsgEncodable impls
Matt Corallo [Sun, 16 Sep 2018 02:06:13 +0000 (22:06 -0400)]
Split out Vec<u8> and Vec<Signature> ser impls cause there's 2
Should resolve any performance issues with Vec<u8> serialization.
Matt Corallo [Sun, 16 Sep 2018 17:37:35 +0000 (13:37 -0400)]
Remove uses of MsgDecodable from ChannelManager
Matt Corallo [Fri, 14 Sep 2018 21:50:48 +0000 (17:50 -0400)]
Simplify serialization a bit by removing the useless newtypes
Matt Corallo [Fri, 14 Sep 2018 20:43:47 +0000 (16:43 -0400)]
Expose (de)serialziers as we'll need them and I don't like warnings
Matt Corallo [Sat, 15 Sep 2018 15:36:59 +0000 (11:36 -0400)]
Merge pull request #178 from TheBlueMatt/2018-09-channel_reestablish
Handle peer disconnect tracking/channel_reestablish
Matt Corallo [Fri, 14 Sep 2018 19:54:06 +0000 (15:54 -0400)]
Constify 2**48-1 and add some additional comments in Channel
Matt Corallo [Thu, 13 Sep 2018 22:19:27 +0000 (18:19 -0400)]
Add a simple channel_reestablish test
Matt Corallo [Sat, 8 Sep 2018 20:02:46 +0000 (16:02 -0400)]
Track peer-disconnection in Channel and handle channel_reestablish
Matt Corallo [Sat, 8 Sep 2018 20:01:29 +0000 (16:01 -0400)]
Add a Disconnected ChannelState and check/handle it everywhere
Setting/removing it comes next
Matt Corallo [Fri, 7 Sep 2018 19:51:40 +0000 (15:51 -0400)]
Add channel_reestablish + peer_connected events to channel handler
Matt Corallo [Tue, 11 Sep 2018 18:27:17 +0000 (14:27 -0400)]
Clarify update_fail/fulfill_htlc holding cell allowed Errs
Specifically, there really should be no Errs, but in case there is
some case where duplicate HTLC removes are possible, return
IgnoreError and debug_assert to see if fuzzing can find them.
Matt Corallo [Fri, 7 Sep 2018 19:11:52 +0000 (15:11 -0400)]
Drop channels on disconnection if we haven't funded them yet
Matt Corallo [Wed, 5 Sep 2018 22:32:55 +0000 (18:32 -0400)]
Remove/fail uncommitted HTLCs upon peer disconnection
Matt Corallo [Sat, 15 Sep 2018 14:50:57 +0000 (10:50 -0400)]
Merge pull request #179 from TheBlueMatt/2018-09-pre-178-cleanups
Pre-reconnect ChannelManager test cleanups
Matt Corallo [Sat, 15 Sep 2018 14:48:54 +0000 (10:48 -0400)]
Merge pull request #183 from yuntai/201809-unwrap-getopenchannel
unwrap channel.get_open_channel
Yuntai Kyong [Fri, 14 Sep 2018 22:26:03 +0000 (07:26 +0900)]
unwrap channel.get_open_channel
Matt Corallo [Thu, 13 Sep 2018 22:17:56 +0000 (18:17 -0400)]
Split claim and fail payment functions to be able to skip one hop
Matt Corallo [Thu, 13 Sep 2018 22:04:46 +0000 (18:04 -0400)]
Move all-events check into framework instead of per-test
Matt Corallo [Sat, 8 Sep 2018 20:00:30 +0000 (16:00 -0400)]
Split up send_commitment into a const and non-const version
Matt Corallo [Fri, 14 Sep 2018 20:24:08 +0000 (16:24 -0400)]
Remove unused import and uneccessary mut
Matt Corallo [Fri, 14 Sep 2018 20:19:38 +0000 (16:19 -0400)]
Merge pull request #180 from TheBlueMatt/2018-09-htlc-tx-unwrap-fix
Ignore HTLC txn we dont know how to claim instead of unwrap()ing and Do not fail-backwards LocalAnnounced HTLCs upon force-close.
Matt Corallo [Fri, 14 Sep 2018 17:47:46 +0000 (13:47 -0400)]
Tweak + extend full_stack_target sample to incl HTLC tx broadcasts
Matt Corallo [Fri, 14 Sep 2018 19:19:03 +0000 (15:19 -0400)]
Test that we do not fail-backwards HTLCs that the remote on-chained
Matt Corallo [Thu, 13 Sep 2018 21:25:59 +0000 (17:25 -0400)]
Make the commitment signed dance a macro in ChannelManager tests
Matt Corallo [Fri, 14 Sep 2018 17:35:56 +0000 (13:35 -0400)]
Do not fail-backwards LocalAnnounced HTLCs upon force-close.
This is completely unsafe as we have provided the remote side with
a commitment_signed which they can broadcast, including the HTLC
transaction, and then could claim it on-chain after we've failed it
backwards!
Matt Corallo [Fri, 14 Sep 2018 03:54:15 +0000 (23:54 -0400)]
Ignore HTLC txn we dont know how to claim instead of unwrap()ing
This fixes a crash introduced in
3e149b1fb6624eef99b055bde772842f36
and introduces a test which will tickle the bug.
Matt Corallo [Fri, 14 Sep 2018 00:18:21 +0000 (20:18 -0400)]
Merge pull request #177 from TheBlueMatt/2018-09-163-cleanups
Optimize some ChannelMonitor stuff after #163
Matt Corallo [Thu, 13 Sep 2018 17:51:23 +0000 (13:51 -0400)]
Clean up and clarify tx broadcast checks in channelmonitor tests
This effecitlvey reverts the refactors in
383bd90a481bc146b3a3b1d8 ,
however keeps the actully new test code.
It also writes documentation for the super confusing tx test func
and makes it a bit less permissive.
Matt Corallo [Thu, 13 Sep 2018 15:35:23 +0000 (11:35 -0400)]
There can only be one input in matched txn in ChannelMonitor
This lets us simplify a few tidbits of loop.
Matt Corallo [Thu, 13 Sep 2018 15:34:26 +0000 (11:34 -0400)]
Optimize check_spend_remote HTLC a tad by avoiding indirections
Instead of hopping a pointer, we're only ever going to return one
Transaction at max, so skip the Vec. Also avoid
re-pubkey-converting the revocation key.
Matt Corallo [Thu, 13 Sep 2018 17:53:47 +0000 (13:53 -0400)]
Merge pull request #163 from ariard/claim_revoked_htlc_tx
Implement claiming of revoked HTLC transactions by ChannelMonitor
Matt Corallo [Thu, 13 Sep 2018 17:11:51 +0000 (13:11 -0400)]
Merge pull request #175 from TheBlueMatt/2018-09-173-whitespace-err
raise APIError from send_payment (#173 without whitespace nit)
Yuntai Kyong [Wed, 12 Sep 2018 20:23:12 +0000 (05:23 +0900)]
raise APIError from send_payment
add APIError::RouteError
Matt Corallo [Thu, 13 Sep 2018 14:31:06 +0000 (10:31 -0400)]
Merge pull request #174 from yuntai/201809-funding_created_sig
verify incoming sig first to fail earlier
Yuntai Kyong [Thu, 13 Sep 2018 13:31:51 +0000 (22:31 +0900)]
verify incoming sig first and fail earlier
Antoine Riard [Tue, 11 Sep 2018 01:44:50 +0000 (01:44 +0000)]
Add test of claiming HTLC-Timeout outputs based on a revoked commitment
tx
Antoine Riard [Tue, 11 Sep 2018 01:40:53 +0000 (01:40 +0000)]
Implement claiming of revoked HTLC transactions by ChannelMonitor
Refactor check_spend_remote_transaction in part to check_spend_remote_htlc to
avoid lock mess in block_connected. We need
remote_commitment_txn_on_chain to match remote HTLC tx
Antoine Riard [Tue, 11 Sep 2018 01:37:31 +0000 (01:37 +0000)]
Implement set_their_delayed_payment_base_key in ChannelMonitor
Needed to build redeemscript on HTLC-Success/HTLC-Timeout tx from
remote revoked commitment tx
Matt Corallo [Wed, 12 Sep 2018 19:53:14 +0000 (15:53 -0400)]
Merge pull request #171 from TheBlueMatt/2018-09-ser-fixes
Correct MAX_BUF_SIZE in serialization
Matt Corallo [Wed, 12 Sep 2018 17:21:13 +0000 (13:21 -0400)]
Correct MAX_BUF_SIZE in serialization
I think this might have been my fault due to faulty review
feedback, but fuzzer caught trivial crash here where you try to
send a ping message larger than 16KB (but smaller than the
max-length 64KB) and you crash as message serialization is unwrap()
Matt Corallo [Wed, 12 Sep 2018 17:20:20 +0000 (13:20 -0400)]
Fix some double-indentation in util/ser
Matt Corallo [Wed, 12 Sep 2018 17:07:13 +0000 (13:07 -0400)]
Merge pull request #167 from TheBlueMatt/2018-09-dup-htlc
Allow duplicate-payment_hash HTLCs for HTLC forwards
Matt Corallo [Wed, 12 Sep 2018 15:22:06 +0000 (11:22 -0400)]
Merge pull request #170 from TheBlueMatt/2018-09-119-rebased
#119 squashed
Matt Corallo [Tue, 11 Sep 2018 19:04:41 +0000 (15:04 -0400)]
Add simple test for duplicate-payment_hash HTLC tracking
Matt Corallo [Sun, 9 Sep 2018 01:02:42 +0000 (21:02 -0400)]
Avoid cross-test statics in ChannelManager network tests
Matt Corallo [Tue, 11 Sep 2018 18:20:40 +0000 (14:20 -0400)]
Allow duplicate-payment_hash HTLCs for HTLC forwards
This is required by BOLT 2 to ensure that no attacker can simply
relay every public node a duplicate-payment_hash HTLC for each HTLC
it receives to deduce where an HTLC came from.
Note that this makes the claim logic much less incentive-compatible
as we will not claim all available HTLCs with the same payment_hash
even if we know the preimage! This is OK because, most likely, any
attackers trying to map the network will use small-value payments
and, hopefully, we will move away from constant hashes across an
entire payment at some point in the near future.
This further simplifies the payment transition state a bit, so
hopefully at least we got some readability out of all of this
Yuntai Kyong [Wed, 12 Sep 2018 10:00:10 +0000 (19:00 +0900)]
Migrate fuzz router/channel target to Readable
and be more specific about DecodeError::InvalidValue
Yuntai Kyong [Mon, 10 Sep 2018 07:13:26 +0000 (16:13 +0900)]
migrate peer_handler to use Writeable
added inplace byte_utils
Yuntai Kyong [Sat, 1 Sep 2018 07:21:39 +0000 (16:21 +0900)]
Add fuzz targets for Writeable messages/migrate fuzz test
Yuntai Kyong [Sat, 1 Sep 2018 07:20:26 +0000 (16:20 +0900)]
Implement Writeable for messages
Yuntai Kyong [Sat, 1 Sep 2018 07:18:56 +0000 (16:18 +0900)]
Implement Writer/Reader
with additional variants in DecodeError
Matt Corallo [Sun, 9 Sep 2018 16:53:57 +0000 (12:53 -0400)]
Split HTLC tracking into separate Inbound/Outbound types
This isnt as simplifying as I'd hoped, but still increases
compile-time checking, which is nice, and removes one of two
panic!()s.
Matt Corallo [Tue, 11 Sep 2018 19:01:35 +0000 (15:01 -0400)]
Merge pull request #165 from TheBlueMatt/2018-09-pre-disconnect-misc
Further minor misc changes from reconnect work
Matt Corallo [Sat, 8 Sep 2018 19:59:18 +0000 (15:59 -0400)]
panic on invalid calls to Channel::send_commitment instead of Err
Matt Corallo [Sat, 8 Sep 2018 19:53:05 +0000 (15:53 -0400)]
Do not allow sending HTLCs when the first hop is disconnected
Matt Corallo [Thu, 6 Sep 2018 23:12:32 +0000 (19:12 -0400)]
Sync get_update_fail_htlc, get_update_fulfill_htlc state err result
Both get_update_fail_htlc and get_update_fulfill_htlc should never
be called before any HTLC could have been accepted (ie
pre-ChannelFunded) nor should they ever be called
post-ShutdownComplete as the Channel object should be destroyed at
that point. Previously get_update_fulfill_htlc would panic, but
get_update_fail_htlc would return an Err. For now make them both
panic but we can revisit this if we want to have fewer panics in
the future.
Matt Corallo [Thu, 6 Sep 2018 21:23:09 +0000 (17:23 -0400)]
Add force_close_channel call command to full_stack_target
Matt Corallo [Sun, 9 Sep 2018 15:35:42 +0000 (11:35 -0400)]
Merge pull request #164 from TheBlueMatt/2018-09-channel-connection-cleanups
Minor cleanups
Matt Corallo [Sat, 8 Sep 2018 18:43:15 +0000 (14:43 -0400)]
Disallow duplicate Init messages from peers
Matt Corallo [Sat, 8 Sep 2018 17:57:20 +0000 (13:57 -0400)]
Fix PeerManager::get_peer_node_ids to filter according to docs
Matt Corallo [Sat, 8 Sep 2018 17:56:45 +0000 (13:56 -0400)]
Disconnect duplicate node_id connections after Noise handshake
Matt Corallo [Sat, 8 Sep 2018 14:32:39 +0000 (10:32 -0400)]
Update add_update_monitor docs to indicate registration req.
It wasn't entirely clear from the existing docs that it is the
responsibility of the implementor of ManyChannelMonitor to
register the relevant outpoint.
Matt Corallo [Thu, 6 Sep 2018 21:13:41 +0000 (17:13 -0400)]
Document Channel::get_funding_redeemscript precondition
Matt Corallo [Sat, 8 Sep 2018 14:29:29 +0000 (10:29 -0400)]
Merge pull request #159 from ariard/channel_monitor
Add registration of commitment tx's outputs from check_spend_remote_transaction
Antoine Riard [Fri, 7 Sep 2018 01:40:41 +0000 (01:40 +0000)]
Add registration of commitment tx's outputs from
check_spend_remote_transaction
Fixup more descriptive var names by Matt Corallo <git@bluematt.me>