Перейти к содержанию

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


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
Ссылка на комментарий
Поделиться на другие сайты

@daemon1,..вот тут товарищ примерно этим же озадачился https://bitcointalk.org/index.php?topic=151134.0;wap2

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

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

 

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

 

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

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

 

 

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

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

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

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

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

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

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

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

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

 

 

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

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

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

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

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

 

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

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

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

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

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
×
×
  • Создать...