Author

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

full member
Activity: 140
Merit: 430
Firstbits: 1samr7
I just pasted version 0.3.  It should:

  • Resolve the pcre_study() bug reported by an0therlr3
  • Add probability so far and time estimates suggested by davux
  • Clean up the display, make it look more like phoenix miner

The new version needs to be built with "-lm" in addition to the other libraries.
full member
Activity: 140
Merit: 430
Firstbits: 1samr7
No, I mean it can take >3-5 seconds to refill the keypool (only creating 100 keypairs) when it gets exhausted. I'm not talking about generating vanity addresses.

Got it.  Ouch, that's terrible!  I can certainly see about making a patch for that.
newbie
Activity: 67
Merit: 0
I definitely believe your claims. I noticed the same thing when writing similar code (for a more generalized purpose). Care to help figure out why bitcoin proper is soooo slow doing this? I've not had time to sit down with it and profile properly since I found out a few weeks ago.

I'd be happy to propose a cleaned-up version of the patch, but believe that this functionality is outside the scope of bitcoin proper.  I will guess that Gavin wrote the first generator as a patch to bitcoin not because it was the best place to put this functionality, but because bitcoin already did 95% of what he wanted and he found it easier to reuse the existing code, and also to work around the problem of importing private keys.

No, I mean it can take >3-5 seconds to refill the keypool (only creating 100 keypairs) when it gets exhausted. I'm not talking about generating vanity addresses.
full member
Activity: 140
Merit: 430
Firstbits: 1samr7
I definitely believe your claims. I noticed the same thing when writing similar code (for a more generalized purpose). Care to help figure out why bitcoin proper is soooo slow doing this? I've not had time to sit down with it and profile properly since I found out a few weeks ago.

I'd be happy to propose a cleaned-up version of the patch, but believe that this functionality is outside the scope of bitcoin proper.  I will guess that Gavin wrote the first generator as a patch to bitcoin not because it was the best place to put this functionality, but because bitcoin already did 95% of what he wanted and he found it easier to reuse the existing code, and also to work around the problem of importing private keys.
newbie
Activity: 67
Merit: 0
I'd like to present a standalone command line vanity address generator called vanitygen.

There are plenty of quality tools to do this right now already.  So why use vanitygen?  The main reason is that it is fast, more than an order of magnitude faster than the official bitcoin client with the vanity address patch applied.  This is despite the fact that it runs on the CPU and does not use OpenCL or CUDA.  Vanitygen is also a bit more user-friendly in that it provides feedback on its rate of progress and how many keys it has checked.

I definitely believe your claims. I noticed the same thing when writing similar code (for a more generalized purpose). Care to help figure out why bitcoin proper is soooo slow doing this? I've not had time to sit down with it and profile properly since I found out a few weeks ago.
legendary
Activity: 1974
Merit: 1029
Oh, study, what an old Perlish friend Smiley.

Now it's working. Thanks for the prompt reply!
full member
Activity: 140
Merit: 430
Firstbits: 1samr7
Problems here:

Code:
$ ./vg -r [Bb][Aa][Rr]    ## a good one
Address       : 1A6CtPf9UyTBARz6qu7aEntJJg1n7aK1wy
$ ./vg -r 1[Bb][Aa]
Regex error: (null)
No suitable regular expressions
$ ./vg -r 1a
Regex error: (null)
No suitable regular expressions
$ ./vg -r ^1
Regex error: (null)
No suitable regular expressions

Darn it!  The return value from pcre_study() isn't being interpreted correctly.  The version of PCRE that I used to develop never returned NULL there, but apparently yours does.  The fix is simple.  I'll post a new version in a bit.  In the mean time, you can change the check after pcre_study() from "if (!regex_extra[nres])" to "if (pcre_errptr)".

Thanks for the report.
legendary
Activity: 1974
Merit: 1029
Problems here:

Code:
$ ./vg -r [Bb][Aa][Rr]    ## a good one
Address       : 1A6CtPf9UyTBARz6qu7aEntJJg1n7aK1wy
$ ./vg -r 1[Bb][Aa]
Regex error: (null)
No suitable regular expressions
$ ./vg -r 1a
Regex error: (null)
No suitable regular expressions
$ ./vg -r ^1
Regex error: (null)
No suitable regular expressions

I suspect it chokes on numbers:

Code:
$ ./vg -r foo1bar
Regex error: (null)
No suitable regular expressions

Edit: err no, it's more complex than that:

Code:
$ ./vg -r ^[a-z]
Regex error: (null)
No suitable regular expressions
$ ./vg -r [a-z]$
Address       : 13vfXkCGVm4DXDDf3rK4TGHr8nty6nsEhk
$ ./vg -r kk$
Regex error: (null)
No suitable regular expressions
$ ./vg -r [k]$
Regex error: (null)
No suitable regular expressions
member
Activity: 112
Merit: 10
Firstbits: 1yetiax
Thanks for this really quick vanity address generator! This morning I found my desired 1Yeti-address. Unfortunately there's somebody just generating vanity addresses to reserve firstbits for possible resale. Not watching the casing. Ugh. This sucks! Angry

If you're (like me) looking for a cool address to be firstbitted, check first if it's not gone already. In the time bitcoind took to not find an address for me and the release of Vanitygen, this guy (or girl) grabbed those addresses just last Friday.
hero member
Activity: 672
Merit: 500
BitLotto - best odds + best payouts + cheat-proof
Pretty cool! Pretty fast too! Thanks.
full member
Activity: 140
Merit: 430
Firstbits: 1samr7
Does this mean I might've generated invalid addresses?

The bug would cause vanitygen to output an address that didn't match your regular expression.  In any case, the output should still be a consistent address/private key pair on which you should be able to receive transactions.

Quote
I imported one (the one that had "molec" in it correctly) using importprivkey. If that works, does it mean the address is ok?

Yep, it's fine.

If you want to be absolutely sure about it, that's exactly how to check: import the private key into bitcoin and verify that bitcoin accepts the private key and derives the same address from the private key.
donator
Activity: 2772
Merit: 1019
I just pasted version 0.2.  It should:

  • Fix the regular expression problem reported by pyna and molecular.
  • Add support for multi-pattern searching.

Does this mean I might've generated invalid addresses?

I imported one (the one that had "molec" in it correctly) using importprivkey. If that works, does it mean the address is ok?
full member
Activity: 140
Merit: 430
Firstbits: 1samr7
I just pasted version 0.2.  It should:

  • Fix the regular expression problem reported by pyna and molecular.
  • Add support for multi-pattern searching.
administrator
Activity: 5166
Merit: 12850
I think the generate_address_regex() function is broken. Looks like &b58[p] is calculated incorrectly.

I stuck a printf right before output_match() is called:

./vanitygen -r 1.{26}XX
Before output_match: 1H6d1q8niPVvci5zGnpbTkRfaBhWhWSXX5
 After output_match: 1H6d1q8niPVvci5zGnpbTkRfaBhWhXcbEn

The address that the regex is being compared to is never a valid address, and the (valid) end address always differs in the last few characters.

Took me the longest time to figure out this was why all my regexes with $ in it behaved ... unexpectedly.

This reply was just merged here.
full member
Activity: 140
Merit: 430
Firstbits: 1samr7
maybe I found a bug, or maybe I'm using regex wrongly:

"./vanitygen/vanitygen -r [Mm]oL[Ee][Cc]" gave me 1H3fttgZCe89zhViCRmk7DX8JmoLJ2mvTV (missing "ec")

found 1BYYdM3vfndwmoLec6tQjcx7sAeLRxTvTq with the same command

Yep, that's a bug!  The regular expression search loop incorrectly generates the lower four byte test code.

I'll post a new version in a bit with a fix for that problem.

Thanks for pointing it out.
donator
Activity: 2772
Merit: 1019
maybe I found a bug, or maybe I'm using regex wrongly:

"./vanitygen/vanitygen -r [Mm]oL[Ee][Cc]" gave me 1H3fttgZCe89zhViCRmk7DX8JmoLJ2mvTV (missing "ec")

found 1BYYdM3vfndwmoLec6tQjcx7sAeLRxTvTq with the same command
donator
Activity: 2772
Merit: 1019
sucks to have a name with illegal base58 characters in it Sad

Will

try "vanitygen -r [Ww]iLL"

(no need to use [Ii] and/or [Ll] because l (small L) and I are not in base58, I think.

EDIT: found one in seconds: 1NZED7AR8hbwiLLkTWwXgZvM89FZqFiXnj
newbie
Activity: 1
Merit: 0
I think the generate_address_regex() function is broken. Looks like &b58[p] is calculated incorrectly.

I stuck a printf right before output_match() is called:

./vanitygen -r 1.{26}XX
Before output_match: 1H6d1q8niPVvci5zGnpbTkRfaBhWhWSXX5
 After output_match: 1H6d1q8niPVvci5zGnpbTkRfaBhWhXcbEn

The address that the regex is being compared to is never a valid address, and the (valid) end address always differs in the last few characters.

Took me the longest time to figure out this was why all my regexes with $ in it behaved ... unexpectedly.
donator
Activity: 2772
Merit: 1019
I'd like to present a standalone command line vanity address generator called vanitygen.

awesome! thanks!
full member
Activity: 140
Merit: 430
Firstbits: 1samr7
This method sucks! Snuff the weak source of entropy is the favourite side attack for a half-skilled hacker.

Use at least /dev/random And consider pick random bits from hotbits and random.org.

Would you be more inclined to use this program if it had a command line option to initialize private keys from /dev/random, or one of those network sources, instead of using the OpenSSL default mechanism?  I'm more than happy to add it or apply a patch if it will make you feel safer about using the generated keys.
Jump to: