Пишем майнер на Java. Кодим добытчик криптовалюты Electroneum
В качестве криптовалюты возьмем Electroneum. Это довольно перспективная криптовалюта из семейства Monero. Как заверяют разработчики, она защищена от майнинга на специальном оборудовании, точнее, оборудование будет стоить больше, чем можно получить прибыли. Это дает примерно равные шансы всем майнерам. Так как в качестве основы была использована Monero, многое из написанного будет правдиво и для других криптовалют этого семейства.
Для начала разберемся, что же такое майнинг. По сути это проверка транзакций различных пользователей криптовалют. Нет никакого центрального органа, а подтвердить, что один участник сети не использовал свои деньги дважды или не попытался как-то еще обмануть систему, могут все остальные. За это майнеры получают награду в виде небольшого количества криптоденег. В эту сумму входит награда за создание нового блока и оплата за транзакции, которая взимается с пользователей, проводящих транзакцию, и уже включена в нее.
Создание нового блока представляет собой решение определенной математической задачи. Необходимо найти такой хеш блока, который был бы меньше значения, определяемого сетью. Это значение называется сложность (difficulty). Оно регулируется сетью, чтобы время создания блока было более-менее предсказуемо. Майнер, который первый решит задачу, получает всю награду. Награда за блок на сегодняшний день составляет 11 300,93 ETN, что примерно равно 146,2 доллара.
В блоке не обязательно должны быть транзакции других пользователей, может быть только одна транзакция создания новых денег. Зачем нужно просто раздавать деньги? Во-первых, это привлекает больше участников сети, во-вторых, снижает риск атаки на сеть, так как заработать легально получается проще.
Чтобы стать участником сети Electroneum, необходимо скачать пакет программ с официального сайта. Выбираем direct miner для своей платформы. После скачивания и распаковки нужно синхронизироваться с сетью — скачать все уже сгенерированные блоки. Для разработки и тестирования лучше пользоваться тестовой сетью с пониженной сложностью.
Теперь смело запускаем синхронизацию:
Далее создаем кошелек для начисления заработка:
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Скрытый вирус майнер, как сделать (инструкция)
*все материалы рассказаны чисто в ознакомительных целях
Некоторые не имеют мощных ферм майнинговых, а так хочется заработать криптовалюту. Заработать крипту без нагрузки на ваш комп, ноут, например вирус майнер. Как раз о нём и пойдёт речь.
-2. Далее переходим по ссылке и скачивает файлы: (пароль к архиву 123)
(если у вас windows 10, и не перекидывается файл oxi joiner, то значит windows defender бузит, и его надо выключить на время)
-3. далее заходим в oxi joiner
Кликаем два раза и ставим галочки: скрытый, системный, скрытый
Пишем в строке *параметры командной строки* по такой схеме(без ковычек):
-4. далее нажимаем на шестерёнку и выбераем место и название нашего вируса
Благодарю за понимание и сотрудничество.
Так а чего файлы удалил?
ссука, аж кровь из глаз хлынула!
@moderator, тут мамкин погроммист
в ссылке и есть вирус видимо
e-mail не принимает да?
@moderator призыв к мошонничеству
@moderator, ссылки на посторонние сайты, да и вообще, скользкая тема
@moderator, тут что-то незаконное.
Тебя нужно убивать максимально жестоким и бесчеловечным способом.
Надеюсь вам эта инфа поможет не сдохнуть от голода))
Ответ на пост «Archeage от Mail.ru бесшумно майнит Криптовалюту?»
Вот и я застала Mail.ru за этим неприличным занятием. Сфоткала в спешке, так как при открытии Диспетчера задач сие непристойное действо в срочном порядке прекращается. Не любит он, когда за ним подглядывают!
Может знающие люди подскажут, как без палева отследить, сколько ресурсов он всё-таки потребляет? Просто интересно)
@support.mail, как вы в этот раз открутитесь?
Баянометр решил рассказать о других мошенниках
P.S. Первый пост, не пинайтесь, пожалуйста)
Archeage от Mail.ru бесшумно майнит Криптовалюту?
Итак, ситуация следующая:
Соответственно, назревает вопрос: откуда в файле, скачанном с ваших ресурсов, имеется вирус?
Чтобы все-таки запустить игру нужно или «разрешить» работу CoinMiner‘а, или удалить исполняемый файл (и скачать почти всю игру заново, чтобы она снова заработала), но ошибка со временем снова повторяется.
Обращался в техническую поддержку по этому вопросу, где получил не получил внятного ответа. Диалог вообще закрыли без обсуждения, зато получил «исчерпывающий» и неоднозначный ответ:
К сожалению, высокие настройки безопасности антивирусного ПО могут блокировать или повреждать установочные файлы. Использовать или не использовать наши программы в конечном итоге решать вам.
Процесс создания умного зеркала на raspberry pi.
Что нам потребуется :
-raspberry pi 2-4(в моем случае raspberry pi 4)
-Карта памяти не меньше 8гб
-блок питания 5В
-монитор, чем больше тем лучше (я использовал 24-х дюймовый монитор)
-зеркало гизелла или стекло с наклеенной зеркальной плёнкой
-рамка для зеркала
-hdmi провод
-провод питания для raspberry pi и для монитора
6)Дожидаемся окончания установки операционной системы.
7)После перезагрузки видим установленный Raspbian
Установка MagicMirror:
Здесь все предельно просто.
открываем окно терминала и вводим эту команду
После установки запустится окно умного зеркала,чтобы его свернуть нажимаем Ctrl+M.
Включение русского языка:
1)Переходим по адресу /home/pi/MagicMirror/config и открываем config.js(далее просто конфиг) в текстовом редакторе. В строке language заменяем значение «en» на «ru». Сохраняем файл config.js.
2)Разворачиваем окно MagicMirror и перезапускаем его сочетанием клавиш Ctrl+R. Теперь все модули, кроме комплиментов и новостей, переведены на русский язык.
Настройка погоды:
1)По этой ссылке скачиваем архив городов, распаковываем его и находим свой город.
2)Регистрируемся на Openweathermap.org по этой ссылке и получаем api_key
3)Открываем конфиг, ищем модули «currentweather», «weatherforecast». В поле location указываем ваш город. В поле locationID указываем ID города из скачанного архива. В поле appid указываем api_key, который мы получили на openweathermap.org.
Сохраняем все изменения и перезагружаем MagicMirror. Теперь модуль погоды показывает погоду вашего города
Сохраняем конфиг и перезапускаем приложение MagicMirror.
Настройка новостей :
В конфиге находим модуль «newsfeed». В поле title изменяем название источника новостей, а в поле URL указываем ссылку на источник новостей rss.
Сохраняем конфиг и перезапускаем приложение MagicMirror. Теперь модуль новостей показывает новости из источника, который вы указали.
Модуль комплиментов :
Лично я отключил этот модуль(удалил в конфиге). Кому-то понравится этот модуль, поэтому опишу процесс изменения английских комплиментов на русские.
Переходим по адресу home/pi/MagicMirror /modules/default/compliments/ и Открываем файл compliments.js в текстовом редакторе. Находим строку compliments, ниже указаны комплименты на английском, заменяем на свои и сохраняем файл. Перезапускаем приложение MagicMirror. Теперь текст в модуле комплименты отображается на русском языке.
Добавление других модулей:
1)Переходим по ссылке, выбираем интересующий вас модуль и скачиваем его.
2)скачанный модуль перемещаем по адресу :home/pi/MagicMirror /modules/
3)Изучаем файл Readme и редактииуем конфиг согласно инструкции.
4)Сохраняем все изменения и перезапускаем MagicMirror.
Автозапуск MagicMirror при перезагрузке raspberry pi:
1)Открываем окно терминала и вводим эти команды:
Откроется редактор текста, добавляем следующие строки:
/MagicMirror
DISPLAY=:0 npm start
Сохраняем изменения и закрываем, используя сочетания клавиш CTRL+O и CTRL+X.
Далее поочерёдно вводим эти команды :
Закрываем окно терминала и перезагружаем RaspbianOS. Теперь при перезагрузке MagicMirror запускается автоматически
Отключение сна :
Открываем окно термина и вводим команду:
sudo nano /etc/xdg/lxsession/LXDE-pi/autostart
Выходим, сохраняя изменения и вводим новую команду:
С программной частью закончено, осталось только сделать рамку для зеркало и собрать все в единное устройство.
Спасибо всем кто дочитал этот пост до конца попытался описать все наиболее подробно и понятно.
Как самостоятельно согласовать перепланировку в квартире.
Пару дней назад завершил 11 месячную эпопею по самостоятельному согласованию перепланировки в квартире. Т.к. до этого нигде в интернете не мог найти четкий порядок действий (везде только реклама жуликов-юристов либо написанное сухим юридическим языком, типа «подготовить перечень в соответствии с п.п.231 ст.234 распоряжения №2362387. «), решил запилить пост, чтобы мой опыт не пропал даром. Может, кому-то пригодится. Действие происходило в Красногвардейском районе г.Санкт-Петербурга, но,думаю, порядок действий не сильно отличается регионально.
Итак, исходные данные: Санкт-Петербург, квартира в кирпично-монолитном доме, был перенос нескольких НЕ НЕСУЩИХ стен и перенос нескольких дверей в этих стенах (никакого противозаконного треша-типа сноса несущих стен и перемещения санузлов по квартире).
Началось все с того, что мы купили квартиру с идиотской планировкой. Сразу же решили перенести стены и двери в соответствии с нашими хотелками. Перенесли да и жили себе спокойно, но решили продавать квартиру, расширятся. Соответственно, встал вопрос о согласовании перепланировки (т.к. без этого банк покупателей не одобрит нашу квартиру под ипотеку, а с ипотекой происходит 80% сделок). Сразу оговорюсь, я делал все уже после проведения перепланировки-это не правильно с точки зрения закона. В начале все нужно согласовать,а потом делать.
Естественно, мне, как и любому нормальному человеку, было впадлу самому этим заниматься, я пошел в интернет, нашел там кучу контор занимающихся согласованием и запросил у них оценить мою проблему. Получил я примерно следующее:
От подобных ценников я, называя это литературным языком,сильно огорчился.
(Сейчас,пройдя процедуру,я могу сказать, что половина написанного полная херня, либо раздувание простого действия в суперсложный процесс, типа «Инструкции по использованию туалетной бумаги»)
Т.к. мне особо не горело по времени, решил пройти все этапы согласования самостоятельно, а не кормить жуликоватые юрконторы.
Итак, приступим.Что нужно сделать,чтобы самостоятельно согласовать перепланировку. Все по порядку с хронологией и ценами. Можно действовать прям по списку.
1. Убедиться, что ваша перепланировка может быть узаконена. Перечень того,что не может быть узаконено легко найти в интернете (снос несущих стен, перемещение санузлов-они не должны находиться над жилыми комнатами,снос вентстояков и прочий треш)
2.Получить «Акт осмотра вентканалов»+копия пожарной лицензии конторы,которая этот акт выдаст.
Находите в интернете любую контору по запросу, она должна иметь пожарную лицензию. Стоит 1300 р. за один стояк. (обычно их 2-санузел и кухня),т.е. 2600 р. Приезжает человек,осматривает и выдает этот акт и копию лицензии. (Далее,я буду указывать даты,когда я это сделал-10.02.2018)
3. Заказать в МФЦ выписку из ЕГРН (Услуги Росреестра).
Перед обращением в непосредственно в окно МФЦ. Оплатить там же госпошлину за выписку 750 р. (Обратить внимание на реквизиты-в Питере несколько подразделений Росреестра с похожими названиями). Для заказа нужно знать кадастровый номер квартиры, его можно узнать по телефону 8 800-100-34-34, назвав адрес. Электронную выписку они не принимаю,им нужна заверенная печатью МФЦ.(15.02.2018).
4. Пойти в ПИБ(Проектно-Инвентаризационное Бюро) своего района и заказать проект перепланировки (Проект делает ГУП ГУИОН, можно заказать в любой конторе,имеющий допуск СРО на проектирование. Я решил заказать в государственной конторе-у них и опыт большой,и чтоб при согласовании не докапывались)
-Акт осмотра вентканалов,
-Выписку из ЕГРН (обязательно заверенную печатью МФЦ)
-Деньги на карточке,что бы оплатить проект (наличку не принимают,придется идти в Сбер оплачивать по квитанции)
Стоимость проектирования рассчитывается как-то исходя из площади квартиры, я за 67 м2 заплатил 20 380 р.(27.02.2018)
(01.03.2018 со мной связался проектировщик и приехал в квартиру для обмеров.
16.03.2018 Позвонил проектировщик, сказал т.к. на стенах были розетки-нужно еще проект по электрике.
20.03.2018 Приехал в ПИБ, оплатил проект по электрике 8 450 р.)
05.04.2018 Позвонили из ПИБ, приехал к ним, забрал его.
5. Пойти в МФЦ и подать документы на согласование перепланировки.
-Всех собственников с паспортами (либо натариально заверенную доверку от них)
-Проект в 2 экземплярах (тот,что был результатом шага 4.)
Официальный срок согласования 45 дней.
05.04.2018 подал документы
07.06.2018 получил согласование перепланировки и проект в МФЦ.
6. Отнести проект с отметкой о согласовании в ПИБ и заказать обмерные работы.
(Подразумевается,что между п.5 и П.6 вы как раз и осуществляли работы по проведению перепланировки,даты работ будут указаны в согласовании)
08.06.2018 заказал обмер, заплатил 4 150 р. за это.(зависит от площади квартиры)
21.06.2018 пришли обмерщики,сделали обмер
27.06.2018 отдали обмер в ПИБ.
7. Отнести в МВК района (Межведомственная комиссия района) следующий
пакет документов для получения «Акта о вводе в эксплуатацию»:
-Договор с подрядной организацией на выполнение работ по перепланировке (С копией выписки из реестра СРО.в которой организация состоит)
-Акт скрытых работ,с копией сертификатов на основные материалы (гипсокартон,профили,вата-есть на любом сайте их продающем)
-Договор на вывоз мусора.
Для подготовки этих документов лично мне помогли интернет,знание современных компьютерных программ и цветной принтер. Можно поискать в интернете-там сделают этот комплект документов примерно за 10 000 т.р.
После предоставления документов,от МВК должны приехать приемщики,засвидетельствовать,что все выполнено в соответствии с проектом.
09.07.2018 Отнес в МВК. Начал ждать обмерщиков.
20.08.2018 Позвонил уточнить как дела,где,мать его,обмерщики-куда-то там мои документы затерялись. Вывод-нужно компостировать им мозг.
24.09.2018 Приехали обмерщики,посмотрели,уехали,сказали-акт получите через месяц.
26.11.2018 Получил Акт о вводе в эксплуатацию в МВК. Вывод-нужно компостировать им мозг.
8. Заказать в МФЦ свежую выписку из ЕГРН (Услуги Росреестра),т.к. она должна быть не старше 3 месяцев, а пока идут вышеуказанные процессы,та.что была заказана в самом начале устаревает.Перед обращением в непосредственно в окно МФЦ. Оплатить там же госпошлину за выписку 750 р. Делается 3 дня.
30.11.2018 Заказал выписку.
05.12.2018 Получил выписку.
8.Пойти в ПИБ и заказать «Технический
паспорт» и «Технический план» квартиры.
-Проект с согласованием
-Выписку из ЕГРН не старше 3 месяцев
-Согласие на обработку персональных данных на всех собственников,подписанных СИНЕЙ ручкой (это очень важный момент! Бланки этого согласия дадут в ПИБе в один из визитов)
Заплатить за эти услуги. Рассчитывается от площади. Я заплатил 6250 р.
19.12.2018 Приехали обмерщики от ПИБ,померяли.
20.12.2018 Отдали в ПИБе Техпаспорт (Отнести в жилконтору) и CD диск для Росреестра.
9.Пойти в МФЦ и сдать документы для внесения изменений в Росреестре.
20.12.2018 Сдал документы.
13.01.2019 Получил выписку из ЕГРН с новыми данными.
Итого,что имеем в сухом остатке:
Срок согласования : 11 месяцев (с 10.02.2018 по 13.01.2019),если компостить мозги-можно на 2,5 мес быстрее.
Суммарные затраты: 43 330 если по п.7 сами (53 300 если через компании)
Количество посещений различных мест (МФЦ,ПИБ,МВК): суммарно 15 раз (очереди нигде больше 10 мин не было).
Дальше думайте сами-стоит платить 156 000 т.р. за то,что за вас сходят 15 раз в МФЦ и ПИБы или сделать это самому.
П.С. Предлагающие согласовать за 70 т.р.-не включают туда пошлины.проекты и прочее.
Как я blakecoin майнер делал
Не знаю кому как, а меня прошедший 2017 год шокировал стремительным взлетом биткоина. Сейчас, конечно, ажиотаж уже ушел, а в 17-м году про криптовалюты говорили и писали все кому не лень.
Я видел, что люди пытаются зарабатывать на криптовалютах. Кто как умеет. Кто-то на все сбережения скупал видеокарты и начинал самостоятельно майнить в гараже. Кто-то вкладывался в облачный майнинг. Кто-то пытается организовать свой пул. Кто-то запустил в производство шоколадные биткоины, а кто-то выпускает минеральную воду:
Я тоже стал изучать, что же такое эти самые биткоины. Когда-то я даже начал свое собственное иследование алгоритма SHA256 и написал статью здесь на хабре «Можно ли вычислять биткоины быстрее, проще или легче?». Мои исследования алгоритмов хеширования до сих пор продолжаются и еще и близко не завершены… Может быть когда нибудь напишу про это отдельную статью. А сейчас пока вот это..
Я попробовал запустить bitcoin майнер в FPGA. Я понимал, что время уже ушло, но хотелось все же прикоснуться к технологии. Уже в конце прошлого года я вдруг почему-то вспомнил, что у меня совершенно без дела лежит плата Terasic DE10-Standard с ПЛИС Intel Cyclone V 5CSXFC6D6F31C6 — это тот чип, который со встроенным процессором ARM. Я подумал, что было бы интересно запустить какой нибудь альткоин майнер в этой плате. А что? Инвестировать в оборудование мне уже не надо, оно и так есть. Главное, чтобы плата зарабатывала больше, чем потребляет энергии.
Поиск подходящего альткоина был весьма прост. Я искал готовые проекты для FPGA, которые я смогу адаптировать под свою плату. Таковых оказалось не очень много. На самом деле как я понимаю во всем мире есть всего несколько человек, которые делали FPGA проекты и главное публиковали их в открытом доступе, например, на github.
Таким образом, я взял проект github.com/kramble/FPGA-Blakecoin-Miner и адаптировал его под имеющуюся у меня плату Марсоход3, а так же адаптировал этот проект для DE10-Standard.
Собственно о том, как я адаптировал проект для платы Марсоход3 написано здесь. Для Cyclone V в принципе все то же самое — только ревизия проекта квартуса blake_cv, мои исходники вот.
К моему сожалению в имеющийся у меня Cyclone V помещается только три хэш функции blake.
Чуть-чуть не хватает емкости ПЛИС до четырех хэшеров. Я запускаю проект на частоте 120МГц и за один такт рабочей частоты вычисляется один хэш blake. Значит производительность моего проекта 120*3=360MH/sec. Не очень много честно говоря, однако, как я уже сказал, плата у меня уже была, и возвращаеть ее стоимость мне не нужно… Тут еще Quartus говорит, что Fmax=150MHz. Можно попытаться поднять частоту, но боюсь придется ставить кулер, будет гудеть — ну не на столько мне нужны эти крипты, чтоб еще гул в комнате слушать.
Общая задумка проекта такая: плата имеет микросхему у которой есть и ПЛИС и Dual-ARM:
Когда плата стартует, то из U-BOOT первым делом загружается ПЛИС, затем стартует Linux и в нем программа майнинга cgminer. Я сперва думал, что я смогу устроить виртуальный канал связи между ARM и FPGA, и это на самом деле возможно, но так не получилось. Дело в том, что программа майнера cgminer работает с аппаратными майнерами через USB и использует библиотеку libusb. То есть мне проще подключить ПЛИС к Linux системе через преобразователь USB-COM на FTDI, чем городить городушку соединяя ПЛИС на шину ARMа. Я таким уже как-то занимался и это было не очень просто.
Сейчас мой «майнер» выглядит вот так (на Cyclone V поставил радиатор на термопасте, а то сильно греется):
Сказать по правде основные проблемы у меня как раз возникли не с FPGA проектом, а с cgminer.
1) Какой cgminer брать за основу своей разработки? И связанный с этим вопрос «Куда подключаться, чтобы начать майнить?». А какая связь между этими вопросами? Казалось бы, где тут проблема — бери самый свежий cgminer, какой найдешь. Но позвольте: на github есть 98 форков программы cgminer. Все они чем-то отличаются, какой есть хороший, а какой плохой, какой есть вообще хотя бы рабочий? Вот вам и опенсоурс. Каждый автор чего-то там себе добавлял и исправлял, или ломал… или делал свою монету. Разобраться не просто. Нашел для себя сайт, где на одной странице есть ссылка и на github проект и на github проект для FPGA. То есть эти два проекта видимо как-то могут и должны пересекаться.
2) Поскольку я взял за основу FPGA проект от автора kramble, то на самом деле, конечно, логично было бы взять его патчи, которые он приложил к своему проекту. Но и тут не без проблем. У него есть патчи к программе cgminer-3.1.1 и cgminer-3.4.3. Я решил, что лучше брать ту, что новее 3.4.3, но только потерял с ней время. Похоже автор начал адаптировать для этой версии, но что-то там не довел до конца и эта версия совсем сырая. Пришлось брать 3.1.1 а это кажется вообще старючая версия.
3) Авторы изменяющие программу cgminer в своих форках для своих альткоинов не следят за правильностью комментариев и именованием функций в коде. Зачастую в коде тут и там встречается слово bitcoin, а сам этот форк cgminer-а уже кажется не может считать для биткоина, а может только в альткоин.
4) Тесты. ГДЕ ТЕСТЫ? Я чего-то не понимаю, как можно делать сложный продукт без тестов? Я их не нашел.
Сказать по правде даже начинать что-то делать было не просто. Представьте себе, что нужно запустить некоторый проект в FPGA, но не очень понятно, что он должен делать, как получать данные, какие данные и в каком виде нужно выдавать результат. К этому FPGA проекту должна прилагаться некоторая программа, которую не известно точно где взять, но она должна обнаружить плату майнера, что-то туда посылать (неизвестно что) и что-то из нее получать. В каком формате, какими блоками, как часто — ничего не известно.
На самом деле, изучая патчи cgminer от kramble я примерно представляю себе как оно должно работать.
В файле usbutils.c прописаны устройства, которые могут рассматриваться как аппаратные внешние майнеры на шине USB:
Я в эту структуру добавил описатель своего USB-to-COM преобразователя FTDI-2232H. Теперь, если cgminer обнаружит устройство с VendorId/DeviceId = 0x0403:0x6010, то он попробует работать с этим устройством, как с платой Icarus, хоть она таковой и не является.
Дальше смотрим файл driver-icarus.c и тут есть функция icarus_detect_one:
Смысл такой. Программа передает плате заведомо известное задание на поиск хэша, причем в задании сказано с какого нонсе начинать вычисление и это нонсе немного меньше настоящего GOLDEN nonce. Таким образом, плата начнет считать с указанного места и буквально сразу в считанные доли секунды наткнется на GOLDEN nonce и вернет его. Программа тут же получит этот результат, сравнит его с правильным ответом и сразу становится понятно — это действительно тот HW майнер с которым можно работать или нет.
И вот тут была ужасная проблема — в проекте есть патчи на языке C, есть тестовая программа на питоне и тестбенч для FPGA.
В патчах на C тестовые данные выглядят вот так:
1) патч для cgminer-3.1.1
1) патч для cgminer-3.4.3
И что тут правильно, а что нет? Исходные данные одинаковые, а golden nonce объявлен разным. Парадокс… (заранее скажу, что в патче для cgminer-3.4.3 ошибка — нонсе 0x000187a2 не верный, а сколько времени я на это потратил..)
В проекте есть тестовая программа на питоне, которая читает текстовый файл, извлекает из него данные и передает в плату через последовательный порт… Там тестовые данные вот такие:
0000007057711b0d70d8682bd9eace78d4d1b42f82da7d934fac0db4001124d600000000cfb48fb35e8c6798b32e0f08f1dc3b6819faf768e1b23cc4226b944113334cc45255cc1f1c085340967d6c0e000000800000000000000000000000000000000000000000000000000000000000000000000000000000000080020000
0000007057711b0d70d8682bd9eace78d4d1b42f82da7d934fac0db4001124d6000000008fa40da64f312f0fa4ad43e2075558faf4e6d910020709bb1f79d0fe94e0416f5255cc521c085340df6b6e01000000800000000000000000000000000000000000000000000000000000000000000000000000000000000080020000
0000007095696e4529ae6568e4b2a0057a18e82ccf8d370bf87e358900f8ab5000000000253c6078c7245036a36c8e25fb2c1f99c938aeb8fac0be157c3b2fe34da2fa0952587a471c00fa391d2e5b02000000800000000000000000000000000000000000000000000000000000000000000000000000000000000080020000
000000704445e0446fcf2a84c47ce7305722c76507ba74796eaf39fe0007d44d00000000cac961f63513134a82713b172f45c9b5e5eea25d63e27851fac443081f453de1525886fe1c01741184a5c70e000000800000000000000000000000000000000000000000000000000000000000000000000000000000000080020000
00000070a3ac7627ca52f2b9d9a5607ac8212674e50eb8c6fb1219c80061ccd500000000ed5222b4f77e0d1b434e1e1c70608bc5d8cd9d363a59cbeb890f6cd433a6bd8d5258a0141c00b4e770777200000000800000000000000000000000000000000000000000000000000000000000000000000000000000000080020000
000000706c90b789e84044d5be8b2fac01fafe3933ca3735269671e90043f8d900000000d74578c643ab8e267ab58bf117d61bb71a04960a10af9a649c0060cdb0caaca35258b3f81c00b4e7b1b94201000000800000000000000000000000000000000000000000000000000000000000000000000000000000000080020000
00000070171d2644781cccf873ce3b6e54967afda244c47fc963bb240141b4ad00000000d56c4fbdc326e8f672834c8dbca53a087147fe0996d0c3a908a860e3db0589665258da3d1c016a2a14603a0a000000800000000000000000000000000000000000000000000000000000000000000000000000000000000080020000
00000070d03c78cb0bb0b41a5a2c6ce75402e5be8a705a823928a5640011110400000000028fb80785a6310685f66a4e81e8f38800ea389df7f16cf2ffad16bb98e0c4855258dda01c016a2ae026d404000000800000000000000000000000000000000000000000000000000000000000000000000000000000000080020000
0000007091a7eef446c4cb686aff8908ab5539d03a9ab2e975b9fe5700ed4ca9000000000f83bb385440decc66c10c0657fcd05f94c0bc844ebc744bba25b5bc2a7a557b5258e27c1c016a2a6ce1900a000000800000000000000000000000000000000000000000000000000000000000000000000000000000000080020000
00000070856bd0a3fda5dac9ede45137e0c5648d82e64fbe72477f5300e96aec0000000026ca273dbbd919bdd13ba1fcac2106e1f63b70f1f5f5f068dd1da94491ed0aa45258e51b1c017a7644697709000000800000000000000000000000000000000000000000000000000000000000000000000000000000000080020000
Ну то есть совершенно другие! Потом я уже понял, что это не те даннае, что посылаются в плату, из этих только извлекаются данные, специальным образом конвертируются в задание и отсылаются в плату.
Но все равно, среди этих тестовых данных для программы на питоне НЕТ задания похожего на то, которое описано в программе на C.
Ну хорошо, тогда смотрю тестовую программу-тестбенч на verilog:
Здесь есть предполагаемый пакет данных, который плата должна принять. Но опять этот предполагаемый пакет данных никак не похож на пакет данных в программе на C или на данные для тестовой программы на питоне.
Вот это отсутствие общих тестовых данных для программы на питоне, C и Verilog очень сильно портит картину. Получается, что между компонентами как бы нет общих точек соприкосновения, общих тестов и это печально.
Вообще, в верилог проекте blakecoin майнера было скрыто еще одно форменное издевательство над моим организмом.
Если проводить симуляцию проекта с verilog тестбенчем, то в симуляторе с вот этими тестовыми данными 416’h000007ffffbd9207ffff001e11f35052d5544… замечательно находится и возвращается результат GOLDEN nonce.
Потом проект компилирую для реальной FPGA платы, эти же самые данные подаю из программы на питоне и… плата не находит GOLDEN nonce…
Оказывается, что тестовые данные в verilog тестбенче «немного плохие». Они для низкой сложности, когда в результирующем хэше всего 24 ведущих нуля, а не 32, как требуется.
В файле experimental/LX150-FourPiped/BLAKE_CORE_FOURPIPED.v есть вот такой код
В Verilog симуляторе проверяется не так, как будет будет работать в железе! То есть для реальной FPGA платы будем проверять на 32 бита ведущих нулей, а в симуляции будем проверять только 24 бита. Это просто прелестно. Хочется побить автора.
Я конечно, все это победил. По крайней мере, тестовая программа на питоне выдает бодрые сообщения:
Ладно, что в результате? Сколько намайнил? К сожалению нисколько.
Как только я был уже готов начать майнить, буквально в конце января сложность блейка сильно возросла:
Теперь я мог оставить на сутки плату и она хоть и находила решения, но их не принимал пул — все еще мало ведущих нулей.
Я пробовал переключиться на другую валюту — VCASH. С этой валютой пул хотя бы иногда выдавал мне бодрящие сообщения вроде вот этого:
Но все равно и VCASH пул ничего не начисляет. Печаль-беда.
Пользуясь случаем хотел бы спросить у знающих людей. Вот у меня есть видеокарта Nvidia 1060. Она выдает 1,25GHash/sec на блейкоине и за час два-три раза выдает nonce, который принимает пул (и начисляет копеечку). Я думал, что если моя FPGA плата считает 360MHash/sec, ну то есть примерно в 3 раза хуже, чем видеокарта, то я за два часа получу хотя бы один нонсе принятый пулом. Однако, этого не происходит. Даже за сутки нет ни одной копеечки… Где тут подвох для меня так и осталось загадка…
Сейчас я на досуге пытаюсь понять можно ли как-то оптимизировать имеющийся FPGA проект, скажем задействовать встроенную память или еще что-то. Может быть, если повезет, что-то и придумаю.