e8e53a4b91
This commit fixes a bug which would previously lead to corruption of the channel state when a node had one or more channels open and one of them was closed either forcibly or cooperatively. The source of the bug itself as a typo: rather than using the construed `deliveryKey` variable to fetch/put/delete the delivery scripts, `deliveryScriptsKey` (the key prefix itself) as used. This bug would cause the database to be unable to read _any_ channel from the database after one was deleted, as each channel would actually be reading/writing-to the _exact same_ delivery script. The fix for the bug itself is simple: eliminate the typo. |
||
---|---|---|
.. | ||
channel_test.go | ||
channel.go | ||
db_test.go | ||
db.go | ||
doc.go | ||
error.go | ||
fees.go | ||
graph_test.go | ||
graph.go | ||
invoice_test.go | ||
invoices.go | ||
log.go | ||
meta_test.go | ||
meta.go | ||
nodes_test.go | ||
nodes.go | ||
payments_test.go | ||
payments.go | ||
README.md |
channeldb
[] (https://travis-ci.org/lightningnetwork/lnd) [] (https://github.com/lightningnetwork/lnd/blob/master/LICENSE) [] (http://godoc.org/github.com/lightningnetwork/lnd/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