now 30000 shares, still no upstream_result with "N" or "Y"
problems?
upstream_result is when the pool detects a share at or higher than the network target, ONLY THEN does it allow it to get to bitcoind. That's why, basically.
I'm having this issue running pushpool against a private testnet (difficulty 0.00024414). Right now I've got 10,000 shares and less than .01% are getting submitted upstream. All of those submitted get returned as false (upstream_result = "N"). Also, cgminer constantly reports "Found block"
When I point cgminer directly at litecoind (the same litecoind), it mines blocks so fast I have to drop my intensity to see the output.
I've tried almost every combination of:
setting rpc.target.bits everywhere between 1 and 32.
rpc.target.rewrite true and false
longpoll.disable true and false
I've commented out the check in the source for insufficient target to prevent submission. This results in all work being submitted to litecoind and all being rejected.
I've fiddled with the EASY_TARGET def, blindly.
I've tried alexhz, viperaus and Artforz's versions, though almost all of my edits were done against alexhz's.
Here's some of the output with rpc.target.bits : 16
[2013-05-08 21:22:04] Found block for pool 0!
[2013-05-08 21:22:04] Accepted 07d00a91 Diff 32/15 BLOCK! GPU 0
[2013-05-08 21:22:05] Found block for pool 0!
[2013-05-08 21:22:05] Accepted 061e8bec Diff 41/15 BLOCK! GPU 0
[2013-05-08 21:22:05] Found block for pool 0!
[2013-05-08 21:22:05] Accepted 079e59aa Diff 33/15 BLOCK! GPU 0
[2013-05-08 21:22:08] Found block for pool 0!
[2013-05-08 21:22:08] Accepted 04b99f69 Diff 54/15 BLOCK! GPU 0
[2013-05-08 21:22:10] Found block for pool 0!
[2013-05-08 21:22:10] Accepted 021f7d6f Diff 120/15 BLOCK! GPU 0
[2013-05-08 21:22:18] Found block for pool 0!
[2013-05-08 21:22:18] Accepted 00b36a9c Diff 365/15 BLOCK! GPU 0
[2013-05-08 21:22:21] Found block for pool 0!
[2013-05-08 21:22:21] Accepted 0bbf72e8 Diff 21/15 BLOCK! GPU 0
[2013-05-08 21:22:21] Found block for pool 0!
[2013-05-08 21:22:21] Accepted 0cccf99d Diff 19/15 BLOCK! GPU 0
[2013-05-08 21:22:39] Found block for pool 0!
[2013-05-08 21:22:39] Accepted 00e5cf93 Diff 285/15 BLOCK! GPU 0
[2013-05-08 21:22:39] Found block for pool 0!
[2013-05-08 21:22:39] Accepted 0e81878f Diff 17/15 BLOCK! GPU 0
[2013-05-08 21:22:50] Found block for pool 0!
[2013-05-08 21:22:50] Accepted 0c719c90 Diff 20/15 BLOCK! GPU 0
[2013-05-08 21:22:54] Found block for pool 0!
[2013-05-08 21:22:54] Accepted 001dfb7e Diff 2.19K/15 BLOCK! GPU 0
[2013-05-08 21:22:55] Found block for pool 0!
[2013-05-08 21:22:55] Accepted 0ea29e1c Diff 17/15 BLOCK! GPU 0
[2013-05-08 21:22:56] Found block for pool 0!
[2013-05-08 21:22:56] Accepted 0ddff7e4 Diff 18/15 BLOCK! GPU 0
None of these shares were submitted upstream.
I'm testing on an Ubuntu 32bit 10.04. The compile is clean.
A couple of things I've noticed:
- if I reset the testnet to go back to zero, I can usually mine the first block. Not always.
- commenting out rpc.target.bits results in many shares being accepted between found blocks, but the "Found block" is still false.
- setting rpc.target.bits : 1 results in the above, but much slower. ( I read somewhere that the lower the rpc.target.bits, the less shares get submitted).
I've read other people in this thread having this problem, but I haven't found any resolution. Did someone solve this and I missed it?
I've also wondered if everything may be running right, just there's something about testnet that's incompatible?
EDIT: This is solved. Thanks for the PM's! I didn't have a blocknotify process in place. In case anyone else is having trouble finding this, Longpolling requires that a SIGUSR1 signal is sent to the pushpool process when a block is found (new block available) which in turn notifies connected clients that they need new work. Populate an entry in litecoin.conf (or pass on command line).
blocknotify="/full/path/to/process"
I wrote my notifier in php.
#!/usr/bin/php
$log=fopen("/opt/work/notify.log","a+");
$date=date("Y-m-d H:i:s");
fwrite($log,"$date\n");
exec("killall -s SIGUSR1 pushpoold");
fclose($log);
?>