Server sync... Block time in database: 1565931969, server time: 1566683524, offset: 751555

PoW майнинг на Голосе умер? Да здравствует PoW майнинг! Инструкция по майнингу для тех, кто хочет попробовать, но у него не получается.


После вчерашнего объявления команды о предстоящем ХФ 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 майнинг в Голосе является вполне прибыльным.

Теперь же любой желающий может составить конкуренцию пингвину.

Надеюсь, инструкция была вам полезна и хотя бы часть участников Голоса запустят PoW майнинг, разбавив существующую монополизацию и обеспечив дополнительный уровень безопасности для блокчейна Голоса.


Comments 54


Неофициальное структурированное обсуждение ХФ в Голосе
Обсуждаются все 10 изменений, в т.ч. майнинг.

13.05.2017 14:17
0

Видел. Но в свой пост я не для обсуждения ХФ написал, а дал информацию о том, как и какие файлы патчить из официального репозитория, чтобы запустить майнинг.

13.05.2017 14:22
0

Ниче не понял

13.05.2017 14:19
0

Теперь же любой желающий может составить конкуренцию пингвину.

и его кластеру из 1080?)))

13.05.2017 14:22
0

Сейчас нет майнеров на GPU - все (и пингвин в том числе) майнят на CPU. И, как я писал в своём посте, у текущих майнеров совсем небольшие мощности. Я думаю, что у каждого всего один компьютер работает, не больше.

В общем, сейчас любой может составить им конкуренцию.

13.05.2017 14:27
0

Точно, с моим 7300 GS это даже каплей в море назвать будет трудно, насколько я понял что-то вроде 10-20 Голосов в день )))) Тоже не ноль, конечно, но блин...

13.05.2017 14:30
0

Хех. Конкуренция- это хорошо

13.05.2017 14:28
0

Так собственно зачем патчить? Что бы включить POW, а если не патчить? Зачем тогда в конфиге параметр miner?

13.05.2017 14:36
0

Если не патчить, то майнинга не будет. Недоработка текущего кода. Может, внесут в код ХФ, чтобы не было этих танцев с бубнами. Я оформлю пулл реквест на Гитхабе.

13.05.2017 14:42
0

А можно майнить не на своём Пк. а на хостинге?

13.05.2017 14:47
0

Нет. В договорах хостеров обычно явно прописано, что майнинг криптовалют запрещён.

Но даже если не прописано - майнинг прилично нагружает процессор и хостер это быстро вычислит и прикроет ваш аккаунт.

13.05.2017 15:28
0

Ясно, спасибо за ответ.

13.05.2017 15:30
0

Приветствую, @primus ! Раньше майнингом не занимался, поэтому будут не очень умные вопросы:)
Есть сервер:
1) 2 штуки nvidia tesla c2075;
2) 32 гб оперативы(DDR3-1333 DDR3 SDRAM);
3) 2 штуки HexaCore Intel Xeon E5645, 2400 MHz;
4) windows server 2012 r2.

Можно ли майнить голоса на таком сервере?

13.05.2017 15:19
0

По железу - вполне.

Единственный вопрос - это Windows на борту. Если сможете скомпилить код Голоса под виндой - то и запустить получится. Но обычно это не тривильная задача.

С другой стороны - можно же поставить вторую операционную систему параллельно основной. Рекомендую Ubuntu 10.04 - под ней нода Голоса (и кошельки большинства остальных криптовалют) собираются без танцнев с бубнами.

Как вариант, можете не ставить параллельно вторую OS, а по Windows установить какую-либо среду запуска виртуальных машин и уже в ней поднять Ubuntu.

13.05.2017 15:33
0

И еще два тогда вопроса, будет ли профит с такого майнинга, и если да то хотя-бы порядок укажите (я понимаю, что точно ничего не сказать).
И второй вопрос, где про это все можно почитать по-подробнее? Заранее спасибо!

13.05.2017 15:37
0

Сейчас PoW майнингом добывается около 140 GOLOS в сутки (на всех майнеров).

Майнеров сейчас практически только двое - каждый из них получает около 70 голосов в сутки. Т.е. примерно 120 рублей.

Чтобы рассчитать прибыльность - надо прикинуть, сколько вы на своём железе будете майнить. Вряд ли больше 30% от всего пула PoW наград. Получается, максимум в сутки с майнинга вы будете получать 80 рублей.

Как-то так. Выгодно это для вас или нет - можете сами прикинуть, в том числе и в случае, если вы сейчас не будете продавать токены, а рассчитываете на рост их курса со временем.

13.05.2017 15:52
0

То есть penguin заработал все эти голоса за очень-очень долгое время? И за сутки зарабатывает меньше 140, и при том еще и делится с еще одним майнером?
Видимо я не так понял. Но, все равно спасибо за ответы.

13.05.2017 15:58
0

До 16 ХФ награда была больше. Плюс был включен печатный станок (инфляция) - вот у него и накопилось прилично токенов - он майнил с самого начала запуска сети.

Сейчас майнеры и делегаты зарабатывают совсем немного, да.

13.05.2017 16:30
0

Пингвин майнингом успел заработать до того как делегатам и майнерам урезали выплаты в 20 или сколько-то там раз.

14.05.2017 00:09
0

А для винды есть инструкция по сборке ноды?

13.05.2017 15:53
0

У меня нет опыта в сборке кода под Винду, так что не подскажу, увы.

13.05.2017 16:30
0

последнее что такое приватный ключ и где его брать? для строчки private-key =

14.05.2017 21:42
0

спасибо, все работает! Что же все это время команда держала патч в секрете?!

13.05.2017 17:29
0

у меня винда. и вроде не плохой комп. оперативы 16. проц i7 7700k

13.05.2017 17:57
0

Как я писал чуть выше - можно в виртуалке поставить Ubuntu 16.04 и запускать майнинг под ней.

13.05.2017 18:39
0

а можно подробную, по шаговую инструкцию действий настройки майнера. Я не программист. Дизайнер.

13.05.2017 18:46
0

Так вот же ссылка - я её в статье тоже дважды приводил.

Ну и плюс пропатчить как написано.

13.05.2017 18:49
0

вот тут Прежде чем запускать Голос, скопируйте в эту папку файл со снэпшотом сети:

cp /path/to/golos-14.2/programs/golosd/golosd/snapshot5392323.json . пишет что user1@comp1:~/golos$ cp /golos-14.2/programs/golosd/golosd/snapshot5392323.json .
cp: не удалось выполнить stat для '/golos-14.2/programs/golosd/golosd/snapshot5392323.json': Нет такого файла или каталога

14.05.2017 20:00
0
@snaryaga Найдите, где у вас лежит файл snapshot5392323.json и скопируйте его в текущую директорию запуска. Он будет лежать в папке, созданной git и дальше директории programs/golosd/golosd/
14.05.2017 20:22
0

последнее что такое приватный ключ и где его брать? для строчки private-key =

14.05.2017 21:41
0

последнее что такое приватный ключ и где его брать? для строчки private-key =

14.05.2017 21:41
0
Можно использовать любой ключ, сгенерённый командой suggest_brain_key - она выдаёт случайный публичный и приватный ключ. suggest_brain_key - команда для консоли cli_wallet (появится после компиляции вместе с демоном golosd). Почитайте ещё обсуждение в комментариях к инструкции - там эти вопросы уже обсуждались.
15.05.2017 07:37
0

помоги мне по скайпу настроить это пожалуйста. или может еще как-то. спасибо мой вк https://vk.com/mezz0td

14.05.2017 21:59
0

@primus - в общем, пока мои эксперименты ничем не увенчались.

Я собираю на archlinux (на самом деле, Manjaro), тут есть все нужные зависимости (вроде бы), но их "проблема" - похоже, они слишком новые. Вот ошибка, которую мне гласят что 17, что 16 версии голоса:

/home/sxiii/golos-16.4/libraries/fc/src/thread/context.hpp:103:25: error: ‘fcontext_t’ in namespace ‘bc’ does not name a type

Похоже, это из-за несовместимости версии библиотеки libboost (у меня новее, чем нужна - boost-libs-1.63.0-2). Вот подробнее скрин:

Img

Есть идеи? Спасибо, @primus

13.05.2017 23:40
0
Да, похоже на несовместимость версий 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 .
14.05.2017 06:36
0

В общем, сейчас буду разные версии буста пробовать. Вот что с 1.58:

/home/sxiii/boostold/boost_1_58_0/boost/multiprecision/cpp_int.hpp:181:56: error: right operand of shift expression ‘(1u << 63u)’ is >= than the precision of the left operand [-fpermissive]
    BOOST_STATIC_CONSTANT(limb_type, sign_bit_mask = 1u << (limb_bits - 1));
                                                     ~~~^~~~~~~~~~~~~~~~~~

Проверил - с 1.57 тоже самое.

14.05.2017 14:29
0

Блин, только-что скомпилил. Теперь патчить и заново компилить?

14.05.2017 16:04
0

Ну да, если для майнинга ставили, то нужно пропатчить.

14.05.2017 17:17
0

Теперь с конфигом майнера (из твоего поста) такая ошибка:

14.05.2017 21:15
0

Похоже на синтаксическую ошибку в конфиге - проверьте его на ошибки.

15.05.2017 07:27
0

За утро раза 3 перекомпилил всё и тот же самый конфиг подкладывал. И знаете - заработало О_о

15.05.2017 08:17
0

Пропатчил, запустил ноду. Но, что то меня в очередь не пускает. В логе вижу такое

771270ms th_a       witness.cpp:404               on_applied_block     ] hash rate: 1 hps  target: 0000000000080000000000000000000000000000000000000000000000000000 queue: 172 estimated time to produce: 586406201481 minutes
774271ms th_a       application.cpp:458           handle_block         ] Got 1 transactions from network on block 5991751
789327ms th_a       witness.cpp:404               on_applied_block     ] hash rate: 0 hps  target: 0000000000080000000000000000000000000000000000000000000000000000 queue: 172 estimated time to produce: 0 minutes
789329ms th_a       application.cpp:458           handle_block         ] Got 3 transactions from network on block 5991756

Что-то не правильно или настолько медленная машина? Как определить? hps это хэшей в секунду?Кстати какой ключ надо писать, active key?

Я пропатчил в форке у себя в репозитории

https://github.com/gropox/golos/commit/1aa2a7128f820b6c3ef3c0ca6e3070f17536500b

Скомпилировалось все без ошибок.

14.05.2017 20:21
0
hps (это действительно скорость перебора хэшей в секунду) всегда будет показывать 0. Не знаю, почему так, но показывает ноль вне зависимости от мощности процессора. Надо было об этом упомянуть в посте, спасибо что обратили внимание. При этой майнинг на самом деле идёт. В логах вы должны видеть что-то вроде этого: 1236175ms th_a witness.cpp:512 operator() ] Broadcasting Proof of Work for ropox когда майнер найдёт решение.
15.05.2017 07:25
0

Нет такого, пишет, что я 172 в очереди, а на golosd.com я себя не вижу.

15.05.2017 08:40
0

У меня аналогично, только hps около 200000 и в майнерах себя не вижу.
А где вы увидели, что вы 172 в списке? Вижу, я тоже 172.

15.05.2017 09:14
0

Может надо себя как wittness отметить?

15.05.2017 15:14
0
А вы попробуйте в конфиге указать несуществующий аккаунт. Как только PoW блок будет найден, аккаунт зарегистрируется. В конфиге это будут такие две строчки (предлогая, что имя нового аккаунта ropox1): witness = "ropox1" miner = ["ropox1","5KNkFbyYDKkvys6by7QUr3xM91uZLhKF6ge9AiACr5U4V5tAAHh"] По идее на поиск блока всего несколько минут должно хватить. Даже на слабом компе минут за 10 вы должны увидеть в логах что-то типа: 1236175ms th_a witness.cpp:512 operator() ] Broadcasting Proof of Work for ropox1
15.05.2017 15:31
0

@primus, Поздравляю!
Ваш пост был упомянут в моем хит-параде в следующих категориях:

  • Голосов - 1 позицию - 138 Голосов
  • комментарии - 6 позицию - 41 комментарии
  • Выплаты - 5 позицию - 603,8700 GBG
15.05.2017 07:16
0

Запустился майнинг


Но в списке майнеров себя не вижу(
И подскажи ещё пожалуйста - через сколько примерно хоть что-то намайнится? На компе 8 ядер, если это играет роль.

15.05.2017 08:44
0

Можете подсказать, почему мой делегат 46.101.198.160:4243 не виден сети (в таблице под номер 99, но версия ПО 0.0.0 и никакой активности)? Нода доступна, есть в списке network_get_connected_peers, к ней можно подключиться как seed-node, конфиг из вашей статьи. Выполнил update_witness и publish_feed. Еще есть какой секрет?

08.06.2017 20:05
0

Как только подпишите первый блок, так сразу обновятся показатели (версия ПО и т.п.).

08.06.2017 21:06
0

Ясно, спасибо за информацию. Я так и понял.

08.06.2017 21:15
0