added graph of hash rate as estimated by shares found
[p2pool.git] / p2pool / main.py
index 7b256c0..927315f 100644 (file)
@@ -407,7 +407,6 @@ def main(args, net, datadir_path, merged_urls, worker_endpoint):
             vip_pass = '%016x' % (random.randrange(2**64),)
             with open(os.path.join(datadir_path, 'vip_pass'), 'wb') as f:
                 f.write(vip_pass)
-        print '    Worker password:', vip_pass, '(only required for generating graphs)'
         
         # setup worker logic
         
@@ -442,6 +441,7 @@ def main(args, net, datadir_path, merged_urls, worker_endpoint):
         
         
         pseudoshare_received = variable.Event()
+        share_received = variable.Event()
         local_rate_monitor = math.RateMonitor(10*60)
         
         class WorkerBridge(worker_interface.WorkerBridge):
@@ -537,7 +537,7 @@ def main(args, net, datadir_path, merged_urls, worker_endpoint):
                         share_data=dict(
                             previous_share_hash=current_work.value['best_share_hash'],
                             coinbase=(mm_data + current_work.value['coinbaseflags'])[:100],
-                            nonce=random.randrange(2**32),
+                            nonce=random.randrange(2**31),
                             pubkey_hash=pubkey_hash,
                             subsidy=current_work2.value['subsidy'],
                             donation=math.perfect_round(65535*args.donation_percentage/100),
@@ -668,6 +668,8 @@ def main(args, net, datadir_path, merged_urls, worker_endpoint):
                                 shared_share_hashes.add(share.hash)
                         except:
                             log.err(None, 'Error forwarding block solution:')
+                        
+                        share_received.happened(bitcoin_data.target_to_average_attempts(share.target), not on_time)
                     
                     if pow_hash > target:
                         print 'Worker %s submitted share with hash > target:' % (request.getUser(),)
@@ -678,7 +680,7 @@ def main(args, net, datadir_path, merged_urls, worker_endpoint):
                     else:
                         received_header_hashes.add(header_hash)
                         
-                        pseudoshare_received.happened(bitcoin_data.target_to_average_attempts(target), not on_time, request.getUser() if request.getPassword() == vip_pass else None)
+                        pseudoshare_received.happened(bitcoin_data.target_to_average_attempts(target), not on_time, request.getUser(), request.getPassword() == vip_pass)
                         self.recent_shares_ts_work.append((time.time(), bitcoin_data.target_to_average_attempts(target)))
                         while len(self.recent_shares_ts_work) > 50:
                             self.recent_shares_ts_work.pop(0)
@@ -690,7 +692,7 @@ def main(args, net, datadir_path, merged_urls, worker_endpoint):
         
         get_current_txouts = lambda: p2pool_data.get_expected_payouts(tracker, current_work.value['best_share_hash'], current_work.value['bits'].target, current_work2.value['subsidy'], net)
         
-        web_root = web.get_web_root(tracker, current_work, current_work2, get_current_txouts, datadir_path, net, get_stale_counts, my_pubkey_hash, local_rate_monitor, args.worker_fee, p2p_node, my_share_hashes, recent_blocks, pseudoshare_received)
+        web_root = web.get_web_root(tracker, current_work, current_work2, get_current_txouts, datadir_path, net, get_stale_counts, my_pubkey_hash, local_rate_monitor, args.worker_fee, p2p_node, my_share_hashes, recent_blocks, pseudoshare_received, share_received)
         worker_interface.WorkerInterface(WorkerBridge()).attach_to(web_root)
         
         deferral.retry('Error binding to worker port:', traceback=False)(reactor.listenTCP)(worker_endpoint[1], server.Site(web_root), interface=worker_endpoint[0])
@@ -716,6 +718,14 @@ def main(args, net, datadir_path, merged_urls, worker_endpoint):
         
         # done!
         print 'Started successfully!'
+        print 'Go to http://127.0.0.1:%i/static to view graphs and statistics.' % (worker_endpoint[1],)
+        if args.donation_percentage > 0.51:
+            print '''Donating %.1f%% of work towards P2Pool's development. Thanks for the tip!''' % (args.donation_percentage,)
+        elif args.donation_percentage < 0.49:
+            print '''Donating %.1f%% of work towards P2Pool's development. Please donate to encourage further development of P2Pool!''' % (args.donation_percentage,)
+        else:
+            print '''Donating %.1f%% of work towards P2Pool's development. Thank you!''' % (args.donation_percentage,)
+            print 'You can increase this amount with --give-author argument! (or decrease it, if you must)'
         print
         
         
@@ -888,7 +898,7 @@ def run():
         help='call getauxblock on this url to get work for merged mining (example: http://ncuser:ncpass@127.0.0.1:10332/)',
         type=str, action='append', default=[], dest='merged_urls')
     parser.add_argument('--give-author', metavar='DONATION_PERCENTAGE',
-        help='donate this percentage of work to author of p2pool (default: 0.5)',
+        help='donate this percentage of work towards the development of p2pool (default: 0.5)',
         type=float, action='store', default=0.5, dest='donation_percentage')
     parser.add_argument('--irc-announce',
         help='announce any blocks found on irc://irc.freenode.net/#p2pool',