added expected time to block+share and expected payout to web interface
authorForrest Voight <forrest@forre.st>
Fri, 5 Oct 2012 15:08:05 +0000 (11:08 -0400)
committerForrest Voight <forrest@forre.st>
Fri, 5 Oct 2012 15:08:39 +0000 (11:08 -0400)
p2pool/web.py
web-static/index.html

index b0c11f8..0f65004 100644 (file)
@@ -172,6 +172,8 @@ def get_web_root(tracker, bitcoind_work, get_current_txouts, datadir_path, net,
                 dead=stale_doa_shares,
             ),
             uptime=time.time() - start_time,
+            attempts_to_share=bitcoin_data.target_to_average_attempts(tracker.items[best_share_var.value].max_target),
+            attempts_to_block=bitcoin_data.target_to_average_attempts(bitcoind_work.value['bits'].target),
             block_value=bitcoind_work.value['subsidy']*1e-8,
             warnings=p2pool_data.get_warnings(tracker, best_share_var.value, net, bitcoin_warning_var.value, bitcoind_work.value),
         )
index e37d732..bf5c02f 100644 (file)
             
             function values(o){ res = []; for(var x in o) res.push(o[x]); return res; }
             
-            d3.json('/global_stats', function(global_stats) {
-                d3.select('#pool_rate').text(d3.format('.3s')(global_stats.pool_hash_rate) + 'H/s');
-                d3.select('#pool_stale').text(d3.format('.2p')(global_stats.pool_stale_prop));
-                d3.select('#difficulty').text(d3.format('.3r')(global_stats.min_difficulty));
-            });
-            
             d3.json('/local_stats', function(local_stats) {
                 d3.select('#peers_in').text(local_stats.peers.incoming);
                 d3.select('#peers_out').text(local_stats.peers.outgoing);
                 d3.select('#warnings').selectAll().data(local_stats.warnings).enter().append('p')
                     .text(function(w){ return 'Warning: ' + w })
                     .attr('style', 'color:red;border:1px solid red;padding:5px');
+                
+                var time_to_share = local_stats.attempts_to_share/local;
+                d3.select('#time_to_share').text(d3.format('.3r')(time_to_share/3600) + " hours");
+                
+                d3.json('/global_stats', function(global_stats) {
+                    d3.select('#pool_rate').text(d3.format('.3s')(global_stats.pool_hash_rate) + 'H/s');
+                    d3.select('#pool_stale').text(d3.format('.2p')(global_stats.pool_stale_prop));
+                    d3.select('#difficulty').text(d3.format('.3r')(global_stats.min_difficulty));
+                    
+                    var time_to_block = local_stats.attempts_to_block/global_stats.pool_hash_rate;
+                    d3.select('#time_to_block').text(d3.format('.3r')(time_to_block/3600) + " hours");
+                    
+                    d3.select('#expected_payout_amount').text(d3.format('.3r')(local/global_stats.pool_hash_rate*local_stats.block_value));
+                });
             });
             
             d3.json('/web/version', function(version) {
         <p>Version: <span id="version"></span></p>
         <p>Pool rate: <span id="pool_rate"></span> (<span id="pool_stale"></span> stale) Share difficulty: <span id="difficulty"></span></p>
         <p>Node uptime: <span id="uptime_days"></span> days Peers: <span id="peers_out"></span> out, <span id="peers_in"></span> in</p>
-        <p>Local rate: <span id="local_rate"></span> (<span id="local_doa"></span> DOA)</p>
+        <p>Local rate: <span id="local_rate"></span> (<span id="local_doa"></span> DOA) Expected time to share: <span id="time_to_share"></span></p>
         <p>Shares: <span id="shares_total"></span> total (<span id="shares_orphan"></span> orphaned, <span id="shares_dead"></span> dead) Efficiency: <span id="efficiency"></span></p>
-        <p>Payout if a block were found NOW: <span id="payout_amount"></span> <span class="symbol"></span> to <span id="payout_addr"></span></p>
-        <p>Current block value: <span id="block_value"></span> <span class="symbol"></span></p>
+        <p>Payout if a block were found NOW: <span id="payout_amount"></span> <span class="symbol"></span> to <span id="payout_addr"></span>. Expected:  <span id="expected_payout_amount"></span> <span class="symbol"></span></p>
+        <p>Current block value: <span id="block_value"></span> <span class="symbol"></span> Expected time to block: <span id="time_to_block"></span></p>
         <div id="warnings"></div>
         
         <h2>Share explorer</h2>