Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
22 августа 2016, 7:32:16 PM   # 1
 
 
Сообщения: 2
Цитировать по имени
цитировать ответ
по умолчанию Re: Bitcoin профилирования результатов

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


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
привет к все

случай:
Исследование производительности - использование процессора.

результат:
1. Около 35% процессорного времени используется на SHA-256 вычислений.
2. Примерно 17% используется при добавлении новых блоков в blockchain.

Вывод:
На самом деле вычисление SHA-256 является своего рода медленный, и после улучшения этого являются производительность приложения может быть улучшено очень много. Как выглядит сейчас это можно сделать в 10 раз быстрее, с готовностью, которая могла бы ускорить всю систему Bitcoin очень.

сомнения:
Я думал, Yupieee! Давай сделаем это! Используйте более быстрый ша реализации! Но потом я начала сомневаться: Вероятно, есть причина, почему текущая реализация сохраняется (вместо того, чтобы использовать что-то вроде https://github.com/weidai11/cryptopp), Который я еще не знаю.  

Вопросов:
Можем ли мы изменить реализацию SHA-256 с чем-то быстрее? Если нет, то, что может быть причиной: безопасность, читаемость кода, или используя ассемблер внутри запрещенное?


Технические подробности:

Профилирование результата для bitcoind (глядя с пустым блоком-цепью, и рабочее время около 30 минут):
https://s10.postimg.org/ukg7su3u1/profiling_bitcoin.png
Slowest метод sha256 :: Transform & crc32c :: Extend (еще один хороший кандидат для оптимизации).
Выходной файл Valgrind можно скачать здесь: http://www.filedropper.com/bitcoindloadingblockchaincallgrindout
Bitcoin ядро ​​версии 0.12 взято отсюда https://github.com/bitcoin/bitcoin/tree/0.12

Операционная система: Ubuntu 16,4
PROCESOR: Intel (R) ядро ​​(TM) i3-3240 CPU @ 3.40GHz


Объятия,
Gercio
Gercio сейчас офлайн Пожаловаться на Gercio   Ответить с цитированием Мультицитирование сообщения от Gercio Быстрый ответ на сообщение Gercio


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


23 августа 2016, 12:53:16 AM   # 2
 
 
Сообщения: 2366
Цитировать по имени
цитировать ответ
по умолчанию Re: Bitcoin профилирования результатов

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





Почему это не сделано до сих пор? Потому что до недавнего времени не было заусениц в профилях; оптимизация другой выставила его.

Любое такое изменение должно быть сделано с большой осторожностью из-за консенсусной последовательности course--

и оптимизированная хэш-функции для непараллельного использования не являются ~ ~ ТО намного быстрее:

SHA256_avx, 255,0.0039705,0.0040791,0.00397483
SHA256_basic, 175,0.00599706,0.00610304,0.00599851
SHA256_rorx, 319,0.00334549,0.00345182,0.00334802
SHA256_rorx_x8ms, 319,0.00328481,0.00339317,0.00328667
SHA256_sse4,255,0.00395852,0.00404716,0.00396052

Основная равнина код, который мы имеем сегодня, самый быстрый в этом тесте (rorx_x8ms) только 1.825x быстрее.

https://github.com/laanwj/bitcoin/tree/2016_05_sha256_accel

Я ожидаю, что это пойти в 0.14 когда-то довольно скоро.

Использование реализации в 4-ходовой бы ускорить его дальше, но сделать хорошее использование 4-полосной SHA2 технически несколько difficult-- не просто капля в изменении, и есть только несколько мест, где это действительно можно использовать на все ,

Владимир сделал подобное тестирование для CRC32c, https://github.com/laanwj/bitcoin/commit/431c1b987b34589f32f4c2d0ee0f2571ba70e349

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

gmaxwell сейчас офлайн Пожаловаться на gmaxwell   Ответить с цитированием Мультицитирование сообщения от gmaxwell Быстрый ответ на сообщение gmaxwell

23 августа 2016, 7:55:20 AM   # 3
 
 
Сообщения: 2
Цитировать по имени
цитировать ответ
по умолчанию Re: Bitcoin профилирования результатов

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

7 сентября 2016, 5:16:59 PM   # 4
 
 
Сообщения: 1442
Цитировать по имени
цитировать ответ
по умолчанию Re: Bitcoin профилирования результатов

Я ожидаю, что это пойти в 0.14 когда-то довольно скоро.

Это замечательные новости.

Если вы собираетесь делать улучшение скорости для 0.14, можете вам также "профиль" или проверить I / O, и особенно пишет. Я думаю, что есть что-то делать ненужную работу там, и это также останавливая процессор, который ждет ввода / вывода, чтобы закончить.

У меня есть blockchain на моем механическом диске, и в то время как моя связь только 600KB / сек, если я синхронизация, чтобы получить последние 3-4 дней (-blocksonly), это порождает почти постоянная 10-13mb / с для чтения и 11-14mb / с запись. Очевидно, что мой вопрос был "WTF является то писать?" Если я использую полную поддержку индексации в файловой системе, и так как записи должны быть выполнены x2, скорость идет вниз к ползанию.

Первоначально я думал, что сво выпуск смыва или что-то ... Я был как "Хорошо, если я 4 дня позади, это не более ~ 570mb ... не может этого быть загружены полностью в оперативную память, а затем промойте его в конце концов в какой-то пакет изменений, чтобы избежать всех этих операций записи, которые убивают I / O скорость и замедлить мою синхронизацию? Это займет всего 4-5 секунды, в конце концов ..."

Я начал искать исходные файлы для любого файла с "промывать" и я нашел некоторые параметры в main.h ... Так что я сделал некоторые изменения в смыве раз main.h в строках 97 и 99 (умноженные на настройки по умолчанию X100), но не было никакого очевидного эффекта.

Тогда я понял, что конечно, это не будет иметь никакого эффекта, потому что очевидный, что он делает что-то другое. С 600KB / сек загрузки в 11+ Мб / с в записи не являются blockchain получения загрузки. Это какой-то другой процесс перегруппировки файлов, написание отменить инструкции, писем и т.д. логов

Поэтому я оставил его в течение нескольких часов, и я начал его несколько минут назад, чтобы синхронизировать последние 10 часов. теперь я заметил, что там были 5-11mb / сек пишет происходит даже в фазе, где Bitcoin-кварты запуски и делает 0% -100% верификацию, и без каких-либо скачав дополнительные блоки.

Поступая в LSOF -p 7464 (Bitcoin-кварты ИДП), я получаю то что следующие файлы загружаются с записью или эксклюзивные записи атрибутов:

Bitcoin-Q 7464 15uW РЕГ 254,1 .bitcoin / .lock
Bitcoin-д 7464 16w РЕГ 254,1 .bitcoin / debug.log
Bitcoin-д 7464 17w РЕГ 254,1 .bitcoin / db.log
Bitcoin-Q 7464 18w РЕГ 254,1 .bitcoin / блоки / Индекс / LOG
Bitcoin-Q 7464 19uW РЕГ 254,1 .bitcoin / блоки / Индекс / LOCK
Bitcoin-Q 7464 20w РЕГ 254,1 .bitcoin / блоки / Индекс / 003446.log
Bitcoin-Q 7464 21W РЕГ 254,1 .bitcoin / блоки / Индекс / МАНИФЕСТ-003444
Bitcoin-Q 7464 22w РЕГ 254,1 .bitcoin / chainstate / LOG
Bitcoin-Q 7464 23uW РЕГ 254,1 .bitcoin / chainstate / LOCK
Bitcoin-д 7464 24w РЕГ 254,1 .bitcoin / chainstate / 749940.log
Bitcoin-Q 7464 25w РЕГ 254,1 .bitcoin / chainstate / МАНИФЕСТ-749938

...так что преступник находится где-то там делает слишком много пишет по-видимому нет причины (?), или неоптимальным образом (?).

Я также попытался DbCache настройки 0 и 1000, они не делают никакой разницы в создании этого явления ~ 10mb / s пишет исчезают (будь то в запуске в Bitcoin-кварты, или позже при синхронизации).
AlexGR сейчас офлайн Пожаловаться на AlexGR   Ответить с цитированием Мультицитирование сообщения от AlexGR Быстрый ответ на сообщение AlexGR

7 сентября 2016, 6:29:47 PM   # 5
 
 
Сообщения: 2366
Цитировать по имени
цитировать ответ
по умолчанию Re: Bitcoin профилирования результатов

У вас есть txindex enabled--, что серьезно вредит производительность, есть только так много сделок в истории, что производительность не является большой.

Без txindex и DbCache оказался enough-- ему удастся завершить полную синхронизацию, не делая какую-либо другую, чем блок записи / отменить файлы.

Причина вы видите пишет на старт LevelDB будет recompact логи при запуске, так что, как ожидается.

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

7 сентября 2016, 9:27:20 PM   # 6
 
 
Сообщения: 1442
Цитировать по имени
цитировать ответ
по умолчанию Re: Bitcoin профилирования результатов

У вас есть txindex enabled--, что серьезно вредит производительность, есть только так много сделок в истории, что производительность не является большой.

Без txindex и DbCache оказался enough-- ему удастся завершить полную синхронизацию, не делая какую-либо другую, чем блок записи / отменить файлы.

Причина вы видите пишет на старт LevelDB будет recompact логи при запуске, так что, как ожидается.

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

Ага. Я нахожусь под впечатлением, что один нуждается txindex, если они собираются поменять бумажники (который я) и избежать переиндексации (?).

Но все-таки, это написание даже необходимо при запуске и делает 0-100%? Я имею в виду ничего не было загружено, так как в последний раз бумажник был выключен, поэтому он должен доминировать операции только для чтения.

Если письмо не может быть предотвращено, но она включает в себя одни и те же файлы, изменяющиеся внутри снова и снова, возможно, эти изменения можно было бы сделать в оперативной памяти, а затем записываются на диск один раз (?).

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



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

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

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

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW