multi: remove the need for NewRoutingGraph
The `graphsession.NewRoutingGraph` method was used to create a RoutingGraph instance with no consistent read transaction across calls. But now that the ChannelGraph directly implements this, we can remove The NewRoutingGraph method.
This commit is contained in:
4 files changed
+27
-13
No files matched your search
@@ -594,6 +594,30 @@ func (c *ChannelGraph) FetchNodeFeaturesTx(tx kvdb.RTx,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ForEachNodeDirectedChannel iterates through all channels of a given node,
|
||||||
|
// executing the passed callback on the directed edge representing the channel
|
||||||
|
// and its incoming policy. If the callback returns an error, then the iteration
|
||||||
|
// is halted with the error propagated back up to the caller. If the graphCache
|
||||||
|
// is available, then it will be used to retrieve the node's channels instead
|
||||||
|
// of the database.
|
||||||
|
//
|
||||||
|
// Unknown policies are passed into the callback as nil values.
|
||||||
|
func (c *ChannelGraph) ForEachNodeDirectedChannel(nodePub route.Vertex,
|
||||||
|
cb func(channel *DirectedChannel) error) error {
|
||||||
|
|
||||||
|
return c.ForEachNodeDirectedChannelTx(nil, nodePub, cb)
|
||||||
|
}
|
||||||
|
|
||||||
|
// FetchNodeFeatures returns the features of the given node. If no features are
|
||||||
|
// known for the node, an empty feature vector is returned.
|
||||||
|
// If the graphCache is available, then it will be used to retrieve the node's
|
||||||
|
// features instead of the database.
|
||||||
|
func (c *ChannelGraph) FetchNodeFeatures(nodePub route.Vertex) (
|
||||||
|
*lnwire.FeatureVector, error) {
|
||||||
|
|
||||||
|
return c.FetchNodeFeaturesTx(nil, nodePub)
|
||||||
|
}
|
||||||
|
|
||||||
// ForEachNodeCached is similar to forEachNode, but it utilizes the channel
|
// ForEachNodeCached is similar to forEachNode, but it utilizes the channel
|
||||||
// graph cache instead. Note that this doesn't return all the information the
|
// graph cache instead. Note that this doesn't return all the information the
|
||||||
// regular forEachNode method does.
|
// regular forEachNode method does.
|
||||||
|
|||||||
@@ -56,15 +56,6 @@ type session struct {
|
|||||||
tx kvdb.RTx
|
tx kvdb.RTx
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewRoutingGraph constructs a session that which does not first start a
|
|
||||||
// read-only transaction and so each call on the routing.Graph will create a
|
|
||||||
// new transaction.
|
|
||||||
func NewRoutingGraph(graph ReadOnlyGraph) routing.Graph {
|
|
||||||
return &session{
|
|
||||||
graph: graph,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// close closes the read-only transaction being used to access the backing
|
// close closes the read-only transaction being used to access the backing
|
||||||
// graph. If no transaction was started then this is a no-op.
|
// graph. If no transaction was started then this is a no-op.
|
||||||
func (g *session) close() error {
|
func (g *session) close() error {
|
||||||
|
|||||||
+2
-3
@@ -51,7 +51,6 @@ import (
|
|||||||
"github.com/lightningnetwork/lnd/graph"
|
"github.com/lightningnetwork/lnd/graph"
|
||||||
graphdb "github.com/lightningnetwork/lnd/graph/db"
|
graphdb "github.com/lightningnetwork/lnd/graph/db"
|
||||||
"github.com/lightningnetwork/lnd/graph/db/models"
|
"github.com/lightningnetwork/lnd/graph/db/models"
|
||||||
"github.com/lightningnetwork/lnd/graph/graphsession"
|
|
||||||
"github.com/lightningnetwork/lnd/htlcswitch"
|
"github.com/lightningnetwork/lnd/htlcswitch"
|
||||||
"github.com/lightningnetwork/lnd/htlcswitch/hop"
|
"github.com/lightningnetwork/lnd/htlcswitch/hop"
|
||||||
"github.com/lightningnetwork/lnd/input"
|
"github.com/lightningnetwork/lnd/input"
|
||||||
@@ -711,8 +710,8 @@ func (r *rpcServer) addDeps(s *server, macService *macaroons.Service,
|
|||||||
amount lnwire.MilliSatoshi) (btcutil.Amount, error) {
|
amount lnwire.MilliSatoshi) (btcutil.Amount, error) {
|
||||||
|
|
||||||
return routing.FetchAmountPairCapacity(
|
return routing.FetchAmountPairCapacity(
|
||||||
graphsession.NewRoutingGraph(graph),
|
graph, selfNode.PubKeyBytes, nodeFrom, nodeTo,
|
||||||
selfNode.PubKeyBytes, nodeFrom, nodeTo, amount,
|
amount,
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
FetchChannelEndpoints: func(chanID uint64) (route.Vertex,
|
FetchChannelEndpoints: func(chanID uint64) (route.Vertex,
|
||||||
|
|||||||
@@ -1073,7 +1073,7 @@ func newServer(cfg *Config, listenAddrs []net.Addr,
|
|||||||
|
|
||||||
s.chanRouter, err = routing.New(routing.Config{
|
s.chanRouter, err = routing.New(routing.Config{
|
||||||
SelfNode: selfNode.PubKeyBytes,
|
SelfNode: selfNode.PubKeyBytes,
|
||||||
RoutingGraph: graphsession.NewRoutingGraph(dbs.GraphDB),
|
RoutingGraph: dbs.GraphDB,
|
||||||
Chain: cc.ChainIO,
|
Chain: cc.ChainIO,
|
||||||
Payer: s.htlcSwitch,
|
Payer: s.htlcSwitch,
|
||||||
Control: s.controlTower,
|
Control: s.controlTower,
|
||||||
|
|||||||
Reference in new issue
Block a user