Привет ребята! Добавлено: начал в excel продолжаю в с++
Есть такая табличка (в приложении) рассчитывает хэш биткоина Хотелось бы сделать цикл такой Изменять значение Nonce пока начало хэша не будет равно 18 нулям В табличке я выделил изменяемое значение зеленым, а требуемое условие (18 нулей в начале) желтым
Я вижу это так:
Код
do while I15 <> 000000000000000000 (18 zero) // делаем пока не будет выполнено условие
B7 = n + 1 // параметр n желательно вынести в отдельную ячейку, шаг +1
loop
vbujym, присоединяюсь к предыдущему оратору, плюс позволю себе побыть кэпом и обратить Ваше внимание на особенности использования типов данных в Excel. А именно, все ячейки хранят числовые значения, как Double, целочисленные типы из VBA при записи в ячейку преобразуются в Double и округляются до нужного числа знаков. Догадываетесь, какие проблемы это порождает для вычислений вроде Ваших?
Do While Not I15 = "000000000000000000" ' (18 zero)
B7 = n + 1
Loop
Но только смысла нет в нем, пока не ясна задача. А майнить на VBA это треш Минимум пару видюх (лучше Модулей FPGA, или стойка ASIC-процессоров), программное обеспечение, ну или самописное, но явно не на VBA Но по-моему дома смысла мало, нужно было так лет 5 назад, а то и поболее... хотя я давно отстал от темы... Но понимаю курс растет, народ увлекается..
vbujym написал: параметр n желательно вынести в отдельную ячейку
С таким подходом Вы похоже совсем никуда не торопитесь... Каждый шаг будет стоить по времени отображения на экране больше, чем операция n+1 во много раз больше. И зачем только фермы строят...? Хотя, если серьезно, то объясните пожалуйста суть задачи, а то таблицы весьма безлики, они как и деньги не пахнут...
Про майнинг: у меня стоит asic s9, это кому интересно про фермы Про цель: просто интересно посмотреть как это все происходит Про целочисленные значения: сравнение можно производить по типу данных, а-ля '000 000 000 000 000 000' пробелы специально поставил
суть задачи получить список: при nonce "____" hash "____"
подскажите хотя бы куда копать, точно уверен, что реализовать можно, решил обратиться к более знающим Excel товарищам за помощью, т.е. к Вам
Ребят, асик работает и без excel!!! вставил провод, вбил кошелек, пул и все работает, причем тут действительно excel По поводу асиков и прочего майнинга есть соответствующие форумы, а также ЛС, при всем уважении!
Минимум Нобелевская! По теме идеи какой? Майнинг? Своем мнение написал выше. А по поводу вашего вопроса, лично я так и не понял ваших целей/задач реализуемых в Excel.
bedvit написал: А по поводу вашего вопроса, лично я так и не понял ваших целей/задач реализуемых в Excel.
цель ясна как небо в солнечный день:
есть таблица, есть данные, есть изменяемое поле, есть хэш как организовать некое действие (которое и требуется реализовать в коде VBA Excel или другим способом) чтобы данная таблица искала нужный хэш. Что непонятного? меняем поле nonce и получаем новый хэш, отсеиваем не соответствующий условию (первые 18 знаков нули)
Sub Майнинг()
Do
Range("B7") = Val(Range("B7")) + 1 ' увеличиваем nonce на единицу
DoEvents
Loop Until Range("B9") Like String(Len(Range("B9")), "0") ' до тех пор, пока строка в ячейке B9 не будет состоять из одних нулей
' если код дошел до этого места, - у нас всё получилось
MsgBox "Ура, готово", vbInformation, "Не прошло и миллиона лет, как мы подобрали значение"
End Sub
ага, спасибо огромное, код действительно простой. у меня на одном потоке считает примерно 7 хэшей в секунду))))) в 4 потока будет 28, а программка на с++ давала 37 хэшей в секунду, но я тогда не смотрел сколько потоков. Игорь, AAF, Спасибо огромное за код!
doevents можно убрать, будет быстрей, он вставлен для остановки по требованию и не стоит делать прогон обязательно через ячейку, но отображение тоже станет не в реальном времени, кстати...
Да было бы интересно узнать что за поток. Мне интересно, как здесь используется VBA. Как по мне, в майнинге каждый такт каждого чипа дорог (макс. производительность на киловатт энергии). VBA - транслируемый код, + однопоточный, + работает с ЦП (не знаю механику работы на asic s9, отдельное ли это вычислительное ядро или как для видюхи нужен спец софт, да же если писать на Си, к примеру СUDA, но подозреваю VBA на нем не сможет что либо делать, там ведь сотни процессоров/чипов - это многопараллельный интерфейс) И не совсем понятно что за
bedvit, в майнинге — да, в майнерах — нет. VBA — непаханое поле для создания и распространения офисной малвари, которая будет делать медленный софт ещё медленнее и тихо-мирно считать хэши. Никаких нативных api, никакого вирусоподобного поведения, выдающих макровирусы. Пусть даже считать макромайнер будет на порядок-другой медленнее сишного, зато и спалить его особо не на чем. Окучив n-e количество офисов и убрав из кода работу с ячейкой, можно вполне иметь профит. Но, я надеюсь, у топикстартера более благородная цель:).
Irregular Expression, да же не представляю как это может работать И насколько на офисном барахле (серваки не считаем, там все хорошо админится) можно что-то сделать (доступ к интернету, отключение безопасности макросов и т.д.). Очевидно asic s9 с его 189 процессоров/чипов и 13,5 TH/s (терахешей в секунду, т.е. 10 в 12 степени в секунду) просто и непринужденно сделает весь офисный центр Москвы Могу ошибатся, т.к. не в теме.
Irregular Expression написал: Но, я надеюсь, у топикстартера более благородная цель:).
абсолютно не преследую такой цели цель данного файла простое понимание и визуализация работы алгоритма sha256, плюс можно поиграться с диапазонами nonce
Цитата
AAF написал: вопрос в определении сущности потока?
имею ввиду, что excel использует только один процессор из 4, в диспетчере задач 25%
Цитата
AAF написал: не стоит делать прогон обязательно через ячейку, но отображение тоже станет не в реальном времени, кстати...
1. Запись в ячейку занимает кучу времени 2. Обновление экрана тоже Если можно было бы выводить, скажем каждый сотый раз, то 99 изменений происходили бы значительно быстрее.