Single-option large channel proposal#596
Conversation
Rename `globalfeatures` to `channelfeatures` and `localfeatures` to `nodefeatures`.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
You can still gossip. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
If we really want a new gossip message which old nodes will ignore, we'll use a new type, so having it discard unknown features is overzealous. Each feature can itself specify how it's advertized here: an key-exchange-instead-of-hash-preimage feature would need to advertize as even (you need to understand it to use it), for example, but a wumbo feature would advertize as odd. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This lets you find out what nodes support what node features, rather than connecting and probing. Like channel_announcement, we won't use feature bits for incompatible changes; we'll use a separate type. So don't discard messages with unknown ones. Similarly, you can try to connect to a node with unknown bits; you might fail, but that's OK. Either it was an unknown node feature, and you'll find out from their init msg, or it's a channel feature and you won't be able to open a channel. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
|
@rustyrussell right! I took the wrong bits from the temporary assignment in #571, this was meant to use the nodefeature bits as in what previously was called |
|
After re-reading through #571, I agree with @rustyrussell: this is a In #605 there are both |
|
@t-bast indeed this PR does not propose to use |
|
|
||
| | Bits | Name |Description | Link | | ||
| |------|------------------|------------------------------------------------|---------------------------------------------------------------------| | ||
| | 14/15 | `option_support_large_channel` | Can create large channels | [Rationale](#Rationale) | |
There was a problem hiding this comment.
I think that link is broken, since Rationale is in a separate BOLT?
8c12568 to
a41e33e
Compare
|
Summary of the latest changes:
|
We simply specify, in each case, where they will appear ("Context").
We replace the `globalfeatures` field in init with a zero.
Note also: we REQUIRE minimal `features` field in
channel_announcement, since otherwise both sides of channel will not
agree and not be able to create their signatures!
Consider these theoretical future features:
`opt_dlog_chan`: a new channel type which uses a new discrete log HTLC
type, but can't support traditional HTLC:
* `init`: presents as odd (optional) or even (if traditional channels
not supported)
* `node_announcement`: the same as above, so you can seek suitable peers.
* `channel_announcement`: presents as even (compulsory), since users need
to use the new HTLCs.
`opt_wumbochan`: a node which allows channels > 2^24 satoshis:
* `init`: presents as odd (optional), or maybe even (if you only want
giant channels)
* `node_announcement`: the same as above, so you can seek suitable peers.
* `channel_announcement`: not present, since size of channel indicates
capacity.
`opt_wumbohtlc`: a channel which allows HTLCs > 2^32 millisatoshis:
* `init`: presents as odd (optional), or even (compulsory)
* `node_announcement`: the same as above, so you can seek suitable peers.
* `channel_announcement`: odd (optional) since you can use the channel
without understanding what this option means.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Restore gflen field, as (unreleased) implementations are using it. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
The feature fields refer to the properties of the channel/node, not the message itself, so we can still propagate them (and should, to avoid splitting the network). If we want to make an incompatible announcement message, we'll use a different type, or insert an even TLV type. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
…hannel_support # Conflicts: # 01-messaging.md # 02-peer-protocol.md # 04-onion-routing.md # 07-routing-gossip.md # 09-features.md
|
Summary of the changes up to 8af0535:
|
# Conflicts: # 01-messaging.md # 02-peer-protocol.md # 09-features.md
d304484 to
6f08b6e
Compare
# Conflicts: # 09-features.md
Add missing column Co-Authored-By: Bastien Teinturier <31281497+t-bast@users.noreply.github.com>
|
Merging as agreed during the meeting: http://www.erisian.com.au/meetbot/lightning-dev/2020/lightning-dev.2020-02-17-19.06.html A follow-up PR with an advisory for confirmation scaling depending on funding amount will be submitted shortly. |
This PR allows peers to lift the channel size limit with a single option
option_support_large_channel, it subsumes the previous PR #590. The option means that the offering peer supports opening large channels, a peer willing to send a large htlc should refer tochannel_update.htlc_maximum_msatto check if a certain channel can route that.