Closed bzzoiro closed 2 years ago
Adding some more information. Seems that server is rejecting the 2nd job request...
HELLOOOOOOOOOOOOOOOOO JOBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB [''] JOBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB 09:41:39 net15 Error connecting to the server. Retrying in 10s (err handling result: list index out of range) 09:41:42 sys15 Closed COM port COM15 09:41:47 net0 Connected to master Duino-Coin server (v2.7) 09:41:48 net0 MOTD: Welcome to BeyondPool (2) hosted by Beyondtoshi Pool worker limit: 50 09:41:48 sys15 AVR mining thread is starting using DUCO-S1A algorithm (COM15) HELLOOOOOOOOOOOOOOOOO JOBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB ['d3701062ac29eb438e69179cb598deeb975ff883', 'f4fd49447a27d036d73d3f32d8837594717ace04', '6'] JOBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB COM15: Sending job to the board b'd3701062ac29eb438e69179cb598deeb975ff883,f4fd49447a27d036d73d3f32d8837594717ace04,6,' COM15: Reading result from the board Result: ['101011101', '1010010001100001', 'DUCOID4294967295429496'] COM15: Result: 101011101 passed 09:41:49 avr15 Rejected 0/5 (0%) ∙ 00.0s ∙ 8 kH/s @ diff 6 ∙ ping 230ms HELLOOOOOOOOOOOOOOOOO JOBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB [''] JOBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB 09:41:49 net15 Error connecting to the server. Retrying in 10s (err handling result: list index out of range) 09:41:52 sys15 Closed COM port COM15 09:41:57 net0 Connected to master Duino-Coin server (v2.7) 09:41:58 net0 MOTD: Welcome to BeyondPool (2) hosted by Beyondtoshi Pool worker limit: 50 09:41:58 sys15 AVR mining thread is starting using DUCO-S1A algorithm (COM15) HELLOOOOOOOOOOOOOOOOO JOBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB ['0cafb99923ee3f0dd11420e0e1f73284468c8be6', '84f34a3fd940e2f9a46fd5f0282333afd0fbbe87', '6'] JOBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB COM15: Sending job to the board b'0cafb99923ee3f0dd11420e0e1f73284468c8be6,84f34a3fd940e2f9a46fd5f0282333afd0fbbe87,6,' COM15: Reading result from the board Result: ['100011100', '1000010111101111', 'DUCOID4294967295429496'] COM15: Result: 100011100 passed 09:41:59 avr15 Rejected 0/6 (0%) ∙ 00.0s ∙ 8 kH/s @ diff 6 ∙ ping 334ms
Hello @bzzoiro, can you test the improved version of Pankleks, the code can be obtained here, if it works let us know so we can accept the PR
Hello! Please, help me! Stm32f103c8t6 blue pill
Hello! Please, help me! Stm32f103c8t6 blue pill !
The problem is in the blue pill firmware. It sends the result in decimal, but it should be in binary. Enable debug = y in Settings.cfg and show the log.
Проблема в прошивке blue pill. Оно отправляет результат в десятичной системе, а должно в двоичной. Включите debug = y в Settings.cfg и покажите лог.
Hello! Please, help me! Stm32f103c8t6 blue pill !
The problem is in the blue pill firmware. It sends the result in decimal, but it should be in binary. Enable debug = y in Settings.cfg and show the log.
Проблема в прошивке blue pill. Оно отправляет результат в десятичной системе, а должно в двоичной. Включите debug = y в Settings.cfg и покажите лог.
Можно на русском? Debug включён. Это все, что пишет. Если выключить, то пишутся только синие и зелёные строки. Вероятно я не правильно прошил STM. Попробую ещё раз собрать прошивку. Или может быть есть ссылка на .BIN. или .hex файл прошивки? Я бы тогда stlink'ом прошил
Наверно можно, я х.з. Либо там нестандартная прошивка, либо нестандартная реализация библиотеки с функцией String(int, int). Рекомендую скачать последнюю стабильную версию arduino IDE, и добавить поддержку STM32, например, отсюда: https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json . Если есть возможность, перехватите UART обмен. Например, USB-UART преобразователем. Пример запроса в направлении МК: f7ef3049918218fc0a6a2560a6e4f3778a1a630e,da8f92daf102d52bc87ea207348d492905b30ba4,4, Ответ от МК: 11000000,11110001010100000100,DUCOID0123456789ABCDEF Если там вместо двоичной, десятичная система, ищите другие библиотеки поддержки STM32 в arduino IDE.
Спасибо. Сейчас попробую
Не работает. Плата работает, но шлёт ответ в неверном формате. Дело действительно в библиотеке поддержки. Ставил я её по ссылке от BBS215. Пробовал разные релизы качать, не помогает. А есть готовый bin файл прошивки? Я бы прошил stlink ом
Увы, нету. Есть неофициальный майнер для STM32: https://github.com/revoxhere/duino-coin/tree/master/Unofficial%20miners/STM32 , но там не факт что заработает с первого раза. Или, можно самому написать или адаптировать функцию формирования строки с ответом. За основу можно взять ducos_make_resultstr отсюда: https://github.com/BBS215/STM8_DUCO_miner/blob/main/main.c А что именно отвечает плата?
Майнер качал как раз по этой ссылке (https://github.com/revoxhere/duino-coin/tree/master/Unofficial%20miners/STM32). Пробовал несколько версий. Сейчас AVR miner пишет так:
Код, загружаемый в пату: `// Duino-coin miner for STM32 and AVR chip family // https://duinocoin.com/ // by: pankleks 2021 // v: 1.2 // https://github.com/pankleks // MIT License
HardwareSerial Serial2(PA_3,PA_2); // features
String clientId;
int dec2bin(long num) { long bin = 0, k = 1;
while (num)
{
bin += (num % 2) * k;
k *= 10;
num /= 2;
}
return bin;
}
void log(String msg) {
Serial1.println(msg);
}
String getClientId() { String temp = "DUCOID";
for (int i = 0; i < UniqueIDsize; i++) temp += String(UniqueID[i], HEX);
return temp; }
void ledOn() { digitalWrite(LED_BUILTIN, false); }
void ledOff() { digitalWrite(LED_BUILTIN, true); }
void setup() { clientId = getClientId(); pinMode(LED_BUILTIN, OUTPUT); ledOn();
Serial1.begin(115200);
log(clientId);
Serial2.begin(115200); Serial1.setTimeout(10000);
// wait for connection while (!Serial1) ;
Serial1.flush();
log(F("setup done")); ledOff(); }
void clearSerial2() { while (Serial2.available()) Serial2.read(); }
int ducos1a(String lastHash, String expHash, int difficulty) { const char *c = expHash.c_str(); uint8_t length = expHash.length() / 2; uint8_t job[104];
for (size_t i = 0, j = 0; j < length; i += 2, j++) job[j] = (c[i] % 32 + 9) % 25 * 16 + (c[i + 1] % 32 + 9) % 25;
SHA1_CTX baseCtx; SHA1Init(&baseCtx); SHA1Update(&baseCtx, (uint8_t *)lastHash.c_str(), lastHash.length());
uint8_t buf[20];
for (int result = 0; result < difficulty 100 + 1; result++) { SHA1_CTX ctx = SHA1Copy(baseCtx); itoa(result, (char )buf, 10);
SHA1Update(&ctx, buf, strlen((char *)buf));
SHA1Final(buf, &ctx);
if (memcmp(buf, job, 20) == 0) // if found hash = expected hash -> result
return result;
}
return -1; // not found }
void (*resetFn)(void) = 0;
void reset() {
resetFn();
NVIC_SystemReset();
}
String lastHash; String expHash; uint32_t difficulty; long lastOkJobT = millis(); long t = 0;
void loop() { if (Serial2.available() > 0) { log(F("got data"));
lastHash = Serial2.readStringUntil(',');
log("LH: " + lastHash);
expHash = Serial2.readStringUntil(',');
log("EH: " + expHash);
difficulty = Serial2.readStringUntil(',').toInt() * 100;
log("DF: " + String(difficulty));
clearSerial2();
ledOn();
long startT = micros();
expHash.toUpperCase();
int result = ducos1a(lastHash, expHash, difficulty);
long elapsedT = micros() - startT;
ledOff();
clearSerial2();
Serial2.print(String(dec2bin(result)) + "," + String(dec2bin(elapsedT)) + "," + String(clientId) + "\n");
log("R: " + String(dec2bin(result)) + ", " + String(dec2bin(elapsedT)) + " s");
lastOkJobT = millis();
}
if (millis() - t > 1000) { t = millis();
long n = millis() - lastOkJobT;
log("last ok job " + String(n) + " ms ago");
if (n > NO_JOBS_RESET_S * 1000L)
{
log(F("no jobs, reset"));
}
} }`
Очень похоже на глючный UART. Надо перехватить UART трафик преобразователем, в обе стороны. Есть мнение, что данные искажаются. Заодно гляньте лог самой STM32, он вроде должен быть на USB
Вот лог, который идет по другому сериалу с платы
Чёт фигня полная. А этот код что даёт? https://github.com/revoxhere/duino-coin/tree/master/Arduino_Code
А этот код заработал. Сначала поругался на сложность, а потом стало работать. скорость 7.796 kH/s. это нормально для STM?
Да, вполне. Последите, чтобы процент принятых хешей был не меньше 99%.
Пока меньше, 88
Последняя версия AVR_Miner.py пишет причину отбраковки хеша. "Incorrect difficulty" - должна быть только на первых хешах. Остальное - проблема.
А этот код заработал. Сначала поругался на сложность, а потом стало работать. скорость 7.796 kH/s. это нормально для STM?
Приветствую. А каким макаром прошивку в Stm32f103c8t6 blue pill заливали. Сильно не пинайте, я только учусь.
У меня Stm32f405 не работает для майнинга пишет Closed COM com port19. Помогите решить вопрос нужна прошивка рабочая.
А этот код заработал. Сначала поругался на сложность, а потом стало работать. скорость 7.796 kH/s. это нормально для STM?
Какой заработал дай ссылку на рабочий код
Чёт фигня полная. А этот код что даёт? https://github.com/revoxhere/duino-coin/tree/master/Arduino_Code
Есть ли код для stm32f405 ? то что на этом сайте не совсем рабочее
I have 3 blue pills (STM32F***) that were working like a charm with a diff of 600. Since yesterday they can't connect to server.