Author

Topic: Вопрос по майнингу (Read 4904 times)

newbie
Activity: 17
Merit: 0
March 20, 2013, 03:39:06 AM
#24
Правильно ли я понимаю что если новые задания (Хеши) появляются примерно каждые 5-7 минут и если у меня плохой и нестабильный интернет (GPRS), то большая часть моих решений будет аннулирована?
hero member
Activity: 616
Merit: 502
March 19, 2013, 11:11:42 AM
#23
naima53, это такой унылый троллинг?
Это, уважаемый, провокация, целью которой является просветительская деятельность (если копнуть глубже, то и целью может быть и желание заинтересовать новичков)  Wink
legendary
Activity: 2296
Merit: 1057
March 19, 2013, 08:23:03 AM
#22
Пул посчитает такие шары как invalid или staled, так как это легко проверяется.
А есле разослать их на десяток других пулов, "вдруг диапазон nonce" с одним из них совпадет? Не получится ли так что на этих 10 пулах будут почти одни stale, но определенный процент принятых шар все же будет?  Undecided
не прокатит так как появляется "переменная" адрес - для кого ищем решение. все на одном пуле ищут решение для адреса пула

где то у меня есть ощущение что для повышения эффективности пула nonce надо раздавать не с 0 до 10^8 а с предидущего удачного значения в обе стороны
legendary
Activity: 1120
Merit: 1069
March 18, 2013, 01:35:08 PM
#21
Пул посчитает такие шары как invalid или staled, так как это легко проверяется.
А есле разослать их на десяток других пулов, "вдруг диапазон nonce" с одним из них совпадет? Не получится ли так что на этих 10 пулах будут почти одни stale, но определенный процент принятых шар все же будет?  Undecided
naima53, это такой унылый троллинг?

Пул определяет что шара не верная элементарно, просто подставив ее nonce в его собственный getwork, и если результат не попадет под текущую сложность, отбросит шару как не валидную. Абсолютно у каждого пула свой getwork, так как он как минимум делается на основе адреса, которому начисляется награда, а это явно, что у всех пулов он разный. И если пул хранит какую то информацию о полученных шарах, то это только ради ускорения проверки принятых шар, просто как не обязательный кеш.
hero member
Activity: 616
Merit: 502
March 18, 2013, 11:44:49 AM
#20
Пул посчитает такие шары как invalid или staled, так как это легко проверяется.
А есле разослать их на десяток других пулов, "вдруг диапазон nonce" с одним из них совпадет? Не получится ли так что на этих 10 пулах будут почти одни stale, но определенный процент принятых шар все же будет?  Undecided
legendary
Activity: 1120
Merit: 1069
March 18, 2013, 07:11:26 AM
#19
Пул посчитает такие шары как invalid или staled, так как это легко проверяется.
sr. member
Activity: 439
Merit: 253
March 18, 2013, 06:05:48 AM
#18
в рамках одного getwork запроса (между которыми от 1 до десятков секунд), я бы не называл это громким словом 'база данных', хранить это где то кроме оперативной памяти глупо.
Т.е. если в следующем getwork запросе еще раз отправить шары с предыдущего getwork-а, то хэшрейт и заработок увеличится в 2 раза?
legendary
Activity: 1120
Merit: 1069
March 18, 2013, 04:34:15 AM
#17
Нужно ли понимать что каждый пулл ведет у себя базу розданных для проверки майнерам nonce в рамках одного блока сети .
в рамках одного getwork запроса (между которыми от 1 до десятков секунд), я бы не называл это громким словом 'база данных', хранить это где то кроме оперативной памяти глупо.
legendary
Activity: 2296
Merit: 1057
March 18, 2013, 02:17:51 AM
#16
Каждому воркеру пул и так раздает СВОЙ интервал для nonce, так что ничего доделывать  не надо. Невозможно подсунуть одну и ту же шару разным пулам/воркерам, хоть и говорят что все считают одно и то же, но у каждого воркера данные для вычислений - разные, и это легко проверяемо.
Нужно ли понимать что каждый пулл ведет у себя базу розданных для проверки майнерам nonce в рамках одного блока сети .
 
legendary
Activity: 1036
Merit: 1002
March 18, 2013, 12:20:14 AM
#15
примерно так и происходит
full member
Activity: 147
Merit: 100
March 14, 2013, 09:52:46 PM
#14
Вообще мысль интересная, но есть один момент, эти вычисления оценки подходят для статичного блока, но он ежесекундно меняется (появляются новые транзакции), так что если и попадутся данные, для которых невозможно найти nonce для текущей сложности, то сеть этого не заметит.

ну насчет ежесекундно я бы не сказал. вон недавно блок был с time на 3 минуты раньше предыдущего. (я удивился) понятно начал он считаться позже. просто время было не настроено видимо у считающего Smiley

но в моих рассуждениях если они верны,
то при минимальной сложности и перебрав 16 блоков 2^4 перебрав 2^32 Nonce получим вероятность близкую к 100%
1- (((2^256 - 2^224) / 2^256)^(2^36))

ну а для текущей сложности. кол-во подходящих хешей меньше. но и блоков перебирается больше. ( так как разное время транзакции).. чем собственно вся эта сеть с кучей терахешей/с и занимается Smiley
legendary
Activity: 1120
Merit: 1069
March 14, 2013, 02:49:59 PM
#13
Вообще мысль интересная, но есть один момент, эти вычисления оценки подходят для статичного блока, но он ежесекундно меняется (появляются новые транзакции), так что если и попадутся данные, для которых невозможно найти nonce для текущей сложности, то сеть этого не заметит.
full member
Activity: 147
Merit: 100
March 14, 2013, 11:15:41 AM
#12
Такое доказательство будет фактически нахожденим алгоритма/обратной функции для хеша sha256.. на текущий момент решения нет.

Ладно. попробую ответить сам на свой вопрос:
итак:
все пространство хешей 2^256.
Для нашего случая нам подойдут любые где первые 32 бита 0.
таких хешей 2^224, соответственно не подходят 2^256 - 2^224 = ~2^256

итого вероятность не найти хеш который нам подходит.
(2^256 - 2^224) / 2^256 -> некоторые говорят что это ~0.99999999976716935634613037109375 Smiley
вероятность не найти хеш за k - попыток
((2^256 - 2^224) / 2^256)^k
ну а вероятность того что адрес найдем
1 - ((2^256 - 2^224) / 2^256)^k
где k у нас это все значения nonce тоесть 2^32
итого
1- (((2^256 - 2^224) / 2^256)^(2^32)) = ~0.6321205588713844819461173679306397345505222972204827 = ~63.2%

ну вообщем неплохо.

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

legendary
Activity: 1120
Merit: 1069
March 14, 2013, 08:00:16 AM
#11
Такое доказательство будет фактически нахожденим алгоритма/обратной функции для хеша sha256.. на текущий момент решения нет.
full member
Activity: 147
Merit: 100
March 14, 2013, 07:49:43 AM
#10
кстати как математически доказывается что при минимальной сложности
00000000ffff0000000000000000000000000000000000000000000000000000

при любых значениях
Time
Version
Time
MerkleRoot
PrevBlockHash

перебрав все 2^32 возможных значения Nonce - мы гарантированно найдем такое при котором хеш будет меньше цели?

или это утверждение неверно?
newbie
Activity: 3
Merit: 0
March 11, 2013, 03:50:31 PM
#9
Please tell me how to set up a solo mining. Tried a lot of instructions, but it did not work, the last error that pops up is a hardware problem, what is it who knows?
full member
Activity: 147
Merit: 100
March 10, 2013, 09:31:24 PM
#8
rPman, спасибо за ответы. почитал еще документ про GetWork. теперь все вроде понятно.
legendary
Activity: 1120
Merit: 1069
March 10, 2013, 11:52:20 AM
#7
Каждому воркеру пул и так раздает СВОЙ интервал для nonce, так что ничего доделывать  не надо. Невозможно подсунуть одну и ту же шару разным пулам/воркерам, хоть и говорят что все считают одно и то же, но у каждого воркера данные для вычислений - разные, и это легко проверяемо.

p.s. не нужно пытаться перехитрить алгоритм, единственно доступные для манипулирования с целью увеличения эффективности: для майнеров - уменьшить число опоздавших шар (до 1% у народа - норма, а для p2pool и подавно все 10%), для пула - выбрать удобный/'не совсем честный' алгоритм выплат, чтобы не попасть в долговую яму как с pps и длинными блоками и не платить за orpfaned блоки, или же покрутить настройки пула и повысить сложность шары с 1 до к примеру 64 - это уменьшит нагрузку на сеть и сервер в 64 раза за счет менее равномерного расчета скорости майнеров (повысит размер и частоту флюктуаций при оценке скорости, но в целом для пользователей ничего не изменится).
hero member
Activity: 616
Merit: 502
March 10, 2013, 11:07:05 AM
#6
Quote
но чтобы все клиенты пула не считали одно и тоже. нужно как то разделить
1 задачу со сложностью 4367876 (для простоты предположим что все задачи сложности 1)
на  4367876 задач со сложностью 1.
Я так понял, что такого нет. Все майнеры пула считают одно и то же.

Интересно, а если сделать такой хитрый софт что бы каждый майнер экспериментального пула считал не одно и то же, а распределял, ну, скажем, диапазоны подставляемых на вход данных?  Undecided Будет результат выше чем сейчас? (теоритически, я понимаю что будет необходима оптическая связь между каждым майнером и пулом с пропускн. способностью света и пикосекундным пингом)
newbie
Activity: 15
Merit: 2
March 10, 2013, 03:44:55 AM
#5
Quote
но чтобы все клиенты пула не считали одно и тоже. нужно как то разделить
1 задачу со сложностью 4367876 (для простоты предположим что все задачи сложности 1)
на  4367876 задач со сложностью 1.
Я так понял, что такого нет. Все майнеры пула считают одно и то же.

Насчет систем наград: их есть несколько. Можно выделить для простоты систему Propotional, в которой после нахождения блока награда за него делится пропорционально числу шар, высланным каждым участником, и PPS (pay per share), в котором каждая шара оплачивается по фиксированной цене, зависящей от текущей сложности.
Quote
пул заплатит стандартную стоимость шары, а остальное себе в карман.
Именно так, но за счет более длинных блоков в целом за период смены сложности будет нужно 100% решений за каждый блок.
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х словах, или подскажите где почитать подробнее.
Jump to: