lnd.xprv/channeldb
Olaoluwa Osuntokun 4ae0b008ed
channeldb: modify storage of OpenChannel struct to use new codec.go
In this commit we comptely overhaul the existing storage of the
OpenChannel struct to use the new common serialization defined within
the codec.go file. Additionally, we’ve modified the structure of the
channel database on disk. Rather then use the existing prefix based
segmentation, everything is now bucket based. This has resulted in much
simpler and easier to follow code. The bucket progression is:
openChannelBucket -> nodeBucket -> chainBucket -> channelBucket. We add
a chainBucket as it’s possible that in the future we may have several
channels on distinct chains with a given node.

With the above changes, we’re able to delete much of the existing code
within the file, drastically reducing its size.
2017-11-10 19:50:44 -08:00
..
channel_test.go channeldb: add persistance of the onion blob 2017-11-09 16:38:58 -08:00
channel.go channeldb: modify storage of OpenChannel struct to use new codec.go 2017-11-10 19:50:44 -08:00
codec.go channeldb: add new codec.go file which houses common serialization funcs 2017-11-09 19:44:37 -08:00
db_test.go multi: run all test instances in parallel 2017-06-17 01:00:07 +02:00
db.go lnw+ba+utxon+cdb: reverts OutPoint and TxOut encoding 2017-08-25 17:56:50 -07:00
doc.go channeldb: create new channeldb package, update lnwallet to use new API 2015-12-26 12:35:15 -06:00
error.go channeldb: fix type in ErrSourceNodeNotSet comment 2017-07-30 17:48:01 -07:00
fees.go channeldb: create new channeldb package, update lnwallet to use new API 2015-12-26 12:35:15 -06:00
graph_test.go channeldb: add DisconnectBlockAtHeight 2017-11-03 00:05:19 +01:00
graph.go channeldb: add DisconnectBlockAtHeight 2017-11-03 00:05:19 +01:00
invoice_test.go multi: Fix various typos. 2017-10-25 13:20:54 -07:00
invoices.go channeldb: use binary.Read/Write in invoices.go 2017-10-02 23:13:47 -07:00
log.go lnd: remove seelog logger 2017-06-25 14:19:56 +01:00
meta_test.go multi: run all test instances in parallel 2017-06-17 01:00:07 +02:00
meta.go lnd: fix gosimple warnings 2017-03-13 16:30:23 -07:00
migrations.go channeldb: remove prior migrations as their no longer needed 2017-07-30 17:47:58 -07:00
nodes_test.go multi: run all test instances in parallel 2017-06-17 01:00:07 +02:00
nodes.go lnd: fix gosimple warnings 2017-03-13 16:30:23 -07:00
payments_test.go channeldb: store payment request with invoices 2017-09-27 12:26:04 +02:00
payments.go channeldb: update the OutgoingPayment struct to use lnwire.MilliSatoshi 2017-08-22 00:52:12 -07:00
README.md multi: fix formatting issues in packge README's 2017-03-27 16:25:25 -07:00
waitingproof_test.go multi: run all test instances in parallel 2017-06-17 01:00:07 +02:00
waitingproof.go channeldb: use binary.Read/Write in waitingproof.go 2017-10-02 23:13:47 -07:00

channeldb

Build Status MIT licensed GoDoc

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