But if small mining rigs run their own node, it still seems impossible to get rewarded (my p2pool environment shows enough hashrate to at least find a block several times a day). If I understand it correctly you are forcing the node (not the pool) to give you a small share difficulty, but if you run your own node it will be using standard difficulties anyway?
roy7 you have my deepest respect for your efforts to make p2pool useable for small miners. However I still cannot follow how this can be achieved, I'm talking cpu-mining for scrypt coins. My current try is to setup a node on each cpu-machine and connect to their localhost using your hack /0.0001. Is this overkill?
The issue is that bigger miners are given higher share targets so they don't use up too much of the share chain themselves. p2pool is designed around the idea that each miner is running their own node. So a node = a miner. Thus, a node scales the difficulty for the workers connected to that node (all of your mining gear) to a higher level if you have a high combined speed.
This causes an issue for a public node with lots of small miners that the target share difficulty is being set to the combined total speed, not each miner's speed. So 100 people at 5GH will each be given a target share difficulty for a 500 GH miner. The same difficulty a 500 GH miner would have on his own private node. If these miners ran their own private node with just 5GH of speed, they'd have lower targets. So that is what my patch did, lower the target share difficulty for an address based only on the addresses' speed, not the node's total combined speed. This is also why the patch does nothing for a miner running his own private node, you already have a target based on your personal speed.
My patch changes the vardiff algorithm as above. If you set a target yourself with /DIFF, then the vardiff isn't used and my patch does nothing. /DIFF also overrides the dust prevention so you'll get the smallest shares you can no matter how little they pay. This can result in tx fees that cost more to spend the shares than they are worth. I don't think people should do that if they are mining long-term, but it's the easiest way to try and make "Why am I not getting paid" complaints go away.
No matter what vardiff does or what /DIFF you set, you will never get a share difficulty target below the minimum share difficulty for the network.