b26560e0f4
This commit adds the method DisconnectBlockAtHeight to the channel graph database, making it possible to "rewind" the database in case a block is disconnected from the main chain. To accomplish this, a prune log is introduced, making it possible to keep track of the point in time where the database was pruned. This is necessary for the case where lnd might wake up on a stale branch, and must "walk backwards" on this branch after it finds a common block fro the graph database and the new main chain. |
||
---|---|---|
.. | ||
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 | ||
migrations.go | ||
nodes_test.go | ||
nodes.go | ||
payments_test.go | ||
payments.go | ||
README.md | ||
waitingproof_test.go | ||
waitingproof.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