fe566e1755
This commit introduces a feature.Manager, which derives feature vectors for various contexts within the daemon. The sets can be described via a staticly compiled format, which makes any runtime adjustments to the feature sets when the manager is initialized.
33 lines
868 B
Go
33 lines
868 B
Go
package feature
|
|
|
|
import "github.com/lightningnetwork/lnd/lnwire"
|
|
|
|
// setDesc describes which feature bits should be advertised in which feature
|
|
// sets.
|
|
type setDesc map[lnwire.FeatureBit]map[Set]struct{}
|
|
|
|
// defaultSetDesc are the default set descriptors for generating feature
|
|
// vectors. Each set is annotated with the corresponding identifier from BOLT 9
|
|
// indicating where it should be advertised.
|
|
var defaultSetDesc = setDesc{
|
|
lnwire.DataLossProtectRequired: {
|
|
SetInit: {}, // I
|
|
SetNodeAnn: {}, // N
|
|
},
|
|
lnwire.GossipQueriesOptional: {
|
|
SetInit: {}, // I
|
|
SetNodeAnn: {}, // N
|
|
},
|
|
lnwire.TLVOnionPayloadOptional: {
|
|
SetInit: {}, // I
|
|
SetNodeAnn: {}, // N
|
|
SetInvoice: {}, // 9
|
|
SetLegacyGlobal: {},
|
|
},
|
|
lnwire.StaticRemoteKeyOptional: {
|
|
SetInit: {}, // I
|
|
SetNodeAnn: {}, // N
|
|
SetLegacyGlobal: {},
|
|
},
|
|
}
|