mirror of
https://github.com/lightningnetwork/lnd.git
synced 2024-11-19 09:53:54 +01:00
Merge pull request #4822 from bhandras/add_globalfeatures
routing: add missing features to NetworkNodeUpdate (and also depreacte GlobalFeatures)
This commit is contained in:
commit
669663bfc2
1572
lnrpc/rpc.pb.go
1572
lnrpc/rpc.pb.go
File diff suppressed because it is too large
Load Diff
@ -2694,9 +2694,15 @@ message GraphTopologyUpdate {
|
||||
message NodeUpdate {
|
||||
repeated string addresses = 1;
|
||||
string identity_key = 2;
|
||||
bytes global_features = 3;
|
||||
bytes global_features = 3 [deprecated = true];
|
||||
string alias = 4;
|
||||
string color = 5;
|
||||
|
||||
/*
|
||||
Features that the node has advertised in the init message, node
|
||||
announcements and invoices.
|
||||
*/
|
||||
map<uint32, Feature> features = 6;
|
||||
}
|
||||
message ChannelEdgeUpdate {
|
||||
/*
|
||||
|
@ -4550,6 +4550,13 @@
|
||||
},
|
||||
"color": {
|
||||
"type": "string"
|
||||
},
|
||||
"features": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"$ref": "#/definitions/lnrpcFeature"
|
||||
},
|
||||
"description": "Features that the node has advertised in the init message, node\nannouncements and invoices."
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -238,15 +238,14 @@ type NetworkNodeUpdate struct {
|
||||
// updates.
|
||||
IdentityKey *btcec.PublicKey
|
||||
|
||||
// GlobalFeatures is a set of opaque bytes that describe the set of
|
||||
// features supported by the node.
|
||||
GlobalFeatures []byte
|
||||
|
||||
// Alias is the alias or nick name of the node.
|
||||
Alias string
|
||||
|
||||
// Color is the node's color in hex code format.
|
||||
Color string
|
||||
|
||||
// Features holds the set of features the node supports.
|
||||
Features *lnwire.FeatureVector
|
||||
}
|
||||
|
||||
// ChannelEdgeUpdate is an update for a new channel within the ChannelGraph.
|
||||
@ -318,11 +317,13 @@ func addToTopologyChange(graph *channeldb.ChannelGraph, update *TopologyChange,
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
nodeUpdate := &NetworkNodeUpdate{
|
||||
Addresses: m.Addresses,
|
||||
IdentityKey: pubKey,
|
||||
Alias: m.Alias,
|
||||
Color: EncodeHexColor(m.Color),
|
||||
Features: m.Features.Clone(),
|
||||
}
|
||||
nodeUpdate.IdentityKey.Curve = nil
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
package routing
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"image/color"
|
||||
"net"
|
||||
@ -21,6 +22,7 @@ import (
|
||||
"github.com/lightningnetwork/lnd/lnwire"
|
||||
"github.com/lightningnetwork/lnd/routing/chainview"
|
||||
"github.com/lightningnetwork/lnd/routing/route"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
var (
|
||||
@ -572,6 +574,9 @@ func TestNodeUpdateNotification(t *testing.T) {
|
||||
t.Fatalf("unable to create test node: %v", err)
|
||||
}
|
||||
|
||||
testFeaturesBuf := new(bytes.Buffer)
|
||||
require.NoError(t, testFeatures.Encode(testFeaturesBuf))
|
||||
|
||||
edge := &channeldb.ChannelEdgeInfo{
|
||||
ChannelID: chanID.ToUint64(),
|
||||
NodeKey1Bytes: node1.PubKeyBytes,
|
||||
@ -623,6 +628,14 @@ func TestNodeUpdateNotification(t *testing.T) {
|
||||
"got %x", nodeKey.SerializeCompressed(),
|
||||
nodeUpdate.IdentityKey.SerializeCompressed())
|
||||
}
|
||||
|
||||
featuresBuf := new(bytes.Buffer)
|
||||
require.NoError(t, nodeUpdate.Features.Encode(featuresBuf))
|
||||
|
||||
require.Equal(
|
||||
t, testFeaturesBuf.Bytes(), featuresBuf.Bytes(),
|
||||
)
|
||||
|
||||
if nodeUpdate.Alias != ann.Alias {
|
||||
t.Fatalf("node alias doesn't match: expected %v, got %v",
|
||||
ann.Alias, nodeUpdate.Alias)
|
||||
|
12
rpcserver.go
12
rpcserver.go
@ -5509,11 +5509,13 @@ func marshallTopologyChange(topChange *routing.TopologyChange) *lnrpc.GraphTopol
|
||||
}
|
||||
|
||||
nodeUpdates[i] = &lnrpc.NodeUpdate{
|
||||
Addresses: addrs,
|
||||
IdentityKey: encodeKey(nodeUpdate.IdentityKey),
|
||||
GlobalFeatures: nodeUpdate.GlobalFeatures,
|
||||
Alias: nodeUpdate.Alias,
|
||||
Color: nodeUpdate.Color,
|
||||
Addresses: addrs,
|
||||
IdentityKey: encodeKey(nodeUpdate.IdentityKey),
|
||||
Alias: nodeUpdate.Alias,
|
||||
Color: nodeUpdate.Color,
|
||||
Features: invoicesrpc.CreateRPCFeatures(
|
||||
nodeUpdate.Features,
|
||||
),
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user