@@ -13,18 +13,13 @@ import (
1313 "github.com/lightninglabs/chantools/lnd"
1414 "github.com/lightningnetwork/lnd/chainreg"
1515 "github.com/lightningnetwork/lnd/channeldb"
16- "github.com/lightningnetwork/lnd/channeldb/models"
16+ graphdb "github.com/lightningnetwork/lnd/graph/db"
17+ "github.com/lightningnetwork/lnd/graph/db/models"
1718 "github.com/lightningnetwork/lnd/keychain"
1819 "github.com/lightningnetwork/lnd/lnwire"
1920 "github.com/spf13/cobra"
2021)
2122
22- var (
23- nodeBucket = []byte ("graph-node" )
24- edgeBucket = []byte ("graph-edge" )
25- graphMetaBucket = []byte ("graph-meta" )
26- )
27-
2823type dropChannelGraphCommand struct {
2924 ChannelDB string
3025 NodeIdentityKey string
@@ -85,11 +80,11 @@ func (c *dropChannelGraphCommand) Execute(_ *cobra.Command, _ []string) error {
8580 if c .ChannelDB == "" {
8681 return errors .New ("channel DB is required" )
8782 }
88- db , err := lnd .OpenDB (c .ChannelDB , false )
83+ channelDB , graphDB , err := lnd .OpenDB (c .ChannelDB , false )
8984 if err != nil {
90- return fmt .Errorf ("error opening rescue DB: %w" , err )
85+ return fmt .Errorf ("error opening channel DB: %w" , err )
9186 }
92- defer func () { _ = db .Close () }()
87+ defer func () { _ = channelDB .Close () }()
9388
9489 if c .NodeIdentityKey == "" {
9590 return errors .New ("node identity key is required" )
@@ -107,7 +102,7 @@ func (c *dropChannelGraphCommand) Execute(_ *cobra.Command, _ []string) error {
107102
108103 if c .SingleChannel != 0 {
109104 log .Infof ("Removing single channel %d" , c .SingleChannel )
110- return db . ChannelGraph () .DeleteChannelEdges (
105+ return graphDB .DeleteChannelEdges (
111106 true , false , c .SingleChannel ,
112107 )
113108 }
@@ -116,35 +111,20 @@ func (c *dropChannelGraphCommand) Execute(_ *cobra.Command, _ []string) error {
116111 if ! c .FixOnly {
117112 log .Infof ("Dropping all graph related buckets" )
118113
119- rwTx , err := db .BeginReadWriteTx ()
120- if err != nil {
121- return err
122- }
123- if err := rwTx .DeleteTopLevelBucket (nodeBucket ); err != nil {
124- return err
125- }
126- if err := rwTx .DeleteTopLevelBucket (edgeBucket ); err != nil {
127- return err
128- }
129- if err := rwTx .DeleteTopLevelBucket (graphMetaBucket ); err != nil {
130- return err
131- }
132-
133- if err := rwTx .Commit (); err != nil {
134- return err
135- }
114+ return graphDB .Wipe ()
136115 }
137116
138- return insertOwnNodeAndChannels (idKey , db )
117+ return insertOwnNodeAndChannels (idKey , channelDB , graphDB )
139118}
140119
141- func insertOwnNodeAndChannels (idKey * btcec.PublicKey , db * channeldb.DB ) error {
142- openChannels , err := db .ChannelStateDB ().FetchAllOpenChannels ()
120+ func insertOwnNodeAndChannels (idKey * btcec.PublicKey , channelDB * channeldb.DB ,
121+ graphDB * graphdb.ChannelGraph ) error {
122+
123+ openChannels , err := channelDB .ChannelStateDB ().FetchAllOpenChannels ()
143124 if err != nil {
144125 return fmt .Errorf ("error fetching open channels: %w" , err )
145126 }
146127
147- graph := db .ChannelGraph ()
148128 for _ , openChan := range openChannels {
149129 edge , update , err := newChanAnnouncement (
150130 idKey , openChan .IdentityPub ,
@@ -159,11 +139,11 @@ func insertOwnNodeAndChannels(idKey *btcec.PublicKey, db *channeldb.DB) error {
159139 err )
160140 }
161141
162- if err := graph .AddChannelEdge (edge ); err != nil {
142+ if err := graphDB .AddChannelEdge (edge ); err != nil {
163143 log .Warnf ("Not adding channel edge %v because of " +
164144 "error: %v" , edge .ChannelPoint , err )
165145 }
166- if err := graph .UpdateEdgePolicy (update ); err != nil {
146+ if err := graphDB .UpdateEdgePolicy (update ); err != nil {
167147 log .Warnf ("Not updating edge policy %v because of " +
168148 "error: %v" , update .ChannelID , err )
169149 }
@@ -184,7 +164,7 @@ func newChanAnnouncement(localPubKey, remotePubKey *btcec.PublicKey,
184164 // The unconditional section of the announcement is the ShortChannelID
185165 // itself which compactly encodes the location of the funding output
186166 // within the blockchain.
187- chanAnn := & lnwire.ChannelAnnouncement {
167+ chanAnn := & lnwire.ChannelAnnouncement1 {
188168 ShortChannelID : shortChanID ,
189169 Features : lnwire .NewRawFeatureVector (),
190170 ChainHash : chainHash ,
@@ -248,7 +228,7 @@ func newChanAnnouncement(localPubKey, remotePubKey *btcec.PublicKey,
248228
249229 // We announce the channel with the default values. Some of
250230 // these values can later be changed by crafting a new ChannelUpdate.
251- chanUpdateAnn := & lnwire.ChannelUpdate {
231+ chanUpdateAnn := & lnwire.ChannelUpdate1 {
252232 ShortChannelID : shortChanID ,
253233 ChainHash : chainHash ,
254234 Timestamp : uint32 (time .Now ().Unix ()),
0 commit comments