Bitcoin Forum
November 08, 2024, 01:25:30 AM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Bounty offer — OpenCL or CUDA Monero vanity address generator  (Read 166 times)
kopipe (OP)
Full Member
***
Offline Offline

Activity: 245
Merit: 124



View Profile
April 17, 2022, 03:38:44 AM
Merited by Hueristic (1)
 #1

Greetings!

Monero vanity address generation can currently only be done via CPU.

This is annoying.

Therefore I am delighted to announce that the Modular Font Editor K Foundation, Incorporated, a New Jersey non-profit (which, despite its name, is a charity that I use to fund free software in general), is offering a bounty of $3,099 to be paid however the accepting user prefers for a Monero (XMR) vanity address program meeting these specs:

  • works on GNU/Linux
  • works with NVIDIA cards (my laptop has NVIDIA GeForce RTX 3080 Laptop GPU, so that's the minimum featureset)
  • is command line driven
  • uses either CUDA or OpenCL as stated in subject line
  • accepts at least a single search prefix on the command line for the public receive key
  • is at least 4x faster than https://github.com/monero-ecosystem/vanity-monero, which should be no problem as you are writing a GPU-driven app
  • reports the number of keys it's considering every n seconds
You agree that the program you produce will not receive the bounty unless it is licensed under the Apache 2.0 license. You agree that you will include above the copyright line of the Apache 2.0 license, which the license requires redistribution of, this text:

Code:
Support for this software's development was paid for by Fredrick R. Brennan's Modular Font Editor K Foundation, Inc.

コピペ copypaste
sech1
Member
**
Offline Offline

Activity: 116
Merit: 66


View Profile WWW
April 17, 2022, 10:39:11 PM
Merited by kopipe (5)
 #2

Here you go: https://github.com/SChernykh/vanity_xmr_cuda

You can send the bounty to my XMR address:
Code:
44MnN1f3Eto8DZYUWuE5XZNUtE3vcRzt2j6PzqWpPau34e6Cf4fAxt6X2MBmrm6F9YMEiMNjN6W4Shn4pLcfNAja621jwyg
kopipe (OP)
Full Member
***
Offline Offline

Activity: 245
Merit: 124



View Profile
April 18, 2022, 10:33:56 AM
 #3

I am just seeing this now. I will verify your program works as intended, but it seems to be in order from README.

コピペ copypaste
kopipe (OP)
Full Member
***
Offline Offline

Activity: 245
Merit: 124



View Profile
April 18, 2022, 11:11:25 AM
 #4

Thank you, I am incredibly impressed.

I did the following tests to make sure that this was a legitimate solve:

1. I ran the existing Golang implementation:
Code:
fred@mapache:~/Workspace/vanity-monero$ go run cmd/vanity-monero/main.go 
Select work mode:
1) Standard mode
2) Split-key mode
3) About
Your choice: 1

Select network:
1) Monero main network
2) Monero test network
3) GRAFT main network
Your choice: 1

Select mnemonic seeds language:
1) English
2) Dutch
3) Esperanto
4) Spanish
5) French
6) German
7) Italian
8) Japanese
9) Lojban
10) Portuguese
11) Russian
12) Chinese (Simplified)
Your choice: 1

Select match mode:
1) Prefix from the 3rd character. (fast)
   For example, pattern "Ai" matches "42Aiabc..." and "48Aiabc...".
2) Prefix from the 1st character. (medium)
   For example, pattern "44Ai" matches "44Aiabc..." and "44Aidef...".
3) Regex. (slow)
   For example, pattern ".*A[0-9]{1,3}i.+" matches "44abcA233idef...".
   Note that in Regex mode there is no guarantee that there exists such address matching the pattern.
Your choice: 1

Enter your prefix/regex, which must be in ASCII and not include 'I', 'O', 'l': speak
Case sensitive? [Y/n] n
Specify how many threads to run. 0 means all CPUs: 0
=========================================
Difficulty (est.): 16777215
Threads: 16

Key Rate: 120428 key/s || Total: 3461792 (20.63%) || Time: 29s / 1m50s

In the same amount of time, your result was:

Code:
fred@mapache:~/Workspace/vanity_xmr_cuda/build$ ./vanity_xmr_cuda -i 4?speak
Thread 0: running on NVIDIA GeForce RTX 3080 Laptop GPU
9a777818bf8d7ee345f0047c5eab47f4b354e9b2626db189eff5348961345c03 47SPeaKPxDYUoHg2Q7FWHp9shpsKYmcXT59cU8R2cAh8AR3v6RyzyF53DihppjkX2jaHrNNmFf2njZXh78co6MvpSagh3wp
8c8b1ffab8a2b7ed9110b6f0bf4d54140e9d00bac16ce16c806852f64fd94c05 48SpEAKmCtLGM5Xx1tYUopfnQ8uQHACQJETa5Cga8p3PQLnxkQjq6ZoFGsv7khRZw6b2PM95Z9nN9ZGgXxYrB6xkPADwC7i
3fc8701cf73f3ae06ebf156f6fb235115227bbe80a5dfe9d69cb163130b9170e 47sPeAKLoBkDT8QrSZUBpERB2Yhe5qcw91zUCqpVnP5AVyCHQPqAepVKZufAbu422jDgTs6zzRZaKNiAVpbd2z3pKjV4hJE
c9b679fbd135d76474af954370bd777df24778d6418deb51bc2dfa59638d630b 48spEAKcTH1SUGNorrzqnQNNrgGoAjfdqbrsWyJ37FNpVEcr2GKeGExZJbRwzbYDn6irWTiLSotWnJwwJbrXEzv4Ks6wgft
88913f4c6b7c2795657cc43f0ef3ad66bd4093adef58cc7c9c404faf73a63a06 48SpEAKKattMKGbEjiYwYE4iKJKYFnquHhrtzaXbEr5jWHHs1uCJmdWdFqHiFe3Q3x1qzsY9xPW8xLMZX5tHz1GREadP5LP
cfcf2893130355cc5febd8540d9d2638a377af8d27d305a23a64949e7911f308 48speaKDwR4T6P86keR2NobmBHGxhgYctW7aVDjx8x6S6WjNwtmxy8MhySbJdyUJAJMg4rjVkBGywY2LFEis2QVY8MuDbvp
e45d003580759ca4667984b2b5deb66b80df5f3a589c66cf96eeaca62f23b300 4AsPEaKGrSGUwNHai5jRMN32bEsa9t1yeVw1onvVZtd8bJ6RvJvyZYi7xAXdNHPxHfJu6A8i7tJ2AcTY9cCTA7uoSPn3pyW
2e014b38be71a578e1c88230a146193f2bf56e22e466601fcb7da4cb8ce8960b 42sPEAKeqU6PHAaNGyVAiUcrT5Htt9uV3FgnCUQ9zDd9Cc6cESKXMYVYRx3PQXJq8ZLckDXbjSc5VEMZvwFaoCSTLgyBpDE
f368752a9ddc30c5195516289a8db3966420f96f9607f714d79cff13a8790d04 42SPeaKf2zpjRzG398fiGp3CMB9rS2ZyLGf6JnRBqCpvQbxZnkn5ssxLANdDMnLYQDU16NuduGVazfrPaPVAddsQ6jek22m
12.6527 million keys/second
b4d2542d443088a040c133d55b289aa2f769ba7d658a2518b2e19f331d437804 49SpeAKmbNhfv5SL6oMM2D6kgSoqaUgYuQE4ceQfBjf1i4Y69rDoFe7HawErQe4tss5F3KA2UACHgJB6BEsq7G9uKtgY6YS
eaf29beaff634166eab20ee312bb9427b1fa8decf2834bc25df0afae2355050b 48SpEAKoKiYfvh9gWtctg7YjvZQ9NUpaZ7SrQE6udTwJCruJPKF7MW2AXmgwEfLyfMU43u9ZTVxtx6CuzYtKVi5SV4PbFMU
94b92182ddec3c753a0d1c83889b65e6ab8ee2f5d12340a4c96e647da285b10d 46sPEaKN33FZRQJBsbsQvXj3KDhenvZdfV8oYyuwkbJBPh3A8DBxAcA1gC4XbkfsvhTUBTQiXNFHF4SF76TrBaxe2CQ4EhG
c3835f7c62152e865936976767ccac686fc7f3831d6f48fc8b313e6bae957907 44sPeAKSc1eHpZSEUeBGsGVnxbuxX5L9MYN6Ci4tgiC5GvwS7Y2iAFyLiyF9g9oR6hYCLAgxZBHYsFAYzDRZ1xgN776u9Gm

Fantastic.

I then loaded a generated address into MyMonero to make sure we have a match—

Code:
651507438fb1691ec1c617ea1773ad93b0036fd79295ee8173c98f4c6de72e0c 46SPEAKZWk9PtTM2Ziitmh5msxYDowPbNPKxid2wwUVBgghMzxPJMTBTZr8S6ngick7tmNUapWRsSd8ouAJdsPKU17gHfr9

I found this helpful page—https://xmr.llcoins.net/addresstests.html which gave me after clickig a bunch

Code:
46SPEAKZWk9PtTM2Ziitmh5msxYDowPbNPKxid2wwUVBgiMXXf8T7vVGq9Vco38GSBCYGoJ1vD81a9Vnr5MHUHUx95QQX7z

Note the mismatch beginning after 46SPEAKZWk9PtTM2Ziitmh5msxYDowPbNPKxid2wwUVBg, where next token becomes i….

Clearly this still works, but I'm weary of why this is happening and hope for an explanation. You've clearly done the bounty so deserve the money, so no one else should work on this while you're preparing answer.

コピペ copypaste
sech1
Member
**
Offline Offline

Activity: 116
Merit: 66


View Profile WWW
April 18, 2022, 01:06:57 PM
 #5

It's most likely a display bug. The second half of Monero address is a public view key, so the bug must be somewhere there. I'll look into it.

Edit: it seems that https://xmr.llcoins.net/addresstests.html gives a wrong address. monero-wallet-cli generated 46SPEAKZWk9PtTM2Ziitmh5msxYDowPbNPKxid2wwUVBgghMzxPJMTBTZr8S6ngick7tmNUapWRsSd8 ouAJdsPKU17gHfr9 for this spend key which is what my generator printed out.
sech1
Member
**
Offline Offline

Activity: 116
Merit: 66


View Profile WWW
April 18, 2022, 03:24:19 PM
 #6

I've created a new wallet to receive the bounty:

Address: 47Sp1L4sjdFhRVuLevzx3PGpjF8LoKNNfSEfykesoVejS7P4CVZMucUDdAkv7hiFtSAyGQYp4uwAZGP FUJh6CkepHZmmfQ4
Viewkey: 25b6369894243846c8c8f34362081d75f75cbb331242c63177398a4af1c2e702
kopipe (OP)
Full Member
***
Offline Offline

Activity: 245
Merit: 124



View Profile
April 18, 2022, 03:51:26 PM
 #7

I've created a new wallet to receive the bounty:

Address: 47Sp1L4sjdFhRVuLevzx3PGpjF8LoKNNfSEfykesoVejS7P4CVZMucUDdAkv7hiFtSAyGQYp4uwAZGP FUJh6CkepHZmmfQ4
Viewkey: 25b6369894243846c8c8f34362081d75f75cbb331242c63177398a4af1c2e702

Thank you! Is 12 XMR okay?

コピペ copypaste
sech1
Member
**
Offline Offline

Activity: 116
Merit: 66


View Profile WWW
April 18, 2022, 03:59:32 PM
 #8

I've created a new wallet to receive the bounty:

Address: 47Sp1L4sjdFhRVuLevzx3PGpjF8LoKNNfSEfykesoVejS7P4CVZMucUDdAkv7hiFtSAyGQYp4uwAZGP FUJh6CkepHZmmfQ4
Viewkey: 25b6369894243846c8c8f34362081d75f75cbb331242c63177398a4af1c2e702

Thank you! Is 12 XMR okay?
Yes, 12 XMR is ok.
sech1
Member
**
Offline Offline

Activity: 116
Merit: 66


View Profile WWW
April 18, 2022, 05:28:16 PM
 #9

Writing here to confirm that I received the bounty Smiley
kopipe (OP)
Full Member
***
Offline Offline

Activity: 245
Merit: 124



View Profile
April 18, 2022, 05:32:11 PM
 #10

Writing here to confirm that I received the bounty Smiley

Thank you sech1, I have been able to verify this on my side as well on behalf of the Modular Font Editor K Foundation, Inc.

12 XMR was paid in transaction 2d84f1d38a6d149ce66f1f13507a55600e67436b16ca821f5f7c607a89ac93f9 from 44tHANKU69BUSJwcseRfNDecr1D8Z61X6gfpKmU1BfQMgUUqqkUufMY8EGdFXz6uTJ4w9Ggc8rmEheuSvYfXDKq85F5i gyx with payment ID 4563636c2e313a32 (ASCII: Eccl.1:2).

This bounty is closed and no more payments will be made to other parties. Thank you very much!

I apologize for problems we (mostly I) had due to buggy wallet MyMonero. Won't be using anymore. It shows a completely wrong address (not yours) but I was able to load your viewkey in Feather and generate this inproof:

Code:
-----BEGIN INPROOF-----
Network: Monero Mainnet
Txid: 2d84f1d38a6d149ce66f1f13507a55600e67436b16ca821f5f7c607a89ac93f9
Address: 47Sp1L4sjdFhRVuLevzx3PGpjF8LoKNNfSEfykesoVejS7P4CVZMucUDdAkv7hiFtSAyGQYp4uwAZGPFUJh6CkepHZmmfQ4


-----BEGIN INPROOF SIGNATURE-----

InProofV2SZCeAJPzwxabjQNFDqW3tHVe2udP33Djpg4qVVabBguUTHdMUU7C4b6
2kDp6o3tN6KUZjvwAkFszQimbAsUM8QxaU6CNW9VgezGA3YnCGd7c2sTW4dCM2aw
PVfjYoCopujGb
-----END INPROOF SIGNATURE-----

Thanks everyone.

コピペ copypaste
Pages: [1]
  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!