]>
git.bitcoin.ninja Git - rust-lightning/log
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
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