Antoine Riard
7a483e597c
Typify payment_hash and payment_preimage
...
Fix variable name as payment_hash instead of txid for index
of remote_hash_commitment_number in ChannelMonitor reader
2018-12-14 17:00:50 -05:00
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
182affc03b
Test the various shutdown handling updates
2018-11-02 22:26:51 -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
Matt Corallo
497643a65b
Add basic sanity testing for channel monitor update failure handle
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
ba30061c87
Add is_permanent field to ChannelClosed message and add NodeFailure
...
message
2018-10-23 10:30:49 -04:00
Matt Corallo
1479b38759
Split create_chan_between_nodes into two steps
2018-10-15 21:52:41 -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
9373c5993f
Make message fields pub(crate) and hide a few internal fns
2018-09-19 23:07:02 -04:00
Matt Corallo
c91f72c131
Drop MsgEncodable in favor of default fns on Writeable
2018-09-16 14:33:50 -04:00
Matt Corallo
e8a66ef0ea
Make Writeable::write typed instead of Writeable
...
This lets us add some untyped default functions to the trait
2018-09-16 14:33:50 -04:00
Matt Corallo
8322c756cb
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.
2018-09-16 14:33:50 -04:00
Matt Corallo
dfbdcf9e01
Remove MsgDecodable and most MsgEncodable impls
2018-09-16 14:33:50 -04:00
Matt Corallo
712051a9fc
Add size_hint in ser and call size_hint in all message serializers
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
89475381bb
Implement Writeable for messages
2018-09-12 10:18:52 -04:00
Yuntai Kyong
1b8504a3f3
Implement Writer/Reader
...
with additional variants in DecodeError
2018-09-12 10:18:02 -04:00
SW van Heerden
f5e3a3ea81
change temp_channel from deserialise to copy
2018-09-06 10:49:36 -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
b9a793a0a0
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
2018-08-29 18:03:10 -04:00
Matt Corallo
9902fce585
Correct excess-data handling in ChannelUpdate
2018-08-29 18:01:15 -04:00
Matt Corallo
0881bf4b74
Correct excess-data handling in ChannelAnnouncement verif in Router
2018-08-29 17:59:25 -04:00
Matt Corallo
c1c7cc96ac
Remove unused test variable left orphaned by 5d923e2a63
2018-08-29 17:54:57 -04:00
Yuntai Kyong
9a28496388
Use Option<DataLossProtect> for ChannelReestablish
...
and fix test
2018-08-30 01:48:36 +09:00
Yuntai Kyong
5d923e2a63
Fix test for ChannelReestablish
2018-08-29 13:00:34 +09:00
Yuntai Kyong
7dc215edcb
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`
2018-08-29 12:55:11 +09:00
Matt Corallo
42e908883f
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
2018-08-27 11:47:11 -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
755b76bf83
Update error deserialization in compliance with BOLT #1
2018-08-25 17:21:09 -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
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
11e5975523
Update to rust-secp256k1 v0.11 and rust-bitcoin v0.14
2018-08-23 14:52:43 -04:00
Matt Corallo
c52825d5f1
Fix UpdateAddHTLC serialize vec capacity default
2018-08-02 22:37:28 -04:00
Savil Srivastava
ca6b44b8cc
replace use of bitcoin::utils::misc::hex_bytes with hex::decode
...
as requested in #84 discussion
https://github.com/rust-bitcoin/rust-lightning/pull/84#discussion_r205508845
2018-07-27 18:19:00 -07:00
Matt Corallo
66023b7886
Update NodeAnnouncement addr deserialization to check addr len.
...
This more aggressively checks the message contents are correct
before returning WrongLength so existing fuzz setup has an easier
time.
2018-07-25 15:57:36 -04:00