После вчерашнего объявления команды о предстоящем ХФ 0.2 (АКА 17+18) на Голосе возникло много дисскуссий, но почему-то все активно обсуждают только одно предложение: сделать единое окно выплат в 7 дней.
А ведь хардфорк несёт больше десяти изменений, и каждое из них стоит обсудить отдельно. Но сейчас я хотел бы поговорить о том единственном изменении, которое принципиально отличает блокчейн Голоса от его старшего брата Стима.
Речь идёт про PoW (Proof-of-Work) майнинг Голоса.
Лично меня очень радует, что PoW майниг сохранится и после 18 хардфорка. И я не единственный, кто считает его необходимым - @hipster, например, тоже высказывался за его сохранение, а некоторые делегаты тоже (в личных беседах).
Сохранние PoW наград - это хорошо, но есть и грустные обстоятельства.
Удивительно, но факт: с момента запуска ХФ 16 в марте этого года, никто не обратил внимание на тот факт, что в текущем репозитории проекта лежит код, который нельзя использовать для PoW майнинга. Видимо, этот печальный факт и объясняет текущую ситуацию, когда PoW майнинг практически монополизирован всего двумя майнерами - @penguin и @itsmine - достаточно посмотреть на текущий список майнеров (Miner Queue), чтобы убедиться в этом.
Причём эти майнеры не обладают какими-то суперкомпьютерами или сетью компьютеров для майнинга. Нет, всё гораздо проще - они использовали "секретный" патч, заставляющий официальный код добывать PoW блоки.
В общем, я на практике попробовал разобраться с этой проблемой и хочу поделиться полученной информацией со всеми.
Как заставить официальный код добывать PoW блоки
1. Используя оригинальную инструкцию по запуску ноды Голоса, вам необходимо скачать и развернуть на локальном диске код из официального репозитория Голоса.
2. Перед компиляцией кода, для включения возможности PoW майнинга необходимо внести следующие изменения в файл libraries/plugins/witness/witness.cpp
:
++this->_total_hashes;
work.input.nonce += num_threads;
- work.create( block_id, miner, work.input.nonce );
+ //work.create( block_id, miner, work.input.nonce );
+ work.proof.n = STEEMIT_EQUIHASH_N;
+ work.proof.k = STEEMIT_EQUIHASH_K;
+ work.proof.seed = fc::sha256::hash( work.input );
+ work.proof.inputs = {
+ 2930666, 3055534, 16227194, 1878724, 3055534, 3370375, 10368718, 8279292,
+ 1878724, 12665269, 13416647, 14101780, 14954112, 16332900, 7269530, 13055417,
+ 16709657, 14859041, 8879475, 3839300, 8879475, 14954112, 3370375, 7416112,
+ 15613499, 15613499, 6086878, 9856240, 587509, 587509, 6047993, 10368718,
+ 6449363, 7416112, 15056305, 8279292, 13055417, 6086878, 16332900, 14859041,
+ 308997, 13416647, 14101780, 2930666, 2552223, 12665269, 2552223, 6047993,
+ 308997, 16709657, 3654688, 9885009, 15056305, 9856240, 7269530, 3654688,
+ 5757028, 16227194, 5757028, 3839300, 9885009, 6449363, 2141293, 2141293 };
+ work.pow_summary = fc::sha256::hash( work.proof.inputs ).approx_log_32();
Чтобы вам проще было ориентироваться в коде, отмечу, что нужно закомментировать 478 строку и вставить строки патча после неё.
3. После внесения изменений в файл libraries/plugins/witness/witness.cpp
можно компилировать код и настраивать конфигурационные файлы для запуска PoW майнинга.
Инструкция по настройке конфигурационных файлов для майнинга всё ещё актуальна, и там в комментариях описаны все возможные проблемы и методы их решения. Но если у вас что-то не будет получаться - спрашивайте, я постараюсь ответить.
Сколько можно заработать на PoW?
Для ответа на этот вопрос достаточно взглянуть на данные @penguin, в частности на историю его переводов на биржу Bittrex.
С периодичностью раз в неделю он выводит около 16,700 токенов GOLOS, что при текущем курсе соответствует примерно 30,000 рублей в неделю. Конечно, значительная часть токенов была им добыта до 16 ХФ и перехода на новую экономику без инфляции. Но тот факт, что он продолжает активно майнить и не переключает свои мощности на добычу другой криптовалюты, свидетельствует о том, что PoW майнинг в Голосе является вполне прибыльным.
Теперь же любой желающий может составить конкуренцию пингвину.
Хех. Конкуренция- это хорошо
А для винды есть инструкция по сборке ноды?
У меня нет опыта в сборке кода под Винду, так что не подскажу, увы.
Ниче не понял
и его кластеру из 1080?)))
Сейчас нет майнеров на GPU - все (и пингвин в том числе) майнят на CPU. И, как я писал в своём посте, у текущих майнеров совсем небольшие мощности. Я думаю, что у каждого всего один компьютер работает, не больше.
В общем, сейчас любой может составить им конкуренцию.
Точно, с моим 7300 GS это даже каплей в море назвать будет трудно, насколько я понял что-то вроде 10-20 Голосов в день )))) Тоже не ноль, конечно, но блин...
@primus Поздравляю! Вы добились некоторого прогресса на Голосе и были награждены следующими новыми бейджами:
Награду за Количество комментариев
Вы можете нажать на любой бейдж, чтобы увидеть свою страницу на Доске Почета.
Чтобы увидеть больше информации о Доске Почета, нажмите здесь
Если вы больше не хотите получать уведомления, ответьте на этот комментарий словом
стоп
Голосуя за это уведомление, вы помогаете всем пользователям Голоса. Узнайте, как здесь.
Можете подсказать, почему мой делегат 46.101.198.160:4243 не виден сети (в таблице под номер 99, но версия ПО 0.0.0 и никакой активности)? Нода доступна, есть в списке network_get_connected_peers, к ней можно подключиться как seed-node, конфиг из вашей статьи. Выполнил update_witness и publish_feed. Еще есть какой секрет?
Как только подпишите первый блок, так сразу обновятся показатели (версия ПО и т.п.).
Ясно, спасибо за информацию. Я так и понял.
Запустился майнинг
https://i.imgur.com/lVXz4Uy.png
Но в списке майнеров себя не вижу(
И подскажи ещё пожалуйста - через сколько примерно хоть что-то намайнится? На компе 8 ядер, если это играет роль.
@primus, Поздравляю!
Ваш пост был упомянут в моем хит-параде в следующих категориях:
Пропатчил, запустил ноду. Но, что то меня в очередь не пускает. В логе вижу такое
Что-то не правильно или настолько медленная машина? Как определить? hps это хэшей в секунду?Кстати какой ключ надо писать, active key?
Я пропатчил в форке у себя в репозитории
https://github.com/gropox/golos/commit/1aa2a7128f820b6c3ef3c0ca6e3070f17536500b
Скомпилировалось все без ошибок.
hps (это действительно скорость перебора хэшей в секунду) всегда будет показывать 0. Не знаю, почему так, но показывает ноль вне зависимости от мощности процессора. Надо было об этом упомянуть в посте, спасибо что обратили внимание.
При этой майнинг на самом деле идёт. В логах вы должны видеть что-то вроде этого:
1236175ms th_a witness.cpp:512 operator() ] Broadcasting Proof of Work for ropox
когда майнер найдёт решение.
Может надо себя как wittness отметить?
А вы попробуйте в конфиге указать несуществующий аккаунт. Как только PoW блок будет найден, аккаунт зарегистрируется.
В конфиге это будут такие две строчки (предлогая, что имя нового аккаунта ropox1):
witness = "ropox1"
miner = ["ropox1","5KNkFbyYDKkvys6by7QUr3xM91uZLhKF6ge9AiACr5U4V5tAAHh"]
По идее на поиск блока всего несколько минут должно хватить. Даже на слабом компе минут за 10 вы должны увидеть в логах что-то типа:
1236175ms th_a witness.cpp:512 operator() ] Broadcasting Proof of Work for ropox1
Нет такого, пишет, что я 172 в очереди, а на golosd.com я себя не вижу.
У меня аналогично, только hps около 200000 и в майнерах себя не вижу.
А где вы увидели, что вы 172 в списке? Вижу, я тоже 172.
Блин, только-что скомпилил. Теперь патчить и заново компилить?
Ну да, если для майнинга ставили, то нужно пропатчить.
Теперь с конфигом майнера (из твоего поста) такая ошибка:
http://i.imgur.com/aqwYaoE.png
Похоже на синтаксическую ошибку в конфиге - проверьте его на ошибки.
За утро раза 3 перекомпилил всё и тот же самый конфиг подкладывал. И знаете - заработало О_о
@primus Поздравляю! Вы добились некоторого прогресса на Голосе и были награждены следующими новыми бейджами:
Ваш пост получил наибольшее количество голосов на один день
Вы можете нажать на любой бейдж, чтобы увидеть свою страницу на Доске Почета.
Чтобы увидеть больше информации о Доске Почета, нажмите здесь
Если вы больше не хотите получать уведомления, ответьте на этот комментарий словом
стоп
Голосуя за это уведомление, вы помогаете всем пользователям Голоса. Узнайте, как здесь.
@primus - в общем, пока мои эксперименты ничем не увенчались.
Я собираю на archlinux (на самом деле, Manjaro), тут есть все нужные зависимости (вроде бы), но их "проблема" - похоже, они слишком новые. Вот ошибка, которую мне гласят что 17, что 16 версии голоса:
Похоже, это из-за несовместимости версии библиотеки libboost (у меня новее, чем нужна - boost-libs-1.63.0-2). Вот подробнее скрин:
Есть идеи? Спасибо, @primus
Да, похоже на несовместимость версий libboost.
У меня без проблем собирается под Ubuntu 16.04 с их стандартной libboost 1.58.0.0
Собирал также под Debian с кастомной libboost 1.57.0.0 - при этом более поздние версии выдавали ошибку под Debian, под Ubuntu с другими версиями не пробовал, т.к. со штатной нормально всё собирается.
Попробуйте для локального пользователя установить одну из этих версий и собрать golosd с кастомной библиотекой libboost, прописав путь до неё:
cmake -DCMAKE_BUILD_TYPE=Release -DBOOST_ROOT=/path/to/boost_1_57_0 .
В общем, сейчас буду разные версии буста пробовать. Вот что с 1.58:
Проверил - с 1.57 тоже самое.
спасибо, все работает! Что же все это время команда держала патч в секрете?!
Приветствую, @primus ! Раньше майнингом не занимался, поэтому будут не очень умные вопросы:)
Есть сервер:
Можно ли майнить голоса на таком сервере?
По железу - вполне.
Единственный вопрос - это Windows на борту. Если сможете скомпилить код Голоса под виндой - то и запустить получится. Но обычно это не тривильная задача.
С другой стороны - можно же поставить вторую операционную систему параллельно основной. Рекомендую Ubuntu 10.04 - под ней нода Голоса (и кошельки большинства остальных криптовалют) собираются без танцнев с бубнами.
Как вариант, можете не ставить параллельно вторую OS, а по Windows установить какую-либо среду запуска виртуальных машин и уже в ней поднять Ubuntu.
И еще два тогда вопроса, будет ли профит с такого майнинга, и если да то хотя-бы порядок укажите (я понимаю, что точно ничего не сказать).
И второй вопрос, где про это все можно почитать по-подробнее? Заранее спасибо!
Сейчас PoW майнингом добывается около 140 GOLOS в сутки (на всех майнеров).
Майнеров сейчас практически только двое - каждый из них получает около 70 голосов в сутки. Т.е. примерно 120 рублей.
Чтобы рассчитать прибыльность - надо прикинуть, сколько вы на своём железе будете майнить. Вряд ли больше 30% от всего пула PoW наград. Получается, максимум в сутки с майнинга вы будете получать 80 рублей.
Как-то так. Выгодно это для вас или нет - можете сами прикинуть, в том числе и в случае, если вы сейчас не будете продавать токены, а рассчитываете на рост их курса со временем.
То есть penguin заработал все эти голоса за очень-очень долгое время? И за сутки зарабатывает меньше 140, и при том еще и делится с еще одним майнером?
Видимо я не так понял. Но, все равно спасибо за ответы.
Пингвин майнингом успел заработать до того как делегатам и майнерам урезали выплаты в 20 или сколько-то там раз.
До 16 ХФ награда была больше. Плюс был включен печатный станок (инфляция) - вот у него и накопилось прилично токенов - он майнил с самого начала запуска сети.
Сейчас майнеры и делегаты зарабатывают совсем немного, да.
А можно майнить не на своём Пк. а на хостинге?
Нет. В договорах хостеров обычно явно прописано, что майнинг криптовалют запрещён.
Но даже если не прописано - майнинг прилично нагружает процессор и хостер это быстро вычислит и прикроет ваш аккаунт.
Ясно, спасибо за ответ.
Так собственно зачем патчить? Что бы включить POW, а если не патчить? Зачем тогда в конфиге параметр miner?
Если не патчить, то майнинга не будет. Недоработка текущего кода. Может, внесут в код ХФ, чтобы не было этих танцев с бубнами. Я оформлю пулл реквест на Гитхабе.
Неофициальное структурированное обсуждение ХФ в Голосе
Обсуждаются все 10 изменений, в т.ч. майнинг.
Видел. Но в свой пост я не для обсуждения ХФ написал, а дал информацию о том, как и какие файлы патчить из официального репозитория, чтобы запустить майнинг.