Перейти к содержимому
geregtigheid

Возможен ли майнинг на две ноды? или "можно ли намайнить в два раза больше?"

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

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

 

Возьмем, для примера ethminer.

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

 

Возьмем конкретный пример. Пул выдал майнеру сложность 10 лямов, либо

target "000000006df37f675ef6eadf5ab9a2072d44268d97df837e6748956e5c6c2117"

Все шары, которые выше по сложности (хеш меньше чем target), отправляются на пул, и оплачиваются по цене target'a в случае PPS и пр. варианты, в целом, не это важно.

 

На момент написания, сложность шары для подписания блока должна иметь значение немногим ниже чем "000000000005....", лишние знаки я опустил, если это будут ноли, то этот таргет будет отвечать сложности 56'294'995'342'131 - немного больше текущей сложности.

 

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

 

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

 

Кто вкурсе, делитесь инфой :)

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


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

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

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


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

Большое спасибо за ответ. Теперь я буду спать спокойно :P

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


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

И даже более чем, по запросу eth_getWork, две разные ноды с одинаковым etherbase (кошельком для зачисления награды) выдают на одном и том же блоке разные значения "current block header pow-hash"

 

Интересно, что они туда еще подмешивают, помимо кошелька..

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


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

 

 

Интересно, что они туда еще подмешивают, помимо кошелька..

дату+время+список транзакций (а чужие транзакции можно включать избирательно в зависимости от комиссии)

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


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

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

 

Случайное число разве что..? Не нашел, где бы это задокументировано было

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

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


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

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

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


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

Да вот нету там диапазона, там только три параметра:

32 Bytes - current block header pow-hash, 32 Bytes - the seed hash used for the DAG.,32 Bytes - the boundary condition ("target"), 2^256 / difficulty.

Справка

 

При чем одна нода выдает постоянно одни и те же параметры по запросу eth_getWork. И меняется "current block header pow-hash" только с поступлением нового блока..

 

Смотрю так:

geregtigheid@geregtigheid:~$ curl http://127.0.0.1:8545 --data '{"jsonrpc":"2.0","method":"eth_getWork"}'

{"id":null,"jsonrpc":"2.0","result":["0xc3d48532d8e94906ce6ca4f6cadadaf19ed20426a9523651d09c33a2625b8441","0xa1cf12393876a9e30788eb582aeea764ad71d6b2419f2c6b35706ec60b49c85c","0x00000000000645f714f1fa085dfff2f49f831f4d80d1127a5aa2cab419cf09fe"]}

 

Если запрос делать уже через прокси подключенной к этой ноде, те же яйца, только разный таргет.

А вот если уже и прокси выдает одно и то же, то совсем страшно, как изолированные друг от друга фермы защищены от перебора дубликатов...

 

 

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


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

А вот если уже и прокси выдает одно и то же, то совсем страшно, как изолированные друг от друга фермы защищены от перебора дубликатов...

Защищены тем, что диапазон подбора слишком велик, чтобы одинаковые nonce были.

Как то несколько месяцев назад брал статистику за много месяцев работы пула. Ни одной одинаковой nonce не попалось, причём за все блоки.

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


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

Какая-то защита то есть, у меня к прокси несколько подключений и они не считают одни и те же шары.

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

 

Эксперимент с двумя нодами показывает, что набор параметров getwork разный даже на клонированных нодах в пределах одного сервера. А считается по ним один и тот же блок.. Так что защищаться разным "current block header pow-hash" для разных ферм также можно, но его смена с каждым запросом в пределах одной ноды не реализована..

 

 

Много вопросов разрешилось бы, если б был где опубликован алгоритм генерации "current block header pow-hash"..

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

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


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

Защищены тем, что диапазон подбора слишком велик, чтобы одинаковые nonce были.

Как то несколько месяцев назад брал статистику за много месяцев работы пула. Ни одной одинаковой nonce не попалось, причём за все блоки.

 

Интересный момент, если я не ошибся в рассчетах, весь диапазон nonce перебирается текущей мощностью сети(3450 Gh/s) за 2 месяца.

Так что, если бы не домешали других переменных для перебора, мы бы уже все посчитали :)

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


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

Интересный момент, если я не ошибся в рассчетах, весь диапазон nonce перебирается текущей мощностью сети(3450 Gh/s) за 2 месяца.

Так что, если бы не домешали других переменных для перебора, мы бы уже все посчитали :)

 

тогда была совсем другая мощность, на порядок меньшая.

А сейчас даже если будет одинаковый нонсе, то точно не для одного блока.

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


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

тогда была совсем другая мощность, на порядок меньшая.

А сейчас даже если будет одинаковый нонсе, то точно не для одного блока.

 

Так проблемы нет в вероятности получения одинакового nonce в разных блоках. Каждые 15 секунд с новым блоком меняется block header pow-hash который уже в примеси с одним и тем же nonce будет давать разные хеши.

 

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

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


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

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

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

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

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

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

Войти

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

Войти сейчас


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

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

×