Bitcoin Forum

Local => Кодеры => Topic started by: Ninazu on November 03, 2017, 05:10:08 PM



Title: Как работает пул изнутри?
Post by: Ninazu on November 03, 2017, 05:10:08 PM
Меня интересует как пул собирает из шар общую картинку, и как проверяет каждую шару на валидность.

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

Что представляет из себя шара с точки зрения запрос/ответ и их структура.
Как пул валидирует шары? (ведь если бы не было валидации то воркеры могли слать что угодно и получать прибыль даже не перебирая счётчик)
У шар есть TTL какой-то? если допустим воркер не отдает решение шары в какой-то период времени, то по идее его работу пул должен передать кому-то другому


Title: Re: Как работает пул изнутри?
Post by: Coin-1 on November 05, 2017, 11:11:30 AM
Читайте мануал по протоколу STRATUM.


Title: Re: Как работает пул изнутри?
Post by: kzv on November 07, 2017, 05:44:54 AM
а с какой целью интересуетесь?
Если у вас есть опыт в программировании, то можем совместно пул написать, а то я давно собирался, но времени нет.


Title: Re: Как работает пул изнутри?
Post by: amaclin1 on November 07, 2017, 02:04:37 PM
Меня интересует как пул собирает из шар общую картинку, и как проверяет каждую шару на валидность.
Если правильно понимаю то изначально есть кусок работы, который делится на шары, шары даются воркерам и те их считают.
Нет, не так.
Кусок работы - это "бросить монетку 80 раз подряд орлом вверх". (Для примера)
Как ты будешь её бросать - никого не волнует.
Шара - это последовательность из 80 бросков, где первые 60 сам воркер проверил и они действительно все орлом вверх.
Сервер, разумеется, тоже проверяет.

Вот Собрались Вася, Петя и Коля. И стали кидать монетки
Каждый кидает монетку 80 раз и если первые 60 раз она выпала орлом - то отправляет шару
даже не проверяя что выпало в конце
Вася отправил на сервер 100 шар - но ни одна из них не была длины 80
Петя отправил на сервер 150 шар - ему тоже не повезло.
Коле повезло, его 50-ая шара оказалась подходящей и пул получил награду.
Награду разделили пропорционально количеству присланных шар - то есть Васе досталась треть
всей награды, Пете досталась половина награды, а Коле досталась одна шестая.



Title: Re: Как работает пул изнутри?
Post by: amaclin1 on November 07, 2017, 02:09:18 PM
а с какой целью интересуетесь?
Если у вас есть опыт в программировании, то можем совместно пул написать, а то я давно собирался, но времени нет.

О!
Мне нужен пул для BitcoinCash
По идее мне нужно смайнить один блок с нужными мне транзакциями и я даже готов за это немного забашлять.
Но это такой гемор сам пул поднимать, а потом еще майнеров на него звать. Ужас какой-то

Но покопавшись на эту тему набрел на http://solo.ckpool.org/
Там ссылка на сорцы есть. Я в этом не копенгаген, но вроде технически поднять пул вроде не особо сложно.
Сложнее хэшрейт получить.


Title: Re: Как работает пул изнутри?
Post by: kzv on November 07, 2017, 03:32:05 PM
а с какой целью интересуетесь?
Если у вас есть опыт в программировании, то можем совместно пул написать, а то я давно собирался, но времени нет.

О!
Мне нужен пул для BitcoinCash
По идее мне нужно смайнить один блок с нужными мне транзакциями и я даже готов за это немного забашлять.
Но это такой гемор сам пул поднимать, а потом еще майнеров на него звать. Ужас какой-то

Но покопавшись на эту тему набрел на http://solo.ckpool.org/
Там ссылка на сорцы есть. Я в этом не копенгаген, но вроде технически поднять пул вроде не особо сложно.
Сложнее хэшрейт получить.


Пулы по РПЦ запрашивают у демона шаблон блока, если ты напишешь рпц-прокси который будет брать от демона один шаблон, а пулу отправлять поправленный, то тебе любой пул подойдёт.
Я умею поднимать для форков битка unomp и p2pool. Если интересно могу попробовать тебе помочь за символическую плату или бесплатно ))


Title: Re: Как работает пул изнутри?
Post by: amaclin1 on November 07, 2017, 04:04:11 PM
Пулы по РПЦ запрашивают у демона шаблон блока, если ты напишешь рпц-прокси который будет
брать от демона один шаблон, а пулу отправлять поправленный, то тебе любой пул подойдёт.
Зачем такие сложности? Мне на демоне надо кой-чо поправить, чтобы нода нестандартные
транзакции принимала. (Да, есть вторая проблема, как эти транзакции до пул-ноды доставить
но оно решаемо)

Главный аспект - я конкурировать с китайскими пулами по мощности не смогу. А майнить блок
целый год как-то грустно очень. Пока ищу контакты пул-админов. Может кто откликнется сам

https://bitcoin.stackexchange.com/questions/61657/how-to-find-a-btc-bcc-mining-node-with-modified-software

Форки мне не особо интересны. Нужен биткок или (это даже лучше) bitcoin cash


Title: Re: Как работает пул изнутри?
Post by: kzv on November 07, 2017, 04:26:27 PM
Пулы по РПЦ запрашивают у демона шаблон блока, если ты напишешь рпц-прокси который будет
брать от демона один шаблон, а пулу отправлять поправленный, то тебе любой пул подойдёт.
Зачем такие сложности? Мне на демоне надо кой-чо поправить, чтобы нода нестандартные
транзакции принимала. (Да, есть вторая проблема, как эти транзакции до пул-ноды доставить
но оно решаемо)

Главный аспект - я конкурировать с китайскими пулами по мощности не смогу. А майнить блок
целый год как-то грустно очень. Пока ищу контакты пул-админов. Может кто откликнется сам

https://bitcoin.stackexchange.com/questions/61657/how-to-find-a-btc-bcc-mining-node-with-modified-software

Форки мне не особо интересны. Нужен биткок или (это даже лучше) bitcoin cash

По мощности с кем угодно можно конкурировать, все упирается только в цену вопроса на найсхэше ))


Title: Re: Как работает пул изнутри?
Post by: amaclin1 on November 07, 2017, 05:28:33 PM
По мощности с кем угодно можно конкурировать, все упирается только в цену вопроса на найсхэше ))
А туда владельцы асиков ходят? Или только нищеброды со своими карточками пытаются копейку слупить?
Мысль интересная в принципе.
То есть если у меня есть 12.5 BCH я могу купить мощностей достаточных для майнинга одного блока в сети BitcoinCash
Если повезет, конечно. Если не повезет - то не судьба. Может повезти на два блока. тогда даже профит получится.
Надо подумать.
Хотя я вообще не особо люблю в орлянку играть.

Update: я завел свой отдельный топик https://bitcointalk.org/index.php?topic=2372325
а то нехорошо в чужом топике свои идеи обсуждать. Простите.


Title: Re: Как работает пул изнутри?
Post by: Ninazu on November 08, 2017, 09:25:43 AM
Спасибо за ответы. Для себя я это нарисовал так

Есть маска блока допустим 00000000FFFFFF.... тоесть нужно найти блок в хеше которого будут первые 4 нулевых байта. Но это сложно, поэтому пул раздает воркерам задачу искать хеши удовлетворяющих маску 0000FFFFFFFFFF... (достаточно первых 2-х нулей в хеше вместо 4-х) тоесть на два порядка проще найти такие. Есть вероятность что одна из таких шар будет решением блока.  Тогда награда за блок делится между всеми участниками которые слали шары.  И так как в блок вписывается кошелёк пула, воркер не может найти решение и сам им воспользоваться


Title: Re: Как работает пул изнутри?
Post by: Ninazu on November 08, 2017, 09:28:02 AM
Ковыряясь в поисках исходников пула. Наткнулся на такое решение, вроде даже работает.
https://github.com/bonesoul/CoiniumServ

Мультимонетный пул. Нужно только немного подправить исходники, а то там оно лезет на Poloniex который поменял подход к апи и добавил капчу, поэтому ошибки срутся


Title: Re: Как работает пул изнутри?
Post by: amaclin1 on November 08, 2017, 09:31:59 AM
Спасибо за ответы. Для себя я это нарисовал так

Есть маска блока допустим 00000000FFFFFF.... тоесть нужно найти блок в хеше которого будут первые 4
нулевых байта. Но это сложно, поэтому пул раздает воркерам задачу искать хеши удовлетворяющих маску
0000FFFFFFFFFF... (достаточно первых 2-х нулей в хеше вместо 4-х) тоесть на два порядка проще найти такие.
Есть вероятность что одна из таких шар будет решением блока.  Тогда награда за блок делится между всеми
участниками которые слали шары.  И так как в блок вписывается кошелёк пула, воркер не может найти
решение и сам им воспользоваться

Да, все правильно понял. Объяснение корявое, на пальцах, но именно так и происходит.
Майнер (владелец асика) не может воспользоваться решением даже в пользу владельца пула
потому что сам блок с транзакциями ему не присылали - ему прислали только заголовок блока.