Pages:
Author

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

legendary
Activity: 1484
Merit: 1007
spreadcoin.info
Another example:

what if I want to feed those patterns into vanitygen:

1super
1superd
1superdu
1superdup
1superdupe
1superduper

and I want it to print out the privkey/pubkey pair whenever one of those matches is found.

What method can I use to achieve that and REALLY have vanitygen print out all intermediate key pairs,
without ignoring my wishes.  Grin

PS: I know that I can achieve that by starting 6 different vanitygen processes.
But I do require that this happens withing one vanitygen process.
legendary
Activity: 1484
Merit: 1007
spreadcoin.info

Could you please give an example. I am not understanding correctly. It would be great if you give an example for the problem and for what you are trying to achieve.

Very well.

The way vanitygen works now, is that it allows us to search for multiple patterns simultaneously (by starting vanitygen once and passing parameters once).
And it will keep on working to find matches for all those patterns, printing out the resulting privkey/pubkey when one is found.

Very good.

Suppose I now want to start vanitygen looking for those patterns: 1something, 1super, 1superduper

Now, depending on what pattern is listed first, vanitygen will complain that either

Code:
Prefix '1superduper' ignored, overlaps '1super'

or if the list is ordered differently, like that: 1something, 1superduper, 1super:

Code:
Prefix '1super' ignored, overlaps '1superduper'


I would like vanitygen to NOT do that, but instead work with all patterns listed, and printing out resulting keys when a match is found.
This means that I expect vanitygen to find a match for 1super in short time (and print out the resulting keys), and continue looking for a match of 1superduper.
Vanitygen doesn't allow me to do that.

Can someone who understands the code give me a hint what functions I need to disable/adjust so that overlapping patterns don't get removed/ignored?

Thanks.
hero member
Activity: 560
Merit: 509
I prefer Zakir over Muhammed when mentioning me!

You can't take a result '1Super', and then feed that back into vanitygen to get '1SuperDuper' at a lower cost. 


When did I ever say that I want to "save time" or achieve "lower cost"?

As I stated, I just desire that vanity gen doesn't automatically get rid of patterns that overlap,
but instead it should continue working with them as if they were unique.

Right now, vanity gen stops the processing of overlapping patterns, I would like that it continues the processing anyway.

Could you please give an example. I am not understanding correctly. It would be great if you give an example for the problem and for what you are trying to achieve.
legendary
Activity: 1484
Merit: 1007
spreadcoin.info

You can't take a result '1Super', and then feed that back into vanitygen to get '1SuperDuper' at a lower cost.  


When did I ever say that I want to "save time" or achieve "lower cost"?

I don't want to "feedback" anything.

As I stated, I just desire that vanity gen doesn't automatically get rid of patterns that overlap,
but instead it should continue working with them as if they were unique searches.

Right now, vanity gen stops the processing of overlapping patterns, I would like that it continues the processing anyway.
hero member
Activity: 686
Merit: 500
FUN > ROI
And whenever one of those is found, I can atleast use the intermediate result, and getting closer and closer to the ultimate goal.
I fear you misunderstand how vanity addresses work - that or I'm mis-reading this line.

You can't take a result '1Super', and then feed that back into vanitygen to get '1SuperDuper' at a lower cost.  The process is effectively (pseudo-)random.  What you can do, and I touched upon in the previous post, is store all '1Super*' results - including '1SuperMan*', '1SuperWoman*' but also nonsensical (past the 'Super' bit) ones like '1Super5d41402a', and then later if the user enters '1SuperDuper', look through your '1Super*' database for any '1SuperDuper' ones.  But that's going to be a fairly large database Smiley

I am just looking for a way to force vanity gen to work with overlapping patterns as if they were "unique" patterns.
(meaning, vanitygen doesn't get rid of them, and will always print out the resulting privkey etc, even from overlapping patterns.)
But it's not 'getting rid of them', is what I'm trying to convey.

While looking for '1abc', it's not going to discard any '1abcd*' results.  It will still include them, among all other '1abc*' results.

vanitygen -k -o results.txt 1a 1ab
Prefix '1ab' ignored, overlaps '1a'
Difficulty: 1353
Pattern: 1a
Address: 1azzEKBaqhWmEAQCD4FDvqehTXnwjAGLL
Privkey: 5Jt8AfHCbWcnZ5ewRm7ZLZYkxLiB8FBbEcQUSYN5ZAdwEm4398F
Pattern: 1a
Address: 1avFsr2z2UnKrkgdG6ZiqTnnYh3pYnVkz
Privkey: 5Kc2R7VJu4G7m2D6CtyQp7nk56neCTqkn5upgEHNtfp7Abh9TFJ
Pattern: 1a
Address: 1ab9Sk54nnYgMeE9K8YsPsKsdt2HPtVMt
Privkey: 5KjjJXkKstLUqhDzSU81Q5tyrnpqVYHz7tiLWHQFvmJfhBo6Xm6
Pattern: 1a
Address: 1a7oEr6vMb5tTsL7NKGGFwM4hxgUhvPuy
Privkey: 5JWkGg4T5tD1YRZnQdUZGzbm9PaAn41UmNT1FusBwoNsxRi5uBQ
Pattern: 1a
Address: 1aXoxNnFHriwYKRPMviGJVH5tpPig3YCD
Privkey: 5Jhimb2f1rSqPPTQMChCh584m1i1wsow5aCjVSGEAo7w27qNVQw


That would be the easiest solution for what I am trying to achieve.
I guess I'm still unclear as to what it is you're trying to achieve Smiley

legendary
Activity: 1484
Merit: 1007
spreadcoin.info
I get that, but what I'm saying is that there's no factual difference.

I know there is no factual difference.

I am just looking for a way to force vanity gen to work with overlapping patterns as if they were "unique" patterns.
(meaning, vanitygen will not compare patterns with eachother and get rid of overlapping patterns,  and will always print out the resulting privkey etc)

That would be the easiest solution for what I am trying to achieve:

Pass an array of strings to vanity gen thread, and getting results back over time on EVERY item in the array.
hero member
Activity: 686
Merit: 500
FUN > ROI
I get that, but what I'm saying is that there's no factual difference.

Let's say the user wants it to look for '1abc' and also '1abcd'.
What is the expected output of your generator in that case?

To vanitygen, '1abcd*' is not a special case of '1abc*'.  It's just one of many possible matches, including but not limited to '1abc1*', '1abc2*', '1abc3*' ... '1abcx*', '1abcy*', '1abcz*'.  Some of those will naturally be '1abcd', but they're not 'special' in any way.

If your wallet is supposed to interpret '1abcd*' as a more special form of '1abc*', then what organofcorti is suggested - i.e. take all the '1abc*' ones and specifically filter further for '1abcd*' as a secondary step - perhaps to highlight them or move them up a list or however your wallet would be handling it - is the best way to go.  It has the additional advantage that, at least theoretically, you can store these results and call upon them at a later time.  This does become a storage vs calculation tradeoff pretty quickly, though.

If the expectation is instead that more precise vanities should overrule less precise ones - i.e. the exact opposite of how vanitygen is handling it - that would require a preparational step in your wallet, and probably a warning to the user, to suggest that using both prefixes "1abc" and "1abcd" will cause it to only look for "1abcd".
legendary
Activity: 1484
Merit: 1007
spreadcoin.info
The reason it's skipping them is reasonable, though.  If you're looking for any address starting with '1ad' in the first place, then what makes '1adfg' special?  '1adfg' will naturally occur in some percentage of all '1ad' results.

Maybe someone wants to periodically update his favorite vanity address by using an increasingly better match over time.

Why not.

Suppose I'd like to use 1superduper, but since this is going to take ages, I am willing to use 1super for now, while letting vanitygen keep on working on subsequent larger patterns like
1superd
1superdu
1superdup

etc...

And whenever one of those is found, I can atleast use the intermediate result, and getting closer and closer to the ultimate goal.
legendary
Activity: 1484
Merit: 1007
spreadcoin.info
Thanks guys.

I am working on an in-wallet vanity gen, using this codebase.

I just want to let the user pass any valid patterns he wants to the vanity gen thread,
so if he specifically desires to search for two patterns that overlap, then he should be allowed to do so.

I have excluded regex from the code, to make it easier and to not require PCRE. So I can't use that.

As far as I can see, in this function here (in pattern.cpp), it tells the program to get rid of the overlapping pattern:

https://github.com/samr7/vanitygen/blob/master/pattern.c#L1044

Code:
static vg_prefix_t *vg_prefix_add(avl_root_t *rootp, const char *pattern, BIGNUM *low, BIGNUM *high)
{
    vg_prefix_t *vp, *vp2;
    assert(BN_cmp(low, high) < 0);
    vp = (vg_prefix_t *) malloc(sizeof(*vp));
    if (vp) {

        avl_item_init(&vp->vp_item);

        vp->vp_sibling = NULL;
        vp->vp_pattern = pattern;
        vp->vp_low = low;
        vp->vp_high = high;
        vp2 = vg_prefix_avl_insert(rootp, vp);
        if (vp2 != NULL) {
            fprintf(stderr,
                    "Prefix '%s' ignored, overlaps '%s'\n",
                    pattern, vp2->vp_pattern);
            vg_prefix_free(vp);
            vp = NULL;
        }
    }
    return vp;
}

But if I remove the

Code:
vg_prefix_free(vp);
vp = NULL;

it still gets rid of the overlapping pattern, so I assume there is some restricting code elsewhere that I have overlooked.

I want the program to keep any valid pattern and work with it, instead of automatically removing overlaps.
donator
Activity: 2058
Merit: 1007
Poor impulse control.
I am trying to get rid of the limitation that doesn't allow you to look for patterns that overlap.

For example: I would like to be able to search for 1ad, 1adf, 1adfg,

but it will not let me search for all of them in a row, instead it will say that 1adf and 1adfg "are ignored because they overlap with 1ad"

So how can I fix that? Or am I missing a parameter?

If you're using vanitygen and you know regex, try using that (I think it's the -r switch?).

If you're using oclvanitygen and you know regex, try running a batch to create a few hundred million '1a' addresses, and regex for the others you want.

hero member
Activity: 686
Merit: 500
FUN > ROI
You'd have to modify the source code and recompile.  The reason it's skipping them is reasonable, though.  If you're looking for any address starting with '1ad' in the first place, then what makes '1adfg' special?  '1adfg' will naturally occur in some percentage of all '1ad' results.
legendary
Activity: 1484
Merit: 1007
spreadcoin.info
I am trying to get rid of the limitation that doesn't allow you to look for patterns that overlap.

For example: I would like to be able to search for 1ad, 1adf, 1adfg,

but it will not let me search for all of them in a row, instead it will say that 1adf and 1adfg "are ignored because they overlap with 1ad"

So how can I fix that? Or am I missing a parameter?
legendary
Activity: 1140
Merit: 1000
The Real Jude Austin
I still need help to vanity with amd, sapphire 7950, windows 7 not geniunie (im thinking about moving to linux it may help?)  and drivers up to date.

Use lifeboats version with the 64 bit DLL.

andulolika's Windows 7 is not genuine and AFAIK OpenCL doesn't work in it.

Oh, I didn't know OCL wouldn't work on a non-genuine Windows system.

Thanks for that bit of knowledge!
legendary
Activity: 2310
Merit: 1047
I still need help to vanity with amd, sapphire 7950, windows 7 not geniunie (im thinking about moving to linux it may help?)  and drivers up to date.

Use lifeboats version with the 64 bit DLL.

andulolika's Windows 7 is not genuine and AFAIK OpenCL doesn't work in it.
Thanks both of you, as soon as i move to ubuntu i think its gonna be fine.
hero member
Activity: 560
Merit: 509
I prefer Zakir over Muhammed when mentioning me!
I still need help to vanity with amd, sapphire 7950, windows 7 not geniunie (im thinking about moving to linux it may help?)  and drivers up to date.

Use lifeboats version with the 64 bit DLL.

andulolika's Windows 7 is not genuine and AFAIK OpenCL doesn't work in it.
legendary
Activity: 1140
Merit: 1000
The Real Jude Austin
I still need help to vanity with amd, sapphire 7950, windows 7 not geniunie (im thinking about moving to linux it may help?)  and drivers up to date.

Use lifeboats version with the 64 bit DLL.
hero member
Activity: 560
Merit: 509
I prefer Zakir over Muhammed when mentioning me!
I still need help to vanity with amd, sapphire 7950, windows 7 not geniunie (im thinking about moving to linux it may help?)  and drivers up to date.



I could never make OpenCL work in a fake Windows. I think it won't but if there is a way, I like to hear it too.
What about ubuntu?

OpenCL works in Ubuntu.
legendary
Activity: 2310
Merit: 1047
I still need help to vanity with amd, sapphire 7950, windows 7 not geniunie (im thinking about moving to linux it may help?)  and drivers up to date.



I could never make OpenCL work in a fake Windows. I think it won't but if there is a way, I like to hear it too.
What about ubuntu?
hero member
Activity: 560
Merit: 509
I prefer Zakir over Muhammed when mentioning me!
I still need help to vanity with amd, sapphire 7950, windows 7 not geniunie (im thinking about moving to linux it may help?)  and drivers up to date.

I could never make OpenCL work in a fake Windows. I think it won't but if there is a way, I like to hear it too.
legendary
Activity: 2310
Merit: 1047
I still need help to vanity with amd, sapphire 7950, windows 7 not geniunie (im thinking about moving to linux it may help?)  and drivers up to date.
Pages:
Jump to: