Bitcoin Forum
May 03, 2024, 10:18:24 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Open Source Vanitygen for FPGAs  (Read 4746 times)
fpgaminer (OP)
Hero Member
*****
Offline Offline

Activity: 560
Merit: 517



View Profile WWW
March 12, 2013, 10:45:52 PM
Last edit: April 13, 2013, 09:26:07 AM by fpgaminer
 #1

Open Source Vanitygen for FPGAs

Source on Github

Animated Github Log



April 13th, 2013
The first Open Source Vanity Address Generation for FPGAs firmware is now available on Github!  This first release targets the Altera Cyclone III C120 Development Board, and is more a proof of concept than anything else.  It's functional, but only runs at ~40Kk/s.  Feel free to dive in and port to your own FPGA boards.

I have more performant code under development (unrolled/pipelined).

See the OP for links to the source code and such.




Original Post, March 12th, 2013.

1714774704
Hero Member
*
Offline Offline

Posts: 1714774704

View Profile Personal Message (Offline)

Ignore
1714774704
Reply with quote  #2

1714774704
Report to moderator
1714774704
Hero Member
*
Offline Offline

Posts: 1714774704

View Profile Personal Message (Offline)

Ignore
1714774704
Reply with quote  #2

1714774704
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
K1773R
Legendary
*
Offline Offline

Activity: 1792
Merit: 1008


/dev/null


View Profile
March 12, 2013, 10:50:33 PM
 #2

source is always welcome Smiley

[GPG Public Key]
BTC/DVC/TRC/FRC: 1K1773RbXRZVRQSSXe9N6N2MUFERvrdu6y ANC/XPM AK1773RTmRKtvbKBCrUu95UQg5iegrqyeA NMC: NK1773Rzv8b4ugmCgX789PbjewA9fL9Dy1 LTC: LKi773RBuPepQH8E6Zb1ponoCvgbU7hHmd EMC: EK1773RxUes1HX1YAGMZ1xVYBBRUCqfDoF BQC: bK1773R1APJz4yTgRkmdKQhjhiMyQpJgfN
Remember remember the 5th of November
Legendary
*
Offline Offline

Activity: 1862
Merit: 1011

Reverse engineer from time to time


View Profile
March 12, 2013, 11:01:44 PM
 #3

For an FPGA, the numbers are low, but I guess as more work is put into it, you may be able to get it done faster than say a GPU which can typically do 30 million/s or more.

BTC:1AiCRMxgf1ptVQwx6hDuKMu4f7F27QmJC2
Lethos
Sr. Member
****
Offline Offline

Activity: 476
Merit: 250


Keep it Simple. Every Bit Matters.


View Profile WWW
March 20, 2013, 10:00:18 PM
 #4

I certainly like the idea. My FPGA's will eventually need an alternative purpose, once I moved onto ASIC.
Most likely FPGA's would do it a lot faster, than trying to use the GPU in my Laptop.

Would these work on Spartan 6 based boards?

fizzisist
Hero Member
*****
Offline Offline

Activity: 720
Merit: 525



View Profile WWW
March 22, 2013, 02:01:33 PM
 #5

Damn, this is really awesome. Hell of a job, fpgaminer!

fpgaminer (OP)
Hero Member
*****
Offline Offline

Activity: 560
Merit: 517



View Profile WWW
April 13, 2013, 09:23:45 AM
 #6

Copy of OP from March 12th, 2013 - Copied, since the OP has been replaced with something more useful.

I just finished testing my implementation of vanitygen on an Altera Cyclone 3 development kit.  It got lucky and generated 1fpgaw5jo9aS1JB8uAw5rRcnM2QiTAVhQ after only ~66million attempts.

It operates off my usual virtual_wire development setup right now; I can feed it a starting public key, and the hash range to look for.  It will report back the private key offset when a match is found.

Current performance using one vanity core is ~40Kk/s.  I expect initial performance once the number of cores is cranked up to be about 400Kk/s on this devkit.  I haven't done any optimizations.  Power consumption is 300mW right now.

Here is a screenshot of my second session, where I was double checking the results of the first test.



Let me know if there's any interest in me releasing the source code.  On a cursory glance I didn't see any open source FPGA solutions for Bitcoin's ECDSA curve, nor RIPEMD-160.  It would be cool to see the ECDSA code rolled into an SoC like Milkymist, and act as a low-running-cost, high-performance Bitcoin node.

In the meantime, I'll probably concentrate on getting performance up and porting over to the X6500.

fpgaminer (OP)
Hero Member
*****
Offline Offline

Activity: 560
Merit: 517



View Profile WWW
April 13, 2013, 09:25:54 AM
 #7

The first Open Source Vanity Address Generation for FPGAs firmware is now available on Github!  This first release targets the Altera Cyclone III C120 Development Board, and is more a proof of concept than anything else.  It's functional, but only runs at ~40Kk/s.  Feel free to dive in and port to your own FPGA boards.

I have more performant code under development (unrolled/pipelined).

See the OP for links to the source code and such.

gmaxwell
Staff
Legendary
*
Offline Offline

Activity: 4158
Merit: 8382



View Profile WWW
April 14, 2013, 10:14:34 AM
 #8

Would be nice if it generated compressed public keys instead. Doing so shouldn't take any longer, may even be faster— the compressed key is just the x part of the public key with the initial byte set based on Y being even/odd. The uncompressed forms result in keys that take up almost twice the space when spending.
fpgaminer (OP)
Hero Member
*****
Offline Offline

Activity: 560
Merit: 517



View Profile WWW
April 14, 2013, 10:49:52 AM
 #9

Quote
Would be nice if it generated compressed public keys instead.
It only generates compressed public keys.

Lyddite
Member
**
Offline Offline

Activity: 98
Merit: 10



View Profile
September 12, 2013, 08:11:30 PM
 #10

I managed to get this running on a DE0-Nano without modifications.

How did you determine the hash rate?


- Lyddite -
blub
Member
**
Offline Offline

Activity: 88
Merit: 10


View Profile
October 13, 2013, 04:08:01 AM
Last edit: October 13, 2013, 06:40:08 PM by blub
 #11

So today I've spent a few hours digging int bitcoin addres generation and fpgas.

Now I have a decent looking pipline for the address generation scetched on my whiteboard.

As I have no expierience in writing cryptographically secure applications (only scientifical computing so far) it is going to be a pure vanity miner with absolutly no security. Lets see how well a fpga noob will do.


bitpop
Legendary
*
Offline Offline

Activity: 2912
Merit: 1060



View Profile WWW
December 12, 2013, 02:34:13 PM
 #12

Cant wait

jgbreezer
Newbie
*
Offline Offline

Activity: 5
Merit: 0


View Profile
January 25, 2014, 06:28:25 PM
 #13

Bump! @fpgaminer, did you do much further work on the fgpa vanity miner? (even over Christmas holiday season maybe?)

I'm really interested in parallellising it more as you said could be done, but I have no electronics experience since a little at university over 15yrs ago (did some vhdl/verilog/microprocessor stuff in my Computer-science degree but only basic stuff, I was more of a software programmer so picked a course that was more focussed on that). Maybe I wish I'd remembered more/cared more now...

I am however a good (even if I say so myself) C/C++/Python developer who works on performance-critical apps in the regular (non-btc, corporate) finance world. OpenCL is more C-like and easier for me to get into I'm guessing (from what I've seen of examples) and seems to be picking up a lot of interest but I'm not sure if I can run the ocl miner intended mostly for GPU's on an fpga, say an Altera or Ztex one - not found any opencl compiler kits after a bit of a cursory look so guessing no chance for now.

I'm also curious how that 40Kh/s vanity-mining compares to the regular bitcoin mining rate you get on the same hardware - what's the hash-rate ratio? Am trying to work out estimates.

Is there anything I can do to help? Even if its just donations to motivate you Smiley , but if there's code or (with lots of reading & learning on my part) some fpga logic designing or optimising I might be able to learn enough about to assist with, I'll give it a good go (to learn enough to help).

Is anyone running the fpga vanity miner at the moment or are you all doing other types of mining with them/using GPUs only? (and if not using fpgaminer-vanitygen, is it just cos its more profitable?/other reason?)
CoinHeavy
Full Member
***
Offline Offline

Activity: 221
Merit: 100


View Profile
January 26, 2014, 12:03:51 AM
 #14

Is it easy to use vanitygen with an r280 and the latest drivers?  I can't seem to find much information and cpu generation isn't very feasible for strings with length 7+.

What is the goal with porting to FPGA?  (in terms of feasible string length within ~1 day)
Trance
Hero Member
*****
Offline Offline

Activity: 551
Merit: 500


View Profile
January 27, 2014, 12:52:19 AM
 #15

I managed to get this running on a DE0-Nano without modifications.

How did you determine the hash rate?



HASH RATES for GPU's

Hash Rates listed above ^^

Some people are so poor ALL they have is money
wobber
Legendary
*
Offline Offline

Activity: 1064
Merit: 1001


View Profile
January 27, 2014, 12:19:08 PM
 #16

So you generate thousands of key pairs to win one with bitcoins inside?

If you hate me, you can spam me here: 19wdQNKjnATkgXvpzmSrkSYhJtuJWb8mKs
aminorex
Legendary
*
Offline Offline

Activity: 1596
Merit: 1029


Sine secretum non libertas


View Profile
February 11, 2014, 06:00:20 PM
 #17

So you generate thousands of key pairs to win one with bitcoins inside?


No.  That would require enough compute power to drain all the Sun's energy.

Give a man a fish and he eats for a day.  Give a man a Poisson distribution and he eats at random times independent of one another, at a constant known rate.
mrxtraf
Member
**
Offline Offline

Activity: 255
Merit: 27


View Profile WWW
August 14, 2017, 02:56:10 PM
 #18

Hello.
How run this vanitygen on amazon insance F1?
https://aws.amazon.com/ec2/instance-types/f1/?nc1=h_ls
FPGA Xilinx UltraScale+ VU9P
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!