mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-11-10 06:07:16 +01:00
lnwire+feature: add feature bit for script enforced lease support
This commit is contained in:
committed by
Olaoluwa Osuntokun
parent
35fd985118
commit
6052a446dc
@@ -64,4 +64,8 @@ var defaultSetDesc = setDesc{
|
||||
SetInit: {}, // I
|
||||
SetNodeAnn: {}, // N
|
||||
},
|
||||
lnwire.ScriptEnforcedLeaseOptional: {
|
||||
SetInit: {}, // I
|
||||
SetNodeAnn: {}, // N
|
||||
},
|
||||
}
|
||||
|
||||
@@ -65,6 +65,10 @@ var deps = depDesc{
|
||||
lnwire.PaymentAddrOptional: {},
|
||||
},
|
||||
lnwire.ExplicitChannelTypeOptional: {},
|
||||
lnwire.ScriptEnforcedLeaseOptional: {
|
||||
lnwire.ExplicitChannelTypeOptional: {},
|
||||
lnwire.AnchorsZeroFeeHtlcTxOptional: {},
|
||||
},
|
||||
}
|
||||
|
||||
// ValidateDeps asserts that a feature vector sets all features and their
|
||||
|
||||
@@ -23,6 +23,10 @@ type Config struct {
|
||||
|
||||
// NoWumbo unsets any bits signalling support for wumbo channels.
|
||||
NoWumbo bool
|
||||
|
||||
// NoScriptEnforcementLease unsets any bits signaling support for script
|
||||
// enforced leases.
|
||||
NoScriptEnforcementLease bool
|
||||
}
|
||||
|
||||
// Manager is responsible for generating feature vectors for different requested
|
||||
@@ -92,6 +96,10 @@ func newManager(cfg Config, desc setDesc) (*Manager, error) {
|
||||
raw.Unset(lnwire.WumboChannelsOptional)
|
||||
raw.Unset(lnwire.WumboChannelsRequired)
|
||||
}
|
||||
if cfg.NoScriptEnforcementLease {
|
||||
raw.Unset(lnwire.ScriptEnforcedLeaseOptional)
|
||||
raw.Unset(lnwire.ScriptEnforcedLeaseRequired)
|
||||
}
|
||||
|
||||
// Ensure that all of our feature sets properly set any
|
||||
// dependent features.
|
||||
|
||||
@@ -159,6 +159,24 @@ const (
|
||||
// TODO: Decide on actual feature bit value.
|
||||
ExplicitChannelTypeOptional = 2021
|
||||
|
||||
// ScriptEnforcedLeaseOptional is an optional feature bit that signals
|
||||
// that the node requires channels having zero-fee second-level HTLC
|
||||
// transactions, which also imply anchor commitments, along with an
|
||||
// additional CLTV constraint of a channel lease's expiration height
|
||||
// applied to all outputs that pay directly to the channel initiator.
|
||||
//
|
||||
// TODO: Decide on actual feature bit value.
|
||||
ScriptEnforcedLeaseRequired FeatureBit = 2022
|
||||
|
||||
// ScriptEnforcedLeaseOptional is a required feature bit that signals
|
||||
// that the node requires channels having zero-fee second-level HTLC
|
||||
// transactions, which also imply anchor commitments, along with an
|
||||
// additional CLTV constraint of a channel lease's expiration height
|
||||
// applied to all outputs that pay directly to the channel initiator.
|
||||
//
|
||||
// TODO: Decide on actual feature bit value.
|
||||
ScriptEnforcedLeaseOptional FeatureBit = 2023
|
||||
|
||||
// maxAllowedSize is a maximum allowed size of feature vector.
|
||||
//
|
||||
// NOTE: Within the protocol, the maximum allowed message size is 65535
|
||||
@@ -206,6 +224,8 @@ var Features = map[FeatureBit]string{
|
||||
AMPOptional: "amp",
|
||||
ExplicitChannelTypeOptional: "explicit-commitment-type",
|
||||
ExplicitChannelTypeRequired: "explicit-commitment-type",
|
||||
ScriptEnforcedLeaseRequired: "script-enforced-lease",
|
||||
ScriptEnforcedLeaseOptional: "script-enforced-lease",
|
||||
}
|
||||
|
||||
// RawFeatureVector represents a set of feature bits as defined in BOLT-09. A
|
||||
|
||||
@@ -516,10 +516,11 @@ func newServer(cfg *Config, listenAddrs []net.Addr,
|
||||
)
|
||||
|
||||
featureMgr, err := feature.NewManager(feature.Config{
|
||||
NoTLVOnion: cfg.ProtocolOptions.LegacyOnion(),
|
||||
NoStaticRemoteKey: cfg.ProtocolOptions.NoStaticRemoteKey(),
|
||||
NoAnchors: cfg.ProtocolOptions.NoAnchorCommitments(),
|
||||
NoWumbo: !cfg.ProtocolOptions.Wumbo(),
|
||||
NoTLVOnion: cfg.ProtocolOptions.LegacyOnion(),
|
||||
NoStaticRemoteKey: cfg.ProtocolOptions.NoStaticRemoteKey(),
|
||||
NoAnchors: cfg.ProtocolOptions.NoAnchorCommitments(),
|
||||
NoWumbo: !cfg.ProtocolOptions.Wumbo(),
|
||||
NoScriptEnforcementLease: cfg.ProtocolOptions.NoScriptEnforcementLease(),
|
||||
})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
||||
Reference in New Issue
Block a user