18 июля 2010, 1:28:50 PM   # 1
 
 
Сообщений: 53
Цитировать по имени
цитировать ответ
по умолчанию Re: Faster SHA-256, MSVC сборки

Взлом Биткоин адресов.
500 Биткоинов взломаны в "мозговом кошельке" с паролем "bitcoin is awesome"
Адрес кошелька: 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE
Приватный ключ: 5J64pq77XjeacCezwmAr2V1s7snvvJkuAz8sENxw7xCkikceV6e
подробнее...


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Я сумел создать зависимости и построить Bitcoin с MS Visual C ++ 2008 Express Edition. Я дам 2010 попробовать на некоторое время.

Существует обычай класс Распределителя в serialize.h, secure_allocator, которая не в состоянии построить с неотладочным выполнением выбранным. Это мое понимание классов распределителей требуется конструктор шаблонов копирования, я приложил небольшой патч, который решает эту проблему.

Как было отмечено Satoshi в другом месте, сборка MSVC действительно значительно медленнее хаш / s-накрест (более чем в два раза), чем скомпилированные один (MinGW?), Даже если я включил самые высокие параметры уровня оптимизации, а также глобальную оптимизацию с генерацией канального кода времени , Я считаю, что результат странно, так как MSVC не известно, имеют значительно хуже, чем оптимизатор ССЗ. Скорее всего, эта проблема может быть прослежена к модулю ша, который извлекается из Crypto ++. Я нахожу в Crypto ++ SVN там исправленные версии модуля, включая x86 / x64 сборки для SHA-256. Использование новых версий будет включать реинтеграцию их зависимости, хотя. На этой ноте, почему не мы используем SHA-2 функции хеширования OpenSSL вместо? Поскольку мы уже используем OpenSSL, это было бы лучшим решением, чем вручную поддерживать модуль SHA из другой библиотеки.
dkaparis сейчас офлайн Пожаловаться на dkaparis   Ответить с цитированием Мультицитирование сообщения от dkaparis Быстрый ответ на сообщение dkaparis


Как заработать Биткоины?
Без вложений. Не майнинг.


18 июля 2010, 9:24:09 PM   # 2
 
 
Сообщения: 364
Цитировать по имени
цитировать ответ
по умолчанию Re: Faster SHA-256, MSVC сборки

Получил 1806 Биткоинов
Реальная история.





OpenSSL не имеет интерфейс для делать только низкий уровень сырьевой блок хэш часть SHA256. SHA256 начинается с упаковки данных в специальном формате буфера. Настройка буфера занимает на порядок больше, чем фактическое хеширования, если вы только хеширования один или два блока, как мы делаем. Это предполагается, что время амортизируется, если вы хэширование много КБ или МБ данных. В BitcoinMiner мы форматировать буфер один раз и многократно использовать его.

Если вы можете найти код SHA256, что быстрее (с MinGW / GCC), чем то, что у нас есть, это было бы действительно здорово! (Хотя, имейте в виду лицензирование) Тот, у нас есть только один я пытался, так что есть существенный шанс для улучшения.

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

(Надеюсь, вы не возражаете, я переименовал свою нить, оптимизация SHA-256 является то, что важно, что я забываю о)
Satoshi сейчас офлайн Пожаловаться на Satoshi   Ответить с цитированием Мультицитирование сообщения от Satoshi Быстрый ответ на сообщение Satoshi

20 июля 2010, 10:20:05 PM   # 3
 
 
Сообщений: 17
Цитировать по имени
цитировать ответ
по умолчанию Re: Faster SHA-256, MSVC сборки

Вы можете попробовать реализацию SHA2 от: http://polarssl.org/

С помощью простого теста в Visual Studio 2008 напряженного цикла, выполняющего функцию хеширования она смогла хэширования на 1.5x скорости, что Bitcoin делает.
Blackeye сейчас офлайн Пожаловаться на Blackeye   Ответить с цитированием Мультицитирование сообщения от Blackeye Быстрый ответ на сообщение Blackeye

20 июля 2010, 10:37:53 PM   # 4
 
 
Сообщений: 70
Цитировать по имени
цитировать ответ
по умолчанию Re: Faster SHA-256, MSVC сборки

Вы можете попробовать реализацию SHA2 от: http://polarssl.org/

С помощью простого теста в Visual Studio 2008 напряженного цикла, выполняющего функцию хеширования она смогла хэширования на 1.5x скорости, что Bitcoin делает.

действительно? Я изо всех сил, чтобы увидеть, как это осуществление могло бы быть быстрее.
Olipro сейчас офлайн Пожаловаться на Olipro   Ответить с цитированием Мультицитирование сообщения от Olipro Быстрый ответ на сообщение Olipro

20 июля 2010, 10:50:28 PM   # 5
 
 
Сообщений: 17
Цитировать по имени
цитировать ответ
по умолчанию Re: Faster SHA-256, MSVC сборки

Сколько байт это Bitcoin обычно хэш каждый раз?

редактировать
Оказывается, если я смотрю на источнике правильно, что Bitcoin делает 2 хэш и кучу других вещей, и только считает это как 1-хэш. Это означает, polarssl, вероятно, не быстрее, чем.
Blackeye сейчас офлайн Пожаловаться на Blackeye   Ответить с цитированием Мультицитирование сообщения от Blackeye Быстрый ответ на сообщение Blackeye

20 июля 2010, 11:30:35 PM   # 6
 
 
Сообщений: 70
Цитировать по имени
цитировать ответ
по умолчанию Re: Faster SHA-256, MSVC сборки

Сколько байт это Bitcoin обычно хэш каждый раз?

насколько я могу видеть, что хэш 16 байт за один раз, то число 16-байтовых блоков для обработки является переменной величиной, проверьте main.cpp
Olipro сейчас офлайн Пожаловаться на Olipro   Ответить с цитированием Мультицитирование сообщения от Olipro Быстрый ответ на сообщение Olipro

21 июля 2010, 9:21:58 PM   # 7
 
 
Сообщений: 17
Цитировать по имени
цитировать ответ
по умолчанию Re: Faster SHA-256, MSVC сборки

Дальнейшее изучение источника становится ясно, что хеширование выполняется в блоках по 64 байт. Я был в состоянии взломать функции SHA256 из PolarSSL и получил его, чтобы сделать блок хэширование так же, как текущий код, с о повышении скорости 10%. Я проверил хэш производства являются одинаковыми.

Я взял ввергнуть и получил все зависимость вместе и скомпилирован Bitcoin себя, чтобы попытаться получить новое хэширование на месте. Странно, что вы говорите, что сборка MSVC снижает производительность хеширования, как я нашел, что это увеличивает его. Я использую Visual Studio 2008 Standard на двухъядерной машине 32-битной, так что, возможно, что-то делать с этим. Я пошел от ~ 1000khash / сек со сборкой с сайта Bitcoin, до ~ 1350khash / сек, просто компиляции исходного с Visual Studio 2008, до ~ 15000khash / сек с Visual Studio 2008 с использованием функции PolarSSL хэширования.

редактировать - последний двоичный 2010-07-22
Вы можете получить мою сборку здесь: http://www.filedropper.com/bitcoin-032_3
Вы будете нуждаться в Visual Studio 2008 распространяемый для запуска, так что если он выходит из строя сразу или жалуется на неправильной конфигурации вы должны установить это. Она включает в себя модифицированные источники. Я использовал последнюю BDB, который, кажется, чтобы обновить формат базы данных, так что вы не можете вернуться к старому клиенту, потому что он не может открыть новую базу данных. Я предлагаю вам сохранить вашу базу данных, прежде чем попробовать этот билд, если вы хотите, чтобы вернуться позже.
Blackeye сейчас офлайн Пожаловаться на Blackeye   Ответить с цитированием Мультицитирование сообщения от Blackeye Быстрый ответ на сообщение Blackeye

21 июля 2010, 10:15:01 PM   # 8
 
 
Сообщения: 1484
Цитировать по имени
цитировать ответ
по умолчанию Re: Faster SHA-256, MSVC сборки

В идеале, Bitcoin должен быть хэширования в CPU cacheline размера, cacheline выровненных кусков (обычно 64 байта).

Кроме того, на современных процессорах, вы можете выдать "упреждающего" как это

     в то время как (есть байты)
          предварительная выборка (индекс + 1)
          sha256 (индекс)

которые потенциально могут ускорить работу.

Оба Linux и Windows, компиляторы могут генерировать предварительную выборку. GCC предоставляет встроенные команды для этого.
jgarzik сейчас офлайн Пожаловаться на jgarzik   Ответить с цитированием Мультицитирование сообщения от jgarzik Быстрый ответ на сообщение jgarzik

22 июля 2010, 4:43:39 AM   # 9
 
 
Сообщений: 70
Цитировать по имени
цитировать ответ
по умолчанию Re: Faster SHA-256, MSVC сборки

Был вопрос с хэшированием нескольких блоков в двоичном выше. Я исправил источник на данный момент, но я не буду быть в состоянии составить новый бинарный файл до завтра. Вот исправленный источник для тех, кто заинтересован.
http://www.filedropper.com/bitcoin-032_2

Я дал ему попробовать с помощью x64 Intel компилятор с полной оптимизацией, производительность практически идентичен алгоритму акций, на самом деле новый алго кажется немного хуже.
Olipro сейчас офлайн Пожаловаться на Olipro   Ответить с цитированием Мультицитирование сообщения от Olipro Быстрый ответ на сообщение Olipro

22 июля 2010, 12:15:01 PM   # 10
 
 
Сообщений: 17
Цитировать по имени
цитировать ответ
по умолчанию Re: Faster SHA-256, MSVC сборки

32 бит сборка работает на 32 битной систему с новым алгоритмом, безусловно, быстрее, чем базовый алгоритм. Я запустил его на 3-х различных систем, и все показали улучшение.
Blackeye сейчас офлайн Пожаловаться на Blackeye   Ответить с цитированием Мультицитирование сообщения от Blackeye Быстрый ответ на сообщение Blackeye

22 июля 2010, 12:43:24 PM   # 11
 
 
Сообщений: 53
Цитировать по имени
цитировать ответ
по умолчанию Re: Faster SHA-256, MSVC сборки

Я взял ввергнуть и получил все зависимость вместе и скомпилирован Bitcoin себя, чтобы попытаться получить новое хэширование на месте. Странно, что вы говорите, что сборка MSVC снижает производительность хеширования, как я нашел, что это увеличивает его. Я использую Visual Studio 2008 Standard на двухъядерной машине 32-битной, так что, возможно, что-то делать с этим. Я пошел от ~ 1000khash / сек со сборкой с сайта Bitcoin, до ~ 1350khash / сек, просто компиляции исходного с Visual Studio 2008, до ~ 15000khash / сек с Visual Studio 2008 с использованием функции PolarSSL хэширования.

Это озадачивает. Вы не возражаете, отправляя Makefile / проект, используемый для создания оригинала?
dkaparis сейчас офлайн Пожаловаться на dkaparis   Ответить с цитированием Мультицитирование сообщения от dkaparis Быстрый ответ на сообщение dkaparis

22 июля 2010, 1:31:56 PM   # 12
 
 
Сообщений: 17
Цитировать по имени
цитировать ответ
по умолчанию Re: Faster SHA-256, MSVC сборки

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

Если вы используете Edition Express для компиляции, убедитесь, что читать эта нить на MSDN.
Blackeye сейчас офлайн Пожаловаться на Blackeye   Ответить с цитированием Мультицитирование сообщения от Blackeye Быстрый ответ на сообщение Blackeye

22 июля 2010, 5:22:15 PM   # 13
 
 
Сообщений: 70
Цитировать по имени
цитировать ответ
по умолчанию Re: Faster SHA-256, MSVC сборки

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

Если вы используете Edition Express для компиляции, убедитесь, что читать эта нить на MSDN.

немного стыда вы связаны его против BerkeleyDB5, что сломается базой данных каждого, если они пожелают вернуться на фондовых сборки.
Olipro сейчас офлайн Пожаловаться на Olipro   Ответить с цитированием Мультицитирование сообщения от Olipro Быстрый ответ на сообщение Olipro

22 июля 2010, 6:37:30 PM   # 14
 
 
Сообщений: 17
Цитировать по имени
цитировать ответ
по умолчанию Re: Faster SHA-256, MSVC сборки

Да, мой пост ясно говорит, что я использовал последнюю BDB, который будет обновлять формат базы данных, и вы должны сделать копию базы данных заранее. Я просто использовал последний релиз с сайта Oracle, и я не вижу каких-либо требований версии в документации о составлении Bitcoin. Если вы посмотрите на примечания к выпуску BDB, там было много ошибок раздавленных начиная с версии 4.7.x независимо от Bitcoin в настоящее время используется. Что было обоснование использования устаревшей версии официального релиза?

редактировать
Вот релиз статически связан с BDB 4.7.25, так что не будет никаких проблем с версиями баз данных.
http://www.filedropper.com/bitcoin-032_4
Blackeye сейчас офлайн Пожаловаться на Blackeye   Ответить с цитированием Мультицитирование сообщения от Blackeye Быстрый ответ на сообщение Blackeye

25 июля 2010, 8:36:03 AM   # 15
 
 
Сообщений: 53
Цитировать по имени
цитировать ответ
по умолчанию Re: Faster SHA-256, MSVC сборки

Нашли виновного. Я оставил в / Ob0 варианта от первоначального Makefile, который, очевидно, привел к ужасной производительности я получал. При правильной настройке, в VC ++ построить действительно быстрее. Эта возня с Makefiles является одним из основных хлопот, я собираюсь предложить преобразования в CMake в другом посте.

Что касается функции SHA-256, мы можем:

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

2) принимает код SHA-256 из более поздних выпусков Crypto ++; версия асмовой в настоящее время доступна; мы имеем возможность либо извлекать функциональность из модулей и интегрировать его в Bitcoin источника, в настоящее время осуществляется, что не было бы тривиальна для всех зависимостей модуля SHA, или использовать библиотеку полного Crypto ++ как зависимость. Никто не сделал или еще, насколько я знаю, так что не ясно, насколько быстрее будет. Более интересно, я обезжиренные журналы изменений и существует различные исправления в ша модуле Crypto ++ s, а также. Я не уверен, если есть какие-либо серьезные проблемы с кодом Bitcoin в настоящее время используется, хотя.

3) Интеграция кода из PolarSSL, как Blackeye сделал. Он утверждает, что 50% Хаш / с увеличением с этим кодом.

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

Я мог бы сделать это рефакторинг, создавать модульные тесты для хеширования и обеспечить заплаты. Тогда мы можем более свободно экспериментировать с модернизацией реализации ша. Satoshi и / или кому интересно, оставьте свои мысли.
dkaparis сейчас офлайн Пожаловаться на dkaparis   Ответить с цитированием Мультицитирование сообщения от dkaparis Быстрый ответ на сообщение dkaparis

25 июля 2010, 10:12:23 PM   # 16
 
 
Сообщений: 17
Цитировать по имени
цитировать ответ
по умолчанию Re: Faster SHA-256, MSVC сборки

Я был в состоянии интегрировать функциональность SHA256 от Crypto ++ 5.6.0 в Bitcoin. Это самый быстрый SHA256 еще используя код сборки SSE2. Поскольку Bitcoin отправлял невыровненные данные функции блока хэширования, я должен был изменить команду MOVDQA к MOVDQU.

Я думаю, что с помощью функции SHA256 от Crypto ++ 5.6.0 это путь вперед прямо сейчас.

http://www.filedropper.com/bitcoin-033
Blackeye сейчас офлайн Пожаловаться на Blackeye   Ответить с цитированием Мультицитирование сообщения от Blackeye Быстрый ответ на сообщение Blackeye

25 июля 2010, 10:26:36 PM   # 17
 
 
Сообщений: 53
Цитировать по имени
цитировать ответ
по умолчанию Re: Faster SHA-256, MSVC сборки

Отличная работа.

Можете ли вы предоставить патчи против текущей SVN?
dkaparis сейчас офлайн Пожаловаться на dkaparis   Ответить с цитированием Мультицитирование сообщения от dkaparis Быстрый ответ на сообщение dkaparis

25 июля 2010, 11:55:53 PM   # 18
 
 
Сообщения: 1246
Цитировать по имени
цитировать ответ
по умолчанию Re: Faster SHA-256, MSVC сборки

Легко для NEWB, чтобы попробовать этот материал?
FreeMoney сейчас офлайн Пожаловаться на FreeMoney   Ответить с цитированием Мультицитирование сообщения от FreeMoney Быстрый ответ на сообщение FreeMoney

26 июля 2010, 3:48:33 AM   # 19
 
 
Сообщений: 70
Цитировать по имени
цитировать ответ
по умолчанию Re: Faster SHA-256, MSVC сборки

Я был в состоянии интегрировать функциональность SHA256 от Crypto ++ 5.6.0 в Bitcoin. Это самый быстрый SHA256 еще используя код сборки SSE2. Поскольку Bitcoin отправлял невыровненные данные функции блока хэширования, я должен был изменить команду MOVDQA к MOVDQU.

Я думаю, что с помощью функции SHA256 от Crypto ++ 5.6.0 это путь вперед прямо сейчас.

http://www.filedropper.com/bitcoin-033

является ли это x86 ASM? Я Вытряхивал на x64 ассемблер и интегрировал его и производительность оказалась бы ничего не хватают вздутий.
Olipro сейчас офлайн Пожаловаться на Olipro   Ответить с цитированием Мультицитирование сообщения от Olipro Быстрый ответ на сообщение Olipro

26 июля 2010, 10:45:53 AM   # 20
 
 
Сообщений: 84
Цитировать по имени
цитировать ответ
по умолчанию Re: Faster SHA-256, MSVC сборки

Привет, народ,
что о cryptoengines, доступной на некоторых архитектурах? Т.е. PADLOCK на процессоре VIA (да, это очень медленный процессор, но есть инструкции навесного замка)? Насколько я знаю, SHA-256 опирающуюся увеличен аппаратными средствами и должен быть быстрым. Последние версии OpenSSL могут извлечь выгоду из аппаратного двигателя, поэтому, если он используется вместо вашей собственной реализации SHA-256 вы можете ускорить программу без решения низкоуровневых деталей.

С Уважением,
Фалькенберг сейчас офлайн Пожаловаться на Фалькенберг   Ответить с цитированием Мультицитирование сообщения от Фалькенберг Быстрый ответ на сообщение Фалькенберг



Как заработать Биткоины?

Bitcoin Wallet * Portefeuille Bitcoin * Monedero Bitcoin * Carteira Bitcoin * Portafoglio Bitcoin * Bitcoin Cüzdan * 比特币钱包

bitcoin-zarabotat.ru
Почта для связи: bitcoin-zarabotat.ru@yandex.ru

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW