挖比特币网站(靓号比特币挖掘程序)_期货基金_智行理财网

挖比特币网站(靓号比特币挖掘程序)

智行网 0

靓号比特币挖掘程序

#include//Thestringwearesearchingforconststd::stringsearch="1kid";//Generatearandomsecretkey.Arandom32 bytes.bc::ec_secret random_secret(std::default_random_engine& engine); // Extract the Bitcoin address from an EC secret.std::string bitcoin_address(const bc::ec_secret& secret);// Case insensitive comparison with the search string.bool match_found(const std::string& address);intmain()

{ std::random_device random; std::default_random_engineengine(random()); // Loop continuously... while(true) { // Generate a randomsecret. bc::ec_secret secret = random_secret(engine); // Get the address. std::string address=bitcoin_address(secret); // Does it match our searchstring?(1kid) if (match_found(address)) { //Success!

std::cout<<"Foundvanityaddress!"<<address<<std::endl; std::cout << "Secret: " << bc::encode_hex(secret) << std::endl;return0; } } // Should never reach here! return 0; }bc::ec_secret random_secret(std::default_random_engine&engine){ // Createnewsecret... bc::ec_secretsecret; // Iterate through every byte setting a random value... for(uint8_t& byte:secret) byte = engine()%

std::numeric_limits::max(); //Returnresult. return secret;}std::string bitcoin_address(const bc::ec_secret& secret){ // Convert secrettopubkey... bc::ec_point pubkey=bc::secret_to_public_key(secret); // Finally createaddress. bc::payment_address payaddr; bc::set_public_key(payaddr,pubkey); // Return encoded form. return payaddr.encoded(); }bool match_found(const std::string&address){ auto addr_it =address.begin();

//Loopthroughthesearchstringcomparingittothelower case //characterofthesuppliedaddress. for(autoit

= search.begin(); it != search.end(); ++it, ++addr_it)

if (*it!=std::tolower(*addr_it)) returnfalse;

//Reachedendofsearchstring,soaddressmatches. return true; }

示例程序需要用 C 编译器链接 libbitcoin 库(此库需要提前装入该系统)进行编译。直接执行 vanity-miner 的可执行文件(不用参数,参见例 4-9),它就会尝试碰撞以“1kid”开头的比特币地址。

例 4-9 编译并运行 vanity-miner 程序示例

$ # Compile the code with g++$ g++ -o vanity-miner vanity-miner.cpp $(pkg-config --cflags --libs libbitcoin)

$ # Run the example$ ./vanity-minerFound vanity address! 1KiDzkG4MxmovZryZRj8tK81oQRhbZ46YTSecret: 57cc268a05f83a23ac9d930bc8565bac4e277055f4794cbd1a39e5e71 c038f3f$ # Run it again for a different

result$ ./vanity-minerFound vanity address! 1Kidxr3wsmMzzouwXibKfwTYs5Pau8TUFnSecret: 7f65bbbbe6d8caae74a0c6a0d2d7b5c6663d71b60337299a1a2cf34c0 4b2a623# Use "time" to see how long it takes to find a result$ time ./vanity-minerFound vanity address!

1KidPWhKgGRQWD5PP5TAnGfDyfWp5yceXMSecret: 2a802e7a53d8aa237cd059377b616d2bfcfa4b0140bc85fa008f2d3d4 b225349real 0m8.868suser 0m8.828ssys 0m0.035s

正如我们运行 Unix 命令 time 所测出的运行时间所示,示例代码要花几秒钟来找出匹配“kid”三个字符模板的结果。读者们可以在源代码中改变 search 这一搜索模板,看一看如果是四个字符或者五个字符的搜索模板需要花多久时间!

标签: secret address std
挖比特币网站(靓号比特币挖掘程序)文档下载: PDF DOC TXT