lncfg+lnd: gate usage of tweakless commitments based on local/global feature bits
In this commit, we add a new legacy protocol command line flag: `committweak`. When set, this forces the node to NOT signal usage of the new commitment format. This allows us to test that we're able to properly establish channels with legacy nodes. Within the server, we'll now gate our signalling of this new feature based on the legacy protocol config. Finally, when accepting/initiating a new channel funding, we'll now check both the local and remote global feature bits, only using the new commitment format if both signal the global feature bit.
This commit is contained in:
4 files changed
+59
-7
No files matched your search
@@ -14,3 +14,9 @@ type LegacyProtocol struct {
|
||||
func (l *LegacyProtocol) LegacyOnion() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
// LegacyOnion returns true if the old commitment format should be used for new
|
||||
// funded channels.
|
||||
func (l *LegacyProtocol) LegacyCommitment() bool {
|
||||
return false
|
||||
}
|
||||
@@ -10,6 +10,12 @@ type LegacyProtocol struct {
|
||||
// As a result, nodes that include us in the route won't use the new
|
||||
// modern onion framing.
|
||||
Onion bool `long:"onion" description:"force node to not advertise the new modern TLV onion format"`
|
||||
|
||||
// CommitmentTweak guards if we should use the old legacy commitment
|
||||
// protocol, or the newer variant that doesn't have a tweak for the
|
||||
// remote party's output in the commitment. If set to true, then we
|
||||
// won't signal StaticRemoteKeyOptional.
|
||||
CommitmentTweak bool `long:"committweak" description:"force node to not advertise the new commitment format"`
|
||||
}
|
||||
|
||||
// LegacyOnion returns true if the old legacy onion format should be used when
|
||||
@@ -18,3 +24,9 @@ type LegacyProtocol struct {
|
||||
func (l *LegacyProtocol) LegacyOnion() bool {
|
||||
return l.Onion
|
||||
}
|
||||
|
||||
// LegacyOnion returns true if the old commitment format should be used for new
|
||||
// funded channels.
|
||||
func (l *LegacyProtocol) LegacyCommitment() bool {
|
||||
return l.CommitmentTweak
|
||||
}
|
||||
Reference in new issue
Block a user