086b44c1f4
This commit synchronizes the in-memory cache with the on-disk state to ensure the waiting proof store is externally consistent. Currently, there are scenarios where the in-memory state is updated, and not reverted if the write fails. The general fix is to wait to apply modifications until the write succeeds, and use a read/write lock to synchronize access with db operations. |
||
---|---|---|
.. | ||
addr_test.go | ||
addr.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 | ||
migrations.go | ||
nodes_test.go | ||
nodes.go | ||
payments_test.go | ||
payments.go | ||
README.md | ||
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