]>
git.bitcoin.ninja Git - rust-lightning/log
Matt Corallo [Wed, 5 Sep 2018 00:00:47 +0000 (20:00 -0400)]
Simplify secp_call! macro in ChannelManager
Matt Corallo [Wed, 5 Sep 2018 00:10:32 +0000 (20:10 -0400)]
Ensure Channel::new_from_req always returns an ErrorMessage on Err
Matt Corallo [Tue, 4 Sep 2018 23:28:06 +0000 (19:28 -0400)]
Dont return an Err from Channel::get_accept_channel that can't fail
Antoine Riard [Wed, 5 Sep 2018 00:17:45 +0000 (20:17 -0400)]
Refactor handle_open_channel to wrapper error handling function
Original version is from Antoine Riard <ariard@student.42.fr>,
the error type and some return type fixes are from
Matt Corallo <git@bluematt.me>
Matt Corallo [Wed, 5 Sep 2018 00:16:06 +0000 (20:16 -0400)]
Add ChannelManager-specific HandleError type and macro to use it
Original macro is from Antoine Riard <ariard@student.42.fr>,
the error type and additional mappings are from
Matt Corallo <git@bluematt.me>
Matt Corallo [Mon, 3 Sep 2018 22:10:51 +0000 (18:10 -0400)]
Merge pull request #145 from TheBlueMatt/2018-09-134-rebased
#134 rebased
Matt Corallo [Mon, 3 Sep 2018 21:44:57 +0000 (17:44 -0400)]
Merge pull request #143 from TheBlueMatt/2018-08-announcement_sigs_erroraction
Ensure handle_announcement_signatures always has a ErrorAction
Matt Corallo [Mon, 3 Sep 2018 21:38:38 +0000 (17:38 -0400)]
Provide better get_chain_utxo return coverage in router_target
Matt Corallo [Mon, 3 Sep 2018 21:38:25 +0000 (17:38 -0400)]
Ensure we aren't duplicatively reading things in router_target
Antoine Riard [Fri, 31 Aug 2018 17:06:30 +0000 (17:06 +0000)]
Add DummyChainWatcher in route_target
Antoine Riard [Thu, 30 Aug 2018 01:42:11 +0000 (01:42 +0000)]
Add test_invalid_channel_announcemnt + test utilities
Fix typo
Matt Corallo [Thu, 30 Aug 2018 19:00:56 +0000 (15:00 -0400)]
Check script_pubkey against expected channel_announcement
Antoine Riard [Thu, 30 Aug 2018 01:40:18 +0000 (01:40 +0000)]
Implement get_chain_utxo and ChainError in
ChainWatchInterface to Router check on channel_announcement
Needed for BOLT 7
Antoine Riard [Thu, 30 Aug 2018 01:37:37 +0000 (01:37 +0000)]
Add ChainWatchInterface in Router
Matt Corallo [Mon, 3 Sep 2018 20:51:32 +0000 (16:51 -0400)]
Merge pull request #144 from yuntai/onion_call_back_simple
Remove code fragments with no effect
Yuntai Kyong [Sun, 2 Sep 2018 12:45:44 +0000 (21:45 +0900)]
Remove code fragments with no effect
Matt Corallo [Fri, 31 Aug 2018 20:46:55 +0000 (16:46 -0400)]
Check for misuse of funding_transaction_generated and panic
Matt Corallo [Thu, 30 Aug 2018 20:49:51 +0000 (16:49 -0400)]
Ensure handle_announcement_signatures always has a ErrorAction
Matt Corallo [Thu, 30 Aug 2018 20:48:53 +0000 (16:48 -0400)]
Add ErrorAction in secp Error -> HandleError conv in ChannelManager
Matt Corallo [Thu, 30 Aug 2018 20:02:38 +0000 (16:02 -0400)]
Merge pull request #139 from TheBlueMatt/2018-08-fuzz-fixes-7
Fix crash that #127 intended to fix but did not completely fix
Matt Corallo [Thu, 30 Aug 2018 19:10:23 +0000 (15:10 -0400)]
Remove unused feeest field in ChannelManager tests
Matt Corallo [Thu, 30 Aug 2018 16:35:52 +0000 (12:35 -0400)]
Fix crash that #127 intended to fix but did not completely fix
Introduced in #124, and found by fuzzer
Matt Corallo [Wed, 29 Aug 2018 22:43:19 +0000 (18:43 -0400)]
Merge pull request #136 from TheBlueMatt/2018-08-excess-signed-data-bolt-7
Correctly verify and forward excess data post-signature in signed announcement messages
Matt Corallo [Wed, 29 Aug 2018 21:53:11 +0000 (17:53 -0400)]
Also fwd channel_update and node_announcement immediately
Not really sure why the API was different for channel_announcement,
but this brings everything in sync.
Matt Corallo [Wed, 29 Aug 2018 21:52:26 +0000 (17:52 -0400)]
Fail parsing node/channel announcements with unknown even features
This is required for BOLT 7 compliance
Matt Corallo [Wed, 29 Aug 2018 19:56:48 +0000 (15:56 -0400)]
Update msg_targets with new, must-roundtrip, and hole messages
Matt Corallo [Wed, 29 Aug 2018 21:50:34 +0000 (17:50 -0400)]
Correct excess-data handling in NodeAnnouncement
Breaks parsing of padding within addresses, but nothing currently
generates such messages, and I'm proposing we remove it in the spec
Matt Corallo [Wed, 29 Aug 2018 20:01:07 +0000 (16:01 -0400)]
Correct excess-data handling in ChannelUpdate
Matt Corallo [Wed, 29 Aug 2018 18:31:50 +0000 (14:31 -0400)]
Correct excess-data handling in ChannelAnnouncement verif in Router
Matt Corallo [Wed, 29 Aug 2018 19:36:58 +0000 (15:36 -0400)]
Ignore invalid lnd msgs by matching DecodeError instead of a macro
Matt Corallo [Wed, 29 Aug 2018 18:30:32 +0000 (14:30 -0400)]
Remove unused test variable left orphaned by
5d923e2a634351e2852924
Matt Corallo [Wed, 29 Aug 2018 17:49:52 +0000 (13:49 -0400)]
Merge pull request #133 from TheBlueMatt/2018-08-announcement_sigs
Clean up/clarify channel announcement_signatures handling
Matt Corallo [Wed, 29 Aug 2018 17:49:40 +0000 (13:49 -0400)]
Merge pull request #135 from yuntai/201808-channelreestablish
Make my_current_per_commitment_point in ChannelReestablish optional
Yuntai Kyong [Wed, 29 Aug 2018 16:48:36 +0000 (01:48 +0900)]
Use Option<DataLossProtect> for ChannelReestablish
and fix test
Yuntai Kyong [Wed, 29 Aug 2018 04:00:34 +0000 (13:00 +0900)]
Fix test for ChannelReestablish
Yuntai Kyong [Wed, 29 Aug 2018 03:55:11 +0000 (12:55 +0900)]
Make my_current_per_commitment_point Option
Per Bolt #2, both your_last_per_commitment_secret &
my_current_per_commitment_point are optional depending on
`data_loss_protect`
Matt Corallo [Tue, 28 Aug 2018 16:11:45 +0000 (12:11 -0400)]
Clean up/clarify channel announcement_signatures handling
Matt Corallo [Mon, 27 Aug 2018 17:11:37 +0000 (13:11 -0400)]
Make note about complying with BOLT 7 announcement_signatures
Matt Corallo [Mon, 27 Aug 2018 16:44:13 +0000 (12:44 -0400)]
Merge pull request #132 from TheBlueMatt/2018-08-bolt-4-spec-return-fail
Return a malformed HTLC message when ephemeral pubkey is garbage
Matt Corallo [Mon, 27 Aug 2018 15:46:41 +0000 (11:46 -0400)]
Remove incorrect auto-generated header from error_message_target
Matt Corallo [Sun, 26 Aug 2018 20:35:26 +0000 (16:35 -0400)]
Return a malformed HTLC message when ephemeral pubkey is garbage
This resolves a spec-compliance bug with BOLT 4 where we simply
failed to deserialize the message and thus could never return an
HTLC failure message. However, note that BOLT 4 incorrectly hints
that a non-malformed message should be used ("...MUST report a
route failure to the origin node") which we cannot do as we cannot
derive a SharedSecret to encrypt a regular update_fail_htlc message
Matt Corallo [Sun, 26 Aug 2018 20:34:47 +0000 (16:34 -0400)]
Update PendingHTLCStatus to hold malformed HTLC error messages
Matt Corallo [Sun, 26 Aug 2018 20:30:01 +0000 (16:30 -0400)]
Add update_fail_malformed_htlcs vec to CommitmentUpdate
Not sure why this wasn't there to begin with
Matt Corallo [Sun, 26 Aug 2018 19:37:05 +0000 (15:37 -0400)]
Merge pull request #131 from TheBlueMatt/2018-08-bolt-1-compliance
update Error/Init handling to be BOLT 1 compliant
Matt Corallo [Sun, 26 Aug 2018 19:36:58 +0000 (15:36 -0400)]
Merge pull request #130 from TheBlueMatt/2018-08-fuzz-fixes-6
Fix crash introduced in #124
Matt Corallo [Sat, 25 Aug 2018 19:03:59 +0000 (15:03 -0400)]
Update error deserialization in compliance with BOLT #1
Matt Corallo [Sat, 25 Aug 2018 18:48:18 +0000 (14:48 -0400)]
Handle Error messages by closing channels as required by BOLT 1
Matt Corallo [Sat, 25 Aug 2018 18:32:02 +0000 (14:32 -0400)]
Ensure we never send messages prior to Init for BOLT 1 compliance
Matt Corallo [Fri, 24 Aug 2018 20:48:24 +0000 (16:48 -0400)]
Remove unused node_id tracking in ChannelManager tests
Matt Corallo [Fri, 24 Aug 2018 15:52:55 +0000 (11:52 -0400)]
Fix crash introduced in #124
I'm rapidly starting to regret holding failed HTLCs in Channel,
given we allow them to violate the no-duplicate-hashes
precondition.
Found by fuzzer
Matt Corallo [Thu, 23 Aug 2018 22:19:40 +0000 (18:19 -0400)]
Merge pull request #127 from TheBlueMatt/2018-08-fuzz-fixes-5
Fix several panics introduced by #125 (#114) and #124
Matt Corallo [Thu, 23 Aug 2018 21:23:13 +0000 (17:23 -0400)]
Fix integer overflow panic in new HTLC-forwarding fee checks
Found by fuzzer
Matt Corallo [Thu, 23 Aug 2018 21:02:29 +0000 (17:02 -0400)]
Fix duplicate payment_hashes one immediately failed, one fail crash
Found by fuzzer
Matt Corallo [Thu, 23 Aug 2018 20:44:34 +0000 (16:44 -0400)]
Merge pull request #124 from TheBlueMatt/2018-08-htlc-fail-spec
Do not return UpdateFailHTLC updates until the HTLC is committed
Matt Corallo [Thu, 23 Aug 2018 20:41:53 +0000 (16:41 -0400)]
Merge pull request #126 from TheBlueMatt/2018-08-restore-full-fuzz
Restore full_stack_target fuzzer
Matt Corallo [Wed, 22 Aug 2018 16:09:11 +0000 (12:09 -0400)]
Merge HTLC-update events, remove FailHTLC ErrorAction
UpdateFailHTLC isn't really an error anymore now that its handled
async after channel commitment (as required by BOLT 2), and since
its unused this is free. To resolve the TODO which intended to use
it for HTLC failure when trying to route forwards, we instead opt
to merge all the HTLC update events into one UpdateHTLCs event
which just contains a CommitmentUpdate object.
Matt Corallo [Thu, 23 Aug 2018 19:58:59 +0000 (15:58 -0400)]
Restore push_msat in full_stack_target
Matt Corallo [Tue, 21 Aug 2018 20:57:41 +0000 (16:57 -0400)]
Do not return UpdateFailHTLC updates until the HTLC is committed
This fixes a violation of BOLT 2 and will let us consolidate some
HTLC update handling. Good bit of code movement, but is mostly
refactor to store HTLC failure status in pending_htlcs in Channel.
Matt Corallo [Thu, 23 Aug 2018 18:33:44 +0000 (14:33 -0400)]
Restore full_stack_target fuzzer
Matt Corallo [Thu, 23 Aug 2018 20:05:57 +0000 (16:05 -0400)]
Add trace logs for Errs when handling peer messages
Matt Corallo [Thu, 23 Aug 2018 19:29:21 +0000 (15:29 -0400)]
Merge pull request #123 from TheBlueMatt/2018-08-secp-0.10
Update to rust-secp256k1 v0.11 and rust-bitcoin v0.14
Matt Corallo [Thu, 23 Aug 2018 19:29:15 +0000 (15:29 -0400)]
Merge pull request #125 from TheBlueMatt/2018-08-114-rebase
Rebase of #114
Matt Corallo [Mon, 20 Aug 2018 21:13:07 +0000 (17:13 -0400)]
Update to rust-secp256k1 v0.11 and rust-bitcoin v0.14
Matt Corallo [Thu, 23 Aug 2018 18:17:02 +0000 (14:17 -0400)]
Clean up excess \ns in route debug, use all debug encoders
Matt Corallo [Thu, 23 Aug 2018 17:54:34 +0000 (13:54 -0400)]
Return channel_updates when failing a HTLC for fee/CLTV reasons
Antoine Riard [Thu, 23 Aug 2018 17:23:00 +0000 (13:23 -0400)]
Add Display trait on network structs for routing bug track
Antoine Riard [Thu, 23 Aug 2018 17:22:18 +0000 (13:22 -0400)]
Check amt_to_forward and outgoing_cltv_value in add_update_htlc
Matt Corallo [Mon, 20 Aug 2018 18:43:33 +0000 (14:43 -0400)]
Merge pull request #111 from TheBlueMatt/2018-08-full-stack-target-upstream-1
Expand full_stack_target somewhat
Matt Corallo [Tue, 14 Aug 2018 13:55:38 +0000 (09:55 -0400)]
Add a full_stack_target sample test to avoid unintentional breakage
Matt Corallo [Fri, 17 Aug 2018 21:36:22 +0000 (17:36 -0400)]
Disable push_msat in full_stack_target temporarily
Matt Corallo [Thu, 16 Aug 2018 18:20:34 +0000 (14:20 -0400)]
Upgrade AFL to 0.4 with persistent mode fuzzing
Matt Corallo [Fri, 17 Aug 2018 21:38:43 +0000 (17:38 -0400)]
Expand full_stack_target somewhat
Matt Corallo [Tue, 14 Aug 2018 14:43:34 +0000 (10:43 -0400)]
Add simple utility to ChannelManager to force close all channels
Matt Corallo [Mon, 20 Aug 2018 14:33:30 +0000 (10:33 -0400)]
Only enforce no-dup-payment_hash precondition on non-removed HTLCs
This fixes a panic found by fuzzer.
Matt Corallo [Mon, 20 Aug 2018 17:57:35 +0000 (13:57 -0400)]
Merge pull request #122 from TheBlueMatt/2018-08-doc-usability-fixes
Simple log usability fix, add some missing docs
Matt Corallo [Mon, 20 Aug 2018 16:56:17 +0000 (12:56 -0400)]
Remove implicit Record import requirement in logging macros
Matt Corallo [Fri, 17 Aug 2018 18:29:16 +0000 (14:29 -0400)]
Add APIError docs
Matt Corallo [Fri, 17 Aug 2018 18:00:50 +0000 (14:00 -0400)]
Merge pull request #118 from TheBlueMatt/2018-08-103-rebased
Rebase of #103
Matt Corallo [Fri, 17 Aug 2018 17:25:57 +0000 (13:25 -0400)]
Merge pull request #117 from TheBlueMatt/2018-08-no-claim-fuzz-bug
Don't HTLC claim with no-possible-preimage in full_stack_target
Matt Corallo [Fri, 17 Aug 2018 17:22:44 +0000 (13:22 -0400)]
Ignore unknown channel flags as required in BOLT 2
Yuntai Kyong [Fri, 17 Aug 2018 17:12:58 +0000 (13:12 -0400)]
add 1% chnnel reserve while keeping min value
if 1000 is always used it will almost always fail test reserve < dust_limit check
Yuntai Kyong [Fri, 17 Aug 2018 03:57:51 +0000 (12:57 +0900)]
Add checking locally derived reserve and dust limit
Yuntai Kyong [Tue, 14 Aug 2018 16:18:10 +0000 (01:18 +0900)]
document optional channel constraints per spec
Yuntai Kyong [Tue, 14 Aug 2018 16:12:40 +0000 (01:12 +0900)]
Add various checking when handling open and accept
Add `derive_minimum_depth()` and `derive_maximum_minimum_depth()` and hide
CONF_TARGET constant behind these functions.
Replace `DisconnectPeer` error with `HandleError` with `ErrorAction::SendErrorMessage`
Yuntai Kyong [Tue, 14 Aug 2018 15:59:42 +0000 (00:59 +0900)]
Add push_msat to new outbound API
Also add APIMisuseError to be thrown to the API client
Yuntai Kyong [Fri, 17 Aug 2018 03:46:17 +0000 (12:46 +0900)]
Add APIError enum
`APIMisuse` when paramters passed from the client is invalid
`FeeRateTooHigh` when a channel cannot be opened due to high feerate
Matt Corallo [Fri, 17 Aug 2018 15:53:47 +0000 (11:53 -0400)]
Don't HTLC claim with no-possible-preimage in full_stack_target
Matt Corallo [Fri, 17 Aug 2018 03:35:09 +0000 (23:35 -0400)]
Merge pull request #116 from TheBlueMatt/2018-08-peer_handler-trace
Add some trace logging in peer_handler
Matt Corallo [Fri, 17 Aug 2018 02:38:49 +0000 (22:38 -0400)]
Add some trace logging in peer_handler
Matt Corallo [Fri, 17 Aug 2018 02:30:18 +0000 (22:30 -0400)]
Default test logger to Trace to make error debugging easier
Matt Corallo [Fri, 17 Aug 2018 02:30:03 +0000 (22:30 -0400)]
Add some useful delayed-formatting formatters to macro_logger
Matt Corallo [Fri, 17 Aug 2018 01:25:56 +0000 (21:25 -0400)]
Remove some dead Logger code
Matt Corallo [Fri, 17 Aug 2018 03:04:12 +0000 (23:04 -0400)]
Merge pull request #115 from TheBlueMatt/2018-08-channel-fuzz-fixes
Fixes from channelmanager fuzzing work
Matt Corallo [Thu, 16 Aug 2018 14:31:10 +0000 (10:31 -0400)]
Fix PaymentReceived/sha256 handling in full_stack_target
Sha256 in fuzztarget was updated some time ago to use XOR instead
of the first byte of a real SHA256 run and somehow received and
sent payments got crossed in full_stack_target.
Matt Corallo [Wed, 15 Aug 2018 19:43:29 +0000 (15:43 -0400)]
Handle duplicate funding transaction gracefully.
This can otherwise cause strange behavior, including a panic on
force_close_all_channels found by full_stack_target fuzzing.
Matt Corallo [Thu, 16 Aug 2018 15:27:16 +0000 (11:27 -0400)]
Fix handle_funding_created bug/TODO
The fuzzer was able to tickle this
Matt Corallo [Tue, 14 Aug 2018 20:29:00 +0000 (16:29 -0400)]
Fix bug in early-HTLC-fulfill handling
Caught by fuzzer. See new comments for more
Matt Corallo [Fri, 17 Aug 2018 02:07:47 +0000 (22:07 -0400)]
Merge pull request #110 from TheBlueMatt/2018-08-router-crashes-2
Fix several fuzzer-found bugs
Matt Corallo [Thu, 16 Aug 2018 14:17:33 +0000 (10:17 -0400)]
[Router] Remove channels from nodes when the channel is failed
Found by fuzzer
Matt Corallo [Wed, 15 Aug 2018 21:13:34 +0000 (17:13 -0400)]
Handle only-path-overflows-fee in get_route and avoid PubKey::new()
Found by fuzzer