hello there.
i am running gpucoin p2pool node at
http://p2pool.kosmoplovci.org:9404 and noticed a problem with network since yesterday evening which i was able to fix with small change in gpucoin network config in p2pool/bitcoin/networks.py file. in short, p2pool network seem to have 2 blockchains running in paralel on different p2pool nodes, one that is still presuming block rewards are 20000 and another which adopted block halving and is looking like the proper chain to me.
'bad' chain has a slightly different number of blocks, so it may not be obvious on first looks. fact that 'official' blockexplorer at
http://explorer3.sancrypto.info/chain/GPUCoin shows old chain only complicates situation, as it looks like everything is fine when in fact it isnt. so, some p2pool nodes solve blocks from chain one, other nodes solve blocks from chain two, they get accepted/orphaned depending on the version of wallet running on particular node, and blocks found by BOTH chains are displayed on every p2pool node stats page, adding even more to confusion.
it looks like this is happening from yesterday evening when block halving took place. before that everything was working normally on my p2pool, i was getting shares with almost no orphans and regular payouts, and then suddenly large amounts of orhpan blocks started appearing and payments both in my server gpucoind wallet and local gpucoin-qt wallet stopped.
of course, first i checked the wallets, check code updates, restart wallets, even rebuilding blockchain from scratch, wallet always connects to the same blockchain - and not the one visible on mentioned blockexplorer (any other available?). (in fact, if that was the proper chain, i would actually have more GPUC that i actually do in my wallet now)
since my both wallets are compiled from latest sources at github and were working quite fine for past days and weeks, and since they are both on same blockchain (reporting same blocknumber and working cross-send-receive) i assumed this should be the proper blockchain so i proceed to search for a problem in p2pool code.
to cut story short, it appears p2pool code autodetects block reward and display it properly on stats page, however when it comes to accepting share and create block, it orhpans, and payouts are also completelly stopped. to try
to fix this, i changed the SUBSIDY_FUNC value in p2pool/bitcoin/networks.py from 20000 to 10000 (to reflect current block reward) and it worked! accepted shares are again generating blocks as it should and p2pool pays out rewards in my wallet as it was doing before all this. the pool still gets lots of orhpan shares, but i think that is because of 2 chains running in parallel and orhpaning each other.
now, so if someone knows better what is going on and how to properly/permantly fix this kind of issues please do. i do hope this analysis may help find the best solution.
here are versions of software i use:
gpucoin-qt 0.8.7.2-g88e2a2e-beta (compiled on ubuntu 12.04 32bit)
gpucoind version 80702 protocolversion 70003 (compiled on debian 7 64bit)
https://github.com/micryon/GPUcoinp2pool-gpuc
https://github.com/TheoRettisch/p2pool-gpucthank you
k