Страницы: Пред. 1 2 3 След.
RSS
Расчет хэша биткоин в excel
 
Цитата
AAF написал:
А какое правильное?
правильное с 18 нулями в начале хэша
кстати остановку макроса я делаю Esc+Shift
doevents я убрал, но количество хэшей в секунду не увеличилось примерно также ~7 в секунду, 100 хэшей за 14,8 секунд
 
Цитата
vbujym написал:
doevents я убрал, но количество хэшей в секунду не увеличилось
Значит там еще темный бескрайний лес..., по сравнению с которым даже DoEvens померкло.
 
vbujym, например:
Код
Sub Майнинг()
    Dim r As Variant: r = Range("B9").Value2
    Dim m As Variant: m = Range("B7").Value2

    Do
        m = Val(m) + 1    ' увеличиваем nonce на единицу
        DoEvents
    Loop Until r Like String(Len(r), "0")    ' до тех пор, пока строка в ячейке B9 не будет состоять из одних нулей
    Range("B7").Value2 = m

    ' если код дошел до этого места, - у нас всё получилось
    MsgBox "Ура, готово", vbInformation, "Не прошло и 1000 лет, как мы подобрали значение"
End Sub
 
vbujym, зачем вам Excel, если у вас есть asic s9? для того, что бы посмотреть как работает алгоритм, тогда зачем что-то оптимизировать в Excel, это дробина слону.
Максимум, что можно выжать из ПК это запихать все в библe на Си, подключить к ЦП+ видюху через CUDA запустить и пойти работать, заробатывать на asic s9, потому как за свет вы больше заплатите чем намайните. Хотя и в последнем случае вопрос открыт :) ИМХО
«Бритва Оккама» или «Принцип Калашникова»?
 
Цитата
bedvit написал:
за свет вы больше заплатите чем намайните
при цене на биткоин 16500$ цена электричества совершенно не волнует, это раз
бесплатное электричество на работе, это два
сейчас один asic s9 приносит 1000$ в месяц, это три и думаю достаточно этого, при цене майнера+блок в 1520$ плюс доставка 150$ и таможня 150$ все прекрасно!
https://www.cryptocompare.com/mining/calculator/btc?HashingPower=13.5&HashingUnit=TH%2Fs&...

просто интересно как это может делать excel  и какой у него потолок.
 
Цитата
bedvit написал:
зачем вам Excel
Excel здесь действительно не нужен, но похоже это вопрос психологический (Как говорил ТС, для понимания) привычка к интерфейсу видимо и пр.

vbujym, я только сейчас заглянул в файл, а у Вас там одни формулы!!!  8-0
Все что находится на листе Вам хотя б в массивах обрабатывать (как минимум), а все это выводить, только по достижению положительного результата. Т. е. лист будет формой отображения. К стати лучше UserForm нарисовать даже. Все что идет через ячейки при расчетах просто убивает время.

Напишите все эти формулы в VBA в порядке развития алгоритма с сохранением в переменные, а я Вам вывод прикручу.

Тут можно вообще скрипт нарисовать и запускать их сколько угодно параллельно пока память не заполнится.
Изменено: AAF - 14.12.2017 17:27:57
 
Цитата
AAF написал:
Напишите все эти формулы в VBA в порядке развития алгоритма с сохранением в переменные,
хорошая мысль, для полноты понимания процесса постараюсь, но на следующей неделе не раньше
 
Цитата
vbujym написал:
Тут можно вообще скрипт нарисовать и запускать их сколько угодно параллельно пока память не заполнится.
вот это интересный момент, куда копать по скриптам? я ни разу не делал

а разве будет смысл, ведь процессор также участвует в этом хэшировании?
Изменено: vbujym - 14.12.2017 17:36:58
 
Пишите в VBA, я перевод обеспечу...
Они смогут скидывать результат в лог, а в Excel при открытии файла лог будет высвечиваться, например...
Изменено: AAF - 14.12.2017 17:40:39
 
Цитата
vbujym написал:
бесплатное электричество на работе, это два
С этого надо было и начинать. А по цифрам я с вами не спорю, в текущих ценах это так (что, собственно, будет не всегда), но опять же Excel здесь никаким боком. А вот для понимания согласен. И да же готов перевести ваш код в библу на С++, если он будет понятен и прост и у меня будет время. Можно даже использовать библу, как  функцию в Excel.
«Бритва Оккама» или «Принцип Калашникова»?
 
Irregular Expression, строка не из всех нулей, а первые 18 символов нули
 
bedvit, со временем туговато, да. на следующей неделе не раньше смогу заняться, посмотрим может что и получится хорошее. когда код пишешь и плюс есть визуализация, может получится что-то и оптимизировать
 
ИМХО написана куча софта на эти цели, и мы не первые. Чисто на интерес можно посмотреть что выйдет, опять же если будет время. Возможно и AAF, будет участвовать.
«Бритва Оккама» или «Принцип Калашникова»?
 
Цитата
bedvit написал:
Чисто на интерес можно посмотреть что выйдет
Именно!
 
Возможно Irregular Expression, Игорь и другие участники заинтересуются, посмотрим... на предоставленный алгоритм...
«Бритва Оккама» или «Принцип Калашникова»?
 
Привет! я не вижу прямых операторов в vba hex2bin, честно нашел пару программистов на С которые сделают этот код для максимального расчета при помощи CPU, реально под конец года со временем очень туго, начинаю практиковать депривацию сна)
 
vbujym, да если б описали алгоритм (с оговорками) и то неплохо... :)
 
Цитата
vbujym написал:
программистов на С которые сделают этот код для максимального расчета при помощи CPU
подключайте к расчету и GPU. Это будет быстрее чем на CPU.
«Бритва Оккама» или «Принцип Калашникова»?
 
https://ru.wikipedia.org/wiki/SHA-2 - испчерпывающая инфа по SHA-256 (+псевдокод со всеми необходимыми переменными)
Изменено: vbujym - 29.01.2018 17:46:07
 
Появилось время глянул код:
1.Нет хедер файлов:
#include <ict/ict.h>
#include <ict/command.h>
и папки "ict/" тоже в вашем проекте (в стандартных тоже не нашел, если подскажите куда посмотреть - буду благодарен).
2.Это С++ (шаблоны, классы , std::)
3.Протестировать не удалось по причине №1 (открывал через студию мелкомягких), поэтому на глаз  - потоки не используются (к примеру на std::thread), однопоточный процесс.

Но за информацию спасибо, обычно только просят что-то сделать за них или решить, здесь же видно - человек делится полезной (кому-то действительно поможет в этой области) инфой.
Изменено: bedvit - 22.12.2017 11:22:05
«Бритва Оккама» или «Принцип Калашникова»?
 
Доброго времени суток!
Вот наконец выкроил время. Сразу говорю я не специалист в программировании, прошу не ругать меня)

Значит есть задача посчитать хэш SHA256 дважды (хэш исходного сообщения, затем хэщ хэша исходного сообщения)

Что мы получаем на вход:
-версия = 2
-хэш предыдущего блока
-корень Меркле (хэш списка транзакций) его конечно тоже нужно считать, но я пока сам не разобрался как именно он считается и как формируются данные для этого (для проверки алгоритма, достаточно будет использовать данные с blockchain.info/blocks)
-время в формате Unix (???) от 1 января 1970 года
-биты = 402691653 (текущая сложность сети, берется с того же blockchain.info/blocks, меняется примерно раз в 2 недели)
-nonce (случайное число, перебором которого и отыскивается значение хэша с начальными 18-ю нулями, в случае если состоялся перебор всех значений nonce и нужный хэш не был найден, можно менять корень Меркле (изменять количество транзакций например) или время создания блока (не ранее времени 3-го блока сзади цепочки и не более 2х часов вперед)

Все эти данные полученные на вход, переводятся в формат little endian (формат представления в архитектуре Х86): первые 2 символа встают назад строки, следующие два символа встают перед последними новыми символами, например: имеем строку 12 34 56 78, то формат little endian будет выглядеть: 78 56 34 12, пробелы поставил для удобства чтения.

Все значения версии, времени, бит и nonce конвертируются в формат HEX и затем little endian, хэш и корень Меркле уже в формате HEX, поэтому их нужно только перевести в формат little endian

Что мы можем сделать на этом этапе:

версия в формате HEX и little endian не изменяется и выглядит так: 00000020
биты в формате HEX и little endian на ближайшую примерно неделю выглядит так: 45960018

Таким образом наше сообщениt для получения хэша состоит из 6 строк символов (8 + 64 + 64 + 8 + 8 +8) = 160 символов
Пример исходного сообщения, на основе которого мы генерируем хэш (https://blockchain.info/ru/block/000000000000000000219d3816267a5dae1ba49cbf4559­9d3aa3ff56e3ebef4f):
00000020 7c5e4a46eae87580ecd25c8fc89ed77e1473d4da239c1300000000000000­0000 748dcd2ff595dcd2c04e5da34119bc5c754dc5ecb970e78b1ee6c343e5a6­c36c 3511415a 45960018 16ff6c88
для удобства чтения разделил пробелами: "version prevhash Mercle time bits nonce"

Исходное сообщение можно посмотреть в таблице на вкладке Main, прикрепленной к первому посту в этой теме. Далее идем на следующий пост ->>
 
Продолжаем далее:

Мы имеем исходное сообщение длиной 160 символов, в формате HEX
алгоритм хэширования SHA256 работает с 16-ю словами по 8 символов, поэтому нужно разбить исходное сообщение на слова по 8 символов, так как исходное сообщение 160 символов, а 16 слов по 8 символов это 128 символов, то к оставшимся 32 символам прибавляется строка:
Скрытый текст

действуя таким образом мы имеем две строки данных по 16 слов из 8 символов с которыми и производятся вычисления хэша sha256

сорри, продолжу завтра...
 
Цитата
vbujym написал:
переводятся в формат little endian
, это соглашение о Порядке байтов. Когда-то погружался в данную тему, когда начинал писать на С++. Вот интересная статья (в переводе)..
«Бритва Оккама» или «Принцип Калашникова»?
 
не актуально0
Изменено: vbujym - 31.01.2018 15:59:36
 
не актуально
Изменено: vbujym - 31.01.2018 15:56:40
 
как в с++ отформатировать переменную unsigned long int
теряются старшие нулевые биты и байты
на выводе и постопост в переменной должно быть 32 бита
 
ну и зачем просили заглянуть в тему? (думаю, не только мне сообщение такое пришло)

думаете, кто-то за вас этот код весь писать будет?
тем более, спецы понимают, что делать такое в Excel - неразумно, ввиду сверхнизкой производительности

Цитата
пытаюсь написать алгоритм на С++
а причем тут вообще форум по Excel?
 
Меня тоже попросили. Готов помочь, но в чем вопрос?
Цитата
vbujym написал:
отформатировать переменную unsigned long int
не понял вопроса. С++ (да и Си) это статистически типизированный язык. Хотя и есть приведение типов, что может быть выстрелом в ногу.
Изменено: bedvit - 31.01.2018 10:26:51
«Бритва Оккама» или «Принцип Калашникова»?
 
не актуально1
Изменено: vbujym - 31.01.2018 16:00:00
 
bedvit,    
на выводе нет нулей которые важны для проверки
подозреваю что и вбитовых операциях что то не так
с телефона крайне не удобно писать даже   здесь
Страницы: Пред. 1 2 3 След.
Наверх