Author

Topic: Vanitygen: Vanity bitcoin address generator/miner [v0.22] - page 125. (Read 1153383 times)

hero member
Activity: 546
Merit: 500
is there any solution up yet for using FPGAs / Ztex quads for vanitygen or similar?

I'd like to have 1madmax and some others but my workstation is just getting too hot.

If you want I could generate it for you. Submit an application to https://vanitypool.appspot.com/faq or see the OP and send me the necessary info.
sr. member
Activity: 448
Merit: 250
is there any solution up yet for using FPGAs / Ztex quads for vanitygen or similar?

I'd like to have 1madmax and some others but my workstation is just getting too hot.
hero member
Activity: 546
Merit: 500
Running nice at 50 Mkeys/s now that I've installed AMD driver version 12.8, was getting errors with 13.1
hero member
Activity: 576
Merit: 500
The error occurs when I run this one (blue in pic):
Code:
oclvanitygen -S -d 0 -o test.txt 1Morb1ias

Can those of you with this crash post an error trace from the crash?  On Windows I think there is some information under an expanding area titled "View problem details."  Get as much as you can out of there.  If adam3us's segfault is the same crash, maybe he can get those details too.  I'm not sure I'll be able to do much with the details, but maybe somebody else can.

A bounty might help, too.  I'm willing to help, but don't really know enough to guess what the problem is, and don't have affected hardware.  Maybe if somebody wants to rig up remote access to your card, for me or someone else, we might be able to figure something out.

This is what I get from Dr. Mingw when running that command and it crashes:

Code:
oclvanitygen.exe caused an Access Violation at location 62BB379B in module amdocl.dll Reading from location 00000004.

Registers:
eax=00000000 ebx=003ce6fc ecx=05c840f4 edx=00000000 esi=04348390 edi=00000000
eip=772515de esp=003ce6e8 ebp=003cebc8 iopl=0         nv up ei pl zr na po nc
cs=0023  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00200246

AddrPC   Params
772515DE 04348390 04DD2794 04F4E888 ntdll.dll!ZwRaiseException
62BB206B 04F4E888 0538BB40 003CEC10 amdocl.dll!_SCGetExportFunctions@4
62BB2690 04348390 00000000 04348390 amdocl.dll!_SCGetExportFunctions@4
62BAD1E8 01348390 00000001 0538BA74 amdocl.dll!_SCGetExportFunctions@4
62BB1C2E 00000000 0538BAE0 0538BA74 amdocl.dll!_SCGetExportFunctions@4
62BB20BA 0538BA74 01000001 0538BB00 amdocl.dll!_SCGetExportFunctions@4
62BB2F45 0538BB00 000000E4 04135494 amdocl.dll!_SCGetExportFunctions@4
62BB3583 041311C4 03B5CF30 038CC3F0 amdocl.dll!_SCGetExportFunctions@4
62BB19CF 0435E81C 038CC3F0 0435E024 amdocl.dll!_SCGetExportFunctions@4
62A16B16 03E28FA8 03B5CF30 00000000 amdocl.dll!_SCGetExportFunctions@4
62A097D5 042DAE0C 634229CC 03B82F08 amdocl.dll!_SCGetExportFunctions@4
62A09D0F 03E28FA8 03DDBD48 038505AC amdocl.dll!_SCGetExportFunctions@4
62A05C29 03850520 03E28FA8 003CEDA0 amdocl.dll!_SCGetExportFunctions@4
62A0559A 03E28FA8 038B8540 038470C0 amdocl.dll!_SCGetExportFunctions@4
62C4C35D 003CEF44 003CEE10 00000000 amdocl.dll!_SCGetExportFunctions@4
621E634A 003CEF44 003CEF6C 038B8540 amdocl.dll!clGetSamplerInfo
621E6261 05EA6008 6E69616D 038B8500 amdocl.dll!clGetSamplerInfo
621E5223 003CEFD8 6E69616D 03847000 amdocl.dll!clGetSamplerInfo
621D8660 003CEFB0 04105D08 0002A523 amdocl.dll!clGetSamplerInfo
621D8A89 038463B0 04105D08 0002A523 amdocl.dll!clGetSamplerInfo
621D9A47 00A397E8 038463B0 003CF8D8 amdocl.dll!clGetSamplerInfo
621CC217 00A397E8 038463B0 003CF8D8 amdocl.dll!clGetSamplerInfo
621C0BAE 003CF5AC 003CF680 00000000 amdocl.dll!clGetSamplerInfo
621C241C 003CF5AC 003CF680 00000000 amdocl.dll!clGetSamplerInfo
621A857F 038B8DB0 003CF654 003CF5AC amdocl.dll!clGetSamplerInfo
621AA787 003CF8D8 0393AD00 00000000 amdocl.dll!clGetSamplerInfo
6217DB05 0393AD14 003CFB5C 003CF8D8 amdocl.dll!clGetSamplerInfo
62186991 003CFA5C 003CFB5C 00000000 amdocl.dll!clGetSamplerInfo
62170F27 0393AD00 00000001 008915D0 amdocl.dll!clBuildProgram
6E8D195F 0393AD08 00000001 008915D0 OpenCL.dll!clBuildProgram
sr. member
Activity: 448
Merit: 254
The error occurs when I run this one (blue in pic):
Code:
oclvanitygen -S -d 0 -o test.txt 1Morb1ias

Can those of you with this crash post an error trace from the crash?  On Windows I think there is some information under an expanding area titled "View problem details."  Get as much as you can out of there.  If adam3us's segfault is the same crash, maybe he can get those details too.  I'm not sure I'll be able to do much with the details, but maybe somebody else can.

A bounty might help, too.  I'm willing to help, but don't really know enough to guess what the problem is, and don't have affected hardware.  Maybe if somebody wants to rig up remote access to your card, for me or someone else, we might be able to figure something out.
hero member
Activity: 622
Merit: 500
www.cryptobetfair.com
you arent missing anything, this is the bug that I am hoping some of these smarties here can fix.
hero member
Activity: 576
Merit: 500
So I reformatted computer and am having a problem getting this running. I am using an ATI 7950 and I remember a while ago it would never work with

Code:
oclvanitygen -d 0 -o test.txt 1Morb1ias

and would spit out garbage so I had to use the safe command, but now it is just erroring out.

The error occurs when I run this one (blue in pic):
Code:
oclvanitygen -S -d 0 -o test.txt 1Morb1ias

I installed the latest driver for 7950, and am able to run cgminer on it fine so I am not sure what I am missing here?

hero member
Activity: 622
Merit: 500
www.cryptobetfair.com
This is driving me nuts!  I have done everything I can think of with my meager skills.   Would a bounty inspire you geniuses to figure out the 7xxx problem with mismatching cpu/gpu hashes?  There are quite a few of us with this problem. 
sr. member
Activity: 404
Merit: 360
in bitcoin we trust
I tried that one and it has the same CPU hash GPU hash not matching issue (with or without BFI_INT disabled).

Hmm.  I've just realized the -S flag, which you said you already tried, includes disabling BFI_INT.  Can you run the OpenCL code on your CPU (-d, -D, or -p flags, see --help)?  Feedback from that might help narrow down the problem to an OpenCL compiler issue or hardware difference.

-S on the GPU gives a segfault during kernel compile.  -S or just normal on the CPU with oclvanity produces valid normal results (though of course its slower than vanitygen when run on the CPU).

Adam
hero member
Activity: 622
Merit: 500
www.cryptobetfair.com
I tried that one and it has the same CPU hash GPU hash not matching issue (with or without BFI_INT disabled).

Hmm.  I've just realized the -S flag, which you said you already tried, includes disabling BFI_INT.  Can you run the OpenCL code on your CPU (-d, -D, or -p flags, see --help)?  Feedback from that might help narrow down the problem to an OpenCL compiler issue or hardware difference.

I tried with the hex editor, and you guessed correctly, it threw an error.   I think this may be beyond me.

What was the error?  I've since tried this on both Windows and Linux and the resulting binary seemed to work (don't know that it disabled BFI_INT.)  Are you sure you overwrote (instead of inserting) and didn't change anything else?

The -S flag crashes me every time. 

I re tried the hex edit, and it did not throw an error this time, I must have screwed it up at first.  But I get the same issue, cpu and gpu hash does not match.  If I run on my cpu, it works fine.
sr. member
Activity: 448
Merit: 254
I tried that one and it has the same CPU hash GPU hash not matching issue (with or without BFI_INT disabled).

Hmm.  I've just realized the -S flag, which you said you already tried, includes disabling BFI_INT.  Can you run the OpenCL code on your CPU (-d, -D, or -p flags, see --help)?  Feedback from that might help narrow down the problem to an OpenCL compiler issue or hardware difference.

I tried with the hex editor, and you guessed correctly, it threw an error.   I think this may be beyond me.

What was the error?  I've since tried this on both Windows and Linux and the resulting binary seemed to work (don't know that it disabled BFI_INT.)  Are you sure you overwrote (instead of inserting) and didn't change anything else?
legendary
Activity: 1512
Merit: 1036
btw I am finding vanity addresses aiming for with lower case are much harder to compute seemingly, 1 out of 58 I generated so far with vanitygen -i are lower first char.  I think there maybe a target range miscalculation in vanitygen that is discarding valid finds?  Clearly all start strings are possible because 1zzz finds lots and so does 1111.  The alphabet is [1-0][A-Z][a-z] and strings before 1QQQ are easier.  Except 1111 is harder.  I am not really understanding why this is.  OpenSSL doco says it uses big endian encoding.  And the base58 encoder seems to use the same convention, so you would expect restrictions on the most significant digit.  However that doesnt seem to be the case empirically.

The address is encoded as 0x1 || hash(160-bits) || checksum(32-bits) which is 193-bits.  Now log(58,2^193) = 32.9465 and 2^193/58^32 = 46.676 however the bignum is encoded big endian

Adam

The change happens at a particular address

This is a result of how the 25-byte (50 digit hexadecimal) underlying hashes are converted into Base58 (represented by numbers and letters) addresses, and the different maximum values that can be stored in 25 base256 digits vs 34 base58 digits.

The Bitcoin address in it's native binary form (that you never see) is 25 bytes, it's parts are:
byte 0: Network ID Byte (0x00 for main bitcoin network)
byte 1-20: ripemd160 hash (20 bytes) of sha256 hash (32 bytes) of 0x04+public key (65 bytes)
byte 21-24: checksum: first four bytes of sha256 hash of sha256 hash of bytes 0-20 above

This would be 50 hexadecimal characters long (base16), with a possible digit value between 0-F - 24 bytes or 48 hexadecimal digits of random hash output, plus the beginning "00" byte.

We will ignore byte 0, it is always 0x00, and Base58 conversion always preserves this leading 0 byte by directly encoding it as a "1".

That means the "vanity" part of the address is generated by the first several bytes of the underlying ripemd160 hash

The minimum this can be is 0000000000000000000000000000000000000000 00000000.
The maximum value that this can be is FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ffff ffff
(the extra 0s and lower case "f"s are the checksum part.)

Here are some sample addresses before and after the "wraparound" of the maximum hash value.


See how the 1QLa addresses are full length, but the 1QLc addresses are one digit shorter? That is because the only way to have an address starting at 1QLc or greater is by having a binary address that is 59x smaller. There are 59x less possible hashes that will generate a 33 character 1aaaa address than will generate a 34 character 1AAAA address.
sr. member
Activity: 404
Merit: 360
in bitcoin we trust
btw I am finding vanity addresses aiming for with lower case are much harder to compute seemingly, 1 out of 58 I generated so far with vanitygen -i are lower first char.  I think there maybe a target range miscalculation in vanitygen that is discarding valid finds?  Clearly all start strings are possible because 1zzz finds lots and so does 1111.  The alphabet is [1-0][A-Z][a-z] and strings before 1QQQ are easier.  Except 1111 is harder.  I am not really understanding why this is.  OpenSSL doco says it uses big endian encoding.  And the base58 encoder seems to use the same convention, so you would expect restrictions on the most significant digit.  However that doesnt seem to be the case empirically.

Playing with this some more I think it is the case that 1 is special (it is the encoding for digit 0), and then values after first digit P (in the base58 alphabet) are possible; values after that are not directly possible however become possible when you get a short key (leading 0) as leading 0s are suppressed.  So all lowercase values and values starting Q only are at least one character short.

That means you're going to have a lot more fun if you start with upper case first char, below Q.

Adam
sr. member
Activity: 404
Merit: 360
in bitcoin we trust
anyone know how I might go about disabling BFI_INT?

If you can change source and recompile, try commenting out these two lines.


Thats what I figured and already tried: doesnt work (on amd 7870, catalyst 13.4, fedora 18.)

It might be nice to "appoint" a new maintainer of vanitygen, or at least collect all the different patches and get some new builds.  For example, this fork appears to have some build/compatibility improvements, and salfter and I have added compressed address support.

I tried that one and it has the same CPU hash GPU hash not matching issue (with or without BFI_INT disabled).

This kind of sucks.  Must be some more bugs lurking or catalyst driver bugs?

btw I am finding vanity addresses aiming for with lower case are much harder to compute seemingly, 1 out of 58 I generated so far with vanitygen -i are lower first char.  I think there maybe a target range miscalculation in vanitygen that is discarding valid finds?  Clearly all start strings are possible because 1zzz finds lots and so does 1111.  The alphabet is [1-0][A-Z][a-z] and strings before 1QQQ are easier.  Except 1111 is harder.  I am not really understanding why this is.  OpenSSL doco says it uses big endian encoding.  And the base58 encoder seems to use the same convention, so you would expect restrictions on the most significant digit.  However that doesnt seem to be the case empirically.

The address is encoded as 0x1 || hash(160-bits) || checksum(32-bits) which is 193-bits.  Now log(58,2^193) = 32.9465 and 2^193/58^32 = 46.676 however the bignum is encoded big endian

Adam
hero member
Activity: 700
Merit: 500
Well, I'm 99% sure no existing Bitcoin-mining ASIC can be repurposed for vanity mining.  FPGAs, maybe, but it requires more skill than GPU programming, so there just aren't that many capable of doing it, and even fewer that would do it for free.

I assumed vanity mining used the same computational process, only doing something different with the output.

Very different process.
hero member
Activity: 622
Merit: 500
www.cryptobetfair.com
If you can change source and recompile, try commenting out these two lines.  If you're handy with a hex editor, try searching for the string "cl_amd_media_ops" in your binary and overwriting with X's or some unique string, which should permanently disable BFI_INT (though I wonder if the .exe/ELF/whatever has some checksums that will throw an error when you run the program.)

I tried with the hex editor, and you guessed correctly, it threw an error.   I think this may be beyond me.
hero member
Activity: 546
Merit: 500
Well, I'm 99% sure no existing Bitcoin-mining ASIC can be repurposed for vanity mining.  FPGAs, maybe, but it requires more skill than GPU programming, so there just aren't that many capable of doing it, and even fewer that would do it for free.

I assumed vanity mining used the same computational process, only doing something different with the output.
sr. member
Activity: 448
Merit: 254
anyone know how I might go about disabling BFI_INT?

If you can change source and recompile, try commenting out these two lines.  If you're handy with a hex editor, try searching for the string "cl_amd_media_ops" in your binary and overwriting with X's or some unique string, which should permanently disable BFI_INT (though I wonder if the .exe/ELF/whatever has some checksums that will throw an error when you run the program.)

Seems to be a lot of problems with it, and it hasn't kept up with FPGAs and ASICs

Well, I'm 99% sure no existing Bitcoin-mining ASIC can be repurposed for vanity mining.  FPGAs, maybe, but it requires more skill than GPU programming, so there just aren't that many capable of doing it, and even fewer that would do it for free.

I have to say it strikes me a bit suspicious that a bitcoin related tool that is generating private keys has an uncontactable author and maintainer.

It is interesting.  It looks like the private keys are generated by OpenSSL though, so it should be pretty safe.  For your GPU issue, you might also try disabling the BFI_INT optimization as I mentioned above.

It might be nice to "appoint" a new maintainer of vanitygen, or at least collect all the different patches and get some new builds.  For example, this fork appears to have some build/compatibility improvements, and salfter and I have added compressed address support.
hero member
Activity: 622
Merit: 500
www.cryptobetfair.com
anyone know how I might go about disabling BFI_INT?
legendary
Activity: 2912
Merit: 1060
Yeah I only have asics now
Jump to: