Created Credit calculation script (markdown)
parent
e0d5e91eb6
commit
02f86201ad
1 changed files with 64 additions and 0 deletions
64
Credit-calculation-script.md
Normal file
64
Credit-calculation-script.md
Normal file
|
@ -0,0 +1,64 @@
|
|||
```php
|
||||
#!/usr/bin/php
|
||||
<?php
|
||||
|
||||
|
||||
function getReward($block) {
|
||||
if ($block == 0) {
|
||||
return 400000000;
|
||||
}
|
||||
elseif ($block <= 5100) {
|
||||
return 1;
|
||||
}
|
||||
elseif ($block <= 55000) {
|
||||
return 1 + floor(($block - 5001) / 100);
|
||||
}
|
||||
else {
|
||||
return max(0, 500 - floor(((sqrt(($block - 55001) / 4 + 1)) - 1) / 2));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function getTotalReward($fromBlock, $toBlock) {
|
||||
if ($toBlock < $fromBlock) return 0;
|
||||
return array_sum(array_map('getReward', range($fromBlock,$toBlock)));
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
$blockTime = 161.58;
|
||||
$start = 1466646588;
|
||||
$now = gmdate('U');
|
||||
|
||||
$blocksNow = floor(($now - $start) / $blockTime);
|
||||
|
||||
$arg = isset($_SERVER['argv'][1]) ? $_SERVER['argv'][1] : 'now';
|
||||
|
||||
if (preg_match('/^\d+b$/', $arg)) {
|
||||
$blocksAtTarget = (int)substr($arg,0,-1);
|
||||
$target = $start + $blocksAtTarget*$blockTime;
|
||||
}
|
||||
else {
|
||||
$target = gmdate('U', strtotime($arg));
|
||||
$blocksAtTarget = floor(($target - $start) / $blockTime);
|
||||
}
|
||||
|
||||
echo "Start: $start (" . date('Y-m-d H:i:s', $start) . ")\n";
|
||||
echo "Now: $now (" . date('Y-m-d H:i:s', $now) . ")\n";
|
||||
echo "Target: $target (" . date('Y-m-d H:i:s', $target) . ")\n";
|
||||
|
||||
echo "\n";
|
||||
|
||||
echo "Blocks now (assuming {$blockTime} seconds per block): " . number_format($blocksNow) . "\n";
|
||||
echo "Credits now (assuming {$blockTime} seconds per block): " . number_format(getTotalReward(1,$blocksNow)) . "\n";
|
||||
|
||||
echo "\n";
|
||||
|
||||
echo "Blocks at target: " . number_format($blocksAtTarget) . "\n";
|
||||
echo "Credits from now to target: " . ($blocksNow>=$blocksAtTarget ? 0 : number_format(getTotalReward($blocksNow,$blocksAtTarget))) . "\n";
|
||||
echo "Credits at target: " . number_format(getTotalReward(1,$blocksAtTarget)) . "\n";
|
||||
echo "Reward of target block: " . number_format(getReward($blocksAtTarget)) . "\n";
|
||||
|
||||
?>
|
||||
```
|
Loading…
Add table
Reference in a new issue