Пост о том, как происходит добыча стим-мощности. Рекомендуется всем заинтересованным в майнинге, независимо от используемой ОС.
Добывать можно только стим-мощность (Steem Power), т. е. добытое нельзя сразу передать или потратить (возможен только постепенный вывод в течении двух лет). Кроме того, для добычи необходим секретный ключ аккаунта. В белой книге сказано, что все это затрудняет создание пулов и использование ботнетов. Пулы, кстати, тоже не есть хорошо, т. к. они ведут к централизации, что представляет серьезную угрозу: один разросшийся пул может получить контроль над криптовалютой.
Добываемую стим-мощность можно направлять на усиление существующего аккаунта или использовать для создания нового.
В Стиме блок не генерируется сразу при нахождении POW (подтверждение работы) майнером. Вместо этого блоки создаются периодически по часам (узлы синхронизируются по NTP), подтвердившие работу майнеры выстраиваются в очередь на генерацию очередного блока. По причине частой генерации блоков (каждые 3 секунды, но только 1 из 21 блока достается очередному майнеру), для успешной работы требуется надежное сетевое соединение с низкими задержками.
Настройка steemd
В предыдущем посте я описал сборку майнера под ГНУ/Линукс. Теперь о том, что с ним дальше делать. Команды приведены для примера для ГНУ/Линукс, но принципы все общие.
Сначала нужно инициализировать рабочий каталог узла witness_node_data_dir
. Можно скачать готовый (сейчас там 1,2 ГБ в сжатом виде), содержащий актуальную базу блоков, и так потом сэкономить время на синхронизации:
$ curl 'http://www.steemitup.eu/witness_node_data_dir.tar.gz' | tar -xz
Или можно просто запустить steemd и завершить его (Ctrl-C) после вывода сообщения "No miners configured!". После распаковки скачанного архива или первого запуска steemd в текущем каталоге появится подкаталог witness_node_data_dir
, а в нем — конфигурационный файл config.ini
.
В witness_node_data_dir/config.ini
нужно для каждого аккаунта (нового или существующего) указать следующее:
witness = "yourusername"
miner = ["yourusername", "5JckCuy46atFSgSYHEaBxivse1oH175covta43QzJgULnVh8mo9"]
Ключ выше сгенерирован для примера. Для существующего аккаунта используйте секретный ключ active (на steemit.com: "Wallet", "Permissions", "Login to show" напротив "ACTIVE", ваш пароль, "Show private key").
Для нового можно использовать генератор. Нужно поводить курсором для набора энтропии, дальше "Bulk Wallet", снять отметку "Compressed addresses?" и нажать "Generate", выбрать любой из секретных ключей (третья колонка). При добыче нового аккаунта убедитесь, что он не занят. Можно проверить https://steemd.com/@yourusername
.
Берегите секретные ключи — получивший к ним доступ может снять средства с аккаунта.
Рекомендуется указать несколько аккаунтов (несколько строчек "witness" и "miner"), т. к. после успешного вычисления POW майнер встает в очередь на генерацию блока (см. колонку "Miner-witness queue"), в которой проведет пару часов прежде, чем будет сгенерирован блок и зачислена стим-мощность. В это время steemd может использовать другой из указанных аккаунтов, чтобы зря не простаивать. Аккаунты выбираются в алфавитном порядке. Не используйте те же аккаунты и ключи при добыче на нескольких компьютерах.
Дальше нужно указать количество потоков для майнинга, например
mining-threads = 4
Для начала попробуйте количество ядер процессора, но можно и поэкспериментировать.
Еще можно включить интерфейс RPC:
rpc-endpoint = 127.0.0.1:8090
Это позволит посылать команды работающему steemd, например, с помощью cli_wallet.
Все готово — можно запускать steemd. Я делаю так, чтобы работал в фоне с низким приоритетом и перенаправлял весь вывод в файл steemd.log
:
$ ionice -n 7 nice -n 19 ./steemd &> steemd.log &
Но можно и просто запустить steemd.
Когда майнинг начнется (после синхронизации с блокчейном), вы увидите сообщения типа:
hash rate: 12457 hps target: 31 queue: 110 estimated time to produce: 2873 minutes
Здесь "hash rate" — производительность майнера, "target" — сложность, "queue" — длинна очереди на генерацию блока, "estimated time to produce" — среднее количество минут до нахождения POW при указанной производительности и сложности. При увеличении target на 1 среднее время вычисления увеличивается в 2 раза. Значение target зависит от длины очереди (увеличивается на 1 при увеличении очереди на 4) и сейчас меняется от 30 до 32.
После успешного вычисления POW будет сообщение "Broadcasting Proof of Work", после прохождения очереди — "Generated block".
Удачного майнинга! Но помните, что добыча стим-мощности — это не быстрый заработок, а долгосрочная инвестиция ресурсов в проект.
Спасибо, возможно когда нибудь пригодится информация)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Благодарю
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Собранный steemd для Mac OS https://steemit.com/steem/@mahnunchik/steem-for-mac-os-macos-wallet-and-miner-v0-12-2-binaries
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Вы знаете, поднимал все это дело на виртуалке, (не по Вашему мануалу) и картинки были правильные, но за сутки не произошло ровным счетом ничего и пришлось убить это все потому что рэндер это тоже ресурсоемкое занятие) Есть ли сейчас чтобы дешево и сердито но на винде? и сколько времени уходит на заветное "found a pow"?
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Время — как повезет. Может найти за минуты, может страдать днями. Среднее время нахождения блока периодически сообщается steemd в минутах (estimated time to produce), оно зависит от скорости вычислений (hash rate) и сложности (target). Сейчас, пока не исправят уязвимость в алгоритме POW, сложность большая и обычным способом майнить смыcла нет. До этого у меня блок майнился за пару дней.
Для Виндовс был какой-то форк и где-то была инструкция по его установке — ищите.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit