lnd/channeldb
Olaoluwa Osuntokun fe3c3642e2
channeldb: use the Batch method when writing payment details
This commit implements an easy optimization by using bolt db’s Batch
method when writing payment details to disk. The AddPaymnent method can
be concurrently called by thousands of grouting due to the way the
payment dispatch pipeline is architected. With this commit, we shave of
a significant amount of running time when users are sending thousands
of payments a second as what would’ve been thousands of writes can now
be coalesced into one or two writes!
2017-04-11 22:02:09 -07:00
..
README.md multi: fix formatting issues in packge README's 2017-03-27 16:25:25 -07:00
channel.go channeldb: add new method to channel state, RevocationLogTail 2017-03-24 16:09:14 -07:00
channel_test.go channeldb: add new method to channel state, RevocationLogTail 2017-03-24 16:09:14 -07:00
db.go lnd: fix latest goclean.sh lint warning 2017-03-13 16:30:23 -07:00
db_test.go channeldb: fix warnings found by `go vet` 2017-02-07 16:52:04 -08: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: add ErrEdgeAlreadyExist error 2017-03-29 19:49:05 -07:00
fees.go channeldb: create new channeldb package, update lnwallet to use new API 2015-12-26 12:35:15 -06:00
graph.go routing+channeldb: add AddProof method 2017-03-29 19:49:05 -07:00
graph_test.go channeldb: add storing of node signature and add edge signature 2017-03-29 19:49:05 -07:00
invoice_test.go multi: replace usage of fastsha256 with crypto/sha256 2017-03-15 18:56:41 -07:00
invoices.go multi: replace usage of fastsha256 with crypto/sha256 2017-03-15 18:56:41 -07:00
log.go multi: create lnd's logging infrastructure 2016-03-22 18:43:10 -07:00
meta.go lnd: fix gosimple warnings 2017-03-13 16:30:23 -07:00
meta_test.go lnd: partially fix golint warnings 2017-03-13 16:30:23 -07:00
migrations.go channedb: add db migration for databases before delivery script bug fix 2017-02-08 13:05:45 -08:00
nodes.go lnd: fix gosimple warnings 2017-03-13 16:30:23 -07:00
nodes_test.go channeldb: add bucket for storing p2p counterparty meta-data 2016-10-25 16:06:32 -07:00
payments.go channeldb: use the Batch method when writing payment details 2017-04-11 22:02:09 -07:00
payments_test.go multi: replace usage of fastsha256 with crypto/sha256 2017-03-15 18:56:41 -07:00

README.md

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