Author

Topic: Shares and Solo Mining (Read 4957 times)

legendary
Activity: 2730
Merit: 1034
Needs more jiggawatts
August 06, 2011, 12:48:44 AM
#17
Thanks. Can you elaborate on this bug and the fix a little?

Sure. The extra nonce is reset at regular intervals for no apparent reason and bitcoind sends out the same work once more (with the same extra nonce as used before). This means two different invocations of "getwork" can return the same work, which of course is wasteful.

Here is an example of a patch to fix it:

http://luke.dashjr.org/programs/bitcoin/w/bitcoind/luke-jr.git/commitdiff/02d87b3aa375810bcd63dcf72637e788a75fc7d4

But I don't know if reseting the extra nonce *ever* has any purpose at all? Why not just never reset it and let it loop around. I haven't studied the bitcoind source code enough to say for sure, though.
sr. member
Activity: 276
Merit: 250
August 04, 2011, 11:38:37 AM
#16

Actually the bitcoin program has a bug causing it to give out the same ticket more than once. Mining pools have to patch this bug to avoid miners repeating the work of others and getting "stale shares". If you are going to solo mine it's probably a good idea to run a version of the bitcoin program where the bug has been fixed. Otherwise a small percentage of your work will be wasted checking the same lottery tickets twice.


Thanks. Can you elaborate on this bug and the fix a little?
legendary
Activity: 2730
Merit: 1034
Needs more jiggawatts
July 20, 2011, 06:47:41 AM
#15
The simple way to look at it: mining bitcoins is like scratching lottery tickets (but you have an endless supply of free lottery tickets). The faster your GPUs are and the more you have of them, the more tickets they can scratch to try to find the lucky one.

You can win after 1 second with a CPU-miner, just like in the story of Charlie and the Chocolate Factory. It just isn't very likely to happen. It's all about probability.

You can stop and resume at any time. New "work" does not build on prior work. If you scracth a ticket that is not a winner, you throw it away. Nothing is being kept or built, until you get a winning ticket. The only way you can say the multiple computers are working together is that they are checking separate tickets. No point checking the same one twice. Putting many computers together you are able to check tickets faster.

Actually the bitcoin program has a bug causing it to give out the same ticket more than once. Mining pools have to patch this bug to avoid miners repeating the work of others and getting "stale shares". If you are going to solo mine it's probably a good idea to run a version of the bitcoin program where the bug has been fixed. Otherwise a small percentage of your work will be wasted checking the same lottery tickets twice.
legendary
Activity: 1221
Merit: 1025
e-ducat.fr
July 18, 2011, 12:49:48 PM
#14
I would like to use  Phoenix for solo mining with HD 6990 on win 7 ? The -u argument is not pointing to a server if I am using the bitcoin client as server, so what are the correct arguments to run ? thanks in advance for the help.
legendary
Activity: 2058
Merit: 1452
July 16, 2011, 10:20:32 AM
#13
block = {data(transactions), nonce}

miners ask bitcoind for the data portion, and they try every possible nonce value. if the resulting hash is low enough, the client publishes the block. After the miner exhausts all the possible values of the nonce, it asks bitcoind for more data, which is different because there has been new transactions and the receiving address for the 50 btc reward has changed.

What? The receiving address for the reward changed? With each new getwork? How is that possible? I must be missing something.
it hidden away from the user, like the "change" address for transactions
I'm trying to follow this and wondering the answer myself. Are the workers on the LAN working together or alone? 
they work independently of each other, but no 2 workers are searching through the same data/nonce.
member
Activity: 112
Merit: 10
July 16, 2011, 10:04:14 AM
#12
I'm trying to follow this and wondering the answer myself. Are the workers on the LAN working together or alone? 
sr. member
Activity: 406
Merit: 251
July 15, 2011, 09:45:47 PM
#11
block = {data(transactions), nonce}

miners ask bitcoind for the data portion, and they try every possible nonce value. if the resulting hash is low enough, the client publishes the block. After the miner exhausts all the possible values of the nonce, it asks bitcoind for more data, which is different because there has been new transactions and the receiving address for the 50 btc reward has changed.

What? The receiving address for the reward changed? With each new getwork? How is that possible? I must be missing something.
legendary
Activity: 2058
Merit: 1452
July 15, 2011, 09:12:31 PM
#10
block = {data(transactions), nonce}

miners ask bitcoind for the data portion, and they try every possible nonce value. if the resulting hash is low enough, the client publishes the block. After the miner exhausts all the possible values of the nonce, it asks bitcoind for more data, which is different because there has been new transactions and the receiving address for the 50 btc reward has changed.
sr. member
Activity: 406
Merit: 251
July 15, 2011, 08:04:50 PM
#9
I probably confused things when I said miner A/B. I was referring to mining operations rather than workers. Workers mean (to me) each individual GPU or mining software instance which is getting work (getworks) from a single bitcoin node. By miners I was referring to a single bitcoin node serving work. Miner A/B will end up with different solutions. Workers also will end up with different solutions although they are working with work handed out by a bitcoin node which includes that nodes generation address. Grue, correct me if I am mistaken.
legendary
Activity: 2058
Merit: 1452
July 15, 2011, 07:26:52 PM
#8
The way you explained it, it seems that you don't combine the total speed of each miner connected to the bitcoin application. So what you are saying is each miner is calculating alone/for itself and it doesn't matter what is your total hash rate from all machines, because they are not working in tandem.

Are you sure?
No. each work is INDEPENDENT of each other, so no 2 miners are working on the same thing
hero member
Activity: 812
Merit: 502
July 15, 2011, 07:21:02 PM
#7

2 - If I remove all cards from solving the block, then what happens to that block? Does someone else start working on it?

3 - Can I start a new block if I quit solving the one above? Can I get a new block if I decide to stop working for the previous one?

Miners are not looking for the same block in the way I think you think they are. There is no predetermined solution. They are all looking for the next block to add to the chain but miner A will find a solution for that next block which is different than the solution miner B finds, where miner A and B are operating different bitcoin nodes.

Does that help to answer your questions?

The way you explained it, it seems that you don't combine the total speed of each miner connected to the bitcoin application. So what you are saying is each miner is calculating alone/for itself and it doesn't matter what is your total hash rate from all machines, because they are not working in tandem.

Are you sure?
sr. member
Activity: 406
Merit: 251
July 15, 2011, 05:03:11 PM
#6

2 - If I remove all cards from solving the block, then what happens to that block? Does someone else start working on it?

3 - Can I start a new block if I quit solving the one above? Can I get a new block if I decide to stop working for the previous one?

Miners are not looking for the same block in the way I think you think they are. There is no predetermined solution. They are all looking for the next block to add to the chain but miner A will find a solution for that next block which is different than the solution miner B finds, where miner A and B are operating different bitcoin nodes.

Does that help to answer your questions?
legendary
Activity: 2058
Merit: 1452
July 15, 2011, 04:47:29 PM
#5
1 - What if I have 10 rigs with 4 cards each - if I point all 40 miners to my Bitcoin program will they all work towards the same block?
yes
2 - If I remove all cards from solving the block, then what happens to that block? Does someone else start working on it?
each bitcoin node works on its own block. their work is independent of each other.
3 - Can I start a new block if I quit solving the one above? Can I get a new block if I decide to stop working for the previous one?
blocks do not work that way
hero member
Activity: 812
Merit: 502
July 13, 2011, 11:07:10 PM
#4
Solo mining: you get 50 btc if you get lucky and hit the right solution to the block. You get nothing unless you get lucky.

I know that  Grin

Some hypothetical questions:

1 - What if I have 10 rigs with 4 cards each - if I point all 40 miners to my Bitcoin program will they all work towards the same block?
2 - If I remove all cards from solving the block, then what happens to that block? Does someone else start working on it?
3 - Can I start a new block if I quit solving the one above? Can I get a new block if I decide to stop working for the previous one?
sr. member
Activity: 319
Merit: 250
July 13, 2011, 06:29:21 AM
#3
Solo mining: you get 50 btc if you get lucky and hit the right solution to the block. You get nothing unless you get lucky.
newbie
Activity: 56
Merit: 0
July 12, 2011, 05:59:50 PM
#2
If I remember correctly there are no shares in solo mining, since you don't need to track that you've done any work for reward distribution, which is why pools have the share system.
hero member
Activity: 812
Merit: 502
July 12, 2011, 05:04:15 PM
#1
Probably a dumb question, but are there any shares involved when mining solo? I'm aware that you need to point the miner to the Bitcoin application which acts as a server but how does it work?

And also is there a formula to calculate shares from the speed in Mhash/s you have?
Jump to: