lnd.xprv/channeldb
Olaoluwa Osuntokun 3f2aa1c368
channeldb: modify updateChanBucket to no longer auto-create buckets
In this commit, we modify the existing updateChanBucket function to no
longer auto-create buckets if they don't exist. We do this in order to
fix a class of bug that could arise wherein after a channel has actually
be closed (and the parent buckets removed) a method that mutates the
channel state is called, which then re-creates the relevant set of
buckets. As a result, subsequent calls to any RPCs which need to read
all the channels will fail as most of the fields won't actually be
populated.

After this commit, the fullSync method is the only one that's able to
create the full bucket hierarchy.
2018-05-22 16:32:36 -07:00
..
addr.go multi: apply roasbeef diff to support incoming socks.ProxiedAddr 2018-02-05 17:37:46 -08:00
channel_test.go multi: use mutex-guarded ShortChanID() on OpenChannel 2018-05-09 16:06:49 -07:00
channel.go channeldb: modify updateChanBucket to no longer auto-create buckets 2018-05-22 16:32:36 -07:00
codec.go channeldb/codec: add ChannelStatus 2018-04-25 09:37:24 +02:00
db_test.go multi: comprehensive typo fixes across all packages 2018-02-06 19:11:11 -08:00
db.go channeldb: add method for fetching channels waiting for closing tx 2018-04-25 09:37:25 +02:00
doc.go channeldb: create new channeldb package, update lnwallet to use new API 2015-12-26 12:35:15 -06:00
error.go channeldb: add new ForwardingLog storage namespace 2018-03-06 13:56:06 -05:00
fees.go channeldb: create new channeldb package, update lnwallet to use new API 2015-12-26 12:35:15 -06:00
forwarding_log_test.go channeldb: add a set of initial tests for the ForwardingLog 2018-03-06 13:56:09 -05:00
forwarding_log.go build+multi: switch from bolt to bbolt 2018-03-10 19:01:13 -08:00
forwarding_package_test.go build+multi: switch from bolt to bbolt 2018-03-10 19:01:13 -08:00
forwarding_package.go build+multi: switch from bolt to bbolt 2018-03-10 19:01:13 -08:00
graph_test.go multi: fix typos in comments 2018-04-17 19:03:27 -07:00
graph.go multi: fix a-vs-an typos 2018-04-17 19:02:04 -07:00
invoice_test.go multi: comprehensive typo fixes across all packages 2018-02-06 19:11:11 -08:00
invoices.go multi: fix a-vs-an typos 2018-04-17 19:02:04 -07:00
log.go lnd: remove seelog logger 2017-06-25 14:19:56 +01:00
meta_test.go build+multi: switch from bolt to bbolt 2018-03-10 19:01:13 -08:00
meta.go build+multi: switch from bolt to bbolt 2018-03-10 19:01:13 -08:00
migrations.go channeldb: remove prior migrations as their no longer needed 2017-07-30 17:47:58 -07:00
nodes_test.go multi: comprehensive typo fixes across all packages 2018-02-06 19:11:11 -08:00
nodes.go multi: fix a-vs-an typos 2018-04-17 19:02:04 -07:00
payments_test.go channeldb+lnrpc: store the payment pre-image not rhash 2018-01-27 18:36:33 -08:00
payments.go build+multi: switch from bolt to bbolt 2018-03-10 19:01:13 -08:00
README.md build+multi: switch from bolt to bbolt 2018-03-10 19:01:13 -08:00
waitingproof_test.go channeldb: use raw pub keys and signatures directly in vertex/edge structs 2018-02-06 20:14:31 -08:00
waitingproof.go build+multi: switch from bolt to bbolt 2018-03-10 19:01:13 -08:00
witness_cache_test.go channeldb: add new WitnessCache structure 2018-01-22 19:19:37 -08:00
witness_cache.go build+multi: switch from bolt to bbolt 2018-03-10 19:01:13 -08:00

channeldb

Build Status MIT licensed GoDoc

The channeldb implements the persistent storage engine for lnd and generically a data storage layer for the required state within the Lightning Network. The backing storage engine is boltdb, an embedded pure-go key-value store based off of LMDB.

The package implements an object-oriented storage model with queries and mutations flowing through a particular object instance rather than the database itself. The storage implemented by the objects includes: open channels, past commitment revocation states, the channel graph which includes authenticated node and channel announcements, outgoing payments, and invoices

Installation and Updating

$ go get -u github.com/lightningnetwork/lnd/channeldb