Commit graph

14 commits

Author SHA1 Message Date
Josh Rickmar
39fd9bd0f3 Switch from forked to upstream bolt package. 2016-05-06 14:42:00 -04:00
Josh Rickmar
d2c851431b Rollback namespace transactions when bucket is not found.
This fixes a deadlock where failed transactions due to the namespaces'
bucket being missing would cause deadlocks due to bolt's mmap rwmutex
still being read or write locked (and no way to unlock it, since the
underlying bolt tx was not returned on failure).
2016-04-05 11:50:18 -04:00
Josh Rickmar
fcccae3d1a Manage wallet db namespaces from wallet package.
This changes the wallet.Open function signature to remove the database
namespace parameters.  This is done so that the wallet package itself
is responsible for the location and opening of these namespaces from
the database, rather than requiring the caller to open these ahead of
time.

A new wallet.Create function has also been added.  This function
initializes a new wallet in an empty database, using the same
namespaces as wallet.Open will eventually use.  This relieves the
caller from needing to manage wallet database namespaces explicitly.

Fixes #397.
2016-03-21 11:25:28 -04:00
Josh Rickmar
5140086f6e Use LICENSE file and short license headers. 2016-02-28 22:22:34 -05:00
Dave Collins
c820c8a015 Relicense to the btcsuite developers. 2015-05-01 12:20:05 -05:00
Josh Rickmar
437c7b3e59 Add cursor functionality to walletdb. 2015-04-20 18:20:19 -04:00
Dave Collins
f05ab25696 Update btcwallet import paths to new location. 2015-01-17 00:25:53 -06:00
Dave Collins
caa82e9605 Update bolt import paths to new location. 2015-01-15 22:55:55 -06:00
Dave Collins
cdba2f858c Finish comment in walletdb namespace example. 2014-11-10 22:30:07 -06:00
Dave Collins
c9ee57d53d Correct walletdb README.md example link. 2014-11-10 22:12:59 -06:00
Dave Collins
349931dae9 Add README.md for walletdb and bdb driver. 2014-11-10 16:01:48 -06:00
Dave Collins
15fa0a523c Add examples for walletdb usage. 2014-11-10 16:01:47 -06:00
Dave Collins
d7c00f48d7 Add full test coverage suite for walletdb package. 2014-11-10 16:01:46 -06:00
Dave Collins
e8b4de9379 Implement new namespaced db package named walletdb.
This commit implements a new namespaced db package which  is intended to
be used be wallet and any sub-packages as its data storage mechanism.

- Key/value store
- Namespace support
- Allows multiple packages to have their own area in the database without
  worrying about conflicts
- Read-only and read-write transactions with both manual and managed modes
- Nested buckets
- Supports registration of backend databases
- Comprehensive test coverage
2014-11-10 16:01:45 -06:00