Bitcoin Forum
May 04, 2024, 08:26:01 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 »  All
  Print  
Author Topic: Вопрос по майнингу  (Read 4861 times)
DarkDog (OP)
Full Member
***
Offline Offline

Activity: 147
Merit: 100


View Profile
March 09, 2013, 02:28:09 PM
 #1

Добрый день.
Есть следующий вопрос.
Если я правильно понимаю то майнинг в пуле происходит примерно так:
1. пул формирует блок и раздает его клиентам. (в чем разница задачи для разных клиентов)?
2. клиент считает хеши.. находит шару. отправляет пулу.
3. дальше шара или становиться подписью блока или отклоняется. (по какому критерию)?

объясните в 2х словах, или подскажите где почитать подробнее.
1714854361
Hero Member
*
Offline Offline

Posts: 1714854361

View Profile Personal Message (Offline)

Ignore
1714854361
Reply with quote  #2

1714854361
Report to moderator
1714854361
Hero Member
*
Offline Offline

Posts: 1714854361

View Profile Personal Message (Offline)

Ignore
1714854361
Reply with quote  #2

1714854361
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714854361
Hero Member
*
Offline Offline

Posts: 1714854361

View Profile Personal Message (Offline)

Ignore
1714854361
Reply with quote  #2

1714854361
Report to moderator
1714854361
Hero Member
*
Offline Offline

Posts: 1714854361

View Profile Personal Message (Offline)

Ignore
1714854361
Reply with quote  #2

1714854361
Report to moderator
1714854361
Hero Member
*
Offline Offline

Posts: 1714854361

View Profile Personal Message (Offline)

Ignore
1714854361
Reply with quote  #2

1714854361
Report to moderator
rPman
Legendary
*
Offline Offline

Activity: 1120
Merit: 1069


View Profile WWW
March 09, 2013, 06:07:20 PM
 #2

1. В общем случае ВСЕ майнеры всех пулов а так же соло решают один и тот же блок. Но информация, прописываемая в этом блоке отличается. Помимо того что список транзакций в зависимости от узла отличается (транзакции по сети распространяются не мгновенно, или порядок в списке записывается другое, а когда награда за майнинг станет маленькой, то пулы могут не включать  в список блока транзакции с недостаточной комиссией, или еще по какой причине), разные пулы прописывают в качестве владельца награды себя (почти наверняка по адресу в пределах одного пула или сервера пула, если их несколько).
Смена информации происходит достаточно часто, секунды, некоторые пулы кстати ограничивают частоту (так как нет особого смысла так часто рассылать информацию майнерам), но стоит помнить, что соотношение этой задержки к 10 минутам дает вероятность получить пулом orpfaned блоки (кто то может поспорить, зависимость гораздо сложнее).

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

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

p.s. давно читаю форум, смотрю полных новичков очень мало, да и некому отвечать похоже тут уже, остались уж откровенные троли или слишком уставшие.

Здесь не может находиться ваша реклама Smiley
Protect a future of bitcoin, use p2pool
Donation in BTC: 19fv5yYtfWZ9jQNjx2ncmu1TTrvg5CczZe
DarkDog (OP)
Full Member
***
Offline Offline

Activity: 147
Merit: 100


View Profile
March 10, 2013, 04:20:02 AM
 #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 Я конечно полный новичок, но информации изучил достаточно. и более менее работу самой сети в целом представляю. (даже исходники почитал немного).
rPman
Legendary
*
Offline Offline

Activity: 1120
Merit: 1069


View Profile WWW
March 10, 2013, 07:33:33 AM
Last edit: March 10, 2013, 08:17:24 AM by rPman
 #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% не опустится никогда, за исключением случаев когда пул берет комиссию).

Здесь не может находиться ваша реклама Smiley
Protect a future of bitcoin, use p2pool
Donation in BTC: 19fv5yYtfWZ9jQNjx2ncmu1TTrvg5CczZe
Gkeks
Newbie
*
Offline Offline

Activity: 15
Merit: 2


View Profile
March 10, 2013, 07:44:55 AM
 #5

Quote
но чтобы все клиенты пула не считали одно и тоже. нужно как то разделить
1 задачу со сложностью 4367876 (для простоты предположим что все задачи сложности 1)
на  4367876 задач со сложностью 1.
Я так понял, что такого нет. Все майнеры пула считают одно и то же.

Насчет систем наград: их есть несколько. Можно выделить для простоты систему Propotional, в которой после нахождения блока награда за него делится пропорционально числу шар, высланным каждым участником, и PPS (pay per share), в котором каждая шара оплачивается по фиксированной цене, зависящей от текущей сложности.
Quote
пул заплатит стандартную стоимость шары, а остальное себе в карман.
Именно так, но за счет более длинных блоков в целом за период смены сложности будет нужно 100% решений за каждый блок.
naima53
Hero Member
*****
Offline Offline

Activity: 616
Merit: 502



View Profile
March 10, 2013, 04:07:05 PM
 #6

Quote
но чтобы все клиенты пула не считали одно и тоже. нужно как то разделить
1 задачу со сложностью 4367876 (для простоты предположим что все задачи сложности 1)
на  4367876 задач со сложностью 1.
Я так понял, что такого нет. Все майнеры пула считают одно и то же.

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

Donate me) 16f6iWHHkVEnDReeBQPT9GwCNwUfPTXrp2
rPman
Legendary
*
Offline Offline

Activity: 1120
Merit: 1069


View Profile WWW
March 10, 2013, 04:52:20 PM
 #7

Каждому воркеру пул и так раздает СВОЙ интервал для nonce, так что ничего доделывать  не надо. Невозможно подсунуть одну и ту же шару разным пулам/воркерам, хоть и говорят что все считают одно и то же, но у каждого воркера данные для вычислений - разные, и это легко проверяемо.

p.s. не нужно пытаться перехитрить алгоритм, единственно доступные для манипулирования с целью увеличения эффективности: для майнеров - уменьшить число опоздавших шар (до 1% у народа - норма, а для p2pool и подавно все 10%), для пула - выбрать удобный/'не совсем честный' алгоритм выплат, чтобы не попасть в долговую яму как с pps и длинными блоками и не платить за orpfaned блоки, или же покрутить настройки пула и повысить сложность шары с 1 до к примеру 64 - это уменьшит нагрузку на сеть и сервер в 64 раза за счет менее равномерного расчета скорости майнеров (повысит размер и частоту флюктуаций при оценке скорости, но в целом для пользователей ничего не изменится).

Здесь не может находиться ваша реклама Smiley
Protect a future of bitcoin, use p2pool
Donation in BTC: 19fv5yYtfWZ9jQNjx2ncmu1TTrvg5CczZe
DarkDog (OP)
Full Member
***
Offline Offline

Activity: 147
Merit: 100


View Profile
March 11, 2013, 02:31:24 AM
 #8

rPman, спасибо за ответы. почитал еще документ про GetWork. теперь все вроде понятно.
Ambassador30393
Newbie
*
Offline Offline

Activity: 3
Merit: 0


View Profile
March 11, 2013, 08: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?
DarkDog (OP)
Full Member
***
Offline Offline

Activity: 147
Merit: 100


View Profile
March 14, 2013, 12:49:43 PM
 #10

кстати как математически доказывается что при минимальной сложности
00000000ffff0000000000000000000000000000000000000000000000000000

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

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

или это утверждение неверно?
rPman
Legendary
*
Offline Offline

Activity: 1120
Merit: 1069


View Profile WWW
March 14, 2013, 01:00:16 PM
 #11

Такое доказательство будет фактически нахожденим алгоритма/обратной функции для хеша sha256.. на текущий момент решения нет.

Здесь не может находиться ваша реклама Smiley
Protect a future of bitcoin, use p2pool
Donation in BTC: 19fv5yYtfWZ9jQNjx2ncmu1TTrvg5CczZe
DarkDog (OP)
Full Member
***
Offline Offline

Activity: 147
Merit: 100


View Profile
March 14, 2013, 04:15:41 PM
 #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 да хотя б пару дней. (хотя вероятность этого конечно мала)

rPman
Legendary
*
Offline Offline

Activity: 1120
Merit: 1069


View Profile WWW
March 14, 2013, 07:49:59 PM
 #13

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

Здесь не может находиться ваша реклама Smiley
Protect a future of bitcoin, use p2pool
Donation in BTC: 19fv5yYtfWZ9jQNjx2ncmu1TTrvg5CczZe
DarkDog (OP)
Full Member
***
Offline Offline

Activity: 147
Merit: 100


View Profile
March 15, 2013, 02:52:46 AM
 #14

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

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

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

ну а для текущей сложности. кол-во подходящих хешей меньше. но и блоков перебирается больше. ( так как разное время транзакции).. чем собственно вся эта сеть с кучей терахешей/с и занимается Smiley
SectorZero
Legendary
*
Offline Offline

Activity: 1036
Merit: 1002



View Profile
March 18, 2013, 05:20:14 AM
 #15

примерно так и происходит

            ▄▄████▄▄
        ▄▄██████████████▄▄
      ███████████████████████▄▄
      ▀▀█████████████████████████
██▄▄       ▀▀█████████████████████
██████▄▄        ▀█████████████████
███████████▄▄       ▀▀████████████
███████████████▄▄        ▀████████
████████████████████▄▄       ▀▀███
 ▀▀██████████████████████▄▄
     ▀▀██████████████████████▄▄
▄▄        ▀██████████████████████▄
████▄▄        ▀▀██████████████████
█████████▄▄        ▀▀█████████████
█████████████▄▄        ▀▀█████████
██████████████████▄▄        ▀▀████
▀██████████████████████▄▄
  ▀▀████████████████████████
      ▀▀█████████████████▀▀
           ▀▀███████▀▀



.SEMUX
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
  Semux uses .100% original codebase.
  Superfast with .30 seconds instant finality.
  Tested .5000 tx per block. on open network
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
yo-blin
Legendary
*
Offline Offline

Activity: 2296
Merit: 1057



View Profile
March 18, 2013, 07:17:51 AM
 #16

Каждому воркеру пул и так раздает СВОЙ интервал для nonce, так что ничего доделывать  не надо. Невозможно подсунуть одну и ту же шару разным пулам/воркерам, хоть и говорят что все считают одно и то же, но у каждого воркера данные для вычислений - разные, и это легко проверяемо.
Нужно ли понимать что каждый пулл ведет у себя базу розданных для проверки майнерам nonce в рамках одного блока сети .
 

                __mmW████████mms_
            ,gW███████████████████Ws_
          gW█████████████████████████Ws.
        g███████████████████████████████s
      ,W█████████████████████████████████W.
     i████~*█████████████████████████A~████s
    i█████  '*█████████████████████A`  █████s
   ,██████    'M█████████████████A~    ██████i
   d██████      'M█████████████A~      ██████W
   ███████        'M█████████A~        ███████.
   ███████          'M█████A~          ███████[
   ███████     W_     'M█Af     ,W     ███████[
   ███████     ██W_     ~     ,W██     ███████`
   Y██████     ████W_       ,W████     ██████A
   '▀▀▀▀▀▀     ██████W.   ,m██████     ▀▀▀▀▀▀`
               ████████W_m████████
               ███████████████████.
      V███████████████████████████████████f
       '*███████████████████████████████A`
         '*███████████████████████████*`
            ~*█████████████████████*f`
               ~~*█████████████*f~
                      ~~~~~
..........

Monero (XMR)
ДОБРО ПОЖАЛОВАТЬ В РУССКОЯЗЫЧНОЕ СООБЩЕСТВО
.форум..telegram..youtube.
..........

.DON'T BUY MONERO,.
.IT'S BAD FOR BANKS...

Sign for rent, СОБИРАЮ МЕRIT! Smiley

NVC: 4YoBLincaRdAEG4v8tbZ4T26ZnKbT9SBsu
rPman
Legendary
*
Offline Offline

Activity: 1120
Merit: 1069


View Profile WWW
March 18, 2013, 09:34:15 AM
 #17

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

Здесь не может находиться ваша реклама Smiley
Protect a future of bitcoin, use p2pool
Donation in BTC: 19fv5yYtfWZ9jQNjx2ncmu1TTrvg5CczZe
sert
Sr. Member
****
Offline Offline

Activity: 439
Merit: 253


View Profile WWW
March 18, 2013, 11:05:48 AM
 #18

в рамках одного getwork запроса (между которыми от 1 до десятков секунд), я бы не называл это громким словом 'база данных', хранить это где то кроме оперативной памяти глупо.
Т.е. если в следующем getwork запросе еще раз отправить шары с предыдущего getwork-а, то хэшрейт и заработок увеличится в 2 раза?


Выходи в фиат, на столько битка, сколько не жалко потерять (c) Cubic Earth
rPman
Legendary
*
Offline Offline

Activity: 1120
Merit: 1069


View Profile WWW
March 18, 2013, 12:11:26 PM
 #19

Пул посчитает такие шары как invalid или staled, так как это легко проверяется.

Здесь не может находиться ваша реклама Smiley
Protect a future of bitcoin, use p2pool
Donation in BTC: 19fv5yYtfWZ9jQNjx2ncmu1TTrvg5CczZe
naima53
Hero Member
*****
Offline Offline

Activity: 616
Merit: 502



View Profile
March 18, 2013, 04:44:49 PM
 #20

Пул посчитает такие шары как invalid или staled, так как это легко проверяется.
А есле разослать их на десяток других пулов, "вдруг диапазон nonce" с одним из них совпадет? Не получится ли так что на этих 10 пулах будут почти одни stale, но определенный процент принятых шар все же будет?  Undecided

Donate me) 16f6iWHHkVEnDReeBQPT9GwCNwUfPTXrp2
Pages: [1] 2 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!