Schalk van Heerden
8d7b498974
Handle-initial_routing_sync-requests-from-peers-in-their-Init-messages
2018-11-09 13:53:13 +10:30
Matt Corallo
366e79615b
Fix pre-noise outbound peer disconnect panic found by fuzzer
...
If we make an outbound connection to a peer who we are already
connected to, and the outbound connection fails
pre-noise-completion, we will remove the original peer connection
from our node_id_to_descriptor map.
The fuzzer managed to find this by crashing in Channel's assertions
that we don't do a get_channel_reestablish() when the Channel isn't
already marked disconnected.
2018-11-02 10:50:32 -04:00
Matt Corallo
b030e84ad8
Add logging for (dis)connect in peer_handler/channelmanager
2018-11-02 10:45:29 -04:00
Matt Corallo
294ad32523
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.
2018-10-27 09:42:04 -04:00
Matt Corallo
249aa77550
Send channel_reestablish out-of-band to ensure ordered deliver
2018-10-27 09:42:04 -04:00
Matt Corallo
e2de49ddc4
Respond to channel_reestablish out-of-band for ordered delivery
2018-10-27 09:42:04 -04:00
Matt Corallo
4342114345
Send RAA/CS messages out-of-band to ensure ordered delivery
2018-10-27 09:42:04 -04:00
Matt Corallo
812f255d7c
Send shutdown/closing_signed msgs out-of-band for ordered delivery
2018-10-27 09:42:04 -04:00
Matt Corallo
e382a7b4b3
Send announcement_signatures msgs out-of-band for ordered delivery
2018-10-27 09:42:04 -04:00
Matt Corallo
c962a27156
Send funding_signed messages out-of-band to ensure ordered delivery
2018-10-27 09:42:04 -04:00
Matt Corallo
608d517f92
Send AcceptChannel responses out-of-band to ensure ordered delivery
2018-10-27 09:42:04 -04:00
Matt Corallo
e397cb9960
Split Event, move MessageSendEvent push() inside channel_state lock
2018-10-27 09:42:04 -04:00
Antoine Riard
8c235d9e28
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
2018-10-27 09:34:28 -04:00
Matt Corallo
b02670a920
Add an Event for sending revoke_and_ack messages out-of-band
2018-10-23 16:03:30 -04:00
Matt Corallo
e86c84b2be
Add message ordering return value to handling channel_reestablish
2018-10-23 15:26:11 -04:00
Yuntai Kyong
920d1458c4
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).
2018-10-23 14:01:21 -04:00
Yuntai Kyong
1dbc6fb0ef
Implement update_fee handling
2018-09-29 19:58:08 -04:00
Matt Corallo
6e1318b0e2
Make docs look nicer by adding explicit spacing
2018-09-20 12:58:10 -04:00
Matt Corallo
c43e535bc0
Simplify DecodeError enum by removing some useless distinctions
2018-09-20 10:46:12 -04:00
Matt Corallo
3aeec96470
Add module and all-pub-things docs and deny missing docs
2018-09-19 23:07:02 -04:00
Matt Corallo
fe90e13f84
Log peer features in peer_handler (and check for all req bits)
2018-09-19 22:47:14 -04:00
Matt Corallo
8a7dd2f9b8
Fix peer_handler message serialization
...
Fixes a bug introduced in 3e89106163
where messages were being encoded with their size instead of their
type.
Also utilizes the new size_hinting in peer_handler
2018-09-16 14:33:50 -04:00
Matt Corallo
1f1f82569a
Simplify serialization a bit by removing the useless newtypes
2018-09-16 14:33:50 -04:00
Matt Corallo
12a50627a3
Add channel_reestablish + peer_connected events to channel handler
2018-09-15 10:53:16 -04:00
Yuntai Kyong
28a612f9f3
Migrate fuzz router/channel target to Readable
...
and be more specific about DecodeError::InvalidValue
2018-09-12 10:19:36 -04:00
Yuntai Kyong
3e89106163
migrate peer_handler to use Writeable
...
added inplace byte_utils
2018-09-12 10:19:36 -04:00
Yuntai Kyong
1b8504a3f3
Implement Writer/Reader
...
with additional variants in DecodeError
2018-09-12 10:18:02 -04:00
Matt Corallo
e9fed4973b
Disallow duplicate Init messages from peers
2018-09-08 14:43:42 -04:00
Matt Corallo
bf46a5f721
Fix PeerManager::get_peer_node_ids to filter according to docs
2018-09-08 13:59:39 -04:00
Matt Corallo
6dab6b185d
Disconnect duplicate node_id connections after Noise handshake
2018-09-08 13:59:39 -04:00
Matt Corallo
f78d7299d6
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.
2018-08-29 18:07:56 -04:00
Matt Corallo
faff5c2da3
Fail parsing node/channel announcements with unknown even features
...
This is required for BOLT 7 compliance
2018-08-29 18:06:06 -04:00
Matt Corallo
10bc7aa3df
Ignore invalid lnd msgs by matching DecodeError instead of a macro
2018-08-29 17:57:40 -04:00
Matt Corallo
7d6aab7f22
Add update_fail_malformed_htlcs vec to CommitmentUpdate
...
Not sure why this wasn't there to begin with
2018-08-26 16:39:21 -04:00
Matt Corallo
a3247abb4e
Handle Error messages by closing channels as required by BOLT 1
2018-08-25 17:20:58 -04:00
Matt Corallo
8f36386bee
Ensure we never send messages prior to Init for BOLT 1 compliance
2018-08-25 14:49:18 -04:00
Matt Corallo
ab00e4ccff
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.
2018-08-23 16:11:20 -04:00
Matt Corallo
7345c0b3ce
Add trace logs for Errs when handling peer messages
2018-08-23 16:11:12 -04:00
Matt Corallo
11e5975523
Update to rust-secp256k1 v0.11 and rust-bitcoin v0.14
2018-08-23 14:52:43 -04:00
Matt Corallo
42086c94a0
Remove implicit Record import requirement in logging macros
2018-08-20 13:33:09 -04:00
Matt Corallo
4291cb99d4
Add some trace logging in peer_handler
2018-08-16 23:11:22 -04:00
Antoine Riard
0029f04fce
Logging interface
...
Implement error, warn, info, debug and trace macros, internally calling
an instance of Logger, and passing it to every main structures
Build-time or client-side filtering.
Issue #54
2018-08-17 00:01:15 +00:00
Antoine Riard
e752611247
Implement HandleError event with ErrorAction field
2018-08-12 00:36:48 +00:00
Matt Corallo
bdd77ae1fa
Do not pass DisconnectPeer events upstream to the client
2018-07-24 22:33:12 -04:00
Matt Corallo
af5c6e8186
PendingHTLCsForwardable really should just be upstreamed.
...
This is just a comment/docs/function rename change
2018-07-24 22:33:10 -04:00
Antoine Riard
20fa9d331d
Add DisconnectPeer events
...
Add test for DisconnectPeer event
Update DisconnectPeer with optional ErrorMessage
Manage error for funding_transaction_generated
Add disconnect_socket to SocketDescriptor trait
2018-07-23 14:31:44 -04:00
Antoine Riard
1c12e83941
Implement ErrorMessage msg and ErrorAction::SendErrorMessage + fuzz test
2018-07-23 14:31:44 -04:00
Matt Corallo
7b4f382e26
Move shutdown sending to an event
2018-07-22 23:22:15 -04:00
Matt Corallo
951c1d4145
Clarify get_peer_node_ids docs a bit
2018-07-22 13:11:58 -04:00
Yuntai Kyong
9679f708dc
add two methods for the issue #56
...
peer_handler::get_peer_node_ids() get connected peers' node_id
router::get_addresses() to get network addresses by node_id
2018-07-22 15:19:20 +09:00