lnd.xprv/channeldb
carla c8d11285f3
channeldb: index payments by sequence number
Add an entry to a payments index bucket which maps sequence number
to payment hash when we initiate payments. This allows for more
efficient paginated queries. We create the top level bucket in its
own migration so that we do not need to create it on the fly.

When we retry payments and provide them with a new sequence number, we
delete the index for their existing payment so that we do not have an
index that points to a non-existent payment.

If we delete a payment, we also delete its index entry. This prevents
us from looking up entries from indexes to payments that do not exist.
2020-06-10 12:49:06 +02:00
..
kvdb lnd+kvdb: pass LND abort context to etcd 2020-06-03 17:44:44 +02:00
migration channeldb/migration: add generic CreateTLB migration 2020-05-26 18:55:27 -07:00
migration_01_to_11 multi: rename: ReadBucket to RBucket 2020-05-26 18:21:08 -07:00
migration12 channeldb: convert to uniformly use new kvdb abstractions 2020-03-18 19:34:49 -07:00
migration13 channeldb: convert to uniformly use new kvdb abstractions 2020-03-18 19:34:49 -07:00
migration16 channeldb: index payments by sequence number 2020-06-10 12:49:06 +02:00
migtest Merge pull request #4285 from cfromknecht/pay-addr-index 2020-05-27 17:36:30 -07: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 kvdb+etcd: enable channeldb testing with both bdb/etcd 2020-05-22 11:26:25 +02:00
channel.go multi: rename: ReadBucket to RBucket 2020-05-26 18:21:08 -07:00
codec.go channeldb: index payments by sequence number 2020-06-10 12:49:06 +02:00
db_test.go kvdb+etcd: enable channeldb testing with both bdb/etcd 2020-05-22 11:26:25 +02:00
db.go channeldb: index payments by sequence number 2020-06-10 12:49:06 +02:00
doc.go channeldb: create new channeldb package, update lnwallet to use new API 2015-12-26 12:35:15 -06:00
duplicate_payments.go multi: rename: ReadBucket to RBucket 2020-05-26 18:21:08 -07:00
error.go channeldb+invoices: use payment addr as primary index 2020-05-26 18:55:27 -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: rename ReadTx to RTx 2020-05-26 18:20:37 -07:00
forwarding_package_test.go multi: rename ReadTx to RTx 2020-05-26 18:20:37 -07:00
forwarding_package.go multi: rename: ReadBucket to RBucket 2020-05-26 18:21:08 -07:00
graph_test.go multi: rename ReadTx to RTx 2020-05-26 18:20:37 -07:00
graph.go multi: rename: ReadBucket to RBucket 2020-05-26 18:21:08 -07:00
invoice_test.go invoice+test: changing testitfy asserts to specific requires 2020-06-05 15:16:31 +02:00
invoices.go multi: add explicit hodl invoice flag to invoice 2020-06-02 07:34:23 +02:00
legacy_serialization.go Revert "channeldb: remove unsupported migrations" 2019-10-12 00:47:45 -07:00
log.go channeldb: index payments by sequence number 2020-06-10 12:49:06 +02:00
meta_test.go multi: rename ReadTx to RTx 2020-05-26 18:20:37 -07:00
meta.go multi: rename ReadTx to RTx 2020-05-26 18:20:37 -07:00
mp_payment.go routing: return full htlc attempt from shard handler 2020-05-12 19:56:50 +02:00
nodes_test.go channeldb: add DeleteLinkNode method 2018-07-17 17:35:25 -07:00
nodes.go multi: rename ReadTx to RTx 2020-05-26 18:20:37 -07:00
options.go channeldb/db: adds optional dry-run abort for migrations 2020-05-11 15:38:45 -07:00
payment_control_test.go channeldb: index payments by sequence number 2020-06-10 12:49:06 +02:00
payment_control.go channeldb: index payments by sequence number 2020-06-10 12:49:06 +02:00
payments_test.go channeldb: index payments by sequence number 2020-06-10 12:49:06 +02:00
payments.go channeldb: index payments by sequence number 2020-06-10 12:49:06 +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: Fix dropped error in migrations test 2019-09-12 15:49:21 +00:00
waitingproof.go multi: rename ReadTx to RTx 2020-05-26 18:20:37 -07:00
witness_cache_test.go channeldb+witness_beacon: use sha256 lookup+delete witness 2019-02-19 17:06:42 -08:00
witness_cache.go multi: rename ReadTx to RTx 2020-05-26 18:20:37 -07: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