Bitcoin Forum
May 24, 2024, 06:13:57 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 »
  Print  
Author Topic: мои форки cgminer и bfgminer для bitfury ASIC  (Read 53276 times)
needbmw (OP)
Legendary
*
Offline Offline

Activity: 1302
Merit: 1008



View Profile
September 07, 2013, 03:13:31 PM
Last edit: September 24, 2013, 05:11:27 AM by needbmw
 #1

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

https://github.com/needbmw/cgminer

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

UPD
сдернул форк bfgminer у Бальтазара

https://github.com/needbmw/bfgminer

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

NO PSAKING!
growersun
Member
**
Offline Offline

Activity: 67
Merit: 10


View Profile
September 07, 2013, 03:17:19 PM
 #2

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

https://github.com/needbmw/cgminer

Пока исправляю хардкоды, в планах нормальное API со статистикой по каждому чипу, гибкое мультиплексирование и другие фичи.
К сожалению, времени на код сильно не хватает, если кто серьезно готов присоединиться к этой работе - могу даже предоставить небольшую железку для отладки (во временное пользование).
Планируется полная совместимость с майнерами от метабанка, соответственно нужны будут и желающие протестировать форк на этом майнере.
на самопалах уже пашед? если да то пойду качать)
needbmw (OP)
Legendary
*
Offline Offline

Activity: 1302
Merit: 1008



View Profile
September 07, 2013, 03:19:28 PM
 #3

на самопалах уже пашед? если да то пойду качать)
смотря что за самопалы  Grin
если просто цепочка без мультиплексирования, нужно проверить значения в libbitfury.h

#define BITFURY_MAXCHIPS 256
#define BITFURY_MAXBANKS 1
#define BITFURY_BANKCHIPS 60

и выбрать по вкусу

#define BITFURY_ENABLE_SHORT_STAT 1
#define BITFURY_ENABLE_LONG_STAT 1

при одной цепочке без мультиплексоров важно указать BITFURY_MAXBANKS 1 иначе найдет кучу несуществующих чипов

NO PSAKING!
needbmw (OP)
Legendary
*
Offline Offline

Activity: 1302
Merit: 1008



View Profile
September 07, 2013, 05:13:26 PM
 #4

Сделал статистику через API. Выглядит примерно так:

php api-example.php devs
Code:
    [STATUS] => Array
        (
            [STATUS] => S
            [When] => 1378573692
            [Code] => 9
            [Msg] => 1 ASC(s) -
            [Description] => cgminer 3.3.1
        )

    [ASC0] => Array
        (
            [ASC] => 0
            [Name] => BITFURY
            [ID] => 0
            [Enabled] => Y
            [Status] => Alive
            [Temperature] => 0.00
            [MHS av] => 100744.44
            [MHS 5s] => 100440.94
            [Accepted] => 449
            [Rejected] => 15
            [Hardware Errors] => 0
            [Utility] => 62.90
            [Last Share Pool] => 0
            [Last Share Time] => 1378573688
            [Total MH] => 43147241.4456
            [Diff1 Work] => 10052
            [Difficulty Accepted] => 11498.00000000
            [Difficulty Rejected] => 30.00000000
            [Last Share Difficulty] => 256.00000000
            [Last Valid Work] => 1378573692
        )

)

php api-example.php stats
Code:
    [STATS0] => Array
        (
            [STATS] => 0
            [ID] => BITFURY0
            [Elapsed] => 515
            [Calls] => 0
            [Wait] => 0.000000
            [Max] => 0.000000
            [Min] => 99999999.000000
            [chip_n] => 40
            [clock_bits0] => 54
            [clock_bits1] => 54
            [clock_bits2] => 54
            [clock_bits3] => 54
            [clock_bits4] => 54
            [clock_bits5] => 54
            [clock_bits6] => 54
            [clock_bits7] => 54
            [clock_bits8] => 54
            [clock_bits9] => 54
            [clock_bits10] => 54
            [clock_bits11] => 54
            [clock_bits12] => 54
            [clock_bits13] => 54
            [clock_bits14] => 54
            [clock_bits15] => 54
            [clock_bits16] => 54
            [clock_bits17] => 54
            [clock_bits18] => 54
            [clock_bits19] => 54
            [clock_bits20] => 54
            [clock_bits21] => 54
            [clock_bits22] => 54
            [clock_bits23] => 54
            [clock_bits24] => 54
            [clock_bits25] => 54
            [clock_bits26] => 54
            [clock_bits27] => 54
            [clock_bits28] => 54
            [clock_bits29] => 54
            [clock_bits30] => 54
            [clock_bits31] => 54
            [clock_bits32] => 54
            [clock_bits33] => 54
            [clock_bits34] => 54
            [clock_bits35] => 54
            [clock_bits36] => 54
            [clock_bits37] => 54
            [clock_bits38] => 54
            [clock_bits39] => 54
            [match_work_count0] => 244
            [match_work_count1] => 281
            [match_work_count2] => 272
            [match_work_count3] => 283
            [match_work_count4] => 268
            [match_work_count5] => 269
            [match_work_count6] => 270
            [match_work_count7] => 309
            [match_work_count8] => 248
            [match_work_count9] => 258
            [match_work_count10] => 296
            [match_work_count11] => 309
            [match_work_count12] => 308
            [match_work_count13] => 350
            [match_work_count14] => 304
            [match_work_count15] => 338
            [match_work_count16] => 324
            [match_work_count17] => 330
            [match_work_count18] => 326
            [match_work_count19] => 280
            [match_work_count20] => 324
            [match_work_count21] => 281
            [match_work_count22] => 297
            [match_work_count23] => 326
            [match_work_count24] => 344
            [match_work_count25] => 342
            [match_work_count26] => 340
            [match_work_count27] => 303
            [match_work_count28] => 314
            [match_work_count29] => 345
            [match_work_count30] => 325
            [match_work_count31] => 302
            [match_work_count32] => 363
            [match_work_count33] => 278
            [match_work_count34] => 307
            [match_work_count35] => 340
            [match_work_count36] => 336
            [match_work_count37] => 272
            [match_work_count38] => 190
            [match_work_count39] => 303
            [strange_count0] => 53
            [strange_count1] => 31
            [strange_count2] => 15
            [strange_count3] => 15
            [strange_count4] => 30
            [strange_count5] => 15
            [strange_count6] => 18
            [strange_count7] => 18
            [strange_count8] => 16
            [strange_count9] => 40
            [strange_count10] => 15
            [strange_count11] => 31
            [strange_count12] => 15
            [strange_count13] => 29
            [strange_count14] => 15
            [strange_count15] => 18
            [strange_count16] => 17
            [strange_count17] => 16
            [strange_count18] => 20
            [strange_count19] => 15
            [strange_count20] => 38
            [strange_count21] => 22
            [strange_count22] => 61
            [strange_count23] => 15
            [strange_count24] => 71
            [strange_count25] => 61
            [strange_count26] => 30
            [strange_count27] => 16
            [strange_count28] => 31
            [strange_count29] => 71
            [strange_count30] => 60
            [strange_count31] => 30
            [strange_count32] => 16
            [strange_count33] => 80
            [strange_count34] => 64
            [strange_count35] => 48
            [strange_count36] => 66
            [strange_count37] => 15
            [strange_count38] => 91
            [strange_count39] => 25
            [ghash0] => 1.937548
            [ghash1] => 2.099010
            [ghash2] => 1.872963
            [ghash3] => 2.099010
            [ghash4] => 1.905256
            [ghash5] => 2.018279
            [ghash6] => 1.872963
            [ghash7] => 2.212034
            [ghash8] => 1.727647
            [ghash9] => 1.905256
            [ghash10] => 2.228180
            [ghash11] => 2.454227
            [ghash12] => 2.438081
            [ghash13] => 2.696421
            [ghash14] => 2.470374
            [ghash15] => 2.518812
            [ghash16] => 2.454227
            [ghash17] => 2.341204
            [ghash18] => 2.438081
            [ghash19] => 1.824524
            [ghash20] => 2.373496
            [ghash21] => 2.066718
            [ghash22] => 2.147449
            [ghash23] => 2.696421
            [ghash24] => 2.405789
            [ghash25] => 2.615690
            [ghash26] => 2.357350
            [ghash27] => 2.292765
            [ghash28] => 2.405789
            [ghash29] => 2.583397
            [ghash30] => 2.405789
            [ghash31] => 2.373496
            [ghash32] => 2.664129
            [ghash33] => 2.018279
            [ghash34] => 2.244326
            [ghash35] => 2.906322
            [ghash36] => 2.712567
            [ghash37] => 1.792232
            [ghash38] => 1.485453
            [ghash39] => 2.357350
        )
[/code]

NO PSAKING!
Balthazar
Legendary
*
Offline Offline

Activity: 3108
Merit: 1358



View Profile
September 07, 2013, 05:14:23 PM
 #5

Первым делом перенести бы все эти изменения на BFGMiner... А то cgminer как-то кривоват сам по себе, например соединения закрывать "забывает".
needbmw (OP)
Legendary
*
Offline Offline

Activity: 1302
Merit: 1008



View Profile
September 07, 2013, 05:15:27 PM
 #6

Первым делом перенести бы все эти изменения на BFGMiner )
Займешься? Железку - дам  Cool

NO PSAKING!
Balthazar
Legendary
*
Offline Offline

Activity: 3108
Merit: 1358



View Profile
September 07, 2013, 05:16:46 PM
 #7

Без проблем, по мере возможностей... В плане времени, его не очень много.
Subw
Hero Member
*****
Offline Offline

Activity: 672
Merit: 500


View Profile
September 07, 2013, 05:37:45 PM
 #8

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

https://github.com/needbmw/cgminer

Пока исправляю хардкоды, в планах нормальное API со статистикой по каждому чипу, гибкое мультиплексирование и другие фичи.
К сожалению, времени на код сильно не хватает, если кто серьезно готов присоединиться к этой работе - могу даже предоставить небольшую железку для отладки (во временное пользование).
Планируется полная совместимость с майнерами от метабанка, соответственно нужны будут и желающие протестировать форк на этом майнере.
занялся бы с 16 числа, если железку даешь не во временное пользование.
опыт 10+ лет, резюме могу скинуть.
invader
Sr. Member
****
Offline Offline

Activity: 266
Merit: 250



View Profile
September 07, 2013, 07:09:24 PM
 #9

Как только мне в руки попадут чипы, сделаю согласователь уровней spi, распаяю их (макетки уже есть) - присоединюсь к допиливанию кода.
Konstantins
Newbie
*
Offline Offline

Activity: 8
Merit: 0


View Profile
September 08, 2013, 06:52:02 AM
 #10

готов присоедениться, подробно в личке.
limpbrains
Newbie
*
Offline Offline

Activity: 58
Merit: 0


View Profile
September 08, 2013, 07:43:06 AM
 #11

Привет.
API это здорово, теперь можно собирать статистику по чипам.
Мне кажется некорректным использование сквозной нумерации чипов.
Лучше привязывать идентификаторы к номеру платы и номеру чипа на ней.

Например такая ситуация.
Запустили cgminer, собираем статистику по чипам.
Потом умер 8й чип на второй плате и не определяется при старте.
Нумерация чипов начиная с 15го сместилась на единичку.
Теперь накопленная статистика не соответствует действительности.

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

Еще плюс этого метода, что чипы можно будет легко находить. попробуй найди чип #35 который дает низкий хэшрейт, если пара чипов до него не работает.
needbmw (OP)
Legendary
*
Offline Offline

Activity: 1302
Merit: 1008



View Profile
September 08, 2013, 07:51:55 AM
Last edit: September 08, 2013, 08:06:27 AM by needbmw
 #12

Лучше привязывать идентификаторы к номеру платы и номеру чипа на ней.
это сделаем, просто у меня сейчас все цепочки без мультиплексирования, поэтому сквозная нумерация.
как сделаю цепочку с мультиплексорами - будут и "слоты".

Например такая ситуация.
Запустили cgminer, собираем статистику по чипам.
Потом умер 8й чип на второй плате и не определяется при старте.
Нумерация чипов начиная с 15го сместилась на единичку.
Теперь накопленная статистика не соответствует действительности.
согласен, опять же надо сначала сделать железо со слотами

сделал пока в виде
Code:
            
            [chip_n] => 40
            [clock_bits_0_0] => 54
            [clock_bits_0_1] => 54
            [clock_bits_0_2] => 54
            [clock_bits_0_3] => 54
            [clock_bits_0_4] => 54
            [clock_bits_0_5] => 54
            [clock_bits_0_6] => 54
            [clock_bits_0_7] => 54
            [clock_bits_0_8] => 54
            ...

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

NO PSAKING!
ProtonEvil
Sr. Member
****
Offline Offline

Activity: 285
Merit: 250


View Profile
September 08, 2013, 09:19:54 AM
Last edit: September 08, 2013, 09:30:58 AM by ProtonEvil
 #13

у кого есть метабанковский майнер попробуйте, должно заработать

Я готов, но как? Просто клонировать, собрать и запустить? Надо что-то менять, настраивать?
needbmw (OP)
Legendary
*
Offline Offline

Activity: 1302
Merit: 1008



View Profile
September 08, 2013, 09:33:02 AM
 #14

Я готов, но как? Просто клонировать, собрать и запустить? Надо что-то настраивать?
клонировать, поменять в libbitfury.h константы на параметры майнера метабанка:

#define BITFURY_MAXCHIPS 256
#define BITFURY_MAXBANKS 32
#define BITFURY_BANKCHIPS 8

и оставить или закомментировать (по вкусу)

#define BITFURY_ENABLE_SHORT_STAT 1
#define BITFURY_ENABLE_LONG_STAT 1
(если оставить, cgminer будет периодически выплевывать short/long статистику еще и в вывод)

дальше все как обычно

./autogen.sh --enable-bitfury
make

майнер запускаем с доп. ключами --api-listen --api-port 4028 --api-network

чтобы смотреть статистику по API я использую php-скрипт api-example.php (там же в исходниках лежит)

вызывается:
php api-example.php devs
php api-example.php stats
и т.д.

(если php не установлен на распи: sudo apt-get install php5)

NO PSAKING!
ProtonEvil
Sr. Member
****
Offline Offline

Activity: 285
Merit: 250


View Profile
September 08, 2013, 09:55:22 AM
 #15

Спс, щас попробую.
Кстати, натравил майнера на элигиус, как ты просил. Майнит почти час.
Но есть проблема: как только переключаюсь на элигиус, нагрузка под 100%, смотрю top - виноват cgminer. Если переключаюсь на др. пул, сразу становиться все нормально.
Пока тестирую: 1LZJNgDHSFutzQcsUbW2tU3ehxEK77xP52

ЗЫ. Скорость майнера на этом пуле сразу падает на ~15Гх (в статистике)
needbmw (OP)
Legendary
*
Offline Offline

Activity: 1302
Merit: 1008



View Profile
September 08, 2013, 10:10:01 AM
 #16

Спс, щас попробую.
Кстати, натравил майнера на элигиус, как ты просил. Майнит почти час.
Но есть проблема: как только переключаюсь на элигиус, нагрузка под 100%, смотрю top - виноват cgminer. Если переключаюсь на др. пул, сразу становиться все нормально.
Пока тестирую: 1LZJNgDHSFutzQcsUbW2tU3ehxEK77xP52

ЗЫ. Скорость майнера на этом пуле сразу падает на ~15Гх (в статистике)

ок, статистика здесь: http://eligius.st/~wizkid057/newstats/userstats.php/1LZJNgDHSFutzQcsUbW2tU3ehxEK77xP52

элигиус сначала дает задания низкой сложности (1-15), возможно cgminer-у в малинке это просто тяжеловато переварить.
через некоторое время он должен перейти на более высокую сложность.
на итзоде кстати наоборот - сначала секунд 10-15 минимальная сложность 2, потом он сразу ставит максимум 128-512,
у меня при этом загрузка CPU cgminer-ом по top-у порядка 15% (правда это на короткой цепочке 40 чипов).

NO PSAKING!
ProtonEvil
Sr. Member
****
Offline Offline

Activity: 285
Merit: 250


View Profile
September 08, 2013, 10:24:10 AM
 #17

Ok, пока собирается (писец как медленно) вопрос: подойдет ли метабанковский просмотр статистики (php5 не встал)? Или api-example.php что-то особенное показывает?
И где эта сборка будет конфу пулов брать, или надо параметром при запуске передавать?
needbmw (OP)
Legendary
*
Offline Offline

Activity: 1302
Merit: 1008



View Profile
September 08, 2013, 10:32:46 AM
 #18

Ok, пока собирается (писец как медленно) вопрос: подойдет ли метабанковский просмотр статистики (php5 не встал)? Или api-example.php что-то особенное показывает?
И где эта сборка будет конфу пулов брать, или надо параметром при запуске передавать?
я не знаю откуда метабанковская вебморда берет данные для просмотра.
вообще API выдает данные в формате JSON, вот только читать их неудобно.
там есть еще скрипт на питоне (питон есть на распи в стандартной поставке), вызывается аналогично:

python api-example.py stats

но он вывод не форматирует, поэтому на выходе будет тот же JSON.

параметры можно задавать без конфига, просто в командной строке. например я так задаю:

Code:
./cgminer --failover-only -o pool.itzod.ru:3333 -u username_0 -p pa$$w0rd -o eu-stratum.btcguild.com:3333 -u username_0 -p x --api-listen --api-port 4028 --api-network

NO PSAKING!
ProtonEvil
Sr. Member
****
Offline Offline

Activity: 285
Merit: 250


View Profile
September 08, 2013, 10:39:17 AM
 #19

Запустилось! Направил на итзод. Метабанковская морда отлично собирает статистику (берет с порта 4028).
Пул-юзер-пас параметрами передал. Нашел все 72 чипа (один модуль на 8 временно изъят), хешит прекрасно, все без ошибок.
По результатам чуть позже отпишусь.
ProtonEvil
Sr. Member
****
Offline Offline

Activity: 285
Merit: 250


View Profile
September 08, 2013, 10:42:10 AM
 #20

вообще API выдает данные в формате JSON, вот только читать их неудобно.
там есть еще скрипт на питоне (питон есть на распи в стандартной поставке), вызывается аналогично:

python api-example.py stats

но он вывод не форматирует, поэтому на выходе будет тот же JSON.

Можно не только JSON, еще и строками простыми. Писал прогу на QT под Win для сбора статистики по сети, но HDD с исходниками полетел, влом заново писать, а то не стал бы такими глупыми вопросами задаваться
Pages: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 »
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!