Pages:
Author

Topic: Вопрос по майнингу - page 2. (Read 4915 times)

legendary
Activity: 1120
Merit: 1069
March 10, 2013, 03:33:33 AM
#4
Вот тут я могу немного ошибаться, но выглядит все следующим образом:

Майнер получает блок, в котором размещена настоящая информация о сложности, мало того, он получает не сам блок данных, а его недостроенный хеш (хеш считается не сразу на весь блок данных, а кусками по 256бит) и последний оставшийся блок данных, в который нужно вписать nonce... (подробнее и правильнее тут https://en.bitcoin.it/wiki/Getwork), отдельно сложность, для которой необходимо будет искать nonce (она то и отличается от настоящей), граница, в которых необходимо перебирать nonce и т.п.

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

Самое главное, что решение со сложностью X так же является решением для сложности Y, если X > Y. То есть майнерам сообщается что они считают задачу со сложностью 1, но пулу ответы майнеров с такой сложностью нужны, только чтобы проверить, какая мощность запущена у каких майнеров (например для способа раздачи награды типа Prop), а если способ начисления награды PPS то и того проще, сколько шар прислал, столько и начислить награды.

И самое главное, пул получит награду только после того как найдет настоящий блок и только после того как у него будет отсчитано 120 подтверждений, и событие нахождения блока совершенно не зависит от количества шар, присланных майнерами, хотя нет, зависимость есть, но звучит как 'вероятность нахождения блока пулом с начала прямо пропорционально количеству присланных шар и обратно пропорционально сложности сети'. Т.е. если ты прислал 10% шар пулу и пул не нашел блока, то это не значит что тебе осталось прислать 90% шар Wink все что прислано ранее никаким боком не влияет на то сколько еще осталось работать.

Именно из за этого пул, выплачивающий с алгоритмом PPS и аналогами (оплата за шары) рискует получить пустой кеш и может просто не суметь выплатить долг майнерам (пулу попадется большая неудача, серия длинных блоков), об этом говорит теория вероятности, и наличие 'лишних' денег у пула не защищает его от этого, чем больше денег тем меньше вероятность не суметь выплатить (но до 0% не опустится никогда, за исключением случаев когда пул берет комиссию).
full member
Activity: 147
Merit: 100
March 09, 2013, 11:20:02 PM
#3
Спасибо за ответы. в целом примерно все понятно. за исключением одного момента.
все же что такое подмена сложности.

вот на данный момент сложность составляет 4 367 876.000842
Bits: 1a03d74b
тоесть цель выглядит так:

00000000000003d74b0000000000000000000000000000000000000000000000

00000000000001a30afae8ebc3748643bc26d9aab554006819d3bd8a52578df3 - меньше цели. все хорошо.
(hash блока 215100)

"пул вместо того чтобы дать нормальную работу со текущей сложностью (например сейчас в 4кк), подменяет сложность в задаче для майнеров на 1"
как это выглядит?

сложность 1 это значит надо найти блок удовлетворяющий минимальной возможной сложности.
00000000ffff0000000000000000000000000000000000000000000000000000

а потом уже пул проверяет удовлетворяет ли найденное решение для сложности 1. цели.
если да - подписываем блок.
если нет - выкидываем.

но чтобы все клиенты пула не считали одно и тоже. нужно как то разделить
1 задачу со сложностью 4367876 (для простоты предположим что все задачи сложности 1)
на  4367876 задач со сложностью 1. - (вот тут и непонятно по какому принципу это происходит).

ну и добавок тогда пара вопросов:
за генерацию блока дают награду, сейчас это 25 монет + комиссии.
за решения каждой задачи (шару) пул платит некоторую сумму ("награда" - "процент пула") / ("кол-во задач")
теперь правильно ли я понимаю следующие моменты.
1. награда выдается только в случае если данный пул нашел блок (так как иначе, платить пулу придется из своего кармана, награду то получил другой пул)?
2. если например клиенты прорешали 10% - задач. и нашли решение для блока. в итоге получается что стоимость каждой шары будет в 10 раз больше?
   или же пул заплатит стандартную стоимость шары, а остальное себе в карман.



P.S Я конечно полный новичок, но информации изучил достаточно. и более менее работу самой сети в целом представляю. (даже исходники почитал немного).
legendary
Activity: 1120
Merit: 1069
March 09, 2013, 01:07:20 PM
#2
1. В общем случае ВСЕ майнеры всех пулов а так же соло решают один и тот же блок. Но информация, прописываемая в этом блоке отличается. Помимо того что список транзакций в зависимости от узла отличается (транзакции по сети распространяются не мгновенно, или порядок в списке записывается другое, а когда награда за майнинг станет маленькой, то пулы могут не включать  в список блока транзакции с недостаточной комиссией, или еще по какой причине), разные пулы прописывают в качестве владельца награды себя (почти наверняка по адресу в пределах одного пула или сервера пула, если их несколько).
Смена информации происходит достаточно часто, секунды, некоторые пулы кстати ограничивают частоту (так как нет особого смысла так часто рассылать информацию майнерам), но стоит помнить, что соотношение этой задержки к 10 минутам дает вероятность получить пулом orpfaned блоки (кто то может поспорить, зависимость гораздо сложнее).

2. Еще, пул вместо того чтобы дать нормальную работу со текущей сложностью (например сейчас в 4кк), подменяет сложность в задаче для майнеров на 1 (некоторые пулы могут ставить другую, чтобы уменьшить нагрузку на сеть и сервера, и это правильно), и это называют ШАРА - shares. Какие то их присланных шар могут подходить под текущую сложность сети, вот когда майнер такую находит, то пишут что майнер нашел блок. Шары нужны чтобы точнее расчитывать скорость майнеров, чтобы честно распределять между ними награду. Ведь шара, как и нормальный блок так же легко проверяется и не может быть украдена или подделана.
Стоит добавить что данные, на которые необходимо искать хеш содержат настоящую сложность, а ту что нужно искать сообщается отдельно, а то для основной сети тогда блок будет невалидным, ведь все клиенты при загрузке блоков бдительно перепроверяют, верную ли сложность прописали майнеры в блоке.

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

p.s. давно читаю форум, смотрю полных новичков очень мало, да и некому отвечать похоже тут уже, остались уж откровенные троли или слишком уставшие.
full member
Activity: 147
Merit: 100
March 09, 2013, 09:28:09 AM
#1
Добрый день.
Есть следующий вопрос.
Если я правильно понимаю то майнинг в пуле происходит примерно так:
1. пул формирует блок и раздает его клиентам. (в чем разница задачи для разных клиентов)?
2. клиент считает хеши.. находит шару. отправляет пулу.
3. дальше шара или становиться подписью блока или отклоняется. (по какому критерию)?

объясните в 2х словах, или подскажите где почитать подробнее.
Pages:
Jump to: