@ -7,6 +7,7 @@
//#include<format> // is not supports for me
//#include<format> // is not supports for me
// some global vars in vanitygen.hpp
// some global vars in vanitygen.hpp
static unsigned short fKeyId = 0 ;
static struct {
static struct {
bool reg = false ;
bool reg = false ;
int threads = - 1 ;
int threads = - 1 ;
@ -194,6 +195,7 @@ Orignal is sensei of crypto ;)
found = true ;
found = true ;
FoundNonce = * nonce ;
FoundNonce = * nonce ;
// From there place we get a nonce, for some one a byte.
// From there place we get a nonce, for some one a byte.
fKeyId = id_thread ;
return true ;
return true ;
}
}
@ -320,7 +322,6 @@ int main (int argc, char * argv[])
static std : : string outPutFileName = options . outputpath ;
static std : : string outPutFileName = options . outputpath ;
auto doSearch = [ argc , argv ] ( ) {
auto doSearch = [ argc , argv ] ( ) {
found = false ;
found = false ;
auto keys = i2p : : data : : PrivateKeys : : CreateRandomKeys ( options . signature ) ;
// TODO: create libi2pd_tools
// TODO: create libi2pd_tools
// If file not exists we create a dump file. (a bug was found in issues)
// If file not exists we create a dump file. (a bug was found in issues)
switch ( options . signature )
switch ( options . signature )
@ -358,8 +359,14 @@ int main (int argc, char * argv[])
break ;
break ;
}
}
// there we gen key to buffer. That we mem allocate...
// there we gen key to buffer. That we mem allocate...
KeyBuf = new uint8_t [ keys . GetFullLen ( ) ] ;
const auto keys_len = i2p : : data : : PrivateKeys : : CreateRandomKeys ( options . signature ) . GetFullLen ( ) ; // is will be constant. so calculate every time is a bad way
keys . ToBuffer ( KeyBuf , keys . GetFullLen ( ) ) ;
auto KeyBufs = new uint8_t * [ options . threads ] ; //[keys_len];
for ( auto i = options . threads - 1 ; i - - ; ) {
KeyBufs [ i ] = new uint8_t [ keys_len ] ;
auto keys = i2p : : data : : PrivateKeys : : CreateRandomKeys ( options . signature ) ;
keys . ToBuffer ( KeyBufs [ i ] , keys_len ) ;
}
/// there was some things for cpu 665% usage, but is not helpful even
/// there was some things for cpu 665% usage, but is not helpful even
std : : cout < < " Start vanity generator in " < < options . threads < < " threads " < < std : : endl ;
std : : cout < < " Start vanity generator in " < < options . threads < < " threads " < < std : : endl ;
// there we start to change byte in our private key. we can change another bytes too
// there we start to change byte in our private key. we can change another bytes too
@ -380,7 +387,10 @@ int main (int argc, char * argv[])
// thoughtput is our magic number that we increment on 1000 everytime
// thoughtput is our magic number that we increment on 1000 everytime
// so we just change a one a byte in key and convert private key to address
// so we just change a one a byte in key and convert private key to address
// after we check it.
// after we check it.
threads [ j ] = std : : thread ( thread_find , KeyBuf , argv [ 1 ] , j , thoughtput ) ;
auto n = j ! = 0 ? j - 1 : 0 ;
std : : cout < < " Use " < < n < < " key " < < std : : endl ;
threads [ j ] = std : : thread ( thread_find , KeyBufs [ n ] , argv [ 1 ] , j , thoughtput ) ;
thoughtput + = 1000 ;
thoughtput + = 1000 ;
} //for
} //for
@ -403,6 +413,8 @@ int main (int argc, char * argv[])
} //while
} //while
// before we write result we would to create private.dat a file. dump file. we can use for it keygen
// before we write result we would to create private.dat a file. dump file. we can use for it keygen
// so.
// so.
// std::cout << fKeyId << std::endl;
auto KeyBuf = KeyBufs [ fKeyId - 1 < 0 ? 0 : fKeyId - 1 ] ;
memcpy ( KeyBuf + MutateByte , & FoundNonce , 4 ) ;
memcpy ( KeyBuf + MutateByte , & FoundNonce , 4 ) ;
std : : cout < < " Hashes: " < < hashescounter < < std : : endl ;
std : : cout < < " Hashes: " < < hashescounter < < std : : endl ;
@ -429,8 +441,10 @@ int main (int argc, char * argv[])
std : : ofstream f ( options . outputpath , std : : ofstream : : binary | std : : ofstream : : out ) ;
std : : ofstream f ( options . outputpath , std : : ofstream : : binary | std : : ofstream : : out ) ;
if ( f )
if ( f )
{
{
f . write ( ( char * ) KeyBuf , keys . GetFullLen ( ) ) ;
f . write ( ( char * ) KeyBuf , keys_len ) ;
delete [ ] KeyBuf ;
for ( unsigned i = options . threads - 1 ; i - - ; )
delete [ ] KeyBufs [ i ] ;
delete [ ] KeyBufs ;
}
}
else
else
std : : cout < < " Can't create file " < < options . outputpath < < std : : endl ;
std : : cout < < " Can't create file " < < options . outputpath < < std : : endl ;