Kostenlose PHP Webseite registriert und die worker per PHP ausgelesen / umgerechnet auf G(Giga) / sortiert und alles kleiner gleich 200g nach unten geschoben
Wenn den PHP Code jemand mag, hier wäre er
Solorun Statistik
echo '' ;
// Funktion zum Abrufen der aktuellen Bitcoin-Schwierigkeit
function getBitcoinDifficulty() {
$url = 'https://api.blockchair.com/bitcoin/stats';
$jsonData = file_get_contents($url);
if ($jsonData !== false) {
$data = json_decode($jsonData, true);
if ($data !== null && isset($data['data']['difficulty'])) {
return $data['data']['difficulty'];
}
}
return 'N/A';
}
// Aktuelle Bitcoin-Schwierigkeit abrufen
$bitcoinDifficulty = getBitcoinDifficulty();
$url = 'https://solo.ckpool.org/users/bc1qeuupt2tgerfum8jclt8aklu9cdmzzkwml9lg7c';
$forumDEurl = 'https://bitcointalk.org/index.php?topic=5477020.0';
$forumENurl = 'https://bitcointalk.org/index.php?topic=5478927.0';
$options = [
'http' => [
'method' => 'GET',
'header' => 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:100.0) Gecko/20100101 Firefox/100.0',
],
];
$context = stream_context_create($options);
$jsonData = file_get_contents($url, false, $context);
if ($jsonData !== false) {
$data = json_decode($jsonData, true);
if ($data !== null) {
function convertToGiga($hashrate) {
$multiplier = [
'K' => 1 / 1e6,
'M' => 1 / 1e3,
'G' => 1,
'T' => 1e3,
'P' => 1e6,
'E' => 1e9,
];
preg_match('/^(\d*\.?\d*)\s*([KMGTE])?$/', $hashrate, $matches);
$value = (float)$matches[1];
$unit = isset($matches[2]) ? $matches[2] : 'G';
return $value * $multiplier[$unit];
}
function formatNumber($number, $decimals = 2) {
return number_format($number, $decimals, ',', '.');
}
$highHashrateWorkers = array_filter($data['worker'], function ($worker) {
return convertToGiga($worker['hashrate5m']) >= 200;
});
$lowHashrateWorkers = array_filter($data['worker'], function ($worker) {
return convertToGiga($worker['hashrate5m']) < 200;
});
usort($highHashrateWorkers, function ($a, $b) {
return $b['bestshare'] <=> $a['bestshare'];
});
echo '';
';
echo ''; Platz Worker Name Hashrate (5m) Hashrate (7d) Shares Best Share
$counter = 1; // Initialisierung der laufenden Nummer
$totalShares = 0;
$totalRedShares = 0;
$totalHashrate = 0;
foreach ($highHashrateWorkers as $worker) {
$explodedName = explode(".", $worker['workername']);
$splittedName = isset($explodedName[1]) ? $explodedName[1] : '';
echo ''; ';
echo '' . $counter++ . ' ';
echo '' . htmlspecialchars($splittedName) . ' ';
$hashrate5m = convertToGiga($worker['hashrate5m']);
$hashrate7d = convertToGiga($worker['hashrate7d']);
// Überprüfung, ob die Hashrate (5m) unter 200 liegt, und entsprechende Formatierung
echo '. ($hashrate5m < 200 ? 'color: red;' : '') . '">' . formatNumber($hashrate5m, 0) . 'G ';
// Überprüfung, ob die Hashrate (7d) unter 200 liegt, und entsprechende Formatierung
echo '. ($hashrate7d < 200 ? 'color: red;' : '') . '">' . formatNumber($hashrate7d, 0) . 'G ';
echo '' . formatNumber($worker['shares'],0 ) . ' ';
echo '' . formatNumber($worker['bestshare'], 0) . ' ';
echo '
$totalShares += $worker['shares'];
$totalHashrate += $hashrate5m;
}
// Der gleiche Ansatz für die niedrige Hashrate
foreach ($lowHashrateWorkers as $worker) {
$explodedName = explode(".", $worker['workername']);
$splittedName = isset($explodedName[1]) ? $explodedName[1] : '';
echo ''; ';
echo '' . $counter++ . ' ';
echo '' . htmlspecialchars($splittedName) . ' ';
$hashrate5m = convertToGiga($worker['hashrate5m']);
$hashrate7d = convertToGiga($worker['hashrate7d']);
// Überprüfung, ob die Hashrate (5m) unter 200 liegt, und entsprechende Formatierung
echo '. ($hashrate5m < 200 ? 'color: red;' : '') . '">' . formatNumber($hashrate5m, 0) . 'G ';
// Überprüfung, ob die Hashrate (7d) unter 200 liegt, und entsprechende Formatierung
echo '. ($hashrate7d < 200 ? 'color: red;' : '') . '">' . formatNumber($hashrate7d, 0) . 'G ';
echo '' . formatNumber($worker['shares'], 0) . ' ';
echo '' . formatNumber($worker['bestshare'], 0) . ' ';
echo '
$totalShares += $worker['shares'];
$totalHashrate += $hashrate5m;
}
$percentageResult = 100 - ($totalShares / $bitcoinDifficulty) * 100; // Berechnung in Prozent
echo '
//echo 'Summe aller Shares (ohne rote): ' . formatNumber($totalShares) . '
';
//echo 'Summe der roten Shares: ' . formatNumber($totalRedShares) . '
';
echo 'Gesamt-Hashrate aller Worker: '
. formatNumber($totalHashrate, 0) . 'G';
echo 'Summe aller Shares (aktiver Miner / aktuelle BTC Diff): '
. formatNumber($totalShares, 0) . ' / ' . formatNumber($bitcoinDifficulty, 0) . '';
echo 'Unser Glück wenn wir jetzt einen Block finden würden (luck = 100 - shares / diff): '
. formatNumber($percentageResult, 3) . '%';
echo 'Anzahl der Worker mit Hashrate >= 200G: '
. count($highHashrateWorkers) . '';
//echo 'Aktuelle Bitcoin-Schwierigkeit: ' . formatNumber($bitcoinDifficulty) . '
';
} else {
echo 'Fehler beim Parsen der JSON-Daten.';
}
} else {
echo 'Fehler beim Abrufen der Webseite.';
}
echo "
";
echo "Willipool Status:"; echo " .$url."\">$url";
echo "Bitcointalk Forum DE:"; echo " .$forumDEurl."\">$forumDEurl";
echo "Bitcointalk Forum EN:"; echo " .$forumENurl."\">$forumENurl";
$aktuellesDatumUndUhrzeit = date('d.m.Y H:i:s');
echo "Aktuelles Datum und Uhrzeit:
$aktuellesDatumUndUhrzeit";
echo '';
?>
https://solorun.lima.zone/