1. Насколько я понимаю, когда воркер сабмитит шару, пул должен посчитать правильность шары, подставив полученое nonce от воркера и принять решение - valid или не valid шара
2. Не понятен момент после установления соединения: воркер устанавливает соединение, после чего, чтобы не считать с непонятной сложностью, получает команду перехода на следуйщую сложность?
3. где можно почитать как именно пул распределяет работу по воркерам и как именно меняет diff для воркера на лету, я имею ввиду, что при этом меняется в передаваемом блоке с точки зрения вычислений? требует большего количества нулей в хэше? При беглом поиске нормального описания не нашел...
1. обратно на пул отправляется заколовок блока (остальная часть хранится на пуле), если решение (в бит. даб.шех.) заголовка удовлетворяет (в бит. меньше) сложности заданной пулом шара засчитывается, при этом если решение удовлетворяет сложности сети, это значит найден блок.
2. сложность передается вместе с задачей.
3. читать в исходниках, читать старые темы на форуме
пул при формировании задачи своим майнерам (тебе и мне) в первой транзакции которая перечисляет на аддрес блока награду в поле scriptsig вставляет произвольное число которое итерирует, за счет этого merkle root получается разный, еще передвигается время timestamp что тоже дает разные задачи для решения (нам остается лишь передвигать nonse)
если пул видит что майнер слишком быстрый и "спамит" решениями, пул на лету меняет сложность, которая по умолчанию у пула = 1 с сторону увеличения = 2, 4, 8 итд, пока не подберет оптимальную сложность для данного воркера. В последствии скорость находится так = колличество найденных шар на данной сложности / затраченное время
з.ы. за постом не слежу, если еще нужна помощь в личку, если есть желание сказать спасибо, адрес ниже.