Do P2Pool nodes always accept real blocks over share blocks?

2

1

The standard rule in bitcoin is that if you see two blocks on a chain that has the same work, you accept the one that you saw first as the correct one.

If this extended to P2Pool chains, some nodes could see share blocks before a real block. Would the P2Pool members not then accept their own pool members real solved block? I would hope not!

morsecoder

Posted 2015-02-05T21:30:02.310

Reputation: 12 624

Answers

2

The p2pool sharechain and the bitcoin blockchain operate similarly, but independently. I do not believe there is any requirement that a "real" block be accepted into the p2pool sharechain.

What I think you are really concerned about is that the p2pool nodes may see a "real" block and not do their part to get it into the blockchain so that everyone gets paid. On that account you can rest assured.

In the source code, have a look at p2pool/node.py ("GOT BLOCK FROM PEER! Passing to bitcoind!") and p2pool/work.py ("GOT BLOCK FROM MINER! Passing to bitcoind!") Regardless of whether the new bitcoin block ends up in the p2pool sharechain, all nodes who become aware of the block relay it to bitcoind to help get it in the blockchain.

atomicpirate

Posted 2015-02-05T21:30:02.310

Reputation: 201

So it's possible you won't get a share in the share chain from it, but the pool will still get it's pay out? That's interesting, I think I had it in my head that the pool would only pay out of the block made it into the share chain. Seems like an improvement that P2Pool could make if it's not currentyly automatically choosing full solves over partial (share-chain) solves, though.morsecoder 2015-02-10T04:05:57.963

0

The p2pool sharechain is separate from the bitcoin blockchain. They don't interfere with each other in the way you describe.

Dr.Haribo

Posted 2015-02-05T21:30:02.310

Reputation: 7 823

1Are you saying that a real block doesn't even count as a share on the share chain? I was assuming it would. Also, do you have any sources you could link with this answer?morsecoder 2015-02-06T13:15:25.710

A "real" block would be on both chains. They are not the same chain.Dr.Haribo 2015-02-06T21:13:46.033

I understand that they are not the same chain. A subset of the share chain's blocks will actually be real solved blocks. I'm more looking for some sources that show that this problem has been solved. A link to the relevant lines of code would be helpful.morsecoder 2015-02-07T04:33:44.313