Перейти к публикации
daemon1

как найти блок, или почему кошелёк такой тупой ?

Рекомендованные сообщения

Добрый день.

предлагаю оставлять свои мысли по поводу майнинга (соло-майнинга) биткоин.

 

а вопросы простые :

1)кто придумывает уникальные задания для сгминёра?

2)как они придумываются

3)как они учитываются

4)как они отслеживаются

5)как появляются следующие

6)может старая схема не эффективна, и есть лучшие решения по нахождению блока ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Задание одно на всю сеть. Оно меняется при нахождении блока раз в 10 минут (в среднем).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я бы не удивился, если бы этот вопрос был задан в 2009-ом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

Задание одно на всю сеть.

Задание одно на каждый майнящий кошелек. От другого не подойдет. Иначе зохватить 100% сети было бы технически возможно и майнинг в текущем его виде не мог бы существовать.

 

 

 

может старая схема не эффективна, и есть лучшие решения по нахождению блока ?

Угу, старые решения, к сожалению, не эффективны. 3 мегаватта мощности, чтобы находить хотя бы блок в сутки... :suicide_fool-edit:

Теперь поможет только квантовый компутер <_<

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

не верно. хоть задание одно на всех кошельков, но что кошелёк нам предлагает для решения ?

он для каждого обращения выдаёт некий job, решив который мы можем получить шару определённой сложности. только если сложность нашего решения на выданную нам задачу job_id будет >= сложности сети, тогда нам засчитают блок.

 

вот и главный вопрос - какие 2 числа нам каждую секунду "ПРИДУМЫВАЕТ" кошелёк ? при наложении хеш функции (а по-просту сложении) мы получаем шару...

Изменено пользователем daemon1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

Задание одно на каждый майнящий кошелек

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

 

 

 

вот и главный вопрос - какие 2 числа нам каждую секунду "ПРИДУМЫВАЕТ" кошелёк ? при наложении хеш функции (а по-просту сложении) мы получаем шару...

первое "число" - это адрес, на который должны прийти монеты, а второе (подпись к блоку) кошелек не "подсовывает" а ждет таки от майнера.

"Шара" - это и есть кандидат в подпись к блоку.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@daemon1

Я тут как всегда с глупыми идеями влезу. А как насчет того, чтоб не размышлять и придумывать, а прочитать все в доках?

Описанное выше соло майнинга вообще мало касается, там и шар нет. Там или нашел решение, или нет.

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

 

Вот для начала сойдет: Биткоин изнутри для непонимающих если останутся вопросы, могу еще ссылок накидать.

 

Опять же очень упрощенно:

1. Пулсервер

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

3. Затраченная работа майнерами учитывается с помощью шар. Шара это найденный хэш не менее определенной сложности. По количеству шар после нахождения блока можно сказать. кто какой вклад внес при его нахождении и пропорционально разделить награду. например.

4. Не понял вопрос. Кто они и кем отслеживаются.

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

6. Чтобы придумать новую лучшую схему, стоит как минимум разобраться, как работает старая.

 

Если хочется понять глубже, то курите для начала доки по Getwork и stratum

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

Provokповторюсь: майнер сам ничего не решает. он запрашивает задание на работу от кошелька, и в ответ при выполнении задания отдаёт 1 число - шару (не считаея  доп.параметры типа номера работы, время и экстра нонсе.)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

Описанное выше соло майнинга вообще мало касается, там и шар нет

 

 

отдаёт 1 число - шару

:D

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

polym0rph я как раз и интересуюсь в разрезе протокола стратум для пула, т.к. кошелёк не поддерживает стратум само собой что цепочка выглядит так: кошелёк->пул->майнер->найденная шар->найденный блок (если соотв. сложность шары)

не понятно кто придумывает числа, из которых на выходе получаем шару ?


Lion74, ничего смешного. что ты знаешь, когда сгминёр тебе выдаёт такую строчку в соло майнинге, но через пул ?

 

 [2014-10-24 22:11:37] Accepted 020958f6 Diff 2.11G/512 BA1 3 pool 0

Изменено пользователем daemon1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@daemon1, нонсы придумывает и перебирает сам майнер.  Или о каких числах речь?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

речь идёт о входных параметрах для запроса работы (mining.notify) - кто их придумывает? понятно что половина это для текущего блока, который ищётся всей сетью. но остальные параметры откуда ?

 

результат будет отдан в виде mining.submit   .там и будет результат работы майнера в виде  шары. шары для конкретной работы !

 

и эту шару нельзя никому другому решить и выслать, со словами :  ну ка кошелёк, я решил задачу. условие: число 1 и число 2. результат такой-то ! почему ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@daemon1, почитайте это, по идее должен быть и русский перевод:

https://en.bitcoin.it/wiki/Block_hashing_algorithm

 

Собственно, самое свинство заключается в компоненте заголовка, который называется hashMerkleRoot, который представляет собой хэш всех транзакций, включенных в блок. Поэтому, при добавлении транзакций меняется и хэш, для чего приходится высылать майнерам новое задание гораздо чаще, чем раз в 10 минут. Это для честных пулов. Желающие "сэкономить" могут включать новые транзакции реже или вообще не включать (например, на Discus Fish периодически проскакивали блоки с одной транзакцией, начисляющей бабло на баланс).

 

 

 

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

Правильно, а этот адрес уникален. Более-менее отличается и набор включенных транзакций. А из-за этого уникален и исходник для хэширования. Поэтому говорить об "одном задании на всю сеть" никак нельзя. Одинаковый у них только таргет.

Изменено пользователем Tomcat_MkII

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

и эту шару нельзя никому другому решить и выслать, со словами : ну ка кошелёк, я решил задачу. условие: число 1 и число 2. результат такой-то ! почему ?

Как так нельзя, очень даже можно. По крайней мере, теоретически :D

Только блок получит тот кошелек, которому принадлежит забитый в него адрес получения монет. ;)

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Более того, время у всех чуть-чуть разное, так что даже с одним заголовком и одним нонсом один майнер найдет блок, а другой нет.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Tomcat_MkIIответ стратума будет такой: это неизвестное задание, я вам его не давал. результат не с чем сравнить. работа отклоняется.

 

 

{"id": 10, "result": null, "error": (21, "Job not found", null)}

 

Proposed error codes for mining service are:

  • 20 - Other/Unknown
  • 21 - Job not found (=stale)
  • 22 - Duplicate share
  • 23 - Low difficulty share
  • 24 - Unauthorized worker
  • 25 - Not subscribed
Изменено пользователем daemon1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
что ты знаешь, когда сгминёр тебе выдаёт такую строчку в соло майнинге, но через пул ?

 

это еще как? :o

 

..ааа..понял..типа свой пул с единственным майнером..

Изменено пользователем Lion74

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Lion74да, для работы через стратум.

но всё таки, ответишь как и что откуда берётся для работы ?  :rolleyes:

 

вот например,если отобрать задание для другого воркера, и самому его решить быстрее, то засчитать это будет невозможно! - знаешь как это "правильно" исправить ?

Изменено пользователем daemon1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

из той темы самое интересное:

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

Tomcat_MkII, ответ стратума будет такой: это неизвестное задание, я вам его не давал. результат не с чем сравнить. работа отклоняется.

При чем здесь какой-то стратум, если речь о соло майнинге? Стратум придуман исключительно для балансировки многопользовательского майнинга. И потом, мы обсуждаем теорию, а не конкретную реализацию:)

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

   просто практика такова, что соло майнинг теперь возможен исключительно на стратум протоколе, в виду скорости асиков !

   конкретней : кошелёк по GetWork может общаться на скоростях до 4 Гх\с - это сказал великий Бальтазар.  :ugeek:

для увеличения "пропускной" способности для кошелька (и для майнера) был придуман и реализован новый протокол - GetBlockTemplatе. если не изменяет мне память, великий авторитет говорил о приблизительной пиковой скорости  4 Пх\с.

   Но на практике применяется почему то Стратум, наверно потому что раньше был реализован  :mellow:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

просто практика такова, что соло майнинг теперь возможен исключительно на стратум протоколе, в виду скорости асиков !

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

для стратума, если нет ответа (work.submit) долгое время, скажем 1-2-5 минут, идёт запрос на work_restart.

или эта схема (request_work_restart) и есть своеобразный выход для обновления задания? 

 

а по подробней, как это "можно нонс и время крутить, этого должно хватать." ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@daemon1, Майнер получил задание. Прокрутил все нонсы, не нашел. Вариант один - брать с пула новое задание, или вариант два - крутануть время и дальгше по тем же нонсам искть. Для майнера выгоднее второе. Пул результат все равно примет, он же не знает точного времени на клиенте. Главное только смену блока не пролапухать, чтобы в пустую не молотить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×