Giter VIP home page Giter VIP logo

progranism / open-source-fpga-bitcoin-miner Goto Github PK

View Code? Open in Web Editor NEW
1.2K 1.2K 541.0 9.16 MB

A completely open source implementation of a Bitcoin Miner for Altera and Xilinx FPGAs. This project hopes to promote the free and open development of FPGA based mining solutions and secure the future of the Bitcoin project as a whole. A binary release is currently available for the Terasic DE2-115 Development Board, and there are compile-able projects for numerous boards.

License: GNU General Public License v3.0

Verilog 15.07% Shell 0.01% C 0.15% Python 0.18% VHDL 83.82% Coq 0.07% Tcl 0.69%

open-source-fpga-bitcoin-miner's People

Contributors

chrishaw avatar fpgaminer avatar iamnotdorian avatar interfect avatar makomk avatar progranism avatar teknohog avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

open-source-fpga-bitcoin-miner's Issues

100% Rejection

I'm working with the supplied script and getting 100% rejection rate, any suggestions? BTC to anyone who helps me get the script working.

Need help on where to start

I'm new to FPGA programming, and I want to try this project out.

Seem like those codes are not very "device specific" so where should I change?
FYI, I'm using DE0 Nano SoC. It has a Cyclone V SE 5CSEMA4U23C6N on board.

Thanks.

KC705

fpgaminer_top.v

you have a long compare each time round the loop

// Stop hashing if we've run out of nonces to check
else if (nonce2 == 32'hFFFFFFFF)

modify nonce2 to make it 1 bit longer, then change the above to a test for a single high end bit, this will take the logic from a 32 bit compare chain to a 1 bit compare chain...
it should push the rate up.

Unable to communicate with FPGA firmware on new device port

I'm trying to port this firmware to a slightly different FPGA development board. It's the DE2, the predecessor to the DE2-115 already supported. It has the Cyclone II EP2C35F672C6 FPGA. Starting from the existing DE2_115 unoptimized version, I have the project building successfully for this board and creating the bitstream. Running the mine.tcl script, I can see it find both the USB Blaster JTAG and the FPGA behind it:

Looking for and preparing FPGAs...

  1. USB-Blaster [USB-0]
    @1: EP2C35 (0x020B40DD)

Selecting that board, it rightly claims that it does not having the mining firmware installed. I can program the sof bitstream through the USB Blaster from Quartus and it appears successful, but after that, the JTAG interface is no longer functional. Running mine.tcl finds the blaster, but does not see the FPGA behind it anymore. Attempting to re-flash the firmware also no longer works and I have to power cycle the board to continue on.

My guess is something is not set up with the clock or PLL configuration. My board runs at 50 MHz and it looks like the osc_clk is correctly mapped to PIN_N2 in the project. Any pointers on how to diagnose the issue would be appreciated.

miner.py : Timed out waiting for FPGA to accept work

I am using VHDL_Xilinx_Port FPGA but have a problem with miner.py. Here is miner.log (same as terminal output):

Connecting to FPGA... Done
Measuring FPGA performance... Timed out waiting for FPGA to accept work

and it dies. I tried to increase self.fpga.timeout from 1 to 10 or even 100 with the same result.Is there anything else I should try?

Miner.bat for other (smaller) devices

Hi,

I have tried to use the pipelined version on my DE0 Board (Cyclone III EP3C16F484. I have a valid .sof file that works with the board (I think), but the miner.bat does not recognize the board, although I have added it to the mine.tcl script. Error message:

ERROR: The specified hardware is not found.

    while executing
"get_insystem_source_probe_instance_info -hardware_name "USB-Blaster \[USB-0\]"
-device_name "@1: EP3C120/EP3C16F484 (0x020F70DD)""
    (procedure "find_instances" line 3)
    invoked from within
"find_instances"
    (file "mine.tcl" line 165)

The changes I have made to the files can be seen in my Fork:

commit: 541ecd3

Greetings, youRFate

FPGA Miner Project update and how to run it on a board(xilinx ZCU102 Development board) that is not in the tested projects directory

Hello All,

I have a xilinx ZCU102 board.

I just have two questions:

  1. This project is pretty old. Has there been no update in bitcoin code in last 11 years? I am asking because ethereum code changed quite a lot since its launch. Has bitcoin code been the same? Is this project still valid for current bitcoin?
  2. The changes that I need to make in this project build and work on ZCU102 board.
    Not looking for you to do my work. Just want to know the steps/flow of changes I need to make to get it to work on a new board.
    NOTE: Sorry I am new to fpga development board.
    Does anyone have a project build for zcu102 board or other latest xilins boards??

Thanks,
Kapoor7997

IDX is not defined(sha256_transform)

I am implementing this code on Xilinx FPGA for learning purposes but there is a small issue if you can help me.

always @ (posedge clk)
	begin
		if (!feedback)
		begin
		
			tx_hash[`IDX(0)] <= rx_state[`IDX(0)] + HASHERS[64/LOOP-6'd1].state[`IDX(0)];
			tx_hash[`IDX(1)] <= rx_state[`IDX(1)] + HASHERS[64/LOOP-6'd1].state[`IDX(1)];
			tx_hash[`IDX(2)] <= rx_state[`IDX(2)] + HASHERS[64/LOOP-6'd1].state[`IDX(2)];
			tx_hash[`IDX(3)] <= rx_state[`IDX(3)] + HASHERS[64/LOOP-6'd1].state[`IDX(3)];
			tx_hash[`IDX(4)] <= rx_state[`IDX(4)] + HASHERS[64/LOOP-6'd1].state[`IDX(4)];
			tx_hash[`IDX(5)] <= rx_state[`IDX(5)] + HASHERS[64/LOOP-6'd1].state[`IDX(5)];
			tx_hash[`IDX(6)] <= rx_state[`IDX(6)] + HASHERS[64/LOOP-6'd1].state[`IDX(6)];
			tx_hash[`IDX(7)] <= rx_state[`IDX(7)] + HASHERS[64/LOOP-6'd1].state[`IDX(7)];
		
		end
	end

IDX is not defined that's the error which i am facing. Is it just a variable ? or what? Thanks

needs a plug in for bfgminer

Playing about with the current pyton code for submitting jobs, seems unstable once the number of boards is scaled up.

Really the RS232 interface could do with a BFGminer plugin.

intel Quartus ii compiler

can anyone guide me that what Intel Quartus compiler should i have to use to implement this bit miner code? or any procedure file which can help me to build all projects. Thanks

Missing verilog files

I am not able to find module defination for following instances

e0  e0_blk  (rx_state[`IDX(0)], e0_w);
e1  e1_blk  (rx_state[`IDX(4)], e1_w);
ch  ch_blk  (rx_state[`IDX(4)], rx_state[`IDX(5)], rx_state[`IDX(6)], ch_w);
maj maj_blk (rx_state[`IDX(0)], rx_state[`IDX(1)], rx_state[`IDX(2)], maj_w);
s0  s0_blk  (rx_w1, s0_w);
s1  s1_blk  (rx_w14, s1_w);

Above are the instance present in sha256_transform.v

No "stratum+tcp" support?

Hi there.

Working on a DE0-nano board and using the HDL from https://github.com/kramble/DE0-Nano-BitCoin-Miner but I am using the script here to mine, like the page over there says.

It looks like I've got everything working and set up correctly. However, when I go to run the script, a message in the terminal says that new work cannot be fetched because the "stratum+tcp" protocol is not supported.

I'm doing this for fun, not for profit (not really worth it anymore anyway), but I'd really like this to work if I can.

Any advice or links to head to online to get this little guy running? Thanks!

capture

Help: Intel Cyclone 10 LP

Hi
How do I load it in Quartus, compile it and upload it to my MKR Vidor 4000 (Intel Cyclone 10 LP) without a USB Blaster?
Regards

Help editing for a papilio duo

I have a papilio duo laying around and was interested in turning it into a miner. I was hoping for some guidance as to what changes i will need to make and such. Thanks

Missing verilog files

I am not able to find module defination for following instances

altshift_taps # (.number_of_taps(1), .tap_distance(LENGTH), .width(32)) shifttaps

Xilinx VHDL synthesizing forever

I've tried to synthesize the VHDL-Core for a Xilinx XC3S700A , but ISE hangs now for over 45 minutes now in "Advanced HDL Synthesis". Is this supposed to be normal?

Hash rate is 0.02 MH/s

I can't connect to the pool. My hash rate shows 0.02 MH/s (~0.00 MH/s) without any errors on screen. My board is DE2i-150 and my pool is slushpool.

help

as a newer,please tell me what is the 'your password here'

Issue with program-fpga-board.bat

When I try to run program-fpga-board.bat

I got error message such as :
System cannot find the path specified.

Can you give me some instructions on what to do? Should I put the files in a different folder/

Thank you.

Am I really mining?

I´m trying to connect to Slushpool using this Miner loaded on a DE0 Nano SoC. Even though the miner connects to the stratum proxy and the Slushpool page creates a new worker if I run the miner specifying the worker on the "config" file , the page show me the worker as "offline". It doesn´t show me any actual hashrate, too. In the miner window, after it begins accepting jobs, the hashrate is about ~2100 MH/s. I know it´s nothing compared to the hashrates nowadays, but shouldn´t the page at least show me the hashrate, or my worker active? Thanks.
SoC_93 78MHs_3

Running on FLEX devices

First of all: Thank you for maintaining this project.

I used a Terasic Development board in first semester but didn't learn Verilog or Altera HDL. Some minor VHDL knowledge is there, but it's not really enough for such a project.

Is there a easy way to convert the project to run on a Altera FLEX 10K20 FPGA, mounted on a UP1 Development Board? I know, Hashrate will be poor.

best regards,

Sascha

small device for testing.

Hey, i have never use a FPGA borad, i will try the prodject on a smalelr device to understund more and mabye in the futurce buy and bigger board.

I looked up Altera MAX II EPM240. and under stund that is an smal one. but is it easy to get this project to work with that device?

http://www.ebay.com/itm/Altera-MAX-II-EPM240-Core-Board-FPGA-CPLD-Development-Kits-JTAG-USB-Blaster-/330813186044?pt=LH_DefaultDomain_0&hash=item4d06009ffc

http://www.altera.com/devices/cpld/max2/overview/mx2-overview.html

BR Patrik

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.