lnd/channeldb
Andras Banki-Horvath c8de7a1699
channeldb: filter AMP state to relevant set IDs
When fetching an AMP invoice we sometimes filter HTLCs to selected set
IDs, however we always kept the full AMP state which is irrelevant as it
contains state for all AMP payments. This was a side effect of
UpdateInvoice needing to serialize the whole invoice when storing after
an update but it is an unwanted "feature" as users will need to filter
to relevant set when listing an AMP payment or subsribing to an update.
2024-09-03 19:40:46 +02:00
..
graphsession multi: add abstraction for Router and SessionSource graph access 2024-07-15 15:13:57 +02:00
migration multi: repleace ioutil.ReadAll 2024-04-25 11:21:18 +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 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 channeldb+migration: export commonly used methods 2022-04-20 01:18:12 +08:00
migration25 multi: wrap all errors 2024-04-11 15:04:03 +02:00
migration26 multi: fix fmt.Errorf error wrapping 2024-02-27 11:13:40 +00:00
migration27 multi: wrap all errors 2024-04-11 15:04:03 +02:00
migration29 channeldb: BigSize migration, store zero-conf, scid-alias bits 2022-07-07 17:10:27 -04:00
migration30 multi: wrap all errors 2024-04-11 15:04:03 +02:00
migration31 multi: Add a channel.db migration. 2023-08-15 10:00:30 +02:00
migration_01_to_11 chore: fix some comments for struct field 2024-07-16 11:44:35 +08:00
migtest multi: pass in a MigrationConfig to all optional migrations 2023-02-16 20:45:08 +02:00
models routing: add inbound fee support for BuildRoute 2024-08-07 14:23:54 +02: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 multi: move DB schemas to channeldb/models 2023-11-08 14:50:35 +02:00
channel_cache.go channeldb/channel_cache: add channelCache w/ randomized eviction 2019-04-01 16:25:31 -07:00
channel_test.go channeldb: convert RevocationLog to use RecordT 2024-08-28 13:22:48 +02:00
channel.go lnwallet: add TLV blob to PaymentDescriptor + htlc add 2024-08-28 13:21:12 +02:00
codec.go multi: wrap all errors 2024-04-11 15:04:03 +02:00
db_test.go multi: break ChannelConstraints into two sub-structures 2024-08-01 12:00:32 -07:00
db.go refactor: create FetchLightningNode with no tx param 2024-07-15 15:13:57 +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 channeldb: add PutClosedScid and IsClosedScid 2024-08-27 14:11:05 -04: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: fix race in TestPackager by removing global test var 2024-04-26 12:36:53 -07:00
forwarding_package.go channeldb+htlcswitch: make sure circuit is not nil in teardownCircuit 2024-08-07 22:17:59 +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 routing: add inbound fee support to pathfinding 2024-03-31 18:12:28 +02:00
graph_cache.go routing: add inbound fee support to pathfinding 2024-03-31 18:12:28 +02:00
graph_test.go channeldb: add PutClosedScid and IsClosedScid 2024-08-27 14:11:05 -04:00
graph.go channeldb: add PutClosedScid and IsClosedScid 2024-08-27 14:11:05 -04: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 invoices: move InvoiceDB tests unrelated to kvdb to invoices package 2024-02-19 20:47:24 +01:00
invoices.go channeldb: filter AMP state to relevant set IDs 2024-09-03 19:40:46 +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 routing: add AllowMoreAttempts to decide whether more attempts are allowed 2023-11-13 16:09:11 +08:00
mp_payment.go channeldb+routing: add new interface method TerminalInfo 2023-11-13 16:09:11 +08: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: fix and enhance logging 2024-08-07 22:17:58 +08:00
payment_control.go routing: fix and enhance logging 2024-08-07 22:17:58 +08: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: fix timestamp filters for payment query 2024-02-05 15:26:49 +08:00
payments.go routing: new failure reason for cancelled payments 2024-08-01 10:24:08 +02: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 HtlcIndex to HTLCEntry 2024-08-28 13:24:04 +02:00
revocation_log.go channeldb: add HtlcIndex to HTLCEntry 2024-08-28 13:24:04 +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