mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-12-10 21:03:04 +01:00
lnd: properly initialize ChannelRouter with FilteredChainView
This commit is contained in:
11
lnd.go
11
lnd.go
@@ -23,6 +23,7 @@ import (
|
|||||||
"github.com/lightningnetwork/lnd/lnrpc"
|
"github.com/lightningnetwork/lnd/lnrpc"
|
||||||
"github.com/lightningnetwork/lnd/lnwallet"
|
"github.com/lightningnetwork/lnd/lnwallet"
|
||||||
"github.com/lightningnetwork/lnd/lnwallet/btcwallet"
|
"github.com/lightningnetwork/lnd/lnwallet/btcwallet"
|
||||||
|
"github.com/lightningnetwork/lnd/routing/chainview"
|
||||||
|
|
||||||
"github.com/roasbeef/btcrpcclient"
|
"github.com/roasbeef/btcrpcclient"
|
||||||
)
|
)
|
||||||
@@ -179,10 +180,18 @@ func lndMain() error {
|
|||||||
wallet: wallet,
|
wallet: wallet,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// Next, we'll create an instance of the default chain view to be used
|
||||||
|
// within the routing layer.
|
||||||
|
chainView, err := chainview.NewBtcdFilteredChainView(*rpcConfig)
|
||||||
|
if err != nil {
|
||||||
|
srvrLog.Errorf("unable to create chain view: %v", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
// With all the relevant chains initialized, we can finally start the
|
// With all the relevant chains initialized, we can finally start the
|
||||||
// server itself.
|
// server itself.
|
||||||
server, err := newServer(defaultListenAddrs, notifier, bio,
|
server, err := newServer(defaultListenAddrs, notifier, bio,
|
||||||
fundingSigner, wallet, chanDB)
|
fundingSigner, wallet, chanDB, chainView)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
srvrLog.Errorf("unable to create server: %v\n", err)
|
srvrLog.Errorf("unable to create server: %v\n", err)
|
||||||
return err
|
return err
|
||||||
|
|||||||
14
server.go
14
server.go
@@ -23,6 +23,7 @@ import (
|
|||||||
"github.com/lightningnetwork/lnd/lnwallet"
|
"github.com/lightningnetwork/lnd/lnwallet"
|
||||||
"github.com/lightningnetwork/lnd/lnwire"
|
"github.com/lightningnetwork/lnd/lnwire"
|
||||||
"github.com/lightningnetwork/lnd/routing"
|
"github.com/lightningnetwork/lnd/routing"
|
||||||
|
"github.com/lightningnetwork/lnd/routing/chainview"
|
||||||
"github.com/roasbeef/btcd/btcec"
|
"github.com/roasbeef/btcd/btcec"
|
||||||
"github.com/roasbeef/btcd/chaincfg/chainhash"
|
"github.com/roasbeef/btcd/chaincfg/chainhash"
|
||||||
"github.com/roasbeef/btcd/connmgr"
|
"github.com/roasbeef/btcd/connmgr"
|
||||||
@@ -107,7 +108,8 @@ type server struct {
|
|||||||
// passed listener address.
|
// passed listener address.
|
||||||
func newServer(listenAddrs []string, notifier chainntnfs.ChainNotifier,
|
func newServer(listenAddrs []string, notifier chainntnfs.ChainNotifier,
|
||||||
bio lnwallet.BlockChainIO, fundingSigner lnwallet.MessageSigner,
|
bio lnwallet.BlockChainIO, fundingSigner lnwallet.MessageSigner,
|
||||||
wallet *lnwallet.LightningWallet, chanDB *channeldb.DB) (*server, error) {
|
wallet *lnwallet.LightningWallet, chanDB *channeldb.DB,
|
||||||
|
chainView chainview.FilteredChainView) (*server, error) {
|
||||||
|
|
||||||
privKey, err := wallet.GetIdentitykey()
|
privKey, err := wallet.GetIdentitykey()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -228,9 +230,9 @@ func newServer(listenAddrs []string, notifier chainntnfs.ChainNotifier,
|
|||||||
}
|
}
|
||||||
|
|
||||||
s.chanRouter, err = routing.New(routing.Config{
|
s.chanRouter, err = routing.New(routing.Config{
|
||||||
Graph: chanGraph,
|
Graph: chanGraph,
|
||||||
Chain: bio,
|
Chain: bio,
|
||||||
Notifier: notifier,
|
ChainView: chainView,
|
||||||
SendToSwitch: func(firstHop *btcec.PublicKey,
|
SendToSwitch: func(firstHop *btcec.PublicKey,
|
||||||
htlcAdd *lnwire.UpdateAddHTLC) ([32]byte, error) {
|
htlcAdd *lnwire.UpdateAddHTLC) ([32]byte, error) {
|
||||||
|
|
||||||
@@ -261,7 +263,8 @@ func newServer(listenAddrs []string, notifier chainntnfs.ChainNotifier,
|
|||||||
}
|
}
|
||||||
|
|
||||||
s.rpcServer = newRPCServer(s)
|
s.rpcServer = newRPCServer(s)
|
||||||
s.breachArbiter = newBreachArbiter(wallet, chanDB, notifier, s.htlcSwitch)
|
s.breachArbiter = newBreachArbiter(wallet, chanDB, notifier,
|
||||||
|
s.htlcSwitch, s.bio)
|
||||||
|
|
||||||
var chanIDSeed [32]byte
|
var chanIDSeed [32]byte
|
||||||
if _, err := rand.Read(chanIDSeed[:]); err != nil {
|
if _, err := rand.Read(chanIDSeed[:]); err != nil {
|
||||||
@@ -271,6 +274,7 @@ func newServer(listenAddrs []string, notifier chainntnfs.ChainNotifier,
|
|||||||
s.fundingMgr, err = newFundingManager(fundingConfig{
|
s.fundingMgr, err = newFundingManager(fundingConfig{
|
||||||
IDKey: s.identityPriv.PubKey(),
|
IDKey: s.identityPriv.PubKey(),
|
||||||
Wallet: wallet,
|
Wallet: wallet,
|
||||||
|
ChainIO: s.bio,
|
||||||
Notifier: s.chainNotifier,
|
Notifier: s.chainNotifier,
|
||||||
SignMessage: func(pubKey *btcec.PublicKey, msg []byte) (*btcec.Signature, error) {
|
SignMessage: func(pubKey *btcec.PublicKey, msg []byte) (*btcec.Signature, error) {
|
||||||
if pubKey.IsEqual(s.identityPriv.PubKey()) {
|
if pubKey.IsEqual(s.identityPriv.PubKey()) {
|
||||||
|
|||||||
Reference in New Issue
Block a user