Майнер Биткоин - страница 36

 
prostotrader:

Добил функционал автопереключения между алгоритмами, когда

"причешу" сам GUI, то выложу (может быть кому-то пригодится)



А какой принцип переключения алгоритмов?

 
Aleksey Vyazmikin:

А какой принцип переключения алгоритмов?


1. Тестируется скорость карты на КАЖДОМ алгоритме, данные записываются (постоянно).

2. Через API сервера, на котором майните, получаете расценки на каждый алгоритм с промежутком 30 сек.

3. Высчитываете прибыльность <расценка * скорость>

4. Выбирается самый лучший показатель.

 
prostotrader:

1. Тестируется скорость карты на КАЖДОМ алгоритме, данные записываются (постоянно).

2. Через API сервера, на котором майните, получаете расценки на каждый алгоритм с промежутком 30 сек.

3. Высчитываете прибыльность <расценка * скорость>

4. Выбирается самый лучший показатель.


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

 
Aleksey Vyazmikin:

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


Доходы очень сильно зависят от скорости, НО очень бвжен фактор как расцека за МН.

Весь мир - сплошние ячейки в той или иной области. :) 

 
Andy:

А родная программа от производителя работает по такому же принципу и в чем отличие вашей от нее?


Принцип был взят из оригинальной программы, просто та перестала работать :(

 

Мой "недодел" в работе...

 

 
anonymous:

1. На видеокартах конкретно BTC майнить невыгодно уже несколько лет. Даже стоимость электроэнергии не отобьется. Только топовые ASIC'и...

2. Если присоединитесь к крупному пулу - вознаграждение в сутки будет примерно равно <награда за блок> * <к-во блоков, добываемых в сутки> * <ваш хешрейт> / <общий хэшрейт сети> - <комиссия пула>.

Один блок генерится примерно раз в 10 минут. Вознаграждение за блок на текущий момент, если не ошибаюсь, 12.5 BTC; по мере добычи периодически уменьшается в 2 раза. Текущий хэшрейт сети ~10.6M THash/sec.

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

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

Опишите, пожалуйста, вкратце, что означает "сгенерить блок", какой алгоритм или, где об этом можно прочитать? Есть-ли пути оптимизации этого процесса? 
 

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

В эту базу данных (блокчейн) каждый десяток минут добавляется новая запись (блок), в блоке содержится информация о новых транзакциях со времени прошлого блока (для каждой транзакции - адрес откуда ушли биткоины, адрес куда пришли биткоины, и их количество).
Процесс генерации такого блока называется майнинг. Суть примерно такая - к этому списку транзакция применяется хэш функция sha256, в результате чего получается длинный хэш код. Для кода есть требование - у него в самом начале должно быть определённое количество нулей, и это количество зависит от текущего количества майнеров. Чем больше майнинг мощностей задействовано в мире - тем больше требуется нулей в хэш коде, так нужно для того чтобы среднее время генерации блока оставалось примерно одинаковым и не ускорялось.
Майнеры могут добавить к списку транзакций случайный номер для того чтобы результат хэш функции поменялся, и делают так до тех пор пока не получат нужное число нулей в хэше, в таком случае новый блок считается найденным, и синхронизируется со всеми остальными нодами в сети. В награду за найденный блок майнер получает комиссии с транзакций в этом блоке, и дополнительное число новых биткоинов.

Оптимизировать майнинг можно ускорив выполнение функции sha256, например используя видеокарту для расчётов вместо процессора, или специально созданный процессор который умеет считать только эту функцию (FPGA, ASIC).

Результат хэш функции полностью случаен, и вычислить нужное число нельзя, задача решается только брутфорсом. 
hash = sha256(transactions + random)
требование для hash - результат должен начинаться на определённое число нолей, например 0000000000000.....Z4lYFzZET4vE8OVtCNfKrgZY2wLZHCr
random - случайное число которое нужно перебирать

Больше информации там - https://en.bitcoin.it/wiki/Mining , и в ссылках в разделе "See Also"

 
Dr. Trader:

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

hash = sha256(transactions + random)

Не совсем так. Результат вычисления хэш-функции hash=sha256(data) детерминирован и может быть получен в соответствии с общеизвестным алгоритмом.

А вот _обратная_ функция data=sha256^-1(hash) настолько сложна, что в практических задачах и при реалистичных ограничениях на вычислительные ресурсы можно считать, что алгоритма её вычисления значительно более эффективного чем перебор не существует. Системы ограничений на значения data при обращении каждой итерации sha256 увеличиваются экспоненциально.

Yousufkhodja Sultonov:
Есть-ли пути оптимизации этого процесса? 

Общеизвестные вам рассказали выше. Можете попробовать поискать что-то новое и рассказать другим ;)

Парочку теоретически возможных атак на майнинг-пулы я вот здесь описал: https://www.mql5.com/ru/forum/217910/page8#comment_5941539 По головке за такое погладят, но разве что утюжком.
 

Работы по GUI замедлились, ввиду того, что HTTPs запросы

Res:= IdHTTP1.Get('https://api.nicehash.com/api?method=simplemultialgo.info');

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

Но работа движется (по-маленьку)


Причина обращения: