lnd/channeldb
Wilmer Paulino 3f58c2dea4
channeldb/graph: dedup channel edges returned from ChanUpdatesInHorizon
In this commit, we ensure that we de-duplicate the set of channel edges
returned from ChanUpdatesInHorizon. Other subsystems within lnd use this
method to retrieve and send all the channels with updates within a time
series to network peers. However, since the method looks at the edge
update index, which can include up to two entries per edge for each
policy, it's possible that we'd send channel announcements and updates
twice, causing extra bandwidth.
2018-09-04 18:48:21 -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/db: add comment describing migration 2018-08-21 19:23:23 -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: ensure policies for an edge have different 2018-09-04 18:36:25 -07:00
graph.go channeldb/graph: dedup channel edges returned from ChanUpdatesInHorizon 2018-09-04 18:48:21 -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/migrations: mark locally-sourced payments as InFlight... 2018-08-21 19:23:25 -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