lnd/channeldb
Andrew Naoum 0f161c5033 channeldb+lnrpc: store the payment pre-image not rhash
Fixes #481.

Prior to this commit, payments stored in the channel DB only kept a
record of the payment hash. This is a problem as the preimage is what
serves as proof of payment and a user should be able to look up this
value in the future (not just immediately after payment).

Instead of storing both the payment hash and the preimage, we store the
preimage only since the hash can be derrived from this using a SHA256.

In the RPC listpayments command, we now give the preimage in addition to
the payment hash.
2018-01-27 18:36:33 -08:00
..
channel_test.go channeldb: fix channel_test scoping error 2017-12-03 16:34:52 -08:00
channel.go channeldb: add new LatestCommitments and RemoteRevocationStore methods 2018-01-22 19:19:51 -08:00
codec.go channeldb: add ChannelFlags to OpenChannel struct 2017-12-17 18:35:34 -08:00
db_test.go multi: run all test instances in parallel 2017-06-17 01:00:07 +02:00
db.go channeldb/db: adds FetchClosedChannel 2018-01-24 15:38:50 -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: 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 multi: fix several typos in godoc comments 2017-12-17 18:40:05 -08:00
invoice_test.go channeldb: update channeldb to set and store SettleDate for invoices 2017-12-08 16:50:04 -08:00
invoices.go channeldb: update channeldb to set and store SettleDate for invoices 2017-12-08 16:50:04 -08: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+lnrpc: store the payment pre-image not rhash 2018-01-27 18:36:33 -08:00
payments.go channeldb+lnrpc: store the payment pre-image not rhash 2018-01-27 18:36:33 -08: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
witness_cache_test.go channeldb: add new WitnessCache structure 2018-01-22 19:19:37 -08:00
witness_cache.go channeldb: add new WitnessCache structure 2018-01-22 19:19:37 -08: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