реклама на сайте
подробности

 
 
> Майнинг - это не модно, но все же ..., Общий алгоритм вызывает ослажнения
RamZoom
сообщение Jul 3 2017, 20:59
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 65
Регистрация: 30-03-14
Пользователь №: 81 150



Ниже в постах уже была затронута тема майнинга на ПЛИС, но полного понимания к сожалению нет. Любителей отписаться о том, что это не модно и не выгодно - согласен, но хочется довести тему до получения результата. Исходные данные: сайт Марсоход, Wiki с темой SHA-2 и конечно GitHub с исходниками на verilog и небольшая статейка на Биткоин форум с описанием преобразования исходного заголовка от пула программой cgmainer. Доп инфа: по UART плата получает 16 32-x битных пакетов = 512 бит. Сборка проекта и подгонка под недолгую работу ModelSim показала, что выполнение обоих модулей под названием sha256_transform стартует одновременно, после получения пакетов и течет куча данных. После нескольких запусков просто моделсим перестал стартовать. Заставка, вторая и вылетел. Такое впервые, еще не знаю что с этим делать, но не суть. От этой модели понимания не прибавилось. Сам SHA-256 говорит о том, что все операции будут производиться над 256-ти разрядными данными, а в проекте еще и над 512-ти разрядными. Часть из входных которых являются константы. Далее счетчики для получения nonce, golden nonce. Может кто по-человечески объяснить текстом или в виде структурок что в общем-то нужно делать с входными и выходными данными вышеупомянутых модулей, саму суть и принцип не в виде бесполезных ссылок, а с чувством, толком, расстановкой. Заранее спасибо
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
RamZoom
сообщение Jul 4 2017, 20:42
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 65
Регистрация: 30-03-14
Пользователь №: 81 150



Спасибо за файл! Но если не сложно и сможете ответить на несколько вопросов был бы вам очень благодарен. Итак начнем с начала... Стандарт FIPS-180-3 нам говорит о том, что нужно произвести предварительную подготовку, а именно дополнить значение до 512 бит, разделить сообщение на 8 32-х разрядных значений и проинициализировать начальное значение хэша. Если я все правильно понял первые два пункта нас не особо заботят, а полученные 512 бит записываются в строке

unsigned int hash[8] {0xdc6a3b8d,0x0c69421a,0xcb1a5434,0xe536f7d5,0xc3c1b9e4,0x4cbb9b8f,0x95f0172e, 0xfc48d2df};

Далее необходимо подготовить последовательность блоков данных согласно формуле Wt. Насколько я понял за это отвечают строки

for (i = 0; i < 16; i++)
M[i] = 0;

M[0] = BSWAP32(0x871714dc);
M[1] = BSWAP32(0x53058b35);
M[2] = BSWAP32(0x19015f53);
M[3] = BSWAP32(0x33087548);
M[4] = 0x80000000;
M[15] = 0x00000280;

и вот здесь уже начинаются вопросы: почему они рассчитываются практически в конце выполнения алгоритма, а не после первоначальной инициализации для получения Wt? И почему они проинициализированы значениями 0x871714dc ..... Чуть выше по тексту в комментариях они присутствуют и на сколько я понял являются первыми значениями выполнения функции SHA256_Update? Что тоже не особо понятно

SHA256_Update(&sha256_pass1, ((unsigned char*)&header)+64, sizeof(block_header)-64);
/*
data
[0x0] 0x871714dc unsigned int - header.merkle_root, "871714dc...
[0x1] 0x53058b35 unsigned int - header.timestamp = 0x53058b35;
[0x2] 0x19015f53 unsigned int - header.bits = 0x19015f53;
[0x3] 0x33087548 unsigned int - header.nonce = 856192328;
*/

Сообщение отредактировал RamZoom - Jul 4 2017, 20:58
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st August 2025 - 03:37
Рейтинг@Mail.ru


Страница сгенерированна за 0.01637 секунд с 7
ELECTRONIX ©2004-2016