lnd.xprv/channeldb
Wilmer Paulino 791ba3eb50
discovery: rate limit incoming channel updates
This change was largely motivated by an increase in high disk usage as a
result of channel update spam. With an in memory graph, this would've
gone mostly undetected except for the increased bandwidth usage, which
this doesn't aim to solve yet. To minimize the effects to disks, we
begin to rate limit channel updates in two ways. Keep alive updates,
those which only increase their timestamps to signal liveliness, are now
limited to one per lnd's rebroadcast interval (current default of 24H).
Non keep alive updates are now limited to one per block per direction.
2020-11-25 15:38:08 -08:00
..
kvdb lncfg+channeldb: add config to be able to run lnd on embedded etcd 2020-11-18 15:34:43 +01:00
migration channeldb/migration: add generic CreateTLB migration 2020-05-26 18:55:27 -07:00
migration_01_to_11 multi: add reset closure to kvdb.Update 2020-11-05 17:57:12 +01:00
migration12 channeldb: convert to uniformly use new kvdb abstractions 2020-03-18 19:34:49 -07:00
migration13 channeldb: convert to uniformly use new kvdb abstractions 2020-03-18 19:34:49 -07:00
migration16 channeldb: index payments by sequence number 2020-06-10 12:49:06 +02:00
migtest multi: add reset closure to kvdb.Update 2020-11-05 17:57:12 +01: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 multi: add reset closure to kvdb.Update 2020-11-05 17:57:12 +01:00
channel.go multi: add reset closure to kvdb.Update 2020-11-05 17:57:12 +01:00
codec.go channeldb: index payments by sequence number 2020-06-10 12:49:06 +02:00
db_test.go Merge pull request #4411 from bhandras/test_channeldb 2020-07-31 17:37:13 -07:00
db.go multi: add AutoCompact option to bolt backend 2020-11-13 10:19:49 +01:00
doc.go channeldb: create new channeldb package, update lnwallet to use new API 2015-12-26 12:35:15 -06:00
duplicate_payments.go multi: rename: ReadBucket to RBucket 2020-05-26 18:21:08 -07:00
error.go channeldb+invoices: use payment addr as primary index 2020-05-26 18:55:27 -07:00
fees.go channeldb: create new channeldb package, update lnwallet to use new API 2015-12-26 12:35:15 -06:00
forwarding_log_test.go channeldb: fix for Windows clock resolution 2020-08-05 09:15:03 +02:00
forwarding_log.go multi: add reset closure to kvdb.View 2020-11-05 17:57:12 +01:00
forwarding_package_test.go multi: add reset closure to kvdb.Update 2020-11-05 17:57:12 +01:00
forwarding_package.go htlcswitch: use kvdb.View for loading fwdpkgs 2020-08-13 14:36:48 +02:00
graph_test.go multi: add reset closure to kvdb.Update 2020-11-05 17:57:12 +01:00
graph.go discovery: rate limit incoming channel updates 2020-11-25 15:38:08 -08:00
invoice_test.go channeldb: add DeleteInvoices call 2020-08-05 12:24:15 +02:00
invoices.go multi: add reset closure to kvdb.Update 2020-11-05 17:57:12 +01:00
legacy_serialization.go Revert "channeldb: remove unsupported migrations" 2019-10-12 00:47:45 -07:00
log.go channeldb: implement compaction 2020-11-13 10:19:50 +01:00
meta_test.go multi: add reset closure to kvdb.Update 2020-11-05 17:57:12 +01:00
meta.go multi: add reset closure to kvdb.Update 2020-11-05 17:57:12 +01:00
mp_payment.go routing: return full htlc attempt from shard handler 2020-05-12 19:56:50 +02:00
nodes_test.go channeldb: move makeTestDB out of test to make it available for other tests 2020-07-28 17:57:29 +02:00
nodes.go multi: add reset closure to kvdb.Update 2020-11-05 17:57:12 +01:00
options.go multi: add AutoCompact option to bolt backend 2020-11-13 10:19:49 +01:00
paginate.go channeldb: add a paginator struct to process generic pagination 2020-06-10 12:49:48 +02:00
payment_control_test.go multi: add reset closure to kvdb.View 2020-11-05 17:57:12 +01:00
payment_control.go multi: add reset closure to kvdb.View 2020-11-05 17:57:12 +01:00
payments_test.go multi: add reset closure to kvdb.Update 2020-11-05 17:57:12 +01:00
payments.go multi: add reset closure to kvdb.Update 2020-11-05 17:57:12 +01: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 multi: add reset closure to kvdb.Update 2020-11-05 17:57:12 +01:00
README.md build+multi: switch from bolt to bbolt 2018-03-10 19:01:13 -08: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: add reset closure to kvdb.Update 2020-11-05 17:57:12 +01:00
reports.go multi: add reset closure to kvdb.Update 2020-11-05 17:57:12 +01:00
waitingproof_test.go multi: add reset closure to kvdb.View 2020-11-05 17:57:12 +01:00
waitingproof.go multi: add reset closure to kvdb.Update 2020-11-05 17:57:12 +01:00
witness_cache_test.go channeldb: move makeTestDB out of test to make it available for other tests 2020-07-28 17:57:29 +02:00
witness_cache.go multi: add reset closure to kvdb.View 2020-11-05 17:57:12 +01: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