Author

Topic: [1500 TH] p2pool: Decentralized, DoS-resistant, Hop-Proof pool - page 415. (Read 2591964 times)

sr. member
Activity: 434
Merit: 250
There is no length that is necessarily guaranteed to be long enough. If you are saying to extend the chain until blocks are found, that is exactly what proportional payout does.

If you are just suggesting to extend the chain to some other fixed length like 7 days or 30 days or something else, that is another story, with its own tradeoffs. For example, even people with large hash rates will see very small payouts for a long time when first starting.

Even 7 days probably won't be long enough soon.

I'm saying let the sharechain grow as large as needed to hold the full PPLNS window size, like all normal PPLNS pools do.

I'm not sure if I'm doing the math right here, but -ln(1.0 - .95) = about 3. So 95% of all blocks should be found within 3 * difficulty shares worth of work. That is, only 5% of shares should result in no payment at all. organofcorti please chime in if I did this wrong.

But if the share chain is capped at 3 days worth of shares regardless of the difficulty of finding a block and regardless of the amount of work stored in the chain, instead of always at N = 3 * difficulty, then the size of N for the PPLNS payment window shrinks and the % of shares resulting in no payment goes up. This doesn't happen in traditional PPLNS pools, N remains fixed and the % from above remains fixed.

Caveat: I don't know the inner workings of how p2pool juggles the share chain size and spread variables to come up with it's minimum share target difficulties.
donator
Activity: 2058
Merit: 1007
Poor impulse control.
BTW it's kinda a bummer the max share chain is only 3 days. The SPREAD is 3 blocks worth of work, so that would normally mean any share someone finds should get one or more payouts. Is the reason we have a max share chain length at all to prevent abuse? I'd think the share chain should expand as much as needed automatically to store SPREAD worth of payouts...

If you pay shares on every single block you have proportional payout (subject to pool hopping abuse), not PPLNS.


I think you didn't understand my point. If the window (N) for PPLNS is large enough then shares should get paid on every block as well. That doesn't make it the proportional. The problem right now is the share window is shorter than the time to find a block, so some shares don't get any payments at all, in spite of SPREAD being set to 3. (That is, the payment window is 3 * difficulty.) As I understand it, the share chain length overrides the spread, so the payment window will fluctuate based on however much work fits in the share chain instead of the most recent N.

There is no length that is necessarily guaranteed to be long enough. If you are saying to extend the chain until blocks are found, that is exactly what proportional payout does.

If you are just suggesting to extend the chain to some other fixed length like 7 days or 30 days or something else, that is another story, with its own tradeoffs. For example, even people with large hash rates will see very small payouts for a long time when first starting.

Even 7 days probably won't be long enough soon.

Time based PPLNS is a bit unstable. It's a variance vs time-to-maturity trade-off. If p2Pool's PPLNS was only share based, then you'd see consistent variance in total earned, but a varying time to maturity (how long it take a share to leave the PPLNS window).
legendary
Activity: 2968
Merit: 1198
To be clear: I am not arguing that p2Pool should be made more minable by smaller miners. I am explaining to you how CDFs vary significantly for different hashrates. Someone with a large hashrate might see a +/- 1% variation in earnings per week. Someone with a small hashrate might see earnings change to 0.01% or 1000% of the previous week's earnings. I think you're not understanding how significant that is.

It's significant only insofar as people make it out to be significant. If a hobby miner's earnings vary from $10 to $0, that might well be less significant than a larger scale miner whose earnings drop from $5000 to $4000 but who spent many thousands of dollars on mining gear and has an electricity bill of hundreds or thousands of dollars per month. A $10 shortfall is a $10 shortfall, and can't ever make more than a $10 difference. You can't change that at putting some scary percentage number on it.

In any case, as I suggested earlier, the focus on very small miners is misguided. What p2pool needs is more large miners. Adding a few thousand 5 GH miners won't make any real difference. Getting KnC or whoever that was to mine their 1000 TH on p2pool instead of eligius changes the whole picture.




legendary
Activity: 2968
Merit: 1198
BTW it's kinda a bummer the max share chain is only 3 days. The SPREAD is 3 blocks worth of work, so that would normally mean any share someone finds should get one or more payouts. Is the reason we have a max share chain length at all to prevent abuse? I'd think the share chain should expand as much as needed automatically to store SPREAD worth of payouts...

If you pay shares on every single block you have proportional payout (subject to pool hopping abuse), not PPLNS.


I think you didn't understand my point. If the window (N) for PPLNS is large enough then shares should get paid on every block as well. That doesn't make it the proportional. The problem right now is the share window is shorter than the time to find a block, so some shares don't get any payments at all, in spite of SPREAD being set to 3. (That is, the payment window is 3 * difficulty.) As I understand it, the share chain length overrides the spread, so the payment window will fluctuate based on however much work fits in the share chain instead of the most recent N.

There is no length that is necessarily guaranteed to be long enough. If you are saying to extend the chain until blocks are found, that is exactly what proportional payout does.

If you are just suggesting to extend the chain to some other fixed length like 7 days or 30 days or something else, that is another story, with its own tradeoffs. For example, even people with large hash rates will see very small payouts for a long time when first starting.

Even 7 days probably won't be long enough soon.
donator
Activity: 2058
Merit: 1007
Poor impulse control.
To tie the second bolded text back into your first bolded text, it's not so much the +/- swing, it's that with smaller hash rates you're "rolling the dice" less often, and thusly (as you alluded to in the first bolded text) might not levelize for a VERY long period of time.

I'm sure you knew that, but since they were separated in your post I figured I'd point that out in case others didn't pick up on that.

Sure. If you take an extreme case, you can show that as long as difficulty doesn't ever drop below current difficulty, it's more likely that mining at a pool will return any amount of reward compared to mining solo - if the income chunks are large enough, one chunk may be greater than the expected earning of the small hashrate miner. In this case, it would be more probable than any amount of bitcoin could be earned at pooled mining than solo.

This reductio ab adsurdum also applies to p2Pool, but to a much lesser extent.
legendary
Activity: 2968
Merit: 1198
I have no opinion on the matter. Giving it some thought though, I think if you have such a low hashrate that you can't be sure you have optimal settings for your miner, then you may need to mine at a larger pool just to see if your optimisations have worked.

If you are mining on a public node, you can measure how well you have "optimized" your miner using the pseudo-shares (reported by your miner) and the overall efficiency of the public node. There is no real difference between pseudo-shares and real shares from the point of view of an external miner using a public node (other than a difficulty of course).

If you are trying to optimize your own p2pool node with a tiny hash rate, you are certainly not doing it to maximize return on investment, because you can't possibly justify the cost a p2pool node (and full bitcoin node) for a tiny hash rate on an objective basis.

sr. member
Activity: 434
Merit: 250
BTW it's kinda a bummer the max share chain is only 3 days. The SPREAD is 3 blocks worth of work, so that would normally mean any share someone finds should get one or more payouts. Is the reason we have a max share chain length at all to prevent abuse? I'd think the share chain should expand as much as needed automatically to store SPREAD worth of payouts...

If you pay shares on every single block you have proportional payout (subject to pool hopping abuse), not PPLNS.


I think you didn't understand my point. If the window (N) for PPLNS is large enough then shares should get paid on every block as well. That doesn't make it the proportional. The problem right now is the share window is shorter than the time to find a block, so some shares don't get any payments at all, in spite of SPREAD being set to 3. (That is, the payment window is 3 * difficulty.) As I understand it, the share chain length overrides the spread, so the payment window will fluctuate based on however much work fits in the share chain instead of the most recent N.
newbie
Activity: 56
Merit: 0
this:

Daily variance does not reduce your profit.

Only true over long periods of time. The greater the variance, the longer the time.

and:

Even in the case of looking at mining as a "paycheck" most people getting actual paychecks get paid once a week or every two weeks. Looking at your earnings every single day and expecting them to be some nice flat number every single day is stupid and counterproductive.


I don't know that anyone is arguing that they expect the same amount every day. However, your paycheck is the same each fortnight. If you only receive one payment a fortnight from mining, I can guarantee it will very significantly each fortnight.

To be clear: I am not arguing that p2Pool should be made more minable by smaller miners. I am explaining to you how CDFs vary significantly for different hashrates. Someone with a large hashrate might see a +/- 1% variation in earnings per week. Someone with a small hashrate might see earnings change to 0.01% or 1000% of the previous week's earnings. I think you're not understanding how significant that is.

To tie the second bolded text back into your first bolded text, it's not so much the +/- swing, it's that with smaller hash rates you're "rolling the dice" less often, and thusly (as you alluded to in the first bolded text) might not levelize for a VERY long period of time.

I'm sure you knew that, but since they were separated in your post I figured I'd point that out in case others didn't pick up on that.
donator
Activity: 2058
Merit: 1007
Poor impulse control.
No. It's not 'noticed because someone is looking for it' (which is what I think you meant with your analogy?). It is noticed because the 95% confidence interval for income as a fraction of expected income is much wider for lower hashrates than for higher hashrates.

Yes, as a fraction of expected income but ask yourself why that even matters. If you expect to get 0.003 BTC and you get 0.002 BTC (or even in one instance 0 BTC for that matter) how is your life impacted in some major way?

Of course it matters. It matters to people who are hobby miners who try to optimise their equipment. It's hard to optmise if you only see a share every few days.

You're also assuming everyone is a hobby miner with no concern for profit. Just because someone can only afford a low hashrate miner doesn't mean they can treat the investment as a "hobby cost". Lots of countries are poorer than the US.

Daily variance does not reduce your profit.

Only true over long periods of time. The greater the variance, the longer the time. You could have much more than expected for a long time. But then you could have much less than expected for a long time.

People are constantly on here talking about how pools with significant fees are "better" for small miners. That is false. In fact they reduce profit.

I have no opinion on the matter. Giving it some thought though, I think if you have such a low hashrate that you can't be sure you have optimal settings for your miner, then you may need to mine at a larger pool just to see if your optimisations have worked.


Even in the case of looking at mining as a "paycheck" most people getting actual paychecks get paid once a week or every two weeks. Looking at your earnings every single day and expecting them to be some nice flat number every single day is stupid and counterproductive.


I don't know that anyone is arguing that they expect the same amount every day. However, your paycheck is the same each fortnight. If you only receive one payment a fortnight from mining, I can guarantee it will vary significantly each fortnight.

To be clear: I am not arguing that p2Pool should be made more minable by smaller miners. I am explaining to you how CDFs vary significantly for different hashrates. Someone with a large hashrate might see a +/- 1% variation in earnings per week. Someone with a small hashrate might see earnings change to 0.01% or 1000% of the previous week's earnings. I think you're not understanding how significant that is.
legendary
Activity: 2968
Merit: 1198
Oh, but you're forgetting... There is some way to flip a switch. Not quite tomorrow, but hopefully soon enough....

A development project in progress is not "flipping a switch."


Eventually, as a result of development, there will be a switch to flip.

Thank you for your efforts. One question I would ask is what work is being done to make p2pool more attractive to large miners. That is the real solution here. More blocks helps everyone.

hero member
Activity: 516
Merit: 643
Oh, but you're forgetting... There is some way to flip a switch. Not quite tomorrow, but hopefully soon enough....

A development project in progress is not "flipping a switch."


Eventually, as a result of development, there will be a switch to flip.
legendary
Activity: 2968
Merit: 1198
Oh, but you're forgetting... There is some way to flip a switch. Not quite tomorrow, but hopefully soon enough....

A development project in progress is not "flipping a switch."
legendary
Activity: 2968
Merit: 1198
BTW it's kinda a bummer the max share chain is only 3 days. The SPREAD is 3 blocks worth of work, so that would normally mean any share someone finds should get one or more payouts. Is the reason we have a max share chain length at all to prevent abuse? I'd think the share chain should expand as much as needed automatically to store SPREAD worth of payouts...

If you pay shares on every single block you have proportional payout (subject to pool hopping abuse), not PPLNS.
legendary
Activity: 2968
Merit: 1198
No. It's not 'noticed because someone is looking for it' (which is what I think you meant with your analogy?). It is noticed because the 95% confidence interval for income as a fraction of expected income is much wider for lower hashrates than for higher hashrates.

Yes, as a fraction of expected income but ask yourself why that even matters. If you expect to get 0.003 BTC and you get 0.002 BTC (or even in one instance 0 BTC for that matter) how is your life impacted in some major way?

Of course it matters. It matters to people who are hobby miners who try to optimise their equipment. It's hard to optmise if you only see a share every few days.

You're also assuming everyone is a hobby miner with no concern for profit. Just because someone can only afford a low hashrate miner doesn't mean they can treat the investment as a "hobby cost". Lots of countries are poorer than the US.

Daily variance does not reduce your profit. People are constantly on here talking about how pools with significant fees are "better" for small miners. That is false. In fact they reduce profit.

Even in the case of looking at mining as a "paycheck" most people getting actual paychecks get paid once a week or every two weeks. Looking at your earnings every single day and expecting them to be some nice flat number every single day is stupid and counterproductive.



donator
Activity: 2058
Merit: 1007
Poor impulse control.
No. It's not 'noticed because someone is looking for it' (which is what I think you meant with your analogy?). It is noticed because the 95% confidence interval for income as a fraction of expected income is much wider for lower hashrates than for higher hashrates.

Yes, as a fraction of expected income but ask yourself why that even matters. If you expect to get 0.003 BTC and you get 0.002 BTC (or even in one instance 0 BTC for that matter) how is your life impacted in some major way?

Of course it matters. It matters to people who are hobby miners who try to optimise their equipment. It's hard to optmise if you only see a share every few days.

You're also assuming everyone is a hobby miner with no concern for profit. Just because someone can only afford a low hashrate miner doesn't mean they can treat the investment as a "hobby cost". Lots of countries are poorer than the US.
sr. member
Activity: 434
Merit: 250
BTW it's kinda a bummer the max share chain is only 3 days. The SPREAD is 3 blocks worth of work, so that would normally mean any share someone finds should get one or more payouts. Is the reason we have a max share chain length at all to prevent abuse? I'd think the share chain should expand as much as needed automatically to store SPREAD worth of payouts...
sr. member
Activity: 434
Merit: 250
Don't get me wrong, if there were some way to flip a switch tomorrow and reduce variance for smaller miners I would suggest we do it, but there isn't.

The only things I can think of are the patches I've already put in pull requests for, and for larger miners to take higher share diff targets so the share diff network wide would go lower. I wrote some thoughts on that a while back but got no replies. Maybe the revamp forrestv is working on will solve it.
hero member
Activity: 798
Merit: 1000
You've never noticed that people using public p2pool nodes are far more likely to complain that they are getting no payouts, than that the payouts they are getting a smaller than they expected?

Yes I've noticed a lot of complaints. I'm suggesting to those people to chill out and have fun with it, not get so upset about things that don't really matter.

I also see a lot of theorizing about how "bad" the variance is for small miners from people I suspect are not even themselves small hobby miners. They are either not miners at all or are larger miners who are making unnecessary noise saying things that don't make real sense when you dig into the practical reality of it. They should just stop.

Don't get me wrong, if there were some way to flip a switch tomorrow and reduce variance for smaller miners I would suggest we do it, but there isn't. Mining is an exercise in tradeoffs. For hobby miners I suggest making tradeoffs in favor of having fun and helping the network rather than wanting to get a "steady paycheck" of a few dollars a day.



Oh, but you're forgetting... There is some way to flip a switch. Not quite tomorrow, but hopefully soon enough....

Anybody have any ideas how to increase the hash rate? We are sinking to a smaller and smaller percentage of the network, and round times are growing. We're having 4 day rounds now, a few more difficulty jumps and it may be weeks or longer.

Something must be done.

I'm working on a revamp of P2Pool that will give us a few key features that will help:

  • Running a "lite" P2Pool instance - one without a full Bitcoin node - will be possible without losing any of the promises P2Pool makes about its contribution to Bitcoin network health
  • P2Pool will have a non-linear sharechain so that we can have shares more often than 30 seconds, allowing small miners to use P2Pool

Both of these make P2Pool easier to use; the eventual goal is being able to run P2Pool on the same hardware miners use, such as a Raspberry Pi, though that would likely require a laborious rewrite in C++ or another compiled language.

My current progress on this: I have a piece of software talking to bitcoind and augmenting blocks with UTXO merkle branches, feeding that to another piece of lightweight software that can trustlessly verify the blockchain, while holding O(1) state. I have a good idea about how the non-linear sharechain will work, but implementing that hasn't started yet.
legendary
Activity: 2968
Merit: 1198
You've never noticed that people using public p2pool nodes are far more likely to complain that they are getting no payouts, than that the payouts they are getting a smaller than they expected?

Yes I've noticed a lot of complaints. I'm suggesting to those people to chill out and have fun with it, not get so upset about things that don't really matter.

I also see a lot of theorizing about how "bad" the variance is for small miners from people I suspect are not even themselves small hobby miners. They are either not miners at all or are larger miners who are making unnecessary noise saying things that don't make real sense when you dig into the practical reality of it. They should just stop.

Don't get me wrong, if there were some way to flip a switch tomorrow and reduce variance for smaller miners I would suggest we do it, but there isn't. Mining is an exercise in tradeoffs. For hobby miners I suggest making tradeoffs in favor of having fun and helping the network rather than wanting to get a "steady paycheck" of a few dollars a day.

sr. member
Activity: 434
Merit: 250
Yes, as a fraction of expected income but ask yourself why that even matters. If you expect to get 0.003 BTC and you get 0.002 BTC (or even in one instance 0 BTC for that matter) how is your life impacted in some major way? People can stare at numbers on a screen or lines on a chart all day long but at some point you have to relate those numbers and lines to reality, and when you do that shortfalls on hobby mining do not really matter.

You've never noticed that people using public p2pool nodes are far more likely to complain that they are getting no payouts, than that the payouts they are getting a smaller than they expected? You can argue single GPU miners shouldn't care much because their earnings are so small in absolute terms. However, they seem to care quite a bit and check their stats often. They are also very noisy when they aren't finding a share often enough to get paid on every block. Usually that degrades into saying p2pool rips off small miners since they don't understand how it'll average out long-term. Larger miners who also have variance but get paid on every block don't raise as much fuss.
Jump to: