mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-04-15 23:41:04 +02:00
This commit modifies the ForEachNode on the ChannelGraph and ForEachChannel on the LightningNode struct to accept a database transaction as its first argument. With this change, it’ll now be possible to implement graph traversals that typically required a nested loop with all the vertex loaded into memory using the callback API instead: c.ForEachNode(nil, func(tx, node) { node.ForEachChannel(tx, func(…) { }) })
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