Bitcoin Forum
April 19, 2024, 07:14:07 PM *
News: Latest Bitcoin Core release: 26.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 ... 61 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 ... 191 »
  Print  
Author Topic: Vanitygen: Vanity bitcoin address generator/miner [v0.22]  (Read 1152798 times)
Muhammed Zakir
Hero Member
*****
Offline Offline

Activity: 560
Merit: 506


I prefer Zakir over Muhammed when mentioning me!


View Profile WWW
May 31, 2015, 06:57:58 AM
 #2201

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.

1713554047
Hero Member
*
Offline Offline

Posts: 1713554047

View Profile Personal Message (Offline)

Ignore
1713554047
Reply with quote  #2

1713554047
Report to moderator
Each block is stacked on top of the previous one. Adding another block to the top makes all lower blocks more difficult to remove: there is more "weight" above each block. A transaction in a block 6 blocks deep (6 confirmations) will be very difficult to remove.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1713554047
Hero Member
*
Offline Offline

Posts: 1713554047

View Profile Personal Message (Offline)

Ignore
1713554047
Reply with quote  #2

1713554047
Report to moderator
1713554047
Hero Member
*
Offline Offline

Posts: 1713554047

View Profile Personal Message (Offline)

Ignore
1713554047
Reply with quote  #2

1713554047
Report to moderator
andulolika
Legendary
*
Offline Offline

Activity: 2296
Merit: 1047



View Profile
June 02, 2015, 01:41:07 PM
 #2202

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.

🔥 🔥 🔥  Satochip - Secure the future  🔥 🔥 🔥
⭐️ Hardware wallet on a smartcard | Affordable and easy to use | Open source and community driven | BTC, LTC, BCH (SLP tokens), ETH (ERC-20 tokens)... ⭐️
──WebsiteShop  |  Bitcointalk  |  Twitter  |  Telegram  |  Github──
Jude Austin
Legendary
*
Offline Offline

Activity: 1140
Merit: 1000


The Real Jude Austin


View Profile WWW
June 03, 2015, 05:23:22 AM
 #2203

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!

Buy or sell $100 of Crypto and get $10!
georgem
Legendary
*
Offline Offline

Activity: 1484
Merit: 1007


spreadcoin.info


View Profile WWW
June 07, 2015, 03:20:47 PM
 #2204

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?

TheRealSteve
Hero Member
*****
Offline Offline

Activity: 686
Merit: 500

FUN > ROI


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

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.

organofcorti
Donator
Legendary
*
Offline Offline

Activity: 2058
Merit: 1007


Poor impulse control.


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

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: 1484
Merit: 1007


spreadcoin.info


View Profile WWW
June 07, 2015, 03:52:01 PM
Last edit: June 07, 2015, 04:06:36 PM by georgem
 #2207

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: 1484
Merit: 1007


spreadcoin.info


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

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
 #2209

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: 1484
Merit: 1007


spreadcoin.info


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

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
 #2211

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: 1484
Merit: 1007


spreadcoin.info


View Profile WWW
June 07, 2015, 04:26:55 PM
Last edit: June 07, 2015, 04:46:01 PM by georgem
 #2212


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: 506


I prefer Zakir over Muhammed when mentioning me!


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


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: 1484
Merit: 1007


spreadcoin.info


View Profile WWW
June 07, 2015, 04:36:26 PM
Last edit: June 07, 2015, 04:57:26 PM by georgem
 #2214


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: 1484
Merit: 1007


spreadcoin.info


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

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: 506


I prefer Zakir over Muhammed when mentioning me!


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

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: 1484
Merit: 1007


spreadcoin.info


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

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
 #2218

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: 1484
Merit: 1007


spreadcoin.info


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

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: 1484
Merit: 1007


spreadcoin.info


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

 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

Pages: « 1 ... 61 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 ... 191 »
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!