lnd/channeldb
Olaoluwa Osuntokun b399203e71
lnwallet: update channel state machine to be aware of tweakless commits
In this commit, we update the channel state machine to be aware of
tweakless commits. In several areas, we'll now check the channel's type
to see if it's `SingleFunderTweakless`. If so, then we'll opt to use the
remote party's non-delay based point directly in the script, skipping
any additional cryptographic operations. Along the way we move the
`validateCommitmentSanity` method to be defined _before_ it's used as is
cutomary within the codebase.

Notably, within the `NewUnilateralCloseSummary` method, we'll now _blank
out_ the `SingleTweak` value if the commitment is tweakless. This
indicates to callers the witness type they should map to, as the value
isn't needed at all any longer when sweeping a non-delay output.

We also update the signing+verification tests to also test that we're
able to properly generate a valid witness for the new tweakless
commitment format.
2019-09-25 18:25:43 -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/channel: add BroadcastedCommitment 2019-09-25 14:04:43 +02:00
channel.go lnwallet: update channel state machine to be aware of tweakless commits 2019-09-25 18:25:43 -07:00
codec.go channeldb: Fix dropped error in migrations test 2019-09-12 15:49:21 +00:00
db_test.go channeldb/channel: remove unused FullSync method 2019-09-25 14:04:42 +02:00
db.go channeldb: remove unsupported migrations 2019-09-13 10:13:00 +02:00
doc.go channeldb: create new channeldb package, update lnwallet to use new API 2015-12-26 12:35:15 -06:00
error.go channeldb: require minimum db upgrade version 2019-09-13 10:12:58 +02: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: add a set of initial tests for the ForwardingLog 2018-03-06 13:56:09 -05:00
forwarding_log.go multi: switch from bolt packge to bbolt package for all imports 2018-11-29 20:33:49 -08:00
forwarding_package_test.go multi: switch from bolt packge to bbolt package for all imports 2018-11-29 20:33:49 -08:00
forwarding_package.go multi: remove dead code 2019-09-10 17:21:59 +02:00
graph_test.go channeldb: add forward fee calculation function 2019-09-17 11:11:02 +02:00
graph.go Merge pull request #3440 from joostjager/buildroute 2019-09-24 20:24:24 -07:00
invoice_test.go invoices: replay awareness 2019-09-04 19:20:31 +02:00
invoices.go invoices: return accept height in hodl event 2019-09-16 10:10:16 +02:00
log.go multi: init subsystem loggers via build pkg 2018-10-05 13:04:45 +09:00
meta_test.go channeldb test: add TestOutgoingPaymentsMigration 2019-05-27 20:18:57 +02:00
meta.go multi: switch from bolt packge to bbolt package for all imports 2018-11-29 20:33:49 -08:00
migration_10_route_tlv_records.go channeldb: update route.Hop serialization to include new EOB related fields 2019-08-22 18:53:04 -07:00
migration_11_invoices_test.go channeldb+invoices: add invoice htlcs 2019-09-04 19:20:17 +02:00
migration_11_invoices.go channeldb+invoices: add invoice htlcs 2019-09-04 19:20:17 +02:00
migrations_test.go channeldb: remove unsupported migrations 2019-09-13 10:13:00 +02:00
nodes_test.go channeldb: add DeleteLinkNode method 2018-07-17 17:35:25 -07:00
nodes.go channeldb: add new AddrsForNode method 2019-01-28 20:24:22 -08:00
options.go channeldb/options: add Options w/ functional modifiers 2019-04-01 16:33:13 -07:00
payment_control_test.go channeldb/test: make route comparison a pure function 2019-09-10 15:46:49 +02:00
payment_control.go channeldb: return errors in various missed places 2019-09-09 02:41:43 -07:00
payments_test.go channeldb: remove unsupported migrations 2019-09-13 10:13:00 +02:00
payments.go channeldb: update route.Hop serialization to include new EOB related fields 2019-08-22 18:53:04 -07: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
waitingproof_test.go channeldb: Fix dropped error in migrations test 2019-09-12 15:49:21 +00:00
waitingproof.go multi: switch from bolt packge to bbolt package for all imports 2018-11-29 20:33:49 -08:00
witness_cache_test.go channeldb+witness_beacon: use sha256 lookup+delete witness 2019-02-19 17:06:42 -08:00
witness_cache.go channeldb+witness_beacon: use sha256 lookup+delete witness 2019-02-19 17:06:42 -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