lnd.xprv/channeldb
Wilmer Paulino 85ea08fd17
channeldb: add migration to properly prune edge update index
In this commit, we introduce a migration to fix some of the recent
issues found w.r.t. the edge update index. The migration attempts to fix
two things:

1) Edge policies include an extra byte at the end due to reading an
extra byte for the node's public key from the serialized node info.

2) Properly prune all stale entries within the edge update index.

As a result of this migration, nodes will have a slightly smaller in
size channeldb. We will also no longer send stale edges to our peers in
response to their gossip queries, which should also fix the fetching
channel announcement for closed channels issue.
2018-09-04 18:33:43 -07:00
..
addr_test.go multi: fix linting errors 2018-08-02 18:20:50 -07:00
addr.go channledb/addr: remove silent encoding failure for unknown types 2018-07-03 17:07:10 -07:00
channel_test.go channeldb: extend TestFetchClosedChannels to populate local chan cfg properly 2018-08-14 19:11:41 -07:00
channel.go channeldb/channel: adds readLogKey for chanids 2018-08-21 00:30:26 -07:00
codec.go multi: sort import paths with gofmt 2018-08-02 18:20:49 -07:00
db_test.go channeldb/db_test: move migration helper back to meta_test 2018-08-21 19:23:23 -07:00
db.go channeldb: add migration to properly prune edge update index 2018-09-04 18:33:43 -07: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/error: adds ErrDBReversion error 2018-08-02 16:45:03 -07: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 channeldb/forwarding_log: use public Read/WriteElements 2018-07-03 17:07:09 -07:00
forwarding_package_test.go multi: sort import paths with gofmt 2018-08-02 18:20:49 -07:00
forwarding_package.go channeldb/forwarding_package: loosen Add/SettleFailRef acking 2018-08-21 00:30:23 -07:00
graph_test.go channeldb/graph_test: extend prune edge update index test to update edges 2018-09-04 18:33:41 -07:00
graph.go channeldb/graph: properly determine old update timestamp for an edge 2018-09-04 18:33:38 -07:00
invoice_test.go channeldb: support querying for invoices within a specific time range 2018-08-21 18:00:08 -07:00
invoices.go channeldb: support querying for invoices within a specific time range 2018-08-21 18:00:08 -07:00
log.go lnd: remove seelog logger 2017-06-25 14:19:56 +01:00
meta_test.go channeldb/meta_test: restore migration helper + godocs 2018-08-21 19:23:23 -07:00
meta.go build+multi: switch from bolt to bbolt 2018-03-10 19:01:13 -08:00
migrations_test.go channeldb/migrations_test: assert locally-sourced circuits... 2018-08-21 19:23:25 -07:00
migrations.go channeldb: add migration to properly prune edge update index 2018-09-04 18:33:43 -07:00
nodes_test.go channeldb: add DeleteLinkNode method 2018-07-17 17:35:25 -07:00
nodes.go multi: fix linting errors 2018-08-02 18:20:50 -07:00
payments_test.go channeldb: test of payment statuses transitions 2018-08-21 19:23:21 -07:00
payments.go channeldb/payments: make payment status helper methods 2018-08-21 19:23:25 -07: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 channeldb/waitingproof: improve external consistency of store 2018-06-05 21:33:47 -07: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