Taking advantage of SoldCoin's PowerBlock weakness is easy. All you have to do is modify the get_work function to return an error unless the current block being mined is a power block. Even when you are solo mining you still go through the rpc interface for getting work. This won't work if you are using someone else s pool because the check is done in the server before get_work returns, however, if you have several computers you can set them all to mine against a single solid coin instance and have your own mini-pool.
Here's all you need to do:
after line 2106: "BLOCK_DATA blk;" add the line:
int isPowerBlock = 0;
after line 2153: "blk=pBlock->blk;" add the line:
if(pBlock->m_bPower) isPowerBlock = 1;
before line 2174: "return result'" add the line
if(!isPowerBlock) throw JSONRPCError(-10, "This is not a Power Block...");
Recompile, restart solidcoin, and start solo mining. Your Hash Rate will be at zero and you'll see a steady stream of messages:
sc_getwork error: This is not a Power Block...
When it is time to mine a power block your Hash Rate will go above zero until the block is solved (by you or someone else) then it will go back down to zero as it waits for another power block.
If you are mining other coins at the same time, you'll want to 'nice' them so that solid coin gets most of the cpu when it is running. (you should nice them anyway so mining doesn't slow down the rest of the stuff running on the computer.) You can start your miners niced by putting "nice +19" in front of your minerd command like so:
nice +19 minerd --url http://example.com
You wouldn't want to 'nice' solidcoin so it gets more of the cpu when it is running.