Well, this is what I wanted to know. So shares won't be calculated for miners with "wrong" bitcoind version.
Well I haven't tested it but I believe this would be handled the same as a miner being on an orphaned chain or fork.
When a miner submits a share he also submits the data in the block header. Other miners will see the incorrect prior block hash and reject it as an invalid share. They won't know "why" it won't be a special p2sh detection it will simply be miner is using a wrong previous block so share is invalid.
The one exception would be if <51% of miners (by hashing power) have upgraded. Then the consensus in the share chain would be the p2sh blocks are invalid and those miners would get no credit and invalids.
There is only the possibility that >50% of bitcoind's network will support p2sh, but <=50% of P2Pool users won't support p2sh. Then even user who updated his bitcoind will mine to the black hole, because his shares will be rejected by p2pool, although they would be valid on bitcoin network itself.
Correct. It will be essential to ensure that at least 51% of miners upgrade. If they don't then likely p2pool will quickly disentigrate (no different than a "normal pool" who's admin doesn't upgrade).
For example ars pool has been running on auto-pilot w/ admin mostly AWOL. If that is still the case when p2sh is implemented then that pool will implode.
I'm not saying it's bad, I'm just sumarizing how I understand it.
I'm working on the mining protocol for the pools, where miners (workers) will have the power to choose transactions what they want to include into the block. I started to think about this seriously after I saw the criticism in op_eval and p2sh discussion that pool operators are holding too much power.
Actually I'm on the track of protocol which will allow full democracy of the bitcoin miners like in p2pool, but still with possible zero variance (even pps with difficulty 1 payout scheme), which is something what is missing on p2pool. It should be also DDoS resilient as there won't be any real benefit in attacking the server which will just collect shares and stats...
Awesome. It is something we need. p2pool is a great resource but for small miners it will be an imperfect fit. As p2pool gets larger the difficulty of shares gets higher. At say 500 GH/s difficulty will be ~1200. A 400MH/s miner will have an average share time of 3 hours +. The 95% confidence around that is 1 to 12 hours. That will be a tough sell. There are potential solutions but I think "traditional pools" aren't going away.
Thanks to this, I'm solving some potential issues with outdated miners. Of course witholding attacks (and other attacks) are still possible on the pools, but I just want to be sure that honest miners just using outdated software cannot break the pool itself. I think that I already found the solution, but I need to think about it a little more. But I hope that I'll publish my proposal soon...
Well with central control wouldn't it be possible to just include in the API a minimum supported version for the bitcoind & p2pool daemon equivalent? Miner's report their bitcoind version and server rejects work from miners below minimum supported version. That won't prevent malicious user but it will prevent users accidentally running incompatible code.