Bitcoin Forum

Economy => Services => Topic started by: Hampi on March 19, 2018, 08:38:59 AM



Title: Wallet.dat file version Bitcoin-0.1.0
Post by: Hampi on March 19, 2018, 08:38:59 AM
Hi guys,

got a special request, do you have an old Wallet.dat file (needs to be used, ie with incoming and outgoing transactions, even a very small transactions will do) from the very 1st Bitcoin Software version 0.1.0 (can be also 0.1.1-0.1.9).

Obviously need to file WITHOUT any coins on it, ;)

If you have such a file, I am happy to pay something small for it.

thanks very much for getting back to me.



Title: Re: Wallet.dat file version Bitcoin-0.1.0
Post by: achow101 on March 19, 2018, 05:06:10 PM
You can just make your own by downloading and using Bitcoin 0.1.0. It is available from http://satoshi.nakamotoinstitute.org/code/


Title: Re: Wallet.dat file version Bitcoin-0.1.0
Post by: Hampi on March 20, 2018, 08:18:31 AM
Hi..thanks for this, however, i am trying to recover a wallet file done on 0.1.0, for that I need the data structure, which I can only get if there were transactions. Unfortunately this version will not connect anymore to the network. Hence my question for an old wallet (used) with version 0.1.0 or 0.1.3

any help is appreciated.





Title: Re: Wallet.dat file version Bitcoin-0.1.0
Post by: starmyc on March 20, 2018, 10:11:07 AM
Hi..thanks for this, however, i am trying to recover a wallet file done on 0.1.0, for that I need the data structure, which I can only get if there were transactions. Unfortunately this version will not connect anymore to the network. Hence my question for an old wallet (used) with version 0.1.0 or 0.1.3

any help is appreciated.


If it will not connect anymore, did you consider recreating a new blockchain using one or two instance of this version, mine a few blocks, create a few transactions, so you'll able to generate a wallet sample ? This is what I would do.

If you don't think to be able to do it, I guess I could take a look.


Title: Re: Wallet.dat file version Bitcoin-0.1.0
Post by: Hampi on March 20, 2018, 11:22:46 AM
ok, let me get back to you


Title: Re: Wallet.dat file version Bitcoin-0.1.0
Post by: achow101 on March 20, 2018, 06:56:33 PM
Bitcoin 0.1.0 uses BDB 4.7 for its wallet database (the wallet file is just a BDB database file). So you can use the utilities packaged with BDB 4.7 to extract the data from the file without needing to actually understand the format. Use db_dump to dump the contents of the database and find the things that you need. Presumably you want the private keys which are just DER encoded private keys. They're pretty easy to spot in the db_dump output.


Title: Re: Wallet.dat file version Bitcoin-0.1.0
Post by: Hampi on March 23, 2018, 08:37:40 AM
@starmyc

Hi,

you suggested to create a new blockchain with the software 0.1.0, obviously I would need to get the Genesis block mined, how can this be done?



Title: Re: Wallet.dat file version Bitcoin-0.1.0
Post by: starmyc on March 23, 2018, 08:58:53 AM
@starmyc

Hi,

you suggested to create a new blockchain with the software 0.1.0, obviously I would need to get the Genesis block mined, how can this be done?

The genesis block is already mined and is in the source code, src/main.cpp:1457:

Code:
        CTransaction txNew;
        txNew.vin.resize(1);
        txNew.vout.resize(1);
        txNew.vin[0].scriptSig     = CScript() << 486604799 << CBigNum(4) << vector<unsigned char>((unsigned char*)pszTimestamp, (unsigned char*)pszTimestamp + strlen(pszTimestamp));
        txNew.vout[0].nValue       = 50 * COIN;
        txNew.vout[0].scriptPubKey = CScript() << CBigNum("0x5F1DF16B2B704C8A578D0BBAF74D385CDE12C11EE50455F3C438EF4C3FBCF649B6DE611FEAE06279A60939E028A8D65C10B73071A6F16719274855FEB0FD8A6704") << OP_CHECKSIG;
        CBlock block;
        block.vtx.push_back(txNew);
        block.hashPrevBlock = 0;
        block.hashMerkleRoot = block.BuildMerkleTree();
        block.nVersion = 1;
        block.nTime    = 1231006505;
        block.nBits    = 0x1d00ffff;
        block.nNonce   = 2083236893;

            //// debug print, delete this later
            printf("%s\n", block.GetHash().ToString().c_str());
            printf("%s\n", block.hashMerkleRoot.ToString().c_str());
            printf("%s\n", hashGenesisBlock.ToString().c_str());
            txNew.vout[0].scriptPubKey.print();
            block.print();
            assert(block.hashMerkleRoot == uint256("0x4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b"));

        assert(block.GetHash() == hashGenesisBlock);


Title: Re: Wallet.dat file version Bitcoin-0.1.0
Post by: Hampi on March 29, 2018, 10:39:16 AM

@starmyc   

think I need help on this, if you would be able to do it, how much would it cost? Basically need a wallet.dat file from version 0.1.0 with incoming transactions.

let me know or DM me pls

thanks


@starmyc

Hi,

you suggested to create a new blockchain with the software 0.1.0, obviously I would need to get the Genesis block mined, how can this be done?

The genesis block is already mined and is in the source code, src/main.cpp:1457:

Code:
        CTransaction txNew;
        txNew.vin.resize(1);
        txNew.vout.resize(1);
        txNew.vin[0].scriptSig     = CScript() << 486604799 << CBigNum(4) << vector<unsigned char>((unsigned char*)pszTimestamp, (unsigned char*)pszTimestamp + strlen(pszTimestamp));
        txNew.vout[0].nValue       = 50 * COIN;
        txNew.vout[0].scriptPubKey = CScript() << CBigNum("0x5F1DF16B2B704C8A578D0BBAF74D385CDE12C11EE50455F3C438EF4C3FBCF649B6DE611FEAE06279A60939E028A8D65C10B73071A6F16719274855FEB0FD8A6704") << OP_CHECKSIG;
        CBlock block;
        block.vtx.push_back(txNew);
        block.hashPrevBlock = 0;
        block.hashMerkleRoot = block.BuildMerkleTree();
        block.nVersion = 1;
        block.nTime    = 1231006505;
        block.nBits    = 0x1d00ffff;
        block.nNonce   = 2083236893;

            //// debug print, delete this later
            printf("%s\n", block.GetHash().ToString().c_str());
            printf("%s\n", block.hashMerkleRoot.ToString().c_str());
            printf("%s\n", hashGenesisBlock.ToString().c_str());
            txNew.vout[0].scriptPubKey.print();
            block.print();
            assert(block.hashMerkleRoot == uint256("0x4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b"));

        assert(block.GetHash() == hashGenesisBlock);