diff --git a/pool/address.php b/pool/address.php deleted file mode 100644 index 01c840cd..00000000 --- a/pool/address.php +++ /dev/null @@ -1,24 +0,0 @@ - - -
';
- $top .= '
| ';
- $top .= '
| ';
- $top .= '
| ';
- $top .= '
| ';
-
- if ($douser === true)
- {
- $top .= '';
- list($who, $whoid) = validate();
- if ($who == false)
- {
- $top .= '
Hash Rate:"; - $top .= "$uhr$u1hr "; - } - - $top .= ''; - } - $top .= ' |
';
- $ret .= '
|
| |||||||
| ';
- $pg .= '2FA means that you need 2 codes to login to your account. '; - $pg .= 'You will also need the 2FA code to modify any important settings in your account. '; - $pg .= 'The 1st code is your current password. '; - $pg .= 'The 2nd code is a number that your 2FA device will generate each time. '; - $pg .= 'Your 2FA device would be, for example, your phone or tablet. '; - $pg .= 'Each time you need a 2FA code, you use your device to generate a number '; - $pg .= 'that you type into the "*2nd Authentication:" field on any page that has it. '; - $pg .= 'IMPORTANT: the TOTP algorithm uses the time on your device, '; - $pg .= "so it is important that your device's clock is accurate within a few seconds. "; - $pg .= app_time(); - $pg .= 'IMPORTANT: you enter the value from your App at the time you submit data. '; - $pg .= "The value is valid only once for a maximum of 30 seconds. "; - $pg .= "In both the Apps it has a 'dial' that shows the 30 seconds running out. "; - $pg .= "If you are close to running out, you can wait for the 30 seconds to run out "; - $pg .= "and then enter the new value it will come up with. "; - $pg .= "The pool checks your value using the time at the pool when you submit the data, "; - $pg .= "it doesn't matter when you loaded the web page, "; - $pg .= "it only matters when you clicked on the web page button to send the data to the pool. "; - $pg .= 'WARNING: once you have successfully tested and enabled 2FA, '; - $pg .= 'you will be unable to access or even reset your account without 2FA. '; - $pg .= 'There is no option to recover your 2FA from the web site, '; - $pg .= 'and you must know your 2FA code in order to be able to disable 2FA. '; - $pg .= 'WARNING: it is important to not store your login password in your 2FA device. '; - $pg .= 'These 2 together will give full access to your account.'; - $pg .= ' |
| # | '; - $pg .= 'Address | '; - $pg .= 'ID | '; - $pg .= 'Ratio | '; - $pg .= '% | '; - $pg .= '|
| '; - $pg .= ' | '; - $pg .= ""; - $pg .= ' | '; - $pg .= ''; - $pg .= ""; - $pg .= ' | '; - $pg .= ''; - $pg .= ""; - $pg .= ' | '; - $pg .= ''; - $pg .= "0.00%"; - $pg .= ' | '; - $pg .= "|
| '.($i+1).' | '; - $pg .= ''; - $pg .= ""; - $pg .= ' | '; - $nam = htmlspecialchars($ans['payname:'.$i]); - $pg .= ''; - $pg .= ""; - $pg .= ' | '; - $ratio = intval($ans['ratio:'.$i]); - $pg .= ''; - $pg .= ""; - $pg .= ' | '; - $pg .= ''; - $pg .= "%"; - $pg .= ' | '; - $pg .= "|
| "; - $pg .= ""; - $pg .= " | limit $limit | ||||
| '; - $pg .= ' | Password: | '; - $pg .= ''; - $pg .= ' | |||
| '; - $pg .= ' | *2nd Authentication: | '; - $pg .= ''; - $pg .= ' | '; - $pg .= '|||
| ';
- $pg .= "*Leave blank if you haven't enabled it "; - $pg .= 'You must enter your password to save changes '; - $pg .= 'A ratio of 0, will remove the address from the payouts | |||||
| Description | "; - $pg .= "Time | "; - $pg .= "MeanTx% | "; - $pg .= "Diff% | "; - $pg .= "Mean% | "; - $pg .= "CDF[Erl] | "; - $pg .= "Luck% | "; - - $tt = ""; - $tt .= '?'; - $tt .= ""; - $tt .= "Pool PPS%: MeanTx% * Luck% minus the pool fee"; - - $pg .= "${tt}PPS% | "; - $pg .= "
| $desc Blocks | "; - $pg .= "$age | "; - $pg .= "$txm% | "; - $pg .= "$diff% | "; - $pg .= "$mean% | "; - $pg .= "$cdferldsp | "; - $pg .= "$luck% | "; - $pg .= "$o% | "; - $pg .= "
| UTC Month | "; - $pg .= "Pool Avg | "; - $pg .= "Blocks | "; - $pg .= "Expected | "; - $pg .= "Mean Diff% | "; - $pg .= "MeanTx% | "; - $pg .= "Luck% | "; - $pg .= "PPS% | "; - $pg .= "
| $name$dots | "; - $pg .= "${phrdsp}Hs | "; - $pg .= "$bcount | "; - $pg .= "$exc | "; - $pg .= "$md% | "; - $pg .= "$mr% | "; - $pg .= "$mldsp% | "; - $pg .= "$odsp% | "; - $pg .= "
| Name:<$r id=srtname data-sf=s0> | "; - $pg .= 'Initial | '; - $pg .= "<$r id=srtalloc data-sf=r2>:Alloc | "; - $pg .= "<$r id=srtstore data-sf=r3>:In Store | "; - $pg .= "<$r id=srtram data-sf=r4>:RAM | "; - $pg .= "<$r id=srtram2 data-sf=r5>:RAM2 | "; - $pg .= "<$r id=srtcull data-sf=r6>:Cull | "; - $pg .= "<$r id=srtlim data-sf=r7>:Limit | "; - $pg .= "
| ".$ans['name:'.$i].' | '; - $pg .= ''.stnum($ans['initial:'.$i]).' | '; - $pg .= "".stnum($ans['allocated:'.$i]).' | '; - $pg .= "".stnum($ans['instore:'.$i]).' | '; - $pg .= "".stnum($ans['ram:'.$i]).' | '; - $pg .= "".stnum($ans['ram2:'.$i]).' | '; - $pg .= "".stnum($ans['cull:'.$i]).' | '; - $pg .= "".stnum($ans['cull_limit:'.$i]).' | '; - $pg .= "
| # | '; - $pg .= 'Name | '; - $pg .= 'Value | '; - $pg .= "
| $i | "; - $pg .= "$name | "; - $pg .= ''.$ans[$name].' | '; - $pg .= "
| # | '; - $pg .= 'Name | '; - foreach ($flds as $row => $nam) - $pg .= "$nam | "; - $pg .= "
| $i | "; - $pg .= "$name | "; - foreach ($flds as $fld => $nam) - $pg .= ''.$ans[$name.'_'.$fld].' | '; - $pg .= "
| # | '; - $pg .= 'List | '; - $pg .= 'ID | '; - $pg .= 'IDName | '; - $pg .= 'User | '; - $pg .= 'IP | '; - $pg .= 'IPc | '; - $pg .= 'Hash | '; - $pg .= 'UTC | '; - $pg .= "
| $j | "; - $pg .= ''.$ans['list:'.$i].' | '; - $pg .= ''.$ans['id:'.$i].' | '; - $pg .= ''.$ans['idname:'.$i].' | '; - $pg .= ''.$ans['user:'.$i].' | '; - $pg .= ''.isans($ans, 'ip:'.$i).' | '; - $pg .= ''.isans($ans, 'ipc:'.$i).' | '; - $pg .= ''.isans($ans, 'hash:'.$i).' | '; - $pg .= ''.gmdate('j/M H:i:s',$ans['createdate:'.$i]).' | '; - $pg .= "
| # | '; - $pg .= 'Key | '; - $pg .= 'ID | '; - $pg .= 'IDName | '; - $pg .= 'Hour UTC | '; - $pg .= 'Count | '; - $pg .= "
| $j | "; - $pg .= ''.$ans['key:'.$i].' | '; - $pg .= ''.$ans['id:'.$i].' | '; - $pg .= ''.$ans['idname:'.$i].' | '; - $pg .= ''.gmdate('j/M H:i:s',$ans['hour:'.$i]*3600).' | '; - $co = ''; - for ($k = 0; $k < 60; $k++) - { - if ($k < 10) - $min = '0' . $k; - else - $min = $k; - if (isset($ans["min$min:$i"])) - { - if ($co != '') - $co .= ' '; - $co .= "$min=".$ans["min$min:$i"]; - } - } - $pg .= "$co | "; - $pg .= "
| # | '; - $pg .= 'Group | '; - $pg .= 'IP | '; - $pg .= 'Name | '; - $pg .= 'Is? | '; - $pg .= 'Lifetime | '; - $pg .= 'Left | '; - $pg .= 'Log | '; - $pg .= 'Desc | '; - $pg .= 'UTC | '; - $pg .= "
| $j | "; - $pg .= ''.$ans['group:'.$i].' | '; - $pg .= ''.$ans['ip:'.$i].' | '; - $pg .= ''.$ans['eventname:'.$i].' | '; - $pg .= ''.$ans['is_event:'.$i].' | '; - $pg .= ''.$ans['lifetime:'.$i].' | '; - $exp = $ans['lifetime:'.$i]; - if ($exp == 0) - $dxp = '∞'; - else - { - $exp += $ans['createdate:'.$i]; - if ($exp <= $now) - $dxp = 'Exp'; - else - { - $exp -= $now; - $dxp = $exp . 's'; - } - } - $pg .= ''.$dxp.' | '; - $pg .= ''.$ans['log:'.$i].' | '; - $pg .= ''.$ans['description:'.$i].' | '; - $pg .= ''.gmdate('j/M H:i:s',$ans['createdate:'.$i]).' | '; - $pg .= "
| Block | '; - $pg .= 'Block UTC | '; - $pg .= 'Miner Reward | '; - $pg .= 'N Diff | '; - $pg .= 'N Range | '; - $pg .= 'Pool N Avg | '; - $pg .= 'Your % | '; - $pg .= 'Your N Diff | '; - $pg .= 'Your N Avg | '; - $pg .= 'Your BTC | '; - $pg .= "
| '.$ans['height:'.$i].' | '; - $pg .= ''.gmdate('j/M H:i',$ans['blockcreatedate:'.$i]).' | '; - $pg .= ''.btcfmt($ans['minerreward:'.$i]).' | '; - $diffused = $ans['diffused:'.$i]; - $pg .= ''.difffmt($diffused).' | '; - $elapsed = $ans['elapsed:'.$i]; - $pg .= ''.howmanyhrs($elapsed).' | '; - $phr = $diffused * pow(2,32) / $elapsed; - $pg .= ''.siprefmt($phr).'Hs | '; - $diffacc = $ans['diffacc:'.$i]; - $ypct = $diffacc * 100 / $diffused; - $pg .= ''.number_format($ypct, 2).'% | '; - $pg .= ''.difffmt($diffacc).' | '; - $hr = $diffacc * pow(2,32) / $elapsed; - $pg .= ''.dsprate($hr).' | '; - $amount = $ans['amount:'.$i]; - $totamt += $amount; - $pg .= ''.btcfmt($amount).' | '; - $pg .= "
| Total: | '; - $pg .= ''; - $pg .= ' | '.btcfmt($totamt).' | '; - $pg .= "|||||||
| Block | '; - $pg .= 'Address | '; - $pg .= 'Status | '; - $pg .= 'BTC | '; - $pg .= ''; - $pg .= " |
| '.$all[$i]['height'].' | '; - $pg .= ''.$all[$i]['payaddress'].' | '; - $pg .= ''; - $amount = $all[$i]['amount']; - if ($amount < '10000') - { - $dust = '*'; - $hasdust = true; - } - else - $dust = ' '; - $pg .= ' | '.btcfmt($amount).' | '; - $pg .= "$dust | "; - $pg .= "
| '; - $pg .= '* '; - $pg .= 'Dust payments are not automatically sent out'; - $pg .= ' | ||||
|
-
-What payout method does the pool use? -We use PPL${n1}S (Pay Per Last $n1 Shares) -PPL${n1}S means that when a block is found, the block reward is shared among the last $n1 shares that miners sent to the pool, up to when the block was found. -The $n1 value the pool uses is $t times the network difficulty when the block is found - '$n'. - -How much of each block does the pool reward? -Transaction fees are included in the miner reward. -Pool fee is 0.9% of the total. - -PPL${n1}S acts like the reward 'ramps up' when you first start mining. What actually happens? -The $n means it takes that long to reward your shares. -The ramp isn't missing rewards, it's delaying them to reduce variance. -Each share is rewarded in all the blocks found in the $n after the share. -That's simply how it reduces variance. Each share's reward is averaged out over the $n after it. -The pool hash rate $hr which means the $n 'ramp' is roughly $hrt. - -Continue reading below for more detail about how it works: - -How do the PPL${n1}S payments work? -The $n means the pool rewards $t times the expected number of shares, each time a block is found. -So each share will be paid approximately $ot of it's expected value, in each block it gets a reward, -but each share is also expected, on average, to be rewarded $t times in blocks found after the share is submitted to the pool. -i.e. if pool luck was always 100% then each share is expected to be rewarded $t times. -If pool luck is better than 100%, then the average share reward will be better than $t times. -If pool luck is lower than 100%, then the average share reward will be less than $t times. - -What's a shift? -When your miner sends shares to the pool, the shares are not stored individually, but rather summarised into shifts. -Shifts are ~50min or less in length. -Aproximately every 30s, the pool generates new work and sends that to all the miners. -The pool also sends new work every time a block is found on the Bitcoin network. -A shift summarises all the shares submitted to the pool for 100 work changes. -However, when we find pool blocks, the current shift ends at the work in which the block was found -and a new shift starts. -A ckpool restart will also end the current shift and start a new shift. -A network difficulty change will also end the current shift and start a new shift. - -So, what's the $n value? -The current Bitcoin network value for $n1d is $nv and thus $n is $nvx -Bitcoin adjusts the $n1d value every 2016 blocks, which is about every 2 weeks. -When a block is found, the reward process counts back shifts until the total share difficulty included is $n. -Since shares are summarised into shifts, it will include the full shift at the end of the range counting backwards, -so it usually will be a bit more than $n. - -When are payments sent out? -The block 'Status' must first reach '$bc' on the Blocks page, and then is flagged as '$bm', before the reward is distributed. -The block reward is sent out manually soon after that. - - |
| ';
-
- $dust = getparam('dust', true);
- if (nuem($dust) || $dust <= 0)
- $dust = 10000;
-
- $fee = getparam('fee', true);
- if (nuem($fee) || $fee < 0)
- $fee = 0;
- $fee *= 100000000;
-
- $adr = array();
- $ers = '';
- $unpaid = 0;
- $change = $miner_sat;
- $dust_amt = 0; # not included in $change
- for ($i = 0; $i < $count; $i++)
- {
- $username = $ans['user:'.$i];
- $diffacc_user = $ans['diffacc_user:'.$i];
- $pay_sat = floor($miner_sat * $diffacc_user / $diffacc_total);
- $payaddress = $ans['payaddress:'.$i];
- if ($payaddress == 'none')
- {
- $c0 = substr($username, 0, 1);
- $parts = explode('.', $username);
- $len = strlen($parts[0]);
- if (($c0 == '1' || $c0 == '3') && $len > 26 && $len < 37)
- $payaddress = $parts[0];
- else
- {
- if ($pay_sat > 0)
- {
- $dd = '';
- if ($pay_sat < $dust)
- $dd = ' (dust)';
- $ers .= "No address for '$username'$dd "; - } - $unpaid += $pay_sat; - continue; - } - } - if (isset($adr[$payaddress])) - $adr[$payaddress] += $pay_sat; - else - $adr[$payaddress] = $pay_sat; - - $change -= $pay_sat; - } - - $txout = ''; - $comma = ''; - foreach ($adr as $payaddress => $pay_sat) - { - if ($pay_sat < $dust) - $dust_amt += $pay_sat; - else - { - $txout .= "$comma\"$payaddress\":".btcfmt($pay_sat); - $comma = ', '; - } - } - - if ($change > 0 || $dust_amt > 0 || $change < $fee) - { - $pg .= "Dust limit = $dust = ".btcfmt($dust); - $pg .= ", Dust amount = $dust_amt = ".btcfmt($dust_amt); - $pg .= ", Upaid = $unpaid = ".btcfmt($unpaid); - $pg .= ", Change = $change = ".btcfmt($change); - $pg .= ", Fee = $fee = ".btcfmt($fee)." "; - - if ($change < $fee) - $ers .= "Change ($change) is less than Fee ($fee) "; - - if (($dust_amt + $change - $fee) > 0) - { - $txout .= "$comma\"<changeaddress>\":"; - $txout .= btcfmt($dust_amt + $change - $fee); - $comma = ', '; - } - } - - if (strlen($ers) > 0) - $pg .= "$ers "; - - $txn = '[{"txid":"<txid1>","vout":<n>},'; - $txn .= '{"txid":"<txid2>","vout":<n>}] '; - $txn .= '{'.$txout.'} '; - - $pg .= $txn.' |
| Name | '; - $pg .= 'Value | '; - $pg .= "
| $dsp | "; - switch ($name[0]) - { - case ',': - case '.': - $nm = substr($name, 1); - $fmt = fmtdata($name[0], $ans[$nm]); - break; - default: - $fmt = $ans[$name]; - break; - } - $pg .= "$fmt | "; - $pg .= "
| User | '; - $pg .= 'Diff Accepted | '; - $pg .= '% | '; - $pg .= 'Avg Hashrate | '; - $pg .= 'BTC -0.9% | '; - $pg .= 'Address | '; - $pg .= "
| '.$ans['user:'.$i].' | '; - $pg .= "$diffacc_user | "; - $pg .= "$diffacc_percent | "; - $pg .= "$avg_hash | "; - $pg .= ''.btcfmt($pay_sat).' | '; - $pg .= "$payaddress | "; - $pg .= "
| '; - $pg .= ' | '; - $pg .= ' | '.btcfmt($tot_pay).' | '; - $pg .= ''; - $pg .= " | ||
| ';
-
- $dust = getparam('dust', true);
- if (nuem($dust) || $dust <= 0)
- $dust = 10000;
-
- $fee = getparam('fee', true);
- if (nuem($fee) || $fee < 0)
- $fee = 0;
- $fee *= 100000000;
-
- $adr = array();
- $ers = '';
- $unpaid = 0;
- $change = $miner_sat;
- $dust_amt = 0; # not included in $change
- for ($i = 0; $i < $count; $i++)
- {
- $username = $ans['user:'.$i];
- $diffacc_user = $ans['diffacc:'.$i];
- $pay_sat = $ans['amount:'.$i];
- $payaddress = $ans['payaddress:'.$i];
- if ($payaddress == 'hold')
- {
- $dd = '';
- if ($pay_sat > 0 && $pay_sat < $dust)
- $dd = ' (dust)';
- $ers .= "Hold for '$username'$dd ($pay_sat) "; - $unpaid += $pay_sat; - continue; - } - if ($payaddress == 'none') - { - $parts = explode('.', $username); - if (btcaddr($parts[0]) === true) - $payaddress = $parts[0]; - else - { - if ($pay_sat > 0) - { - $dd = ''; - if ($pay_sat < $dust) - $dd = ' (dust)'; - $ers .= "No address for '$username'$dd ($pay_sat) "; - } - $unpaid += $pay_sat; - continue; - } - } - if (isset($adr[$payaddress])) - $adr[$payaddress] += $pay_sat; - else - $adr[$payaddress] = $pay_sat; - - $change -= $pay_sat; - } - - $txout = ''; - $comma = ''; - foreach ($adr as $payaddress => $pay_sat) - { - if ($pay_sat < $dust) - $dust_amt += $pay_sat; - else - { - $txout .= "$comma\"$payaddress\":".btcfmt($pay_sat); - $comma = ', '; - } - } - - if ($change > 0 || $dust_amt > 0 || $change < $fee) - { - $pg .= "Dust limit = $dust = ".btcfmt($dust); - $pg .= ", Dust amount = $dust_amt = ".btcfmt($dust_amt); - $pg .= ", Upaid = $unpaid = ".btcfmt($unpaid); - $pg .= ", Change = $change = ".btcfmt($change); - $pg .= ", Fee = $fee = ".btcfmt($fee)." "; - - if ($change < $fee) - $ers .= "Change ($change) is less than Fee ($fee) "; - - if (($dust_amt + $change - $fee) > 0) - { - $txout .= "$comma\"<changeaddress>\":"; - $txout .= btcfmt($dust_amt + $change - $fee); - $comma = ', '; - } - } - - if (strlen($ers) > 0) - $pg .= "$ers "; - - $txn = '[{"txid":"<txid1>","vout":<n>},'; - $txn .= '{"txid":"<txid2>","vout":<n>}] '; - $txn .= '{'.$txout.'} '; - - $pg .= $txn.' |
| Name | '; - $pg .= 'Value | '; - $pg .= "
| $dsp | "; - switch ($name[0]) - { - case ',': - case '.': - case '@': - $nm = substr($name, 1); - $fmt = fmtdata($name[0], $ans[$nm]); - break; - default: - $fmt = $ans[$name]; - break; - } - if ($dsp == 'Elapsed Seconds') - { - $pl = $ans['diffacc_total'] * pow(2,32) / $ans['pplns_elapsed']; - $fmt .= ' ' . dsprate($pl); - } - $pg .= "$fmt | "; - $pg .= "
| User | '; - $pg .= 'Diff Accepted | '; - $pg .= '% | '; - $pg .= 'Avg Hashrate | '; - $pg .= 'BTC -0.9% | '; - $pg .= 'Address | '; - $pg .= "
| '.$ans['user:'.$i].' | '; - $pg .= "$diffacc_user | "; - $pg .= "$diffacc_percent | "; - $pg .= "$avg_hash | "; - $pg .= ''.btcfmt($pay_sat).' | '; - $pg .= "$payaddress | "; - $pg .= "
| '; - $pg .= ' | '; - $pg .= ' | '.btcfmt($tot_pay).' | '; - $pg .= ''; - $pg .= " | ||
| User: | - | Pass: | - | - |
';
-
- $pg .= 'Login'; - if (isset($data['data']['error']) && !isset($_POST['pass2'])) - $pg .= "".$data['data']['error']." - please try again "; - $pg .= makeForm(''); - $pg .= " -
| ||||||||||||||
';
-
- $pg .= 'Register'; - if (isset($data['data']['error']) && isset($_POST['pass2'])) - $pg .= "".$data['data']['error']." - please try again "; - $pg .= makeForm(''); - $pg .= " -
| ||||||||||||||
';
-
- $pg .= 'Password Reset'; - $pg .= makeForm(''); - $pg .= " -
| ||||||||||||||
';
-
- $pg .= 'Password Reset'; - if ($error !== null) - $pg .= "$error - please try again "; - $pg .= makeForm('reset'); - $pg .= " -
| ||||||||||||
| ||||||||||||||
| ||||||||||||||
| ||||||||||||||
| Pool Hashrate: $dsp | "; - $pg .= "5m: $dsp5m | "; - $pg .= "1hr: $dsp1hr | "; - $pg .= "24hr: $dsp24hr | "; - $pg .= '
| Username | '; - $pg .= 'Hash Rate 5m | '; - $pg .= "
| '.htmlspecialchars($all[$i]['username']).' | '; - $uhr = $all[$i]['u_hashrate5m']; - if ($uhr == '?') - $dsp = '?GHs'; - else - $dsp = dsprate($uhr); - $pg .= "$dsp | "; - $pg .= "
| User | '; - $pg .= 'Blocks | '; - if ($sall) - { - $pg .= 'Diff | '; - $pg .= 'Avg | '; - } - $pg .= "
| $un | "; - $pg .= "$bl | "; - if ($sall) - { - $diffacc = $all[$i]['diffacc']; - $pg .= ''.difffmt($diffacc).' | '; - if ($bl == 0) - $bl = 1; - $pg .= ''.difffmt($diffacc/$bl).' | '; - } - $pg .= "
| '; - $pg .= ""; - $pg .= 'mini header | |||||||||
|
| Worker Name:<$r id=srtwrk data-sf=s0> | "; - $pg .= 'Work Diff | '; - $pg .= "<$r id=srtlst data-sf=n2>:Last Share | "; - $pg .= 'Shares | '; - $pg .= "<$r id=srtdiff data-sf=r4>:Diff | "; - $pg .= "<$r id=srtshrate data-sf=r5>:Share Rate | "; - $pg .= '«Elapsed | '; - $pg .= "<$r id=srtinv data-sf=r7>:Invalid | "; - $pg .= "<$r id=srtstale data-sf=r8>:Stale | "; - $pg .= "<$r id=srtdup data-sf=r9>:Dup | "; - $pg .= "<$r id=srthi data-sf=r10>:Hi | "; - $pg .= "<$r id=srtreject data-sf=r11>:Rej | "; - $pg .= 'Block % | '; - $pg .= "<$r id=srtrate data-sf=r13>:Hash Rate | "; - $pg .= "
| '.htmlspecialchars($arow['workername']).' | '; - if ($arow['w_lastdiff'] > 0) - $ld = difffmt($arow['w_lastdiff']); - else - $ld = ' '; - $pg .= "$ld | "; - - $pg .= "".howlongago($lstacc).' | '; - - $shareacc = number_format($arow['w_shareacc'], 0); - $totshare += $arow['w_shareacc']; - $dacc = $arow['w_diffacc']; - $diffacc = number_format($dacc, 0); - $ds = round($dacc); - $totdiff += $dacc; - $pg .= "$shareacc | "; - $pg .= "$diffacc | "; - - $acthr = '0'; - $acthrv = 0; - $actstt = $arow['w_active_start']; - if ($actstt <= 0 || ($now - $actstt) < 0) - $actsin = ' '; - else - { - $actsin = howmanyhrs($now - $actstt); - $elapsed = $now - $actstt; - if ($elapsed > 0) - { - $acthrv = $arow['w_active_diffacc'] * - pow(2,32) / $elapsed; - $acthr = dsprate($acthrv); - $totshrate += $acthrv; - } - } - $pg .= "$acthr | "; - $pg .= "$actsin | "; - - $dinv = $arow['w_diffinv']; - $dtot = $dacc + $dinv; - if ($dtot > 0) - { - $rejf = $dinv / $dtot; - $rej = number_format(100.0 * $rejf, 3); - } - else - { - $rejf = 0; - $rej = '0'; - } - $totinvalid += $dinv; - - $pg .= "$rej% | "; - - foreach(array('sta','dup','hi','rej') as $fld) - { - $shr = number_format($arow['w_share'.$fld]); - $dif = $arow['w_diff'.$fld]; - $ddif = number_format($dif); - $sdif = number_format($dif,0,'',''); - $pg .= "$ddif/$shr | "; - } - - if ($blockacc <= 0) - $blkpct = ' '; - else - $blkpct = number_format(100.0 * $dacc / $blockacc, 3) . '%'; - - $pg .= "$blkpct | "; - - $uhr = $arow['w_uhr']; - if ($uhr == '?') - { - $uhr = '?GHs'; - $su = 0; - } - else - { - $su = round($uhr); - $totrate += $uhr; - $uhr = dsprate($uhr); - } - $pg .= "$uhr | "; - - $pg .= "|||
| Total: $offset$dspinst | "; - $shareacc = number_format($totshare, 0); - $pg .= "$shareacc | "; - $diffacc = number_format($totdiff, 0); - $pg .= "$diffacc | "; - $pg .= "$totshrate | "; - $dtot = $totdiff + $totinvalid; - if ($dtot > 0) - $rej = number_format(100.0 * $totinvalid / $dtot, 3); - else - $rej = '0'; - $pg .= " | $rej% | "; - if ($blockacc <= 0) - $blkpct = ' '; - else - $blkpct = number_format(100.0 * $totdiff / $blockacc, 3) . '%'; - $pg .= ""; - $pg .= " | $blkpct | "; - $pg .= "$totrate | |||||
| Worker Name | '; - $pg .= 'Minimum Diff | '; - $pg .= '
| '; - $pg .= ""; - $pg .= $wn.' | '; - - $md = intval($ans['difficultydefault:'.$i]); - $pg .= ''; - $pg .= ""; - $pg .= ""; - $pg .= " | "; - - $pg .= "
| *';
- $pg .= ' A value of 0, less than the pool minimum, '; - $pg .= 'or less than the pool calculated value for you, '; - $pg .= 'will use the pool calculated value | |