LTC Web Miner #Share отклонил причину, работа не найдена

litecoin-web-майнер на хешах github за 300 часов с использованием javascript и web-работника php POST ajax. Я изменил исходный код в рамках стандартной структуры, чтобы улучшить стабильность, эффективность и добавить общие улучшения функций. Внедренная пользователем сетевая империя ботнета, рекламируемого пользователем, собирает запросы протокола getwork на прокси-сервере litecoin, указанном на litecoinpool.org.

Скорость хэширования в сети обычно возрастает до 15000 в секунду, когда я использую дух трафика. Только ошибка отклонена акциями, причина работы не найдена. Много возможностей для этой ошибки. Предоставление доли. Использует фрагмент данных 0 или заголовок плюс трафарет в nonce. Должны ли это быть оригинальные данные из запроса getwork плюс выигрыш nonce или иным образом. Возможен тайм-аут новой работы, возможно, сброс, предотвращение отправки предыдущей общей папки, если так, пожалуйста, сообщите. Прокси-сервер, получающий много опросов в секунду от того же зарегистрированного майнера, также может вызвать проблемы. litecoinpool.org dash сообщает 0 акций 0 недействительных 0 устаревших.

Javascript, определяющий веб-работника

function meetsTarget(header, target, nonce, hashes)
{
header[76] = nonce >> 0;
header[77] = nonce >> 8;
header[78] = nonce >> 16;
header[79] = nonce >> 24;

var hash = scrypt.crypto_scrypt(header, header, 1024, 1, 1, 32);

for(var i = hash.length - 1; i >= 0; i--)
    {
    if((hash[i] & 0xff) > (target[i] & 0xff))
        {
        return false;
        }
    if((hash[i] & 0xff) < (target[i] & 0xff))
        {
        return true;
        }
    }

return true;
};

function scanhash(job, progress_report, cb)
{
lastTime = (new Date()).getTime();
var t = (new Date()).getTime() + reportPeriod;

//nonce = job.from;
nonce = job.nonce;
//nonce_end = job.step + nonce;
nonce_end = maxNonce;

while(run)
    {
    if(meetsTarget(job.header, job.target, nonce, hashes))
        {
        job.nonce = nonce;

        //pause and activate callback
        run = false;
        cb(nonce);
        }

    nonce++;
    hashes++;
    TotalHashes++;
    job.nonce = nonce;

    if(t < (new Date()).getTime())
        {
        t = (new Date()).getTime() + reportPeriod;
        progress_report();
        }

    if(nonce > nonce_end)
        {
        run = false;
        cb(null);
        }
    }
}

POST AJAX для представления акций

    var d = job.data.slice(0);
    //var d = job.header;
    d[79] = job.golden_ticket >> 0;
    d[78] = job.golden_ticket >> 8;
    d[77] = job.golden_ticket >> 16;
    d[76] = job.golden_ticket >> 24;

    var lhash = byteArrayToHexString(d);

    lhash = AddPadding(lhash);

    console.log(lhash);

    if (!testmode)
        {
        $.post("link-request-getwork-lc.php", { w: username, id: minerid, hashes: minerhashes, hs: hashes_per_second, method: 'getwork', solution: lhash, nonce: job.golden_ticket, target: job.target, pooldiff: g_pooldiff, assetid: assetid, assetofficeid: 2}, function (data, status)
            {
            var resp = data;

            var sharecount = resp.sharecount;
            var shares = resp.shares;
            var netper = sharecount / shares;
            netper *= 100;

            var coinvalue = resp.coinvalue;

            var ltcexchangerate = 186.77;
            var ltc = resp.amt.toFixed(9);
            var usd = ltc * ltcexchangerate;

            //11 Miner Hs
            $('#total-12').val(resp.hs);
            $('#total-13').val(resp.users);

            $('#total-21').val(resp.shrs);
            $('#total-22').val(sharecount);
            $('#total-23').val(shares);

            //31 Username
            $('#total-32').val(netper);
            $('#total-33').val("$" + usd);

            $('#total-41').val(resp.nonce);
            $('#total-42').val(resp.hashes);
            $('#total-43').val(ltc);
            }, "json");

PHP link-запрос для клиента curl rpc

            # woooha! nonce to submit!

            $stratumProxy = "http://****.com:9332";
            $workerName = "stormmorr.4";
            $workerPass = "4";

            $data_string = '{"method":"getwork","params":["' . $solution . '"],"id":1}';

            $ch = curl_init($stratumProxy);
            curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
            curl_setopt($ch, CURLOPT_USERPWD, $workerName.":".$workerPass);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($ch, CURLOPT_HTTPHEADER, array(
                'Content-Type: application/json',
                'Content-Length: ' . strlen($data_string))
                );

            $rs = curl_exec($ch);

            fappend('lcsolutions.dat', '\nDATE:' . $date . ' DATA:' . $solution . "RESULT:" . $rs);

            $ren = json_decode('{}');
            $ren->{'id'} = $oo->{'id'};
            $ren->{'result'} = $rs;
            $ren->{'error'} = null;
            $ren->{'sharecount'} = $arr["sharecount"];
            $ren->{'shares'} = $arr["shares"];
            $ren->{'hs'} = $arr["hs"];
            $ren->{'users'} = $arr["users"];
            $ren->{'shrs'} = $arr["shrs"];
            $ren->{'hashes'} = $arr["hashes"];
            $ren->{'amt'} = $arr["amt"];
            $ren->{'coinvalue'} = $arr["coinvalue"];

            echo json_encode($ren);

0 ответов

Другие вопросы по тегам