lnd/channeldb
yyforyongyu 65a2f3ac81 channeldb: add optional meta and migration30
This commit enables the db to run optional migrations that are specified
by config flags. To achieve this, an optional meta is introduced to
manage the optional migrations. We distinguish the two types of
migrations here so it's easier to manage them for the concern a future
migration can cause trouble for us to determine the db version if we
don't.
2022-08-12 17:05:24 -07:00
..
migration multi: typo fixes [skip ci] 2022-05-03 20:55:40 +00: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: export channel status field in migration25 2022-05-23 03:55:00 +08:00
migration26 multi: export channel status field in migration25 2022-05-23 03:55:00 +08:00
migration27 migration27: add unit test to cover ChanStatusRestored 2022-05-23 05:13:56 +08:00
migration29 channeldb: BigSize migration, store zero-conf, scid-alias bits 2022-08-12 16:58:16 -07:00
migration30 migration30: add benchmark test 2022-08-12 17:05:24 -07:00
migration_01_to_11 channeldb+migration: export commonly used methods 2022-04-20 01:18:12 +08:00
migtest migration30+migtest: add unit tests for migration 2022-08-12 17:05:24 -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 channeldb: BigSize migration, store zero-conf, scid-alias bits 2022-08-12 16:58:16 -07:00
channel.go channeldb: BigSize migration, store zero-conf, scid-alias bits 2022-08-12 16:58:16 -07:00
codec.go channeldb: BigSize migration, store zero-conf, scid-alias bits 2022-08-12 16:58:16 -07:00
db_test.go multi: move many t.Fatalf calls to require.NoError 2022-06-17 04:26:55 +00:00
db.go channeldb: add optional meta and migration30 2022-08-12 17:05:24 -07:00
duplicate_payments.go multi: use btcd's btcec/v2 and btcutil modules 2022-03-09 19:02:37 +01:00
error.go channeldb+invoices: use payment addr as primary index 2020-05-26 18:55:27 -07:00
forwarding_log_test.go multi: move many t.Fatalf calls to require.NoError 2022-06-17 04:26:55 +00:00
forwarding_log.go multi: Fix typos [skip ci] 2022-01-24 12:19:02 +02:00
forwarding_package_test.go multi: move many t.Fatalf calls to require.NoError 2022-06-17 04:26:55 +00:00
forwarding_package.go channeldb: add method to wipe all forwarding packages 2021-09-23 13: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 server+funding: allow scid-alias, zero-conf chantypes, scid-alias 2022-08-12 16:58:16 -07:00
graph.go server+funding: allow scid-alias, zero-conf chantypes, scid-alias 2022-08-12 16:58:16 -07:00
invoice_test.go multi: move many t.Fatalf calls to require.NoError 2022-06-17 04:26:55 +00:00
invoices.go channeldb+invoices: refactor invoice logic when updating 2022-05-11 13:57:46 -04:00
legacy_serialization.go Revert "channeldb: remove unsupported migrations" 2019-10-12 00:47:45 -07:00
log.go migration30: add migration to convert old revocation logs 2022-08-12 17:05:24 -07:00
meta_test.go channeldb: add optional meta and migration30 2022-08-12 17:05:24 -07:00
meta.go channeldb: add optional meta and migration30 2022-08-12 17:05:24 -07:00
mp_payment_test.go channeldb: read raw htlc attempt session key 2021-05-19 09:03:52 +02:00
mp_payment.go multi: use btcd's btcec/v2 and btcutil modules 2022-03-09 19:02:37 +01:00
nodes_test.go multi: move many t.Fatalf calls to require.NoError 2022-06-17 04:26:55 +00:00
nodes.go multi: use btcd's btcec/v2 and btcutil modules 2022-03-09 19:02:37 +01:00
options_test.go multi: formatting and comment fixes 2022-02-10 11:02:02 +01:00
options.go channeldb: add optional meta and migration30 2022-08-12 17:05:24 -07:00
paginate.go multi: formatting and comment fixes 2022-02-10 11:02:02 +01:00
payment_control_test.go multi: migrate assert.NoError to require.NoError 2022-08-12 16:57:31 -07:00
payment_control.go channeldb+routing: htlcs are pruned on settle 2022-08-12 16:57:03 -07:00
payments_test.go multi: move many t.Fatalf calls to require.NoError 2022-06-17 04:26:55 +00:00
payments.go channeldb: add CountTotal option to payment query 2022-05-02 12:32:06 +02:00
peers_test.go multi: store peer flap rate on disk on best effort basis 2020-09-08 13:49:46 +02:00
peers.go kvdb: move channeldb/kvdb to top level 2021-05-07 14:18:56 +02:00
README.md multi: unify code blocks in READMEs 2021-01-22 09:14:11 +01: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 kvdb: move channeldb/kvdb to top level 2021-05-07 14:18:56 +02: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: fix data race in TestSerializeHTLCEntries 2022-08-12 16:41:00 -07:00
revocation_log.go channeldb: use BigSize to encode htlc amount 2022-04-20 01:19:40 +08:00
setup_test.go channeldb/test: test with postgres 2021-10-29 10:54:44 +02:00
waitingproof_test.go multi: move many t.Fatalf calls to require.NoError 2022-06-17 04:26:55 +00:00
waitingproof.go multi: run gosimports 2022-02-10 11:02:01 +01:00
witness_cache_test.go multi: move many t.Fatalf calls to require.NoError 2022-06-17 04:26:55 +00:00
witness_cache.go kvdb: move channeldb/kvdb to top level 2021-05-07 14:18:56 +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