19d84dd1cc
In this commit, we migrate the database away from a partially migrated state. In a prior commit, we migrated the database in order to update the Invoice struct with three new fields: add index, settle index, paid amt. However, it was overlooked that the OutgoingPayment struct also embedded an Invoice within it. As a result, nodes that upgraded to the first migration found themselves unable to start up, or call listpayments, as the internal invoice within the OutgoignPayment hadn't yet been updated. This would result in an OOM typically as we went to allocate a slice with a integer that should have been small, but may have ended up actually being a set of random bytes, so a very large number. In this commit, we finish the DB migration by also migrating the internal invoice within each OutgoingPayment. Fixes #1538. Fixes #1546. |
||
---|---|---|
.. | ||
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