Giter VIP home page Giter VIP logo

cuda_bitcoin_miner's Introduction

EC527 Final Project
Bitcoin Mining with EC527
Due 5/8/15

Gerardo Ravago
http://www.gcr.me/
https://github.com/geedo0/cuda_bitcoin_miner

Description:
This project implements the Bitcoin mining algorithm optimized for the Nvidia Quadro NVS 295 GPU found in the PHO 207 lab machines. Currently the CUDA portion of the project only works on faked data stored in test.h and is meant to be a proof of concept to experiment with optimizing just the mining portion of Bitcoin. A complete implementation that interfaces with the Bitcoin network will eventually be completed and posted to Github. For now, the code in the future_work directory is provided as is and is the beginnings of that side project. It's based on the libblkmaker library which generates block headers using the getblocktemplate JSON RPC provided by the bitcoind.

Contents:
/bin/ - Compiled binaries for the 
/Code/ - All the code for this project.
	/cuPrintf.cu - CUDA Printf routine
	/cuPrintf.cuh - CUDA Printf header
	/main.cu - Miner's main function and Bitcoin mining kernel
	/makefile - Makefile to build the miners
	/serial_baseline.c  - CPU based Bitcoin miner
	/sha256.c - Basic SHA-256 implementation derivative of Brad Conte's work
	/sha256.h - Header file with supporting data structures
	/sha256_unrolls.h - Contains unrolled versions of the SHA256 compression function
	/test.h - Declares an array representing a Bitcoin block header to be mined
	/utils.c - Defines a few useful functions for this project
	/utils.h - Header file
/future_work/ - Code for a future side project to make a complete Bitcoin miner, provided as is.
/writeup.pdf - Writeup for this project
/README - This file

Compilation Instructions:
cd code/
make all

Usage:
1. Edit the block header in test.h if desired. The specification for this can be found in the Bitcoin Developer's Reference.
2. Run ./gpu_miner. To check all 4 billion nonces should take about 90 seconds.

NOTE: Not all block headers will have a solution. Good luck ;)

Sample output:

-bash-4.1$ ./gpu_miner
Nonce found! 68c664a2
Hash is:
00000000 adeac280 8160c906 96bb34f1 00ec1360 b679ec1e 9f453df4 44de3e15
Tested 4294967296 hashes
GPU execution time: 91587.929688 ms
Hashrate: 46894468.63 H/s

cuda_bitcoin_miner's People

Contributors

geedo0 avatar rafaelfernandesx avatar

Forkers

crypt0inf0

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.