lnd.xprv/lnwire
Valentine Wallace b49637fbe9
lnwire: add HtlcMaximumMsat field to ChannelUpdate
In this commit, we add a field to the ChannelUpdate
denoting the maximum HTLC we support sending over
this channel, a field which was recently added to the
spec.

This field serves multiple purposes. In the short
term, it enables nodes to signal the largest HTLC
they're willing to carry, allows light clients who
don't verify channel existence to have some guidance
when routing HTLCs, and finally may allow nodes to
preserve a portion of bandwidth at all times.

In the long term, this field can be used by
implementations of AMP to guide payment splitting,
as it becomes apparent to a node the largest possible
HTLC one can route over a particular channel.

This PR was made possible by the merge of #1825,
which enables older nodes to properly retain and
verify signatures on updates that include new fields
(like this new max HTLC field) that they haven't yet
been updated to recognize.

In addition, the new ChannelUpdate fields are added to
the lnwire fuzzing tests.

Co-authored-by: Johan T. Halseth <johanth@gmail.com>
2019-01-22 08:42:26 +01:00
..
accept_channel.go lnwire: export ReadElements and WriteElements 2018-12-24 19:58:06 -06:00
announcement_signatures.go lnwire: export ReadElements and WriteElements 2018-12-24 19:58:06 -06:00
channel_announcement.go lnwire: export ReadElements and WriteElements 2018-12-24 19:58:06 -06:00
channel_id_test.go lnwire: fix minor typo in tests 2017-09-18 19:46:16 +02:00
channel_id.go multi: switch over import paths from roasbeef/* to btcsuite/* 2018-07-13 17:05:39 -07:00
channel_reestablish.go lnwire: export ReadElements and WriteElements 2018-12-24 19:58:06 -06:00
channel_update.go lnwire: add HtlcMaximumMsat field to ChannelUpdate 2019-01-22 08:42:26 +01:00
closing_signed.go lnwire: export ReadElements and WriteElements 2018-12-24 19:58:06 -06:00
commit_sig.go lnwire: export ReadElements and WriteElements 2018-12-24 19:58:06 -06:00
error.go lnwire: export ReadElements and WriteElements 2018-12-24 19:58:06 -06:00
features_test.go multi: comprehensive typo fixes across all packages 2018-02-06 19:11:11 -08:00
features.go lnwire/features: add required gq to local features 2018-09-05 18:51:04 -07:00
funding_created.go lnwire: export ReadElements and WriteElements 2018-12-24 19:58:06 -06:00
funding_locked.go lnwire: export ReadElements and WriteElements 2018-12-24 19:58:06 -06:00
funding_signed.go lnwire: export ReadElements and WriteElements 2018-12-24 19:58:06 -06:00
gossip_timestamp_range.go lnwire: export ReadElements and WriteElements 2018-12-24 19:58:06 -06:00
init_message.go lnwire: export ReadElements and WriteElements 2018-12-24 19:58:06 -06:00
lnwire_test.go lnwire: add HtlcMaximumMsat field to ChannelUpdate 2019-01-22 08:42:26 +01:00
lnwire.go multi: partition lnwire.ChanUpdateFlag into ChannelFlags and MessageFlags 2019-01-22 08:42:26 +01:00
message.go lnwire: update tests and message code definitions for new gossip query msgs 2018-05-31 16:30:52 -07:00
msat_test.go multi: switch over import paths from roasbeef/* to btcsuite/* 2018-07-13 17:05:39 -07:00
msat.go multi: switch over import paths from roasbeef/* to btcsuite/* 2018-07-13 17:05:39 -07:00
netaddress_test.go multi: switch over import paths from roasbeef/* to btcsuite/* 2018-07-13 17:05:39 -07:00
netaddress.go multi: switch over import paths from roasbeef/* to btcsuite/* 2018-07-13 17:05:39 -07:00
node_announcement_test.go lnwire: add test cases for node alias validation 2019-01-07 12:53:40 -08:00
node_announcement.go lnwire: when reading node aliases, properly check validity 2019-01-07 12:53:10 -08:00
onion_error_test.go multi: partition lnwire.ChanUpdateFlag into ChannelFlags and MessageFlags 2019-01-22 08:42:26 +01:00
onion_error.go lnwire: ensure we precisely encode the length for onion errors w/ chan updates 2019-01-11 14:21:48 -08:00
open_channel.go lnwire: export ReadElements and WriteElements 2018-12-24 19:58:06 -06:00
ping.go lnwire: export ReadElements and WriteElements 2018-12-24 19:58:06 -06:00
pong.go lnwire: export ReadElements and WriteElements 2018-12-24 19:58:06 -06:00
query_channel_range.go lnwire: export ReadElements and WriteElements 2018-12-24 19:58:06 -06:00
query_short_chan_ids.go lnwire: export ReadElements and WriteElements 2018-12-24 19:58:06 -06:00
README.md multi: fix formatting issues in packge README's 2017-03-27 16:25:25 -07:00
reply_channel_range.go lnwire: export ReadElements and WriteElements 2018-12-24 19:58:06 -06:00
reply_short_chan_ids_end.go lnwire: export ReadElements and WriteElements 2018-12-24 19:58:06 -06:00
revoke_and_ack.go lnwire: export ReadElements and WriteElements 2018-12-24 19:58:06 -06:00
short_channel_id_test.go multi: run all test instances in parallel 2017-06-17 01:00:07 +02:00
short_channel_id.go lnwire: remove pointer receiver from ToUint64 for ShortChannelID 2018-04-06 14:52:02 -07:00
shutdown.go lnwire: export ReadElements and WriteElements 2018-12-24 19:58:06 -06:00
signature_test.go multi: switch over import paths from roasbeef/* to btcsuite/* 2018-07-13 17:05:39 -07:00
signature.go multi: switch over import paths from roasbeef/* to btcsuite/* 2018-07-13 17:05:39 -07:00
update_add_htlc.go lnwire: export ReadElements and WriteElements 2018-12-24 19:58:06 -06:00
update_fail_htlc.go lnwire: export ReadElements and WriteElements 2018-12-24 19:58:06 -06:00
update_fail_malformed_htlc.go lnwire: export ReadElements and WriteElements 2018-12-24 19:58:06 -06:00
update_fee.go lnwire: export ReadElements and WriteElements 2018-12-24 19:58:06 -06:00
update_fulfill_htlc.go lnwire: export ReadElements and WriteElements 2018-12-24 19:58:06 -06:00

lnwire

Build Status MIT licensed GoDoc

The lnwire package implements the Lightning Network wire protocol.

This package has intentionally been designed so it can be used as a standalone package for any projects needing to interface with lightning peers at the wire protocol level.

Installation and Updating

$ go get -u github.com/lightningnetwork/lnd/lnwire