lnd/channeldb
András Bánki-Horváth ad5cd9c8bb
multi: extend InvoiceDB methods with a context argument (#8066)
* multi: extend InvoiceDB methods with a context argument

This commit adds a context to InvoiceDB's methods. Along this refactor
we also extend InvoiceRegistry methods with contexts where it makes
sense. This change is essential to be able to provide kvdb and sqldb
implementations for InvoiceDB.

* channeldb: restrict invoice tests to only use an InvoiceDB instance

* docs: update release notes for 0.18.0
2023-10-11 13:42:59 +02:00
..
migration multi: rename due to required maxHTLC bit 2023-02-21 11:10:39 +01: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 multi: use btcd's btcec/v2 and btcutil modules 2022-03-09 19:02:37 +01:00
migration23 multi: formatting and comment fixes 2022-02-10 11:02:02 +01:00
migration24 channeldb+migration: export commonly used methods 2022-04-20 01:18:12 +08:00
migration25 multi: fix make fmt 2022-08-23 22:10:24 +08:00
migration26 multi: fix make fmt 2022-08-23 22:10:24 +08:00
migration27 multi: fix make fmt 2022-08-23 22:10:24 +08:00
migration29 channeldb: BigSize migration, store zero-conf, scid-alias bits 2022-07-07 17:10:27 -04:00
migration30 channeldb: add local and remote balance to revocation log 2023-02-16 20:47:35 +02:00
migration31 multi: Add a channel.db migration. 2023-08-15 10:00:30 +02:00
migration_01_to_11 multi: update lightning-onion version 2023-08-23 12:09:53 +02:00
migtest multi: pass in a MigrationConfig to all optional migrations 2023-02-16 20:45:08 +02:00
models channeldb+funding: move policy encoding into channel DB 2023-08-22 06:22:33 +08: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 channeldb: store extra HTLC data in variable onion blob slot 2023-06-02 11:01:44 -04:00
channel.go docs: fix simple-taproot-channels typo [skip ci] (#7926) 2023-08-25 15:48:37 -07:00
codec.go channeldb: BigSize migration, store zero-conf, scid-alias bits 2022-07-07 17:10:27 -04:00
db_test.go channeldb: add a FetchChannelByID method 2023-04-24 13:15:40 +02:00
db.go multi: extend InvoiceDB methods with a context argument (#8066) 2023-10-11 13:42:59 +02:00
duplicate_payments.go channeldb: return error when payment is not found in duplicate payments 2023-10-06 16:34:47 -07:00
error.go multi: break invoice depenency on channeldb 2023-01-16 07:31:09 -08:00
forwarding_log_test.go multi: replace defer cleanup with t.Cleanup 2022-10-13 17:46:54 +08:00
forwarding_log.go multi: Fix typos [skip ci] 2022-01-24 12:19:02 +02:00
forwarding_package_test.go channeldb: use T.TempDir to create temporary test directory 2022-08-24 08:58:16 +08:00
forwarding_package.go channeldb: add method to wipe all forwarding packages 2021-09-23 13:22:33 +08:00
forwarding_policy.go channeldb+funding: move policy encoding into channel DB 2023-08-22 06:22:33 +08:00
graph_cache_test.go channeldb: add new ForEachNode method using the channel graph cache 2021-11-04 15:30:25 -07:00
graph_cache.go multi: use btcd's btcec/v2 and btcutil modules 2022-03-09 19:02:37 +01:00
graph_test.go multi: rename due to required maxHTLC bit 2023-02-21 11:10:39 +01:00
graph.go lnwire: update Sig to support both ECDSA and schnorr sigs 2023-08-22 16:29:19 -07:00
height_hint_test.go chainntnfs: move cache implementation to channeldb 2023-01-16 03:13:17 -08:00
height_hint.go chainntnfs: move cache implementation to channeldb 2023-01-16 03:13:17 -08:00
invoice_test.go multi: extend InvoiceDB methods with a context argument (#8066) 2023-10-11 13:42:59 +02:00
invoices.go multi: extend InvoiceDB methods with a context argument (#8066) 2023-10-11 13:42:59 +02:00
legacy_serialization.go multi: update "funding locked" comments 2023-04-27 20:02:34 +02:00
log.go multi: Add a channel.db migration. 2023-08-15 10:00:30 +02:00
meta_test.go multi: pass in a MigrationConfig to all optional migrations 2023-02-16 20:45:08 +02:00
meta.go channeldb: export DB migration related functions 2022-10-13 09:45:07 +02:00
mp_payment_test.go channeldb+routing: add NeedWaitAttempts to decide waiting for attempts 2023-10-06 16:38:33 -07:00
mp_payment.go routing+channeldb: use HTLCAttempt instead of HTLCAttemptInfo 2023-10-06 16:38:33 -07:00
nodes_test.go multi: replace defer cleanup with t.Cleanup 2022-10-13 17:46:54 +08:00
nodes.go multi: fix make fmt 2022-08-23 22:10:24 +08:00
options_test.go multi: formatting and comment fixes 2022-02-10 11:02:02 +01:00
options.go multi: add new NoRevLogAmtData config option 2023-02-16 20:47:29 +02:00
paginate.go multi: formatting and comment fixes 2022-02-10 11:02:02 +01:00
payment_control_test.go routing+channeldb: use HTLCAttempt instead of HTLCAttemptInfo 2023-10-06 16:38:33 -07:00
payment_control.go channeldb+routing: add NeedWaitAttempts to decide waiting for attempts 2023-10-06 16:38:33 -07:00
payment_status_test.go channeldb: add unit test for decidePaymentStatus 2023-10-06 16:34:47 -07:00
payment_status.go channeldb: expand PaymentStatus to explicitly represent payment status 2023-10-06 16:34:47 -07:00
payments_test.go multi: add blinded path TLVs to onion payload / hops 2023-10-06 16:38:33 -07:00
payments.go multi: add blinded path TLVs to onion payload / hops 2023-10-06 16:38:33 -07:00
peers_test.go multi: replace defer cleanup with t.Cleanup 2022-10-13 17:46:54 +08:00
peers.go kvdb: move channeldb/kvdb to top level 2021-05-07 14:18:56 +02:00
README.md scripted-diff: replace ⛰ emoji with $ [skip ci] 2022-10-28 12:06:49 -04: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
reports_test.go multi: replace defer cleanup with t.Cleanup 2022-10-13 17:46:54 +08:00
reports.go multi: use btcd's btcec/v2 and btcutil modules 2022-03-09 19:02:37 +01:00
revocation_log_test.go channeldb: add local and remote balance to revocation log 2023-02-16 20:47:35 +02:00
revocation_log.go channeldb: add local and remote balance to revocation log 2023-02-16 20:47:35 +02:00
setup_test.go channeldb/test: test with postgres 2021-10-29 10:54:44 +02:00
waitingproof_test.go multi: replace defer cleanup with t.Cleanup 2022-10-13 17:46:54 +08:00
waitingproof.go multi: run gosimports 2022-02-10 11:02:01 +01:00
witness_cache_test.go multi: replace defer cleanup with t.Cleanup 2022-10-13 17:46:54 +08:00
witness_cache.go multi: fix make fmt 2022-08-23 22:10:24 +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