lnd.xprv/channeldb
Roei Erez 7300f33fe2 graph: implement index for disabled channels.
This commit adds an index bucket, disabledEdgePolicyBucket, for those
ChannelEdgePolicy with disabled bit on.
The main purpose is to be able to iterate over these fast when prune is
needed without the need for iterating the whole graph.

The entry points for accessing this index are:
1. When updating ChannelEdgePolicy - insert an entry.
2. When deleting ChannelEdge - delete the associated entries.
3. When querying for disabled channels - implemented DisabledChannelIDs
function
2019-07-16 17:48:07 +03:00
..
addr_test.go channeldb/addr_test: add tests for invalid onion addresses 2019-01-17 14:16:15 +01:00
addr.go channeldb/addr: sanity check onion address length before writing to db 2019-01-17 14:16:15 +01:00
channel_cache_test.go channeldb/channel_cache: add channelCache w/ randomized eviction 2019-04-01 16:25:31 -07:00
channel_cache.go channeldb/channel_cache: add channelCache w/ randomized eviction 2019-04-01 16:25:31 -07:00
channel_test.go multi: move CsvDelay into ChannelConstraints 2019-01-11 16:58:15 -08:00
channel.go channeldb: avoid modifying bucket during cursor traversal 2019-06-14 21:09:03 +02:00
codec.go channeldb/codec: add privateKey serialization 2019-05-27 20:18:56 +02:00
db_test.go channeldb: ensure restored channels can't be mutated 2019-01-28 20:24:48 -08:00
db.go channeldb/migration: add migration for new payment bucket structure 2019-05-27 20:18:56 +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+routing: extend edge lookup methods with zombie index check 2019-03-27 13:06:57 -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 multi: switch from bolt packge to bbolt package for all imports 2018-11-29 20:33:49 -08:00
forwarding_package_test.go multi: switch from bolt packge to bbolt package for all imports 2018-11-29 20:33:49 -08:00
forwarding_package.go multi: switch from bolt packge to bbolt package for all imports 2018-11-29 20:33:49 -08:00
graph_test.go graph: implement index for disabled channels. 2019-07-16 17:48:07 +03:00
graph.go graph: implement index for disabled channels. 2019-07-16 17:48:07 +03:00
invoice_test.go invoices+channeldb: move invoice state check to invoiceregistry 2019-06-10 16:12:08 +02:00
invoices.go invoices+channeldb: move invoice state check to invoiceregistry 2019-06-10 16:12:08 +02:00
legacy_serialization.go channeldb: move deprecated code to migration_09_legacy_serialization.go 2019-05-27 20:18:59 +02:00
log.go multi: init subsystem loggers via build pkg 2018-10-05 13:04:45 +09:00
meta_test.go channeldb test: add TestOutgoingPaymentsMigration 2019-05-27 20:18:57 +02:00
meta.go multi: switch from bolt packge to bbolt package for all imports 2018-11-29 20:33:49 -08:00
migration_09_legacy_serialization.go channeldb+multi: rename Grounded->Unknown, Completed->Succeeded 2019-05-27 20:18:59 +02:00
migrations_test.go channeldb+multi: rename Grounded->Unknown, Completed->Succeeded 2019-05-27 20:18:59 +02:00
migrations.go channeldb/migrations: skip migration for empty outgoing payments bucket 2019-06-18 21:14:16 +02:00
nodes_test.go channeldb: add DeleteLinkNode method 2018-07-17 17:35:25 -07:00
nodes.go channeldb: add new AddrsForNode method 2019-01-28 20:24:22 -08:00
options.go channeldb/options: add Options w/ functional modifiers 2019-04-01 16:33:13 -07:00
payment_control_test.go routing+routerrpc+channeldb: return route on invalid payment details 2019-07-04 09:27:16 +02:00
payment_control.go routing+routerrpc+channeldb: return route on invalid payment details 2019-07-04 09:27:16 +02:00
payments_test.go channeldb: move deprecated code to migration_09_legacy_serialization.go 2019-05-27 20:18:59 +02:00
payments.go routing+channeldb: add more failure reasons 2019-07-04 09:27:12 +02:00
README.md build+multi: switch from bolt to bbolt 2018-03-10 19:01:13 -08:00
reject_cache_test.go channeldb/reject_cache: add rejectCache w/ randomized eviction 2019-04-01 16:25:31 -07:00
reject_cache.go channeldb/reject_cache: add rejectCache w/ randomized eviction 2019-04-01 16:25:31 -07: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 multi: switch from bolt packge to bbolt package for all imports 2018-11-29 20:33:49 -08:00
witness_cache_test.go channeldb+witness_beacon: use sha256 lookup+delete witness 2019-02-19 17:06:42 -08:00
witness_cache.go channeldb+witness_beacon: use sha256 lookup+delete witness 2019-02-19 17:06:42 -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