Fpga майнер своими руками – ASIC ,

история развития, от CPU до FPGA / Intel corporate blog / Habr


(источник фото)
Ранее нами рассматривались основные принципы, которым следуют при майнинге биткоинов.
В этот раз рассмотрим историю развития вычислительных систем, предназначенных для добычи биткоинов, а также технологические достижения и трудности, которые встретились на этом пути.

CPU: Первое поколение майнеров

Если заглянуть в исходный код майнера биткоинов, то окажется, что он на удивление прост. Основная часть выглядит примерно следующим образом:
while (1)
{
  HDR[kNoncePos]++;
  IF (SHA256(SHA256(HDR)) < (65535 << 208)/ DIFFICULTY)
    return;
}

Вычисление SHA256 выполняется над 512-битными блоками данных и включает в себя 64 раунда шифрования, требующих множества 32-битных сложений, сдвигов и битовых операций. Каждый последующий раунд шифрования зависит от результатов предыдущего, создавая цепочку зависимостей. Хотя выполнение отдельных раундов шифрования не может быть распараллелено, проверка каждого отдельного хэша может выполняться параллельно, что делает вычисления прекрасно поддающимися параллелизации.

Производительность таких майнеров достигает 33 MH/s на процессор (Core i7 990x). Больше добавить особенно нечего.

GPU: Второе поколение майнеров

В октябре 2010 был опубликован код первого open-source OpenCL майнера, после чего тот был быстро адаптирован и оптимизирован стараниями энтузиастов сообщества. Подобные майнеры состояли из реализации bitcoin-протокола на языке вроде Java или Python и алгоритма перебора в виде OpenCL-файла, который надлежало скомпилировать под ISA соответствующего GPU.

Огромное разнообразие OpenCL-реализаций объяснялось попытками выжать из компиляторов всё, на что те были способны, в погоне за улучшением качества кода. Кроме того, часть кода, не относящаяся к OpenCL напрямую, отвечала за вызов OpenCL API с целью перепроверки результатов или управления параметрами GPU в ответ на температурный режим и пользовательские настройки.

Поскольку предполагалось, что подобное оборудование будет работать месяцами, пользователи пускались во все тяжкие, играя с напряжением питания (понижая, чтобы снизить стоимость накладных расходов на майнинг, или повышая вместе с частотой, чтобы увеличить производительность), ядром GPU и такими параметрами кода, как число потоков. Всё ради того, чтобы увеличить пропускную способность в рамках разумной стабильности работы и температуры.

Т.к. добыча биткоинов не требует особой нагрузки на оперативную память или операций с плавающей точкой, большое число критических путей в электрической схеме или узких мест в архитектуре GPU никак себя не проявляют. Однако, с течением времени могла возникать потребность в перенастройке параметров, т.к. системы электропитания и охлаждения со временем деградируют в своих характеристиках.
Типовые GPU от AMD имеют тенденцию показывать большую производительность, чем GPU от NVidia, если речь идет о GH/s на $, отчасти благодаря системе команд, хорошо подходящей для вычислений SHA256, и архитектуре VLIW, которая содержит большее количество ALU, работающих параллельно, пусть и на слегка меньшей частоте. В частности, операции сдвига и битового выбора могут быть реализованы единственной инструкцией AMD ISA.

Встроенная графика, в частности от Intel, уже сейчас имеет лучшие показатели производительности на ватт, но для CPU характерны гораздо более скромные power-бюджеты — 200W, типичные для GPU, совершенно неприемлемы для CPU, который, вообще говоря, еще и не только графикой занят. Кроме того, к одному компьютеру не удастся подключить столько CPU, сколько можно было бы подключить видеокарт (про это дальше). Да и амортизация оборудования не настолько быстра для CPU. Поэтому встроенная графика — это не выбор майнера.

Основной код майнера, написанный на OpenCL, а не ассемблере или в машинных кодах, после компиляции нередко патчился с целью использования инструкций GPU, напрямую не поддерживаемых OpenCL.

Реализация на OpenCL представляет собой один большой блок кода, который в начале выбирает ряд параметров, на основе id потока, а затем выполняет все 64 раунда хэширования в одном развернутом цикле.

A Datacenter In My Garage

Потратив $300-600 на оборудование для майнинга на основе GPU, которое, практически буквально, печатает деньги, и потратив немало времени за настройкой его параметров, следующим шагом закономерно встаёт идея о наращивании масштабов катастрофы вычислительных мощностей.

Купив ещё один такой же GPU и повторив настройки, вы удвоите свою прибыль. На самом деле, если монетки добываются столь быстро и столь же стремительно растут в цене, возможно, имеет смысл купить десять или даже двадцать GPU! Правда, это может привести к катастрофе — из-за группового поведения майнеров, закупившихся видеокартами, до небес подскочит сложность добычи и так же стремительно упадет прибыльность майнинга. К счастью, катастрофы не произошло, благодаря росту курса USD/BTC затраты на покупку видеокарт всё же окупились.

GPU оказались гораздо более доступны для конечных пользователей, чем FPGA. Их использование для майнинга хоть и требует навыков сборки ПК и многочасового чтения форумов, но можно быть полным профаном в параллельном программировании, не говоря об инструментах для работы с FPGA. Однако для GPU характерно несколько ключевых ограничений:
1. GPU не работает сам по себе. Каждый GPU должен быть включен в 8x или 16x PCI-E разъем, которых на материнских платах сравнительно мало.
2. Материнская плата, процессор, жесткий диск и ОЗУ в GPU майнинге практически не используются, но удорожают систему, т.е. увеличивают стоимость майнинга на единицу производительности. У типичного пользователя под рукой есть единственный PC, куда можно установить 1-2 GPU, но не более того.
3. Каждый GPU потребляет 200-300W, что очень быстро превышает возможности блока питания и требует апгрейда.
4. Стандартные корпуса не рассчитаны на охлаждение нескольких GPU. Особенно, если «несколько» — это более двух.
5. Использование многих GPU быстро достигает пределов электроснабжения, охлаждения и уровня шума, допустимых в большинстве жилых районов.
6. Из-за каких-то проблем (вероятно, в программной части) реализации, для работы OpenCL может потребоваться, чтобы к GPU был подключен дисплей. Хотя сама технология подобных требований не выдвигает.
7. Типовой GPU занимает два слота в корпусе ПК, не давая подключить к ПК большое число видеокарт.

Для решения этих проблем появилось следующее решение. Во первых, т.к. майнинг биткоинов толком не использует пропускную способность интерфейса с материнской платой, то PCI-E 1x имеет достаточно пропускной способности, а GPU работает и подключенным в 1х слот. Простой кабель, продаваемый за $8, позволяет подключить 16x GPU в 1х слот. Правда это означает, что видеокарта не может находиться в корпусе ПК, что побудило энтузиастов к созданию стоек, предназначенных исключительно для монтажа GPU. Использование правильной материнской платы, с большим числом дешевых 1x слотов, решило проблему с подключением большого числа GPU. Отказ от привычного корпуса позволил решить проблему отвода тепла более эффективно. А резистор, воткнутый в DVI разъем, успешно имитирует подключение монитора, если таковое потребуется для OpenCL.

Используя такой подход, одна материнская плата, CPU, и RAM может обслуживать 5-6 GPU, тем самым повышая экономическую эффективность затеи.


примеры того, как может выглядеть машина для добычи биткоинов на основе GPU (источник фото)

Некоторые такие системы могут работать стабильно на протяжении нескольких месяцев, но затем начинают проявляться проблемы со стабильностью работы. Причина в том, что GPU потребляют слишком большой ток по линии 12V, перегружая коннектор материнской платы. Решением этой проблемы становится независимый подвод питания к видеокартам, минуя материнскую плату.

После решения проблем с подключением GPU на первый план выходят вопросы надлежащего электроснабжения и охлаждения оборудования. С потреблением одного GPU в районе 200W, удельная мощность такой системы сопоставима или даже превышает показатели дата-центров. Собственно, дата-центры практически никогда и не используются для размещения GPU-майнеров из-за сопутствующих расходов и требований к сертификации оборудования. Также немногие дома способны обеспечить такую электрическую мощность, а различные схемы тарификации электроснабжения могут привести к заоблачным счетам за электричество. По этим причинам на практике удачнее всего майнинг идет на территориях складских помещений, где нет больших проблем с создаваемым шумом и охлаждением, а электричество доступно по промышленным тарифам.


Bitcoin-miner, содержащий 69 GPU (источник фото)
FPGA: Третье поколение майнеров

Июнь 2011 принес общественности первую open-source реализацию биткоин-майнера для FPGA. FPGA хороши как для операций сдвига, так и для битовых операций, составляющих ядро алгоритма майнинга. Интересным испытанием для разработчиков FPGA-майнеров стала разработка такого дизайна, который позволил бы эффективно использовать различные FPGA, как hi-end, так и low-end.

Решение оказалось весьма элегантным – майнер состоит из нескольких экземпляров SHA256-модуля, который параметризуется глубиной развертывания. С полным развертыванием, модуль создает отдельные аппаратные узлы для каждого из 64 раундов хэширования, разделенные регистрами – своего рода конвейер. Такая реализация позволяет достичь производительности 1хэш/такт/модуль. Меньшая глубина развертывания приводит к тому, что конвейер получается короче, и полное вычисление хэша требует нескольких проходов по его ступеням. Если FPGA достаточно велика, то в неё может уместиться несколько таких конвейеров. Выбор между глубиной развертывания и числом копий конвейера есть предмет для оптимизации.

Основной проблемой для FPGA-майнеров стало то, что их энергопотребление гораздо выше, чем для типичных случаев использования FPGA. Это объясняется практически постоянной активностью логических элементов в процессе вычислений. В результате большинство готовых плат с FPGA, таких как, например, обучающие наборы, легко доступные студентам, не могли предоставить ни достаточное питание ни достаточное охлаждение. Причем для hi-end микросхем проблема стояла в разы острее.

В результате появились специализированные платы, которые минимизировали расходы, отказавшись ото всей избыточной периферии (RAM, I/O, и т.д.), и которые конструировались с единственной целью – обеспечить необходимое питание и температурный режим для FPGA. Платы на основе FPGA Spartan XC6SLX150 позволили достигнуть производительности 860MH/s, при частоте 215 MHz, энергопотреблении 39W и стоимости $1060. Проприетарная разработка компании Butterfly Labs (BFL), расположенной в Канзасе, показала похожую производительность 830 MH/s при цене $599. Топовое решение от той же компании на основе FPGA Altera показало производительность 25.2 GH/s при цене $15K (650-750 MH/s на чип).
На настоящий момент BFL была и остается самой успешной коммерческой биткоин-компанией.

К сожалению, FPGA было трудно конкурировать с GPU – последние стоили на ~30% меньше и имели больший потенциал для перепродажи после завершения своего пути как майнера биткоинов. Не помогло и то, что GPU обгоняли FPGA на лестнице техпроцесса, нередко используя более современный и энергоэффективный техпроцесс. Тем не менее, основное преимущество FPGA заключается в почти пятикратном выигрыше энергопотребления, что делает их столь же привлекательными как и GPU, при условии эксплуатации в течение года или двух. В частности, наиболее продвинутые FPGA, например, производимые Intel для Altera по новейшим 22нм и 14нм техпроцессам, оказываются крайне выгодными с точки зрения энергопотребления, но имеют сравнительно высокую цену.


500GH/s майнер от BFL на основе ASIC, в окружении четырёх FPGA-майнеров на 25.2 GH/s. Можно заметить два кабеля электропитания – майнер потребляет ~2700W. (источник фото: James Gibson)

Правление FPGA оказалось кратким, потому как на свет появилось новое поколение аппаратуры, ASIC, дающее выигрыш на порядки и в энергоэффективности и в производительности. Усилия на разработку FPGA не оказались напрасны, т.к. многое, от Verilog описания майнера и до компановки печатных плат было переиспользовано.

О поколении ASIC – четвертом поколении bitcoin-майнеров, шагнувшем в эпоху кремния, делаемого на заказ (Age of Bespoke Silicon) в следующий раз.

habr.com

Обзор FPGA майнера от Butterflylabs

    Попал в руки для изучения один интересный девайс, представили его как BFL The Single, привезли его с лондонской Bitcoin конференции камрады из 50BTC.com и отдали на неделю потестировать. Представляет он из себя FPGA майнер для майнинга Bitcoin, который производится Butterflylabs в виде небольшого устройства кубической формы, который по USB подключается к компьютеру.

    В отличие от майнинга на видеокартах, майнинг на FPGA вычислителях значительно более энергоэффективен, а следствием малого потребления электроэнергии является и уменьшение тепловыделения и шума систем охлаждения. Также не возникает проблем с недостатком PCI-E слотов на материнских платах, практически все FPGA майнеры подключаются по USB и могут работать через USB хабы. То есть достаточно одного слабого компьютера для организации даже очень мощной фермы, если в качестве числомолотилок использовать FPGA устройства. Однако есть один, но очень весомый минус — платы на высокопроизводительных программируемых матрицах имеют довольно высокую себестоимость, то есть мощные биткоин майнеры на FPGA не могут быть дешевыми.

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

 

 

    Заявлено, что потребляет устройство 80 ватт под нагрузкой. С передней стороны майнера находится только красный светодиод, который сигнализирует о наличии питания, на верхней крышке находится решетка , через которую вентилятор выбрасывает воздух за пределы корпуса. С задней стороны присутствует USB разъем и разъем питания. На фотографии хорошо видно, что разъем питания на плате не совпадает с отверстием в корпусе, и его явно механически расширяли, причем не самым аккуратным способом:

 

 

    Чуть позже этому факту будет найдено объяснение, как и некоторым другим недочетам. Разбирается корпус достаточно просто, достаточно открутить по два винта с боковых сторон и ослабить винты на верхней крышке, проходящие через вентилятор.

 

 

    Вентилятор никакой маркировки не имеет, поэтому определить его производителя проблематично. Провод от тахометра у вентилятора отсутствует, из него выходят только 2 провода питания, хотя на плате распаян 3-pin разъем для вентилятора.

 

 

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

    На лицевой стороне платы находятся 3 радиатора — два небольших на элементах питания и один большой, охлаждающий FPGA чипы. При этом стоит отметить, что установленный радиатор перекрывает одно из монтажных отверстий в плате, и 1 из 4 винтов, которые проходят через вентилятор и скрепляют корпус, короче других и заканчивается пластиковой заглушкой. То есть не несет по сути никакого функционала, что опять попадает в копилку наблюдений о странных несоответствиях.

 

 

    Термоинтерфейс между основным радиатором и чипами по цвету и консистенции очень напоминает Arctic Silver mx-2. Сам радиатор состоит из алюминиевого основания, которое имеет оребрение, и тепловых трубок, которые проходят через центр основания и заканчиваются более развитым радиатором из уже медных ребер.

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

 

 

    На самой плате присутствуют маркировки: «BUTTERFLYLABS BitFORCE — 2.0 Rev: A» и «SY-09-12«. Вот вам и ответ, почему немного не совпадают элементы с монтажными отверстиями в корпусе, а радиатор мешает четвертому винту крепления: в корпус от The Single ребята из BFL посадили плату BitFORCE, которая предназначалась для Mini Rig! Выдавать такая плата должна 1320 MH/s или 1500 MH/s в зависимости от прошивки, вместо 800-896 MH/s, свойственных синглу.

 

 

    Несмотря на то, что маркировки «NABA932092» и «3NDHA1JOA» не гуглятся совершенно, по всем признакам это Altera Arria II EP2AGX260, на плате их установлено сразу 2 штуки. Судя по незатертому участку памяти с (с) Samsung, эти чипы раньше стояли в другом оборудовании, например в 3G базовых станциях Samsung. Да и изучая цены на эти чипы и сравнивая их с ценой майнера, становится очевидно, что новые чипы стоять там не могут.

 

 

    Хорошенько прогрев радиатор удалось вращающими движениями снять его с цепей питания. Под ним оказались мосфеты производства Infineon: BSC030N03MS и BSC080N03MS.

 

 

    На плате установлен 32bit RISC микроконтроллер Atmel 32uc3a1128-u в 128 KByte версии, за работу USB отвечает микросхема FTDI FT232HQ.

 

 

    В нижней части платы присутствуют несколько портов: X-LINK, для него используется SATA разъем, разъем питания на 12V и JTAG. X-LINK планируется использовать вместо USB в Mini Rig для облегчения замены плат в шасси. Для сравнения справа приведено фото настоящего BFL The Single, на нем разъем X-LINK отсутствует.

    При включении питания и подключении к компьютеру USB шнуром девайс в Windows 7 автоматически нашелся, никаких драйверов ставить не пришлось. CGminer сам увидел и подхватил подключенное BFL устройство, никаких шаманств с настройкой не понадобилось. Пробовал с помощью EasyMiner установить прошивку на 1500 MH/s, встала она без проблем, но изредка при майнинге начали проскакивать «Hardware error», поэтому откатился назад на прошивку 1320 MH/s.

 

    Скачать Easyminer и сами прошивки можно с этой страницы.

    Бонус фото: внутренности Mini Rig, для которого собственно предназначается плата BitFORCE 2 и фото бабушки на производстве синглов, после публикации этого фото в сети у Butterflylabs появилась прозвище «БабушкаЛабс» =)

 

 

    Выражаю благодарность пулу 50BTC.com за предоставленный на тестирование майнер.

radiolodka.ru

Майнер с алгоритмом Blake

Майнер с алгоритмом Blake

Stanislav V. просил реализацию алгоритма BLAKE для FPGA — она есть у меня.
Конечно, делал я не все сам, а использовал и адаптировал для платы Марсоход3 уже готовый проект https://github.com/kramble/FPGA-Blakecoin-Miner

Достаточно подробное описание алгоритма SHA-3/BLAKE показано вот в этом видео

Несмотря на то, что у меня был готовый проект от kramble, адаптация под нашу конкретную плату была не очень простым делом. В чем же сложность? Вот:

  1. У меня нет плат, для которых был сделан проект изначально. Я не могу с уверенность сказать, что исходный проект, который я собираюсь адаптировать для моей платы работает без ошибок. Нельзя его сразу взять и попробовать. Я должен сперва адаптировать, внести изменения и в процессе не добавить новых ошибок, потом пробовать и надеяться, что как-то заработает.
  2. Исходный проект реализован для плат с несколькими чипами FPGA — это довольно сильно усложняет и без того сложный проект.
  3. Исходный проект был для чипов Xilinx, у меня же Altera/Intel.
  4. Нужна программа для майнинга — cgminer. В проекте от kramble вроде бы есть патчи для cgminer-3.1.1 и cgminer-3.4.3 — обе версии достаточно старые да и патчи выглядят не убедительно. Как в итоге заставить cgminer работать именно с моей платой?
  5. Куда подключаться и что майнить?

В общем, вопросов больше, чем ответов.
Тем не менее, я сделал это. Вы можете взять готовый проект здесь: https://github.com/marsohod4you/blake-miner
После git clone вы получите папку в которой будет проект FPGA, папка с тестовыми скриптами на питоне и модифицированный cgminer.

Проект FPGA открывать нужно с помощью Intel Quartus Prime v17.0. Для платы Марсоход3 убедитесь, что выбрана ревизия проекта blake_max10. Компилируйте его:

В проекте установлен verilog параметр LOCAL_MINERS=1. Это число определяет сколько вычислителей мы собираемся впихнуть в FPGA. В мою MAX10 платы Марсоход3 с 50 тысячами логических элементов помещается только один майнер и занимает он 35,8 тысяч логических элементов. Я пробовал этот же проект в плате DE10-Standard с Cyclone V. Там там мне удалось вместить 3 майнера в FPGA.

Количество майнеров, втиснутое в FPGA напрямую определяет его производительность. Смысл майнинга заключается в следующем: нужно постоянно вычислять хэш блока в котором есть 32х битное переменное число nonce. Изменил nonce — вычислил хэш. В общем случае число вычислений хэша — это 2^32 = 4294967296. Цель перебора — если повезет, то получить красивый хэш с большим количеством ведущих нулей. Поэтому понятно, что если в ПЛИС будет, например, два локальных майнера, то задачу можно поделить пополам: первый майнер перебирает нонсе от 0 до 0x7FFFFFFF, а второй от 0x80000000 и до конца 0xFFFFFFFF. Ну это не наш случай — в Марсоход3 помещается только один майнер.

Есть еще одна проблема — тактовая частота. Несмотря на то, что компилятор Quartus показывает Fmax около 90МГц, невозможно запустить майнер даже на 75МГц — очень сильно разогревается чип — боюсь спалить его. Нужно активное охлаждение. Нужно сказать, что вообще чипы MAX10 абсолютно не подходят для майнинга, так как в них встроен регулятор питания ПЛИС. Но, тем не менее, на 50МГц работает.

Итак, 50МГц. Это значит, что производительность моего майнера на плате Марсоход3 всего 50Мегахэшей blake в секунду. Каждый такт рабочей частоты выдается результат по новому хэшу. Можно сравнить с видеокартой — моя NVidia GTX1050 на ноутбуке выдает на блейке примерно 1,25ГХэша, то есть в 25 раз больше..

Тем не менее, если сравнить FPGA майнер с вычислением с помощью процессора, хоть даже какого-то Xeon или Core-i7, я думаю тут FPGA майнер даже на 50МГц скорее всего обгоняет процессор (в одном потоке точно).

Мой FPGA проект отличается от исходного следующим:

  • выбросил поддержку slave чипов FPGA, сейчас поддерживается только один чип
  • убрал Xilinx зависимые части, в частности PLL и перезагрузку PLL. В оригинальном проекте частота PLL могла быть запрограммирована извне. Это сделано для автоматической регулировки — если число аппаратных ошибок росло вследствие перегрева, то программа на лету должна была снизить тактовую частоту проекта. Я это, извините, выбросил. Практически майнить я не собираюсь, это только исследовательский проект.
  • добавил Altera PLL
  • изменил индикацию активности платы, все отображаю на имеющиеся у меня 8 светодиодов платы Марсоход3

В проект cgminer так же внесены значительные изменения. В основном они касаются обнаружения платы, программирования ее нужными параметрами (скорость обмена, размер буферов, таймауты).

Проверить работоспособность платы можно питоновскими скриптами. Питоновский скрипт testblakeminer.py из папки blake-miner\PyTest\ считывает «эталонные задачи» из текстового файла test_data.txt. Там примерно вот такие строки:

0000007057711b0d70d8682bd9eace78d4d1b42f82da7d934fac0db4001124d600000000cfb48fb35e8c6798b32e0f08f1dc3b6819faf768e1b23cc4226b944113334cc45255cc1f1c085340967d6c0e000000800000000000000000000000000000000000000000000000000000000000000000000000000000000080020000

Внимание! это не та строка, которая посылается в майнер! Эта строка вероятно похожа на ту, которую cgminer получает в качестве задания (но это не точно). Строка преобразуется, разворачивается с конца в начало. В плату уже посылается вот такое:

000007ff0e64dc764053081c1fcc5552c44c33134e94e7889601c1de46f746e751d100c832a569ef69ab9f4736b9db3e3e918f62

Первое слово 0х000007FF для моей платы вообще ничего не значит. В принципе это управляющее слово, которое может задавать частоту PLL или другие параметры. Второе слово 0х0e6c7d96 задает начальное нонсе с которого начинать считать хэш. Поскольку это тестовые данные, то здесь сразу передается «нужный и правильный нонсе» для начала вычисления. Плата начинает считать с этого 0х0e6c7d96 и тут же понимает, что это правильный nonce и выдает его в качестве результата назад в тестовую программу. Передача идет по последовательному порту на скорости 115200.

Вот результат исполнения тестовой программы на python:

Тестовая программа дает 10 заданий и получает 10 правильных ответов.

Пробовать cgminer проще всего из Linux Ubuntu.
Чтобы скомпилировать проект зайдите в папку cgminer и запустите:
#./configure —enable-icarus —without-curses
#make

Перед запуском майнера нужно выключить драйвер ядра FTDI:
#sudo rmmod ftdi_sio

Для майнинга нужно определиться с пулом и с монетой, которую хотите майнить. Для блейка как я понимаю есть два варианта:

  • blakecoin merged mining;
  • vcash.

Чтобы майнить blakecoin нужно зайти на сайт пула http://eu3.blakecoin.com/ и зарегистрироваться там. Создать так называеые «воркеры» — worker.

Потом запускать cgminer с параметрами своего воркера:
#./cgminer -o stratum+tcp://eu3.blakecoin.com:3334 -u nckma.worker1 -p worker-pwd —debug —hotplug 0

Второй вариант — это майнинг валюты VCASH, она использует тот же алгоритм Blake.
Нужно установить себе программу кошелька VCASH и создать кошелек. Его адрес будет выглядеть примерно вот так: VwM1AMGtGN4rTPGDBxTHpk8gQzFMuryAWp

Теперь можно запускать майнер в командной строке Linux:
#./cgminer -o stratum+tcp://pool.vchain.info:3032 -u VwM1AMGtGN4rTPGDBxTHpk8gQzFMuryAWp -p pwd —debug —hotplug 0

Пул для криптовалюты VCASH шорош тем, что у него есть разные TCP порты для майнеров разной производительности.
Если для криптовалюты blakecoin вы можете запустить майнер на неделю и ниразу не увидите никакого позитивного сообщения от cgminer — сложность алгоритма высока, очень мала вероятность, что вам выпадет счастливый билет.

В случае пула pool.vchain.info вы сразу говорите, что у вас слабый майнер и подключаете его к порту 3032. Это значит, что пул будет принимать ваши решения, даже когда они «слабы», то есть мало ведущих нулей в решении. По крайней мере вы можете увидеть, что пул принял ваш труд. Вот я сделал скриншот во время майнинга VCASH:

Здесь хотя бы я вижу SUCCESS/ACCEPTED и сообщение yay!!!…

Но даже и при таком радостном сообщении yay! не расчитывайте, что удастся что-то в действительности намайнить. Решение то принято пулом, но оно не достаточное для начисления вам монеток, все еще мало ведущих нулей в хэше решения.

Хочу сказать, что дело майнинга FPGA на блейке в настоящее время абсолютно бесперспективное, так как сложность алгоритма сильно выросла буквально в конце января, вот график для blakecoin:

Еще 15го января можно было надеяться на результат, сложность алгоритма была не велика, требовалось найти красивый хэш с 31м ведущим нулем. Но после 28го все изменилось кардинально. Сейчас уже сложность около 34х ведущих нулей. Думаю это связано с тем, что вероятно появились ASIC майнеры для блейка.

Для VCASH ситуация аналогична.. ASIC майнеры вытесняют майнеров с FPGA и видеокартами..

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

Чтобы понять как именно FPGA вычисляет хэш можно использовать симуляцию Verilog проекта в icarus verilog или в ModelSim. Возможно я как нибудь напишу про это. Так же не раскрытой осталась тема внутреннего устройства программы cgminer. Возможно об этом в напишу в другой раз.

 

Добавить комментарий

marsohod.org

Размышления о майнинге криптовалют на FPGA

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

По данным сайта http://whattomine.com сейчас используется два типа майнинга — ASIC и GPU. GPU — это майнинг на видеокартах. Из за своей универсальности поддерживается большое количество алгоритмов (Ethash,Groestl,X11Gost и т.д.). Алгоритмы довольно разные, по разному «ложатся» в код видеокарты и соответственно дают различную производительность. Быстрее всего работают односложные алгоритмы (Blake и т.п. ). Хуже — пакетные (X11Gost и т.п.) Алгоритм Ethash требователен к размеру памяти (болле 1 ГБ) и ее скорости. Поэтому ожидать повышения скорости по алгоритму Ethash следует от производителей в первую очередь ОЗУ, а затем и самих видеокарт (AMD , NVIDA) Есть попытки энтузиастов сделать на существующих графических чипах специализированных устройств для алгоритма Ethash, но, на мой взгляд, они мало перспективны по нескольким причинам. Сама такая разработка потребует затрат времени и средств с неизвестным заранее результатом. С течением времени может измениться ситуация на рынке (цена на валюту, переход на POS, выход новых чипов, и т.д.).

ASIC-mining — это майнинг на специализированных чипах, реализующих какой-то конкретный алгоритм хеширования. В оличии от видеокарт, алгоритмов гораздо меньше (SHA-256,Scrypt,X11,Quark,Qubit), но гораздо выше производительность. В частности, по SHA-256 — примерно на четыре порядка.
В качестве примера такого оборудования — Antminer S9, вышедший на рынок около года назад. Чипы выполнены по технологии 16нм, что очень близко к технологическому пределу на настоящий момент.

Как заявляют производители этого майнера, ожидать значительного роста производительности в ближайшее время не стоит, новые чипы могут быть быстрее не более чем в два раза: https://bits.media/news/bitmain-nachinaet-proizvodstvo-novogo-pokoleniya-maynerov-antminer-s9/.

К нашему огромному сожалению, сейчас не представлено FPGA-майнера. Он исчез из майнинга около пяти лет назад, так-как уступил в производительности видеокартам. Для количественной оценки разницы можно взять какой-то конкретный алгоритм, например Blake-256: 
https://bitcointalk.org/index.php?topic=306894.0

В таблице производительности указаны четыре разные FPGA-платы, но все они реализованы на одном, двух или четырех чипах — Spartan-6 LX150. Таким образом, средняя производительность одного чипа около 350-400MH/s. Цены на FPGA и видеокарты можно посмотреть в интернете, и по нашим оценкам
FPGA уступает видеокартам по соотношению цена/производительность где-то в два раза.

Конечно, по другим алгоритмам это соотношение может быть другим, но вряд-ли возможно получить на FPGA значительного превосходства, в лучшем случае — паритет.

И конечно- же всегда нужно «держать руку на пульсе» — ситуация может измениться.

marsohod.org

Обновлено: 12.07.2019 — 03:34

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *