Bitcoin Forum
May 04, 2024, 09:33:36 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 2 [3]  All
  Print  
Author Topic: Tired of stale shares?  (Read 7054 times)
DrHaribo
Legendary
*
Offline Offline

Activity: 2730
Merit: 1034


Needs more jiggawatts


View Profile WWW
July 11, 2011, 03:59:52 PM
 #41

Even if that was so, it doesn't matter, because this post is about reported stales.

For everything you've denied, you have failed to say what you believe. Do you actually think that stale rate is not important?

The point of the matter is that stales reduce miner's income. Period. If more of the miner's and pool's efforts are spent doing work for the last block, then no forward progress is being made. This results in more accepted hashes per GH/s, and means the pool as a whole can check just that many more possible hashes per time period.

This is exactly right. Stales equal wasted work. Stales are proofs-of-work in the way that you prove that you were working. But were you working on something useful? No.

Pools are not paying you to burn GPU cycles. They are paying you to work towards finding those magic bits that can create a new block. Working on stale data will not create a new block.

This is why I worked hard to reduce stales in my pool backend and miner. In my current session I have right now 19848 accepted proofs-of-work and only 14 stales. Reducing the stales has real value. It has basically the same result as making a miner faster.

Consider an analogy: You have one employee in an office working, and another reading the newspaper. Both are doing something, but only one is doing something useful. Which is more fair for the company to do? Pay them the same, or pay only for useful work? If the company has 50 bitcoins to pay out as salaries, should both employees get 25 BTC each?

If you pay for stale proofs-of-work then everyone else will be paying for the useless work from that guy who's running an old miner without long polling support.


▶▶▶ bitminter.com 2011-2020 ▶▶▶ pool.xbtodigital.io 2023-
Unlike traditional banking where clients have only a few account numbers, with Bitcoin people can create an unlimited number of accounts (addresses). This can be used to easily track payments, and it improves anonymity.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
JoelKatz
Legendary
*
Offline Offline

Activity: 1596
Merit: 1012


Democracy is vulnerable to a 51% attack.


View Profile WWW
July 11, 2011, 04:17:17 PM
 #42

This is exactly right. Stales equal wasted work. Stales are proofs-of-work in the way that you prove that you were working. But were you working on something useful? No.
Non-stale shares are wasted work too, after all, you didn't successfully find a block, you just found a share. A person who finds a share and has it reported stale could have, with the same work, found a block a split-second earlier and been successful. You cannot say that just because the share was reported as stale that the work was wasted.

Quote
Pools are not paying you to burn GPU cycles. They are paying you to work towards finding those magic bits that can create a new block. Working on stale data will not create a new block.
Sure, but having a share reported as stale only proves that the last bit of the work you did occurred after someone else found a block. Producing shares doesn't create a new block either, it only has a chance of doing so. Producing a stale share also has a chance of finding a block.

Quote
Consider an analogy: You have one employee in an office working, and another reading the newspaper. Both are doing something, but only one is doing something useful. Which is more fair for the company to do? Pay them the same, or pay only for useful work? If the company has 50 bitcoins to pay out as salaries, should both employees get 25 BTC each?
A better example would be a company that wants to make sure a job gets done as quickly as possible and so assigns two workers to do it. Both workers complete the job, but one does it a bit sooner and so the company winds up not needing the second worker's work. Should they pay the second worker? Was the second worker a waste?

Quote
If you pay for stale proofs-of-work then everyone else will be paying for the useless work from that guy who's running an old miner without long polling support.
That's quite true *IF* the cause of the stale PoWs is someone not supporting LP. But this thread wasn't about LP. It was about stales caused in other ways.

I am an employee of Ripple. Follow me on Twitter @JoelKatz
1Joe1Katzci1rFcsr9HH7SLuHVnDy2aihZ BM-NBM3FRExVJSJJamV9ccgyWvQfratUHgN
DrHaribo
Legendary
*
Offline Offline

Activity: 2730
Merit: 1034


Needs more jiggawatts


View Profile WWW
July 11, 2011, 06:27:08 PM
 #43

Consider an analogy: You have one employee in an office working, and another reading the newspaper. Both are doing something, but only one is doing something useful. Which is more fair for the company to do? Pay them the same, or pay only for useful work? If the company has 50 bitcoins to pay out as salaries, should both employees get 25 BTC each?
A better example would be a company that wants to make sure a job gets done as quickly as possible and so assigns two workers to do it. Both workers complete the job, but one does it a bit sooner and so the company winds up not needing the second worker's work. Should they pay the second worker? Was the second worker a waste?

Ok, that's a good point. And I think the answer cannot be simply yes or no. If he continued the same work after he should have known it served no purpose, then I think his work was a waste and he should not be paid. If he just arrived back with his results 1 second after the other guy, it would only be fair that he would also be rewarded for his efforts. Perhaps one could have a grace period of a second or two after block change. "You wasted some work, but it's not your fault, so you still get paid."

I don't think this would matter as these stales are the same for everyone and won't affect your share of the payout. But it might have a psychological up-side seeing 0% stales even if it isn't true, and even if you just get the same amount of bitcoins as before.

Quote
Quote
If you pay for stale proofs-of-work then everyone else will be paying for the useless work from that guy who's running an old miner without long polling support.
That's quite true *IF* the cause of the stale PoWs is someone not supporting LP. But this thread wasn't about LP. It was about stales caused in other ways.

Right. The cause for some stales may be the miner, and for other stales it's just that it takes time for the mining pool to notify all miners, or that the miner delivers a proof-of-work at the same time it is notified that it is stale.

I think if some users have more stales due to the miner they are using, it doesn't make sense to pay them for those additional stales.

Other than that all users would probably average the same rate of stales over time. In this case it doesn't make a difference whether you get paid for stales or not, you would still get the same share of the 50 BTC. It might have a psychologically positive effect to get paid for stales though?

The other side to it is that the mining pool is competing with other mining pools, so keeping the rate of stales down means a little more money for all users. Consider 50% stales versus 0% stales and a user with 10% of the proofs of work. With 50% stales it takes twice as long between every 50 bitcoins minted by the pool. Assuming all users have 50% stales it won't matter for each individual payout whether users are paid for stales or not. But it does matter whether you get a payout of 5 bitcoins every day versus every two days.

If the pool and/or miners are wasting 50% of the work, then they lose 50% of the potential income.  For 1% waste the loss is 1%. That said, it is impossible to get to 0% stales, because absolute synchronization is impossible in a distributed network. But getting closer to 0% means more money for everyone in the pool.


▶▶▶ bitminter.com 2011-2020 ▶▶▶ pool.xbtodigital.io 2023-
JoelKatz
Legendary
*
Offline Offline

Activity: 1596
Merit: 1012


Democracy is vulnerable to a 51% attack.


View Profile WWW
July 11, 2011, 06:49:29 PM
 #44

Right. The cause for some stales may be the miner, and for other stales it's just that it takes time for the mining pool to notify all miners, or that the miner delivers a proof-of-work at the same time it is notified that it is stale.
As far as I know, pools still allow people to use miners that don't support LP. I think it might not be a bad idea to at least notify people that they're wasting effort. This is especially important for pools that pay proportionately and count stale shares.

Quote
I think if some users have more stales due to the miner they are using, it doesn't make sense to pay them for those additional stales.
I agree. In practice, the only way you can actually do this is never pay for stale shares or require LP.

Quote
Other than that all users would probably average the same rate of stales over time. In this case it doesn't make a difference whether you get paid for stales or not, you would still get the same share of the 50 BTC. It might have a psychologically positive effect to get paid for stales though?
Exactly. I've been trying to reason out if people who mine faster or slower would have more stale shares --during the 9 minutes or so when no blocks are generated and no stales are possible, the faster miner builds up more shares. But the slower miner is less likely to generate a share during the window where stale shares are possible.

Higher network latency could mean more stale shares. But the effect should be pretty minimal. Even assuming an extra 800ms latency, that would be at most an extra .2% stales.

Quote
The other side to it is that the mining pool is competing with other mining pools, so keeping the rate of stales down means a little more money for all users. Consider 50% stales versus 0% stales and a user with 10% of the proofs of work. With 50% stales it takes twice as long between every 50 bitcoins minted by the pool. Assuming all users have 50% stales it won't matter for each individual payout whether users are paid for stales or not. But it does matter whether you get a payout of 5 bitcoins every day versus every two days.
I don't think your math is correct. A stale share simply means that the network found a new block before the share was submitted. It doesn't mean the work generated to produce the stale share had no chance to produce  valid block. Losing the race doesn't mean you didn't have a chance to win the race.

Quote
If the pool and/or miners are wasting 50% of the work, then they lose 50% of the potential income.  For 1% waste the loss is 1%. That said, it is impossible to get to 0% stales, because absolute synchronization is impossible in a distributed network. But getting closer to 0% means more money for everyone in the pool.
You are assuming that because a work unit lost the race, it had no chance of winning the race.

I am an employee of Ripple. Follow me on Twitter @JoelKatz
1Joe1Katzci1rFcsr9HH7SLuHVnDy2aihZ BM-NBM3FRExVJSJJamV9ccgyWvQfratUHgN
AnnihilaT
Full Member
***
Offline Offline

Activity: 210
Merit: 100



View Profile
July 11, 2011, 07:29:57 PM
 #45

Joel makes a very good point here.  Im inclined to agree that stales arent really as big of an issue as many people make them out to be.  I think its more a psychological issue and a misunderstanding of how things are working that cause people to be so concerned about it.   a huge high percentage of stales could indicate something is wrong with your mining client but in general i dont think its anything to be overly concerned about.   
1bitc0inplz (OP)
Member
**
Offline Offline

Activity: 112
Merit: 10


View Profile
July 12, 2011, 12:39:57 AM
 #46

Unfortunately this thread has gotten way off topic.

I understand that some people may not be concerned about stale shares. My hat if off to you. However, for those of us who prefer for our mining efforts to be as meaningful as possible, I was simply trying to point out that there is an alternative pool for people to join that does not suffer from stales.

Mine @ http://pool.bitp.it - No fees, virtually 0 stales, what's not to love!
Chat with us @ #bitp.it on irc.freenode.net
Learn more about our pool @ http://forum.bitcoin.org/index.php?topic=12181.0
Pages: « 1 2 [3]  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!