Bitcoin Forum
September 25, 2018, 06:12:18 PM *
News: ♦♦ New info! Bitcoin Core users absolutely must upgrade to previously-announced 0.16.3 [Torrent]. All Bitcoin users should temporarily trust confirmations slightly less. More info.
 
   Home   Help Search Donate Login Register  
Pages: « 1 ... 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 [112] 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 ... 181 »
  Print  
Author Topic: Vanitygen: Vanity bitcoin address generator/miner [v0.22]  (Read 1111611 times)
TheRealSteve
Hero Member
*****
Offline Offline

Activity: 686
Merit: 500

FUN > ROI


View Profile
June 07, 2015, 03:37:20 PM
 #2221

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.

1537899138
Hero Member
*
Offline Offline

Posts: 1537899138

View Profile Personal Message (Offline)

Ignore
1537899138
Reply with quote  #2

1537899138
Report to moderator
1537899138
Hero Member
*
Offline Offline

Posts: 1537899138

View Profile Personal Message (Offline)

Ignore
1537899138
Reply with quote  #2

1537899138
Report to moderator
1537899138
Hero Member
*
Offline Offline

Posts: 1537899138

View Profile Personal Message (Offline)

Ignore
1537899138
Reply with quote  #2

1537899138
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
organofcorti
Donator
Legendary
*
Offline Offline

Activity: 2058
Merit: 1000


Poor impulse control.


View Profile WWW
June 07, 2015, 03:39:32 PM
 #2222

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.


Bitcoin network and pool analysis 12QxPHEuxDrs7mCyGSx1iVSozTwtquDB3r
follow @oocBlog for new post notifications
georgem
Legendary
*
Offline Offline

Activity: 1428
Merit: 1003


spreadcoin.info


View Profile WWW
June 07, 2015, 03:52:01 PM
 #2223

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.

georgem
Legendary
*
Offline Offline

Activity: 1428
Merit: 1003


spreadcoin.info


View Profile WWW
June 07, 2015, 04:08:54 PM
 #2224

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.

TheRealSteve
Hero Member
*****
Offline Offline

Activity: 686
Merit: 500

FUN > ROI


View Profile
June 07, 2015, 04:13:33 PM
 #2225

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".

georgem
Legendary
*
Offline Offline

Activity: 1428
Merit: 1003


spreadcoin.info


View Profile WWW
June 07, 2015, 04:16:51 PM
 #2226

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.

TheRealSteve
Hero Member
*****
Offline Offline

Activity: 686
Merit: 500

FUN > ROI


View Profile
June 07, 2015, 04:23:37 PM
 #2227

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


georgem
Legendary
*
Offline Offline

Activity: 1428
Merit: 1003


spreadcoin.info


View Profile WWW
June 07, 2015, 04:26:55 PM
 #2228


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.

Muhammed Zakir
Hero Member
*****
Offline Offline

Activity: 560
Merit: 504


I prefer Zakir over Muhammed when mentioning me!


View Profile WWW
June 07, 2015, 04:28:55 PM
 #2229


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.

georgem
Legendary
*
Offline Offline

Activity: 1428
Merit: 1003


spreadcoin.info


View Profile WWW
June 07, 2015, 04:36:26 PM
 #2230


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.

georgem
Legendary
*
Offline Offline

Activity: 1428
Merit: 1003


spreadcoin.info


View Profile WWW
June 07, 2015, 05:04:50 PM
 #2231

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.

Muhammed Zakir
Hero Member
*****
Offline Offline

Activity: 560
Merit: 504


I prefer Zakir over Muhammed when mentioning me!


View Profile WWW
June 07, 2015, 05:07:22 PM
 #2232

Try with -r command. It is working for me.

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.

I tried with these but vanitygen is only finding for 5 keywords not 6 but it is better than nothing. Smiley

georgem
Legendary
*
Offline Offline

Activity: 1428
Merit: 1003


spreadcoin.info


View Profile WWW
June 07, 2015, 05:08:15 PM
 #2233

Try with -r command. It is working for me.

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.

I tried with these but I vanitygen is only finding for 5 keywords not 6 but it is better than nothing. Smiley

Thanks, so it requires regex.

What if I don't want to use regex, but rather adjust vanitygen so that it doesn't ignore overlaps?

TheRealSteve
Hero Member
*****
Offline Offline

Activity: 686
Merit: 500

FUN > ROI


View Profile
June 07, 2015, 05:09:34 PM
 #2234

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?
I don't think this is the way to go about it - preparsing the user's list, feeding it into vanitygen, filtering afterward being more appropriate - but alright.
In pattern.c, look for vg_prefix_avl_insert.  There's a comparison function in there that compares prefixes and inserts them in appropriate spots.  There's an edge condition where the two are considered equal, the 'else [...] return vp;' part.  You want to eliminate that.  Should be as simple as changing one of the comparisons from '>' or '<' to '>=' or '<=' respectively.
Not sure if that breaks anything, but give it a shot.




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.
It already will.  See earlier example where feeding it '1a 1ab' has it drop '1ab' from the prefixes list, but will still happily return '1ab*' results (along with '1aa*', '1ac*', '1ad*', etc.) because it still matches '1a'.

georgem
Legendary
*
Offline Offline

Activity: 1428
Merit: 1003


spreadcoin.info


View Profile WWW
June 07, 2015, 05:24:51 PM
 #2235

There's an edge condition where the two are considered equal, the 'else [...] return vp;' part.  You want to eliminate that.  Should be as simple as changing one of the comparisons from '>' or '<' to '>=' or '<=' respectively.
Not sure if that breaks anything, but give it a shot.

Thanks, I tried that, removing the part and changing either to >= or <=, but it doesn't work.

It looks like the program isn't even starting the search cycle anymore.

georgem
Legendary
*
Offline Offline

Activity: 1428
Merit: 1003


spreadcoin.info


View Profile WWW
June 07, 2015, 05:29:57 PM
 #2236

 Grin

It works if I do this:

Code:
static vg_prefix_t *vg_prefix_avl_insert(avl_root_t *rootp, vg_prefix_t *vpnew)
{
    vg_prefix_t *vp;
    avl_item_t *itemp = NULL;
    avl_item_t **ptrp = &rootp->ar_root;
    while (*ptrp) {

        itemp = *ptrp;
        vp = avl_item_entry(itemp, vg_prefix_t, vp_item);
        if (BN_cmp(vp->vp_low, vpnew->vp_high) > 0) {
            ptrp = &itemp->ai_left;
        } else {
            if (BN_cmp(vp->vp_high, vpnew->vp_low) < 0) {
                ptrp = &itemp->ai_right;
            } else
                 ptrp = &itemp->ai_left;
                //return vp;
        }

    }
    vpnew->vp_item.ai_up = itemp;
    itemp = &vpnew->vp_item;
    *ptrp = itemp;
    avl_insert_fix(rootp, itemp);
    return NULL;
}

remove return vp;
and replace it with ptrp = &itemp->ai_left;

Thanks again for the hint, TheRealSteve! You really are The Real Steve!  Grin

TheRealSteve
Hero Member
*****
Offline Offline

Activity: 686
Merit: 500

FUN > ROI


View Profile
June 07, 2015, 05:31:32 PM
 #2237

Try with -r command. It is working for me.
[...]
it is better than nothing. Smiley

I disagree.

-r (1a|1ab|1abc)1a 1ab 1abc1aocl -rocl 1a 1ab 1abc
complains about overlapnoyesnon/ayes
finds 1ayesyesyesn/ayes
finds 1abyesyesyesn/ayes
finds 1abcyesyesyesn/ayes
finds 1axyesyesyesn/ayes
Kkeys/s (example)~150~220~220n/a~2800

So at the benefit of it not complaining about overlap, you lose a lot of performance compared to just the CPU version alone - never mind compared against the OpenCL version (which doesn't support regex).  And that would be the only benefit, as functionally it's still the exact same.  The only time there's a functional difference is if the prefixes are provided in reduced specificity order, e.g. '1abc 1ab 1a' - which is something a preparser could easily deal with before sending them to vanitygen.

georgem
Legendary
*
Offline Offline

Activity: 1428
Merit: 1003


spreadcoin.info


View Profile WWW
June 07, 2015, 05:35:46 PM
 #2238

remove return vp;
and replace it with ptrp = &itemp->ai_left;


And it doesn't even matter if I replace it with ptrp = &itemp->ai_right;

It works either way.

Thanks again.

santzi
Newbie
*
Offline Offline

Activity: 3
Merit: 0


View Profile
June 23, 2015, 11:21:06 AM
 #2239

Helou,

Could someone give some coding support for vanitygen (oclvanitygen)?
I'm using oclvanitygen (GPU) with Linux and I could compile a new version from source code.

So I need some advices for my "problem".
When oclvanitygen found ex "1GeGeA" pattern with -k option (Keep pattern and continue search after finding a match), now it's generate a new random seed and start again from different point.
I need to modify the source code that way, when it found a pattern, it does not generate a random seed value, only increase X value amount to "secret exponent value". So the starting point is quite near the previous one (diff X).

example:
Difficulty: 259627881
Pattern: 1GeGeA                                                               
Address: 1GeGeAAzBwzcPpCiMdGSURUBxLdSW3PFV3
Privkey: 5JpiwYTQZmKCtfumGP1wsZuZdfEvEBqSiEojSHh6QUPdM1a1pgV

This Privkey is hex and dec (=secret exponent):
84b05b4fff33236fe6f1e8d886d94fd8f4498d71ea0420d1902c90d9bf246bd5
60016891312021175057331173446731109351198050644514140408495846939253006429141

If X value is 12345678, next starting point is:
60016891312021175057331173446731109351198050644514140408495846939253018774819
Address: 1FwwNCewMPk8RsnzA528QSse3NjXuV6745
Privkey: 5JpiwYTQZmKCtfumGP1wsZuZdfEvEBqSiEojSHh6QbXg96Bfepr

Could someone please give piece of code for me? I'm quite noob to code.
I have look the source code, but it's quite difficult to understand.

Thank you very much!
Kangaderoo
Member
**
Offline Offline

Activity: 85
Merit: 10


View Profile
June 23, 2015, 11:50:44 AM
 #2240

Helou,

Could someone give some coding support for vanitygen (oclvanitygen)?
I'm using oclvanitygen (GPU) with Linux and I could compile a new version from source code.

So I need some advices for my "problem".
When oclvanitygen found ex "1GeGeA" pattern with -k option (Keep pattern and continue search after finding a match), now it's generate a new random seed and start again from different point.
I need to modify the source code that way, when it found a pattern, it does not generate a random seed value, only increase X value amount to "secret exponent value". So the starting point is quite near the previous one (diff X).

---snip ----

Could someone please give piece of code for me? I'm quite noob to code.
I have look the source code, but it's quite difficult to understand.

Thank you very much!

I Guess what you are looking for kind of kills the purpose of the ECDSA algorithm.
The algorithms to find ECSDA points for addition and multiplications are not so straightforward to find points that are 'close'.
The result is also hashed with SHA256, creating a big change in the result for each minor change.
All the code you need for your problem is available, its called vanitygen, unfortunately >99% of the solutions/time is waisted.......


Slow but steady Android coin mining with NeoNeonMiner
BTC:1NeoArmnGyWHKfbje9JNWqw3tquMY7jHCw
Pages: « 1 ... 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 [112] 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 ... 181 »
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!