lnd/channeldb
Oliver Gugger 0a2ccfc52b
multi: use single read transaction for path finding
This commit partially reverts bf27d05a.
To avoid creating multiple database transactions during a single path
finding operation, we create an explicit transaction when the cached
graph is instantiated.
We cache the source node to avoid needing to look that up for every path
finding session.
The database transaction will be nil in case of the in-memory graph.
2021-10-22 09:32:49 +02:00
..
migration kvdb: move channeldb/kvdb to top level 2021-05-07 14:18:56 +02:00
migration12 kvdb: move channeldb/kvdb to top level 2021-05-07 14:18:56 +02:00
migration13 kvdb: move channeldb/kvdb to top level 2021-05-07 14:18:56 +02:00
migration16 kvdb: move channeldb/kvdb to top level 2021-05-07 14:18:56 +02:00
migration20 kvdb: move channeldb/kvdb to top level 2021-05-07 14:18:56 +02:00
migration21 kvdb: move channeldb/kvdb to top level 2021-05-07 14:18:56 +02:00
migration23 channeldb: migration to flatten the htlc attempts bucket 2021-09-07 10:46:49 +02:00
migration24 channeldb/migration: remove old forwarding packages 2021-09-23 13:22:34 +08:00
migration_01_to_11 kvdb: move channeldb/kvdb to top level 2021-05-07 14:18:56 +02:00
migtest kvdb: move channeldb/kvdb to top level 2021-05-07 14:18:56 +02:00
addr.go channeldb/addr: sanity check onion address length before writing to db 2019-01-17 14:16:15 +01:00
addr_test.go channeldb/addr_test: add tests for invalid onion addresses 2019-01-17 14:16:15 +01:00
channel.go channeldb: add new ChannelType bit for script enforced leased channels 2021-10-19 18:30:19 -07:00
channel_cache.go channeldb/channel_cache: add channelCache w/ randomized eviction 2019-04-01 16:25:31 -07:00
channel_cache_test.go channeldb/channel_cache: add channelCache w/ randomized eviction 2019-04-01 16:25:31 -07:00
channel_test.go multi: move all channelstate operations to ChannelStateDB 2021-09-29 17:00:03 +02:00
codec.go channeldb+htlcswitch: write wire messages using length prefix 2021-02-24 17:15:27 +01:00
db.go lnd+channeldb: add graph cache option to channeldb 2021-10-22 09:32:48 +02:00
db_test.go multi: move all channelstate operations to ChannelStateDB 2021-09-29 17:00:03 +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 channeldb: read raw htlc attempt session key 2021-05-19 09:03:52 +02: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.go kvdb: move channeldb/kvdb to top level 2021-05-07 14:18:56 +02:00
forwarding_log_test.go channeldb: fix for Windows clock resolution 2020-08-05 09:15:03 +02:00
forwarding_package.go channeldb: add method to wipe all forwarding packages 2021-09-23 13:22:33 +08:00
forwarding_package_test.go channeldb: add method to wipe all forwarding packages 2021-09-23 13:22:33 +08:00
graph.go multi: use single read transaction for path finding 2021-10-22 09:32:49 +02:00
graph_cache.go channeldb: fix graph cache feature handling [skip ci] 2021-10-08 10:02:11 +02:00
graph_cache_test.go lnd+channeldb: pre-allocate cache size 2021-09-29 17:00:05 +02:00
graph_test.go lnd+channeldb: add graph cache option to channeldb 2021-10-22 09:32:48 +02:00
invoice_test.go channeldb+invoice: add state filter to HTLCSet 2021-05-10 16:55:17 -07:00
invoices.go Merge pull request #5245 from bhandras/kvdb_module 2021-05-13 15:59:20 -07:00
legacy_serialization.go Revert "channeldb: remove unsupported migrations" 2019-10-12 00:47:45 -07:00
log.go channeldb/migration: remove old forwarding packages 2021-09-23 13:22:34 +08:00
meta.go kvdb: move channeldb/kvdb to top level 2021-05-07 14:18:56 +02:00
meta_test.go kvdb: move channeldb/kvdb to top level 2021-05-07 14:18:56 +02:00
mp_payment.go channeldb: cache htlc attempt session key 2021-05-19 09:08:18 +02:00
mp_payment_test.go channeldb: read raw htlc attempt session key 2021-05-19 09:03:52 +02:00
nodes.go multi: carve out LinkNodeDB from channeldb.DB for cleaner separation 2021-09-29 17:00:02 +02:00
nodes_test.go multi: move all channelstate operations to ChannelStateDB 2021-09-29 17:00:03 +02:00
options.go lnd+channeldb: add graph cache option to channeldb 2021-10-22 09:32:48 +02:00
options_test.go kvdb: move channeldb/kvdb to top level 2021-05-07 14:18:56 +02:00
paginate.go kvdb: move channeldb/kvdb to top level 2021-05-07 14:18:56 +02:00
payment_control.go payments: prefetch payment on hot paths 2021-09-14 13:12:23 +02:00
payment_control_test.go channeldb: add ability to delete a single payment from its ID 2021-09-13 12:50:40 +02:00
payments.go channeldb: add ability to delete a single payment from its ID 2021-09-13 12:50:40 +02:00
payments_test.go channeldb: cache htlc attempt session key 2021-05-19 09:08:18 +02:00
peers.go kvdb: move channeldb/kvdb to top level 2021-05-07 14:18:56 +02:00
peers_test.go multi: store peer flap rate on disk on best effort basis 2020-09-08 13:49:46 +02:00
README.md multi: unify code blocks in READMEs 2021-01-22 09:14:11 +01:00
reject_cache.go channeldb/reject_cache: add rejectCache w/ randomized eviction 2019-04-01 16:25:31 -07:00
reject_cache_test.go channeldb/reject_cache: add rejectCache w/ randomized eviction 2019-04-01 16:25:31 -07:00
reports.go mod+kvdb+channeldb: use btcwallet new DB interface 2021-08-04 14:55:55 +02:00
reports_test.go kvdb: move channeldb/kvdb to top level 2021-05-07 14:18:56 +02:00
waitingproof.go multi: move all channelstate operations to ChannelStateDB 2021-09-29 17:00:03 +02:00
waitingproof_test.go lnwire: prep wire messages for TLV extensions 2021-02-24 17:31:55 +01:00
witness_cache.go kvdb: move channeldb/kvdb to top level 2021-05-07 14:18:56 +02:00
witness_cache_test.go channeldb: move makeTestDB out of test to make it available for other tests 2020-07-28 17:57:29 +02: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