<p>There are a few approaches you can take as of 3/18/13</p>

<ul>
<li><p>You can either be interested in the low-cost learning of the protocol and related technologies</p></li>
<li><p>You can invest in equipment related to mining</p></li>
<li><p>You can invest in BTC directly, exchanging cash for the few Bitcoins that are available.</p></li>
</ul>

<p>Just be sure to expect that up front, any of the latter two choices are a gamble.  The knowledge you gain is something you can keep with you as the technology matures.</p>

<p>I'll touch on a few of your points:</p>

<p><strong>I want to be a miner</strong></p>

<p>"Mining" for coins is not always a profitable situation.  It depends on the hardware you use, and often time who you team up with in a pool. </p>

<p>ABOUT THE HARDWARE:  CPU's and GPUs have been replaced by FPGAs by normal miners.  If you want to achieve more than 0.000x BTC then you need to invest in an FPGA, and soon, an ASIC chip for mining.  Your new video card doesn't have to go to waste, you can partipate in the vanitygen pool, or the litcoin generation pool.  Note that litecoin is a way of diversifying your risk in cryptocurrency and doesn't mean it will achieve the greatness of Bitcoin production coins.</p>

<p>ABOUT THE POOL: Each pool will allow you to even out your earnings over time.  <a href="https://bitcoin.stackexchange.com/users/575/meni-rosenfeld">@Meni</a> has written a very nice whitepaper on the subject.  If you're new to Bitcoin, read all his posts.</p>

<p><strong>I want to make my own pool</strong></p>

<p>This is an interesting subject since I also wanted to do the same thing.  It turns out that the math and "hackability" of a pool isn't straightforward and that it's entirely possible you can go bankrupt running one (or whatever you invest).  Make sure you protect yourself from PPS pools of you run one.  I think as of now the safest is "double geometric" for both the operator and the client.  Look up @Meni's whitepaper for more info</p>

<p><strong>I want to just learn the technology</strong></p>

<p>The very uninitiated can run "bitcoind" from their computer with the parameter <code>gen=1</code> set so it uses CPU to hash.  This is only viable on the "test network" where coins have no value.  To learn this way, simply run Bitcoind with -gen=1 and -testnet set at the command line.</p>

<p>On the other hand if you want to programmatically do the steps you listed, I suggest you read the source code of some of the python or C++ clients available.  It may be a good idea to have your question list the languages that you're familiar with since the code your looking for may have already be written, or even optimized with low level optimizations in mind.</p>

<p><strong>I want to invest</strong></p>

<p>There are a few ways to purchase BTC. Namely MtGox and Coinlab are the top two leading trading sites.  I suggest looking at the purchase requirements there to buy coins at the best price.</p>

CC BY-SA 3.0
2013-03-18T06:04:11.607Z
2013-03-18T06:04:11.607Z
2017-04-13T12:47:36.647Z
makerofthings7
<p>Mining is done by individuals and by pools in conjunction with the official Bitcoin wallet software, there is no need to write your own software to talk to the Bitcoin network. The Bitcoin software has an interface (RPC) to request work (the information to be hashed until you find a solution) and a method for returning your answer, which will publish the newly-found block to other nodes if you find a block solution.</p>

<p>Pools use software such as pushpoold as an interface between Bitcoin, their website, and their miner members, but you only need Bitcoin and mining software to solo mine. The mining software requests the information to work on from Bitcoin, does the computing (with the assistance of hardware), and sends back any successful result. Examples of mining software are guiminer, cgminer, phoenix.</p>

<p>Solo mining is very much like a lottery - with a hashrate that low it would take you 20 years of mining at the current difficulty to have even a 50% chance of finding a block.</p>

CC BY-SA 3.0
2013-02-15T21:25:59.823Z
2013-02-15T21:25:59.823Z
Spanky Monk
<p>So I recently have gotten into bitcoins and bitcoin mining am enthralled with the idea of the whole system. I even went out to buy a POS Evga 610 GT to start mining the day I found out about it. (currently at a blazing fast 12.7Mh/s)</p>

<p>I am using electrum, guiminer, under slush's pool and have made something like 3cents (.006 BTC ?) in the past week. </p>

<p>So I plan to, here in the near future, build my PC/mining rig and wanted to start my solo mining career. I am happy to be in a pool but I love the idea of the lottery.</p>

<p>So I was wondering if someone could give me a quick run down of the options for solo mining on a windows machine. Preferably with GUI's such as guiminer and without GUI's. </p>

<p>I have found this guide
<a href="http://www.newslobster.com/random/how-to-get-started-using-your-gpu-to-mine-for-bitcoins-on-windows" rel="noreferrer">http://www.newslobster.com/random/how-to-get-started-using-your-gpu-to-mine-for-bitcoins-on-windows</a></p>

<p>Which tells you how to get it running but not the methodology and logic behind it. Could someone explain the steps I would need to take pro-grammatically to write my own miner?
Such as</p>

<ul>
<li>Create transaction</li>
<li>Build a block object</li>
<li>Hash till good hash found or someone else says they found a hash</li>
<li>Repeat</li>
</ul>

<p>But obviously more indepth. Aslo please forgive me for my current lack of knowledge, still learning!</p>

<p>** I have a good knowledge of the BTC system, its logic, and how it works abstractly but have not gotten into how nodes communicate and keep the network running. Which is what I would like to know.</p>

<p>Here is me learning the calculation process abstractly
<a href="https://bitcointalk.org/index.php?topic=143329" rel="noreferrer">https://bitcointalk.org/index.php?topic=143329</a></p>

CC BY-SA 3.0
2013-02-15T18:41:32.900Z
It depends. If your goal is to learn about how bitcoin works, then I think this is an interesting way to do it. (I assume you've read the [bitcoin whitepaper](http://bitcoin.org/bitcoin.pdf).) On the other hand, if your goal is to write a useful mining program, you're better off using JSON-RPC to call getwork on the bitcoin instance.
Nick ODell
CC BY-SA 3.0
2013-02-15T18:46:24.233Z
Hmm. I like the white paper. --- What I would like to do is write my own miner (for myself)!
KDecker
CC BY-SA 3.0
2013-02-15T19:22:31.600Z
Well I read the entire white paper and it really didn't tell me anything new. What I am looking for is what I can get started with my own miner. What must a miner have, do, use, communicate?
KDecker
CC BY-SA 3.0
2013-02-15T19:29:12.417Z
Hmm, maybe any open source C++ or Java miners? Maybe I can look at what goes into those. But I would need the simplest one that gets the job done.
KDecker
CC BY-SA 3.0
2013-02-15T20:44:03.510Z
[Yeah, there's a open source C++ miner.](https://github.com/bitcoin/bitcoin) But in all seriousness, if you want a miner capable of relaying/validating/including transactions from the network, you're not going to find one simpler than the standard client. If you're interested one that just asks the bitcoin client for work, the simplest one I can think of is [pyminer](https://github.com/jgarzik/pyminer)
Nick ODell
CC BY-SA 3.0
2013-03-18T05:40:43.213Z
+1 I appreciate the research you put into this question.  ALSO, just know that GPU/CPU/FPGA mining isn't profitable.  Best bet is to get an ASIC miner in the near future.  Expect to deal with shippers who delay your order due to R&D happening in real-time.
makerofthings7
<solo-mining>
Overview of solo mining with no GUI's and with GUI's, short explanation.
KDecker
# Overview of solo mining with no GUI's and with GUI's, short explanation.

(Asked by: username_0 on 2013-02-15)

So I recently have gotten into bitcoins and bitcoin mining am enthralled with the idea of the whole system. I even went out to buy a POS Evga 610 GT to start mining the day I found out about it. (currently at a blazing fast 12.7Mh/s)

I am using electrum, guiminer, under slush's pool and have made something like 3cents (.006 BTC ?) in the past week.

So I plan to, here in the near future, build my PC/mining rig and wanted to start my solo mining career. I am happy to be in a pool but I love the idea of the lottery.

So I was wondering if someone could give me a quick run down of the options for solo mining on a windows machine. Preferably with GUI's such as guiminer and without GUI's.

I have found this guide
<http://www.newslobster.com/random/how-to-get-started-using-your-gpu-to-mine-for-bitcoins-on-windows>

Which tells you how to get it running but not the methodology and logic behind it. Could someone explain the steps I would need to take pro-grammatically to write my own miner?
Such as

* Create transaction
* Build a block object
* Hash till good hash found or someone else says they found a hash
* Repeat

But obviously more indepth. Aslo please forgive me for my current lack of knowledge, still learning!

\*\* I have a good knowledge of the BTC system, its logic, and how it works abstractly but have not gotten into how nodes communicate and keep the network running. Which is what I would like to know.

Here is me learning the calculation process abstractly
<https://bitcointalk.org/index.php?topic=143329>

**Tags:** solo-mining

> **Comments:**
> **username_1**: It depends. If your goal is to learn about how bitcoin works, then I think this is an interesting way to do it. (I assume you've read the [bitcoin whitepaper](http://bitcoin.org/bitcoin.pdf).) On the other hand, if your goal is to write a useful mining program, you're better off using JSON-RPC to call getwork on the bitcoin instance.  
> **username_0**: Hmm. I like the white paper. --- What I would like to do is write my own miner (for myself)!  
> **username_0**: Well I read the entire white paper and it really didn't tell me anything new. What I am looking for is what I can get started with my own miner. What must a miner have, do, use, communicate?  
> **username_0**: Hmm, maybe any open source C++ or Java miners? Maybe I can look at what goes into those. But I would need the simplest one that gets the job done.  
> **username_1**: [Yeah, there's a open source C++ miner.](https://github.com/bitcoin/bitcoin) But in all seriousness, if you want a miner capable of relaying/validating/including transactions from the network, you're not going to find one simpler than the standard client. If you're interested one that just asks the bitcoin client for work, the simplest one I can think of is [pyminer](https://github.com/jgarzik/pyminer)  
> **username_2**: +1 I appreciate the research you put into this question.  ALSO, just know that GPU/CPU/FPGA mining isn't profitable.  Best bet is to get an ASIC miner in the near future.  Expect to deal with shippers who delay your order due to R&D happening in real-time.  

---

## 2 answers

### Answer by username_2 on 2013-03-18. Score: 3

There are a few approaches you can take as of 3/18/13

* You can either be interested in the low-cost learning of the protocol and related technologies
* You can invest in equipment related to mining
* You can invest in BTC directly, exchanging cash for the few Bitcoins that are available.

Just be sure to expect that up front, any of the latter two choices are a gamble. The knowledge you gain is something you can keep with you as the technology matures.

I'll touch on a few of your points:

**I want to be a miner**

"Mining" for coins is not always a profitable situation. It depends on the hardware you use, and often time who you team up with in a pool.

ABOUT THE HARDWARE: CPU's and GPUs have been replaced by FPGAs by normal miners. If you want to achieve more than 0.000x BTC then you need to invest in an FPGA, and soon, an ASIC chip for mining. Your new video card doesn't have to go to waste, you can partipate in the vanitygen pool, or the litcoin generation pool. Note that litecoin is a way of diversifying your risk in cryptocurrency and doesn't mean it will achieve the greatness of Bitcoin production coins.

ABOUT THE POOL: Each pool will allow you to even out your earnings over time. [@Meni](https://bitcoin.stackexchange.com/users/575/meni-rosenfeld) has written a very nice whitepaper on the subject. If you're new to Bitcoin, read all his posts.

**I want to make my own pool**

This is an interesting subject since I also wanted to do the same thing. It turns out that the math and "hackability" of a pool isn't straightforward and that it's entirely possible you can go bankrupt running one (or whatever you invest). Make sure you protect yourself from PPS pools of you run one. I think as of now the safest is "double geometric" for both the operator and the client. Look up @Meni's whitepaper for more info

**I want to just learn the technology**

The very uninitiated can run "bitcoind" from their computer with the parameter `gen=1` set so it uses CPU to hash. This is only viable on the "test network" where coins have no value. To learn this way, simply run Bitcoind with -gen=1 and -testnet set at the command line.

On the other hand if you want to programmatically do the steps you listed, I suggest you read the source code of some of the python or C++ clients available. It may be a good idea to have your question list the languages that you're familiar with since the code your looking for may have already be written, or even optimized with low level optimizations in mind.

**I want to invest**

There are a few ways to purchase BTC. Namely MtGox and Coinlab are the top two leading trading sites. I suggest looking at the purchase requirements there to buy coins at the best price.


---

### Answer by username_3 on 2013-02-15. Score: 1

Mining is done by individuals and by pools in conjunction with the official Bitcoin wallet software, there is no need to write your own software to talk to the Bitcoin network. The Bitcoin software has an interface (RPC) to request work (the information to be hashed until you find a solution) and a method for returning your answer, which will publish the newly-found block to other nodes if you find a block solution.

Pools use software such as pushpoold as an interface between Bitcoin, their website, and their miner members, but you only need Bitcoin and mining software to solo mine. The mining software requests the information to work on from Bitcoin, does the computing (with the assistance of hardware), and sends back any successful result. Examples of mining software are guiminer, cgminer, phoenix.

Solo mining is very much like a lottery - with a hashrate that low it would take you 20 years of mining at the current difficulty to have even a 50% chance of finding a block.


---

