lnd/channeldb
Andras Banki-Horvath 444524a762
channeldb+lnd: set invoice bucket tombstone after migration
This commit introduces the functionality to set a tombstone key
in the invoice bucket after the migration to the native SQL
database. The tombstone prevents the user from switching back
to the KV invoice database, ensuring data consistency and
avoiding potential issues like lingering invoices or partial
state in KV tables. The tombstone is checked on startup to
block any manual overrides that attempt to revert the migration.
2025-01-23 15:06:09 +01:00
..
migration multi: update to fn v2 2024-12-04 13:19:00 -07:00
migration12 multi: start updating various loggers to use the new v2 type 2024-10-22 17:03:55 +02:00
migration13 multi: start updating various loggers to use the new v2 type 2024-10-22 17:03:55 +02:00
migration16 multi: start updating various loggers to use the new v2 type 2024-10-22 17:03:55 +02:00
migration20 multi: start updating various loggers to use the new v2 type 2024-10-22 17:03:55 +02:00
migration21 chore: fix some comments for struct field 2024-07-16 11:44:35 +08:00
migration23 multi: formatting and comment fixes 2022-02-10 11:02:02 +01:00
migration24 multi: start updating various loggers to use the new v2 type 2024-10-22 17:03:55 +02:00
migration25 multi: start updating various loggers to use the new v2 type 2024-10-22 17:03:55 +02:00
migration26 multi: start updating various loggers to use the new v2 type 2024-10-22 17:03:55 +02:00
migration27 multi: start updating various loggers to use the new v2 type 2024-10-22 17:03:55 +02:00
migration29 multi: start updating various loggers to use the new v2 type 2024-10-22 17:03:55 +02:00
migration30 multi: start updating various loggers to use the new v2 type 2024-10-22 17:03:55 +02:00
migration31 multi: start updating various loggers to use the new v2 type 2024-10-22 17:03:55 +02:00
migration32 multi: update to fn v2 2024-12-04 13:19:00 -07:00
migration33 multi: start updating various loggers to use the new v2 type 2024-10-22 17:03:55 +02:00
migration_01_to_11 multi: start updating various loggers to use the new v2 type 2024-10-22 17:03:55 +02:00
migtest multi: pass in a MigrationConfig to all optional migrations 2023-02-16 20:45:08 +02:00
addr_source.go channeldb: let AddrsForNode indicate if the node was found or not 2024-11-28 13:36:15 +02:00
addr_source_test.go channeldb: let AddrsForNode indicate if the node was found or not 2024-11-28 13:36:15 +02:00
channel.go multi: update to fn v2 2024-12-04 13:19:00 -07:00
channel_test.go multi: update to fn v2 2024-12-04 13:19:00 -07:00
codec.go channeldb/graphdb: move outpoint ser/deser funcs to graphdb 2024-11-28 13:34:08 +02:00
db.go multi: rename chan DB Open method to OpenForTesting 2024-11-28 13:51:15 +02:00
db_test.go multi: rename chan DB Open method to OpenForTesting 2024-11-28 13:51:15 +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 refactor: move graph related DB code to graph/db from channeldb 2024-11-28 13:36:13 +02:00
forwarding_log.go multi: Fix typos [skip ci] 2022-01-24 12:19:02 +02:00
forwarding_log_test.go multi: replace defer cleanup with t.Cleanup 2022-10-13 17:46:54 +08:00
forwarding_package.go channeldb: add convenience functions for generating Source/Dest Refs 2024-09-09 16:53:10 -06:00
forwarding_package_test.go channeldb: fix race in TestPackager by removing global test var 2024-04-26 12:36:53 -07:00
forwarding_policy.go multi+refactor: move models package to graph/db 2024-11-28 13:34:33 +02:00
height_hint.go chainntnfs: move cache implementation to channeldb 2023-01-16 03:13:17 -08:00
height_hint_test.go multi: rename chan DB Open method to OpenForTesting 2024-11-28 13:51:15 +02:00
invoice_test.go channeldb+lnd: set invoice bucket tombstone after migration 2025-01-23 15:06:09 +01:00
invoices.go channeldb+lnd: set invoice bucket tombstone after migration 2025-01-23 15:06:09 +01:00
legacy_serialization.go multi: update "funding locked" comments 2023-04-27 20:02:34 +02:00
log.go multi: start updating various loggers to use the new v2 type 2024-10-22 17:03:55 +02:00
meta.go channeldb: export DB migration related functions 2022-10-13 09:45:07 +02:00
meta_test.go channeldb: remove graph db from channeldb 2024-11-28 13:36:15 +02:00
mp_payment.go channeldb+routing: add new interface method TerminalInfo 2023-11-13 16:09:11 +08:00
mp_payment_test.go routing: add AllowMoreAttempts to decide whether more attempts are allowed 2023-11-13 16:09:11 +08:00
nodes.go channeldb+graph/db: move net.Addr encode/decode to graph db package 2024-11-28 13:34:08 +02:00
nodes_test.go multi: replace defer cleanup with t.Cleanup 2022-10-13 17:46:54 +08:00
options.go channeldb+graphdb: init graph DB outside of channel db 2024-11-28 13:36:15 +02:00
paginate.go multi: formatting and comment fixes 2022-02-10 11:02:02 +01:00
payment_control.go multi: rename nolint:lll to nolint:ll 2024-12-02 09:14:21 +02:00
payment_control_test.go channeldb+rpcserver: return number of deleted payments 2024-11-06 15:30:21 +01:00
payment_status.go channeldb: expand PaymentStatus to explicitly represent payment status 2023-10-06 16:34:47 -07:00
payment_status_test.go channeldb: add unit test for decidePaymentStatus 2023-10-06 16:34:47 -07:00
payments.go channeldb+rpcserver: return number of deleted payments 2024-11-06 15:30:21 +01:00
payments_test.go channeldb+routing: persist first hop custom data for route 2024-09-05 18:00:53 +02:00
peers.go chanfitness: exit early when there are no updates 2024-11-14 01:22:32 +08:00
peers_test.go multi: replace defer cleanup with t.Cleanup 2022-10-13 17:46:54 +08:00
README.md scripted-diff: replace ⛰ emoji with $ [skip ci] 2022-10-28 12:06:49 -04:00
reports.go channeldb/graphdb: move outpoint ser/deser funcs to graphdb 2024-11-28 13:34:08 +02:00
reports_test.go channeldb/graphdb: move outpoint ser/deser funcs to graphdb 2024-11-28 13:34:08 +02:00
revocation_log.go multi: update to fn v2 2024-12-04 13:19:00 -07:00
revocation_log_test.go chore: fix typo 2025-01-05 20:45:35 +08:00
setup_test.go channeldb/test: test with postgres 2021-10-29 10:54:44 +02:00
waitingproof.go multi: rename AnnounceSignatures to AnnounceSignatures1 2024-09-18 16:13:16 +02:00
waitingproof_test.go multi: rename AnnounceSignatures to AnnounceSignatures1 2024-09-18 16:13:16 +02:00
witness_cache.go multi: fix make fmt 2022-08-23 22:10:24 +08:00
witness_cache_test.go multi: replace defer cleanup with t.Cleanup 2022-10-13 17:46:54 +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