lnd/channeldb
yyforyongyu ebbdf78d52
migration30: add iterator to assist migration
This commit adds several utility functions to assist the migration. In
particular, an updateLocator is added to gives us the next un-migration
position in our buckets. This locator helps us to continue the job
in case of an interrupted migration. It also serves as an indicator on
whether the migration is finished or not.
2022-07-12 20:51:45 +08: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-07-07 17:10:27 -04:00
migration30 migration30: add iterator to assist migration 2022-07-12 20:51:45 +08:00
migration_01_to_11 channeldb+migration: export commonly used methods 2022-04-20 01:18:12 +08:00
migtest multi: formatting and comment fixes 2022-02-10 11:02:02 +01: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: BigSize migration, store zero-conf, scid-alias bits 2022-07-07 17:10:27 -04: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 channeldb: BigSize migration, store zero-conf, scid-alias bits 2022-07-07 17:10:27 -04:00
codec.go channeldb: BigSize migration, store zero-conf, scid-alias bits 2022-07-07 17:10:27 -04:00
db.go channeldb: BigSize migration, store zero-conf, scid-alias bits 2022-07-07 17:10:27 -04:00
db_test.go multi: move many t.Fatalf calls to require.NoError 2022-06-17 04:26:55 +00: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.go multi: Fix typos [skip ci] 2022-01-24 12:19:02 +02:00
forwarding_log_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
forwarding_package_test.go multi: move many t.Fatalf calls to require.NoError 2022-06-17 04:26:55 +00:00
graph.go server+funding: allow scid-alias, zero-conf chantypes, scid-alias 2022-07-07 17:10:28 -04:00
graph_cache.go multi: use btcd's btcec/v2 and btcutil modules 2022-03-09 19:02:37 +01:00
graph_cache_test.go channeldb: add new ForEachNode method using the channel graph cache 2021-11-04 15:30:25 -07:00
graph_test.go server+funding: allow scid-alias, zero-conf chantypes, scid-alias 2022-07-07 17:10:28 -04: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 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 multi: move many t.Fatalf calls to require.NoError 2022-06-17 04:26:55 +00:00
mp_payment.go multi: use btcd's btcec/v2 and btcutil modules 2022-03-09 19:02:37 +01:00
mp_payment_test.go channeldb: read raw htlc attempt session key 2021-05-19 09:03:52 +02:00
nodes.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
options.go multi: add keep-failed-payment-attempts flag 2022-07-03 21:04:27 +00:00
options_test.go multi: formatting and comment fixes 2022-02-10 11:02:02 +01:00
paginate.go multi: formatting and comment fixes 2022-02-10 11:02:02 +01:00
payment_control.go channeldb+routing: htlcs are pruned on settle 2022-07-03 21:04:34 +00:00
payment_control_test.go multi: migrate assert.NoError to require.NoError 2022-07-05 16:41:08 +00:00
payments.go channeldb: add CountTotal option to payment query 2022-05-02 12:32:06 +02:00
payments_test.go multi: move many t.Fatalf calls to require.NoError 2022-06-17 04:26:55 +00: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 multi: use btcd's btcec/v2 and btcutil modules 2022-03-09 19:02:37 +01:00
reports_test.go kvdb: move channeldb/kvdb to top level 2021-05-07 14:18:56 +02:00
revocation_log.go channeldb: use BigSize to encode htlc amount 2022-04-20 01:19:40 +08:00
revocation_log_test.go channeldb: fix data race in TestSerializeHTLCEntries 2022-06-28 21:28:04 +08:00
setup_test.go channeldb/test: test with postgres 2021-10-29 10:54:44 +02:00
waitingproof.go multi: run gosimports 2022-02-10 11:02:01 +01:00
waitingproof_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
witness_cache_test.go multi: move many t.Fatalf calls to require.NoError 2022-06-17 04:26:55 +00: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