From 874002022ff4f962dcae8271b2ab7fe7a95f040f Mon Sep 17 00:00:00 2001 From: Olaoluwa Osuntokun Date: Sun, 9 Sep 2018 15:47:41 -0700 Subject: [PATCH 1/2] channeldb: remove unused fwdPackageLogBucket key In this commit, we move the declaration of the key for an unused bucket. In the past, this bucket was used to store the revocation forwarding package log. However, this has been moved under the key `fwdPackagesKey`. --- channeldb/channel.go | 6 ------ 1 file changed, 6 deletions(-) diff --git a/channeldb/channel.go b/channeldb/channel.go index e5dc42ea..c155b8fc 100644 --- a/channeldb/channel.go +++ b/channeldb/channel.go @@ -70,12 +70,6 @@ var ( // channel closure. This key should be accessed from within the // sub-bucket of a target channel, identified by its channel point. revocationLogBucket = []byte("revocation-log-key") - - // fwdPackageLogBucket is a bucket that stores the locked-in htlcs after - // having received a revocation from the remote party. The keys in this - // bucket represent the remote height at which these htlcs were - // accepted. - fwdPackageLogBucket = []byte("fwd-package-log-key") ) var ( From 3e67321aa742d1f972ea79d9b637a74ca9cc6be7 Mon Sep 17 00:00:00 2001 From: Olaoluwa Osuntokun Date: Sun, 9 Sep 2018 15:49:21 -0700 Subject: [PATCH 2/2] channeldb: fix bucket creation hierarchy in createChannelDB In this commit, we fix a bug in the bucket creation code in createChannelDB. This bug can cause migrations on older nodes to fail, as we expect the bucket to already have been created. With this commit, we ensure that all the buckets under the main node and edges bucket are properly created. Otherwise, a set of the newer migrations will fail to apply for nodes updating from 0.4. --- channeldb/db.go | 44 +++++++++++++++++++++++++++++++++++++++----- 1 file changed, 39 insertions(+), 5 deletions(-) diff --git a/channeldb/db.go b/channeldb/db.go index df611326..964e85ab 100644 --- a/channeldb/db.go +++ b/channeldb/db.go @@ -201,29 +201,63 @@ func createChannelDB(dbPath string) error { if _, err := tx.CreateBucket(openChannelBucket); err != nil { return err } - if _, err := tx.CreateBucket(closedChannelBucket); err != nil { return err } + if _, err := tx.CreateBucket(forwardingLogBucket); err != nil { + return err + } + + if _, err := tx.CreateBucket(fwdPackagesKey); err != nil { + return err + } + if _, err := tx.CreateBucket(invoiceBucket); err != nil { return err } + if _, err := tx.CreateBucket(paymentBucket); err != nil { + return err + } + if _, err := tx.CreateBucket(nodeInfoBucket); err != nil { return err } - if _, err := tx.CreateBucket(nodeBucket); err != nil { + nodes, err := tx.CreateBucket(nodeBucket) + if err != nil { return err } - if _, err := tx.CreateBucket(edgeBucket); err != nil { + _, err = nodes.CreateBucket(aliasIndexBucket) + if err != nil { return err } - if _, err := tx.CreateBucket(edgeIndexBucket); err != nil { + _, err = nodes.CreateBucket(nodeUpdateIndexBucket) + if err != nil { return err } - if _, err := tx.CreateBucket(graphMetaBucket); err != nil { + + edges, err := tx.CreateBucket(edgeBucket) + if err != nil { + return err + } + if _, err := edges.CreateBucket(edgeIndexBucket); err != nil { + return err + } + if _, err := edges.CreateBucket(edgeUpdateIndexBucket); err != nil { + return err + } + if _, err := edges.CreateBucket(channelPointBucket); err != nil { + return err + } + + graphMeta, err := tx.CreateBucket(graphMetaBucket) + if err != nil { + return err + } + _, err = graphMeta.CreateBucket(pruneLogBucket) + if err != nil { return err }