<p>I want to write a basic GPU miner from scratch for learning purposes. 
By "from scratch" I don't mean that I am unwilling to use libraries but I want it to be similar to real GPU mining software, and I want to <em>learn in-depth</em> from this.</p>

<p>More specifically:</p>

<ol>
<li><p>I want to write a functional GPU mining software.</p></li>
<li><p>It should mine with a pool (I was thinking a pool that uses stratum but other protocols are fine).</p></li>
<li><p>It should be similar in efficiency to GPU mining software currently in use. (This isn't required but I would like to learn how it is done in "real life")</p></li>
</ol>

<p>I know python and java, and I can learn C if required. I know how Bitcoin mining works in general, but don't know the details of GPU mining algorithms communication protocols etc.</p>

<p>I was wondering where I should start. Where can I find libraries and general information about this process? Is this even possible or is it too difficult for one person?
I know I can use google but I don't know where to start.</p>

CC BY-SA 3.0
2015-08-26T21:52:23.073Z
You should take a look at poclbm.
Nick ODell
CC BY-SA 3.0
2015-08-27T11:33:49.447Z
Did you look at existing implementations on github?
Dr.Haribo
CC BY-SA 3.0
2015-08-28T00:20:21.113Z
Start by looking at the source code for the GPU miner that's most like the one you plan to make.
David Schwartz
<mining-pools><api><gpu-mining><mining-software><learning>
Writing a GPU Bitcoin mining client (learning purposes)
Code is good
# Writing a GPU Bitcoin mining client (learning purposes)

(Asked by: username_0 on 2015-08-26)

I want to write a basic GPU miner from scratch for learning purposes.
By "from scratch" I don't mean that I am unwilling to use libraries but I want it to be similar to real GPU mining software, and I want to *learn in-depth* from this.

More specifically:

1. I want to write a functional GPU mining software.
2. It should mine with a pool (I was thinking a pool that uses stratum but other protocols are fine).
3. It should be similar in efficiency to GPU mining software currently in use. (This isn't required but I would like to learn how it is done in "real life")

I know python and java, and I can learn C if required. I know how Bitcoin mining works in general, but don't know the details of GPU mining algorithms communication protocols etc.

I was wondering where I should start. Where can I find libraries and general information about this process? Is this even possible or is it too difficult for one person?
I know I can use google but I don't know where to start.

**Tags:** mining-pools, api, gpu-mining, mining-software, learning

> **Comments:**
> **username_1**: You should take a look at poclbm.  
> **username_2**: Did you look at existing implementations on github?  
> **username_3**: Start by looking at the source code for the GPU miner that's most like the one you plan to make.  

---

## 0 answers

