b399203e71
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. |
||
---|---|---|
.. | ||
addr_test.go | ||
addr.go | ||
channel_cache_test.go | ||
channel_cache.go | ||
channel_test.go | ||
channel.go | ||
codec.go | ||
db_test.go | ||
db.go | ||
doc.go | ||
error.go | ||
fees.go | ||
forwarding_log_test.go | ||
forwarding_log.go | ||
forwarding_package_test.go | ||
forwarding_package.go | ||
graph_test.go | ||
graph.go | ||
invoice_test.go | ||
invoices.go | ||
log.go | ||
meta_test.go | ||
meta.go | ||
migration_10_route_tlv_records.go | ||
migration_11_invoices_test.go | ||
migration_11_invoices.go | ||
migrations_test.go | ||
nodes_test.go | ||
nodes.go | ||
options.go | ||
payment_control_test.go | ||
payment_control.go | ||
payments_test.go | ||
payments.go | ||
README.md | ||
reject_cache_test.go | ||
reject_cache.go | ||
waitingproof_test.go | ||
waitingproof.go | ||
witness_cache_test.go | ||
witness_cache.go |
channeldb
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