bitcoinberkeley-db

How to open local bitcoin database


I am trying to extract data from local bitcoin database. As I know, bitcoin-qt is using BerkeleyDB. I have installed BerkleyDB from Oracle web site, and found there a DLL for .NET: libdb_dotnet60.dll. I am trying to open a file, but I get a DatabaseException. Here is my code:

using BerkeleyDB;

class Program
{
    static void Main(string[] args)
    {
        var btreeConfig = new BTreeDatabaseConfig();
        var btreeDb = BTreeDatabase.Open(@"c:\Users\<user>\AppData\Roaming\Bitcoin\blocks\blk00000.dat", btreeConfig);
    }
}

Does anyone have examples how to work with a Bitcoin database (in any other language)?


Solution

  • What are you trying to extract? Only the wallet.dat file is Berkeley database.

    Blocks are stored one after the other in the blkxxxxx.dat files with four bytes representing a network identifier and four bytes giving the block size, before each block.

    An index for unspent outputs in stored as a leveldb database.

    Knowing what type of information you are looking for would help.