Что такое CoinHive и как им пользоваться

Что такое CoinHive и как им пользоваться

Админ канала t.me/we_use_js

Поясню за термины

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

Хеш - строка, обработанная алгоритмом, который шифрует её.

Алгоритмы хеширования - SHA-256, SHA-224, MD5

Блокчейн - цепь блоков. Каждый блок имеет собственный хеш, хеш предыдущего блока, данные и печать даты. Далее, если я буду писать без примера, то будет путаница, так что представим что у нас есть массив из двух объектов:

[{hash:'123',previousHash:'0'},{hash:'456',previousHash:'123'}]

Если изменить данные в первом блоке, то изменится хеш, а это значит, что previousHash второго блока не будет равен hash первого блока. Подробнее про написание блокчейна на JavaScript: https://t.me/we_use_js/17

Proof-of-work - усложнение вычисления хеша, чтобы мошеннику невозможно было взломать данные, путём пересчитывания хеша.

Майнинг - вознаграждение системой за вычисленные хеши в виде криптовалют

С терминами вроде разобрались, теперь можно приступать к самому CoinHive.

Что такое CoinHive

CoinHive

CoinHive - это JavaScript библиотека/интерфейс для майнинга криптовалюты Monero за счёт пользователей, зашедших на сайт. Почему Monero? Monero обеспечивает безопасность и анонимность, и эта одна из немногих криптовалют, которую можно добыть прямо в браузере. CoinHive бесплатен в использовании.

Регистрация и публичный ключ

Для того чтобы наши Monero попадали нам на кошелёк, а не в пустоту, нужно зарегистрироваться на сайте. Для того чтобы зарегистриоваться, нужно перейти по вот этой ссылке. Сверху есть кнопка "Signup". Нажимаем туда. Пишем свои данные, НО не советую писать реальный почтовый индекс. Здесь есть генератор случайных почтовых кодов. После регистрации заходим в Settings > Sites and API keys.

Регистрация сайта

Так как я уже прикрепил свой сайт, то прикреплю ещё один, но ситуация аналогична - нажимаем "Create New Site".

Регистрация сайта

Туда необязательно писать домен, это не сильно важно, т.к. прикрепляется он не здесь. А это значит, что можно писать что угодно. Далее жмём Enter - и вуаля - мы получем публичный и приватный ключ!

Публичный и приватный ключ

Также можно прикрепить Monero кошелёк, для этой цели отлично подойдёт MyMonero. После регистрации кошелька возвращаемся на сайт CoinHive, снова заходим в Settings, и клацаем на Payments. Пишем адрес кошелька (на MyMonero), пароль и не обращаем внимание на "Минимальную выплату",т.к. если платёж в 0 XMR, то транзакция отменится, а адрес кошеля сохранится.

Кошель MyMonero

Самое сложное мы сделали, теперь пора приступать к самому сайту.

Привязка к сайту

Создаём папку, в которой у нас будет два файла - main.html и miner.js

Main.html будет выглядеть вот так:

<!DOCTYPE html>
<html><head>
<script src="https://authedmine.com/lib/authedmine.min.js"></script>
<script src=miner.js></script>
</head>
<body>
<button onclick=startMine()>START</button>
<button onclick=stopMine()>STOP</button>
</body>
</html>

Miner.js - здесь все чудеса

Объект Miner (User и Anonymous)

А вот о Miner.js поподробнее. Для начала нам нужно создать объект майнер - их есть два типа - User и Anonymous. Anonyoumus не записывается во вкладку Dashboard, поэтому нельзя посмотреть кто сколько принём прибыли сайту. Начнём с Anonymous:

miner = new CoinHive.Anonymous('YOUR_SITE_KEY', {
throttle: 0.7,
threads: 6
});

Вместо YOUR_SITE_KEY пишем публичный ключ нашего сайта. Как мы видим, объект CoinHive.Anonymous во втором агрументе имеет объект, его мы и рассмотрим:

throttle - та часть CPU, которая не будет использоваться. На примере выше CPU юзера будет использоваться на 30%. Лучше всего ставить данный параметр не больше 0.4, т.к. ПК юзера, который включил майнинг, будет сильно шуметь и нагреваться. Майнинг должен быть ненавязчивым, чтобы он не мешал спокойно использовать сайт. Но при этом доходов будет меньше.

threads - потоки. Лучше ставить на 6-8 потоков.

forceASMJS - если поставлен true, то CoinHive будет использовать алгоритм хеширования от asm.js. Не особо важный параметр, по дефолту стоит на false.

Остальные параметры не так важны, вы можете почитать о них в документации.

Теперь попробуем вместо Anonymous исп. User, тогда третьим параметром будет выступать username. Он может быть абсолютно любым, по сути это не особо важно (сам username), главная фишка в том, что каждая сессия юзера на сайте пишется в табличку.

miner = new CoinHive.User('YOUR_SITE_KEY','Vasya1000', {
throttle: 0.7,
threads: 6
});

Остановимся на последнем варианте (User).

Запуск и остановка майнинга

miner.start() - запуск майнинга

miner.stop() - остановка майнинга

miner.isMining() - если майнер работает, возвращает true, и наоборот

miner.isMobile() - майнер запущен на мобиле?, то возвр. true, и наоборот

Имея эти знания, мы можем написать функции для кнопок:

startMine = () => {
if(!miner.isMobile())
miner.start();
}
stopMine = () => {
miner.stop();
console.log('Mining is running: '+miner.isRunning())
}

Есть ещё несколько полезных функций:

miner.didOptOut(time) - повторное всплытие окна по истечению времени time

Также есть сеттеры и геттеры, о них можно почитать в документации.

Всё готово, пора тестить!

Запускаем файл main.html и мы видим две кнопки:

html

При нажатии на кнопку START у вас всплывёт окно:

popup

Я выбрал Anonymous для быстроты примера. Чтобы увидеть результат, нужно открыть консоль и нажать Разрешить. Процесс пошёл! Подождём 10 секунд. Затем нажимаем на STOP. Теперь вернёмся к сайту CoinHive, заходим на Dashboard и видим, что у нас прибавился Monero!

Смотрите вторую строчку
СОВЕТ. Не пытайтесь майнить в одиночку, так майнинг идёт медленно и 1 XMR стоит не больше 5К рублей. Вы вряд ли разбогаете, но заработать 5-15 баксов в день вы сможете, хотя это очень зависит от посещаемости сайта

Чтобы вы понимали, я попробовал помайнить один 20 минут и получил всего лишь 0.00000383 XMR, что в рублях стоит 3 копейки (0.03 RUB). Но если на ваш сайт будут заходить тысячи людей, и будут там долго зависать, то прибыль будет довольно хорошей.

Спасибо за прочтение статьи :3




Если хочешь, поддержи автора денежкой:

Яндекс Деньги: 410014774355272

Qiwi: +7 964 582-23-17

Report Page