Looks like it uses it's own DB, I would prefer the one I have an idea for to use the same database files as the QT wallet. Just copy in to a dir and it would work. Might be worth trying to fork and updating.
I don't think there is a BDB adapter for JS, so this would likely be a large undertaking.
Not sure. Googled it. Would https://github.com/mcavage/node-bdb
, be it?
I stand corrected. However that adapter hasn't been worked on in a year it looks like there is still more to work on.
However, there are a few important notes to be aware of with the node environment; since node is written to abstract away concurrency from you, and BDB is written to assume you have complete control over your concurrency model, there are some complications:
Since environment/database open/close can only be done by one thread of control, these bindings don't have an asynchronous open/close. Best practice is to open everything at startup time (e.g., before you do a listen()).
Transactions can't be active in more than one thread at a time. That pretty much screws the pooch for node, unless I did something like what the erlang driver does, and maintain a thread pool that "routes" any request involving a transaction to the same thread. Possible, but that's going to bring a lot of context switches, and I would need a compelling reason to add in all that complexity. For now, all operations in DB are protected by a transaction (assuming you opened the DB transactionally), and I plan on adding a conditionalUpdate API in the near future.
Because of transactional complications, there is not yet cursor support. This is on my list to add with something like an EventEmitter.
Maybe you could use node-bdb to import the wallet.dat into the wallet format that bitcoinjs uses. Then the concurrency issues won't be a problem since you are only reading from the satoshi wallet.