Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
5 февраля 2017, 10:28:22 PM   # 1
 
 
Сообщения: 210
Цитировать по имени
цитировать ответ
по умолчанию Re: Вопрос по общей производительности узла

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


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

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

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

В нескольких вещах ид попробовать было бы:

Оптимизация операций на хэш, как, по крайней мере хэш сравнения, возможно, с УСЭ или AVX, как есть, вероятно, хорошее число тех, выполняется для каждого процесса блока.

Асинхронный ввод / вывод, используя асинхронный (прерывание на основе) -й я думаю могу ускорить signifiantly, как центральный процессор может обрабатывать данные в то время как ИО операции имеют место, из моего опыта с потоковым видео это сделать хорошую разницу.

Оптимизация хранения двигателя, я уже видел определенную монету bitmonero подправили с различного рода механизмом хранения, либо Berkeley DB, дб на уровне, или другие вещи, или даже нулевой кэш nodb дискового пространства, как в purenode, интересно, сколько разница это действительно делает.

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

Оптимизация проверки подписи, большинство использования монет OpenSSL для подписи, но есть и другие библиотеки, такие как микро ЕСС или другие, часто делаются для встраиваемой системы, будет потенциально может быть быстрее, чем OpenSSL.

сжатие блоков потенциально может помочь также сократить немного времени загрузки.

Увидел о тонком блоке, но от того, что я могу понять, это Wouldnt изменится на время синхронизации или обработке запроса.


Я думаю, что это он, плохо добавить больше, если больше вещей приходит на ум.

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


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


5 февраля 2017, 11:56:26 PM   # 2
 
 
Сообщения: 1246
Цитировать по имени
цитировать ответ
по умолчанию Re: Вопрос по общей производительности узла

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





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

6 февраля 2017, 12:29:25 AM   # 3
 
 
Сообщения: 210
Цитировать по имени
цитировать ответ
по умолчанию Re: Вопрос по общей производительности узла

IIRC Bitcoin Ядро имеет материал для сравнительного анализа, так что вы можете увидеть, сколько времени требуется для того, чтобы делать определенные вещи. Вам нужно будет использовать параметры командной строки, чтобы включить его, хотя.

Где я могу найти более подробную информацию по этому вопросу?
IadixDev сейчас офлайн Пожаловаться на IadixDev   Ответить с цитированием Мультицитирование сообщения от IadixDev Быстрый ответ на сообщение IadixDev

6 февраля 2017, 12:37:31 AM   # 4
 
 
Сообщения: 210
Цитировать по имени
цитировать ответ
по умолчанию Re: Вопрос по общей производительности узла

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

6 февраля 2017, 1:02:28 AM   # 5
 
 
Сообщения: 1246
Цитировать по имени
цитировать ответ
по умолчанию Re: Вопрос по общей производительности узла

IIRC Bitcoin Ядро имеет материал для сравнительного анализа, так что вы можете увидеть, сколько времени требуется для того, чтобы делать определенные вещи. Вам нужно будет использовать параметры командной строки, чтобы включить его, хотя.

Где я могу найти более подробную информацию по этому вопросу?
Я ошибался. Он не встраивать в bitcoind / Bitcoin-кварты, а отдельный двоичный для сравнительного анализа хеширования, кодирование / декодирование base58, подписание, проверки, и несколько других вещей.



Я уверен, что большинство, если не все, из того, что вы уже упоминали уже сделано в Bitcoin.

Оптимизация проверки подписи, большинство использования монет OpenSSL для подписи, но есть и другие библиотеки, такие как микро ЕСС или другие, часто делаются для встраиваемой системы, будет потенциально может быть быстрее, чем OpenSSL.
не Bitcoin ядро ​​больше не использует OpenSSL для подписания и проверки. Скорее Базовых разработчики написали свою собственную библиотеку, которая работает гораздо быстрее, чем OpenSSL. Я считаю, что то же самое было сделано для AES для шифрования бумажника.

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

Такие вещи, как компактные блоки (и потенциально XThin блоков, в зависимости от определенных вещей) делает блок реле быстрее, но не IBD (начальный блок загрузки).

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

6 февраля 2017, 1:22:49 AM   # 6
 
 
Сообщения: 210
Цитировать по имени
цитировать ответ
по умолчанию Re: Вопрос по общей производительности узла

Из того, что я могу видеть, это не кажется, есть отсеивание для внутри- проверки блока транзакции, или что пытается использовать AVX или SSE, действительно есть внутренняя функция для 256 битого арифметике, но выглядит это не особенно сделано использовать SIMD или параллелизм.

Я, вероятно, сделать некоторые тесты в какой-то момент, а также для оценки эффективности хранения двигателя, и посмотреть, что займет больше времени с обработкой блока, и экспериментировать с УДП.

Это не выглядит, как это пытается использовать дб партии писать либо которые, вероятно, могут оказать существенное влияние на скорости синхронизации.


Я видел блог раньше они сказали, что они сделали тест, используя Zlib или другой сжимать блок, и они говорили 20 до 30% прироста.


https://bitco.in/forum/threads/buip010-passed-xtreme-thinblocks.774/


Datastream сжатия: Тестирование различных библиотек сжатия, таких как LZO-1x и Zlib показали, что можно дополнительно уменьшить блок и операционные размеры от 20 до 30% без влияния на время отклика, которые также могут быть применены к thinblocks.
IadixDev сейчас офлайн Пожаловаться на IadixDev   Ответить с цитированием Мультицитирование сообщения от IadixDev Быстрый ответ на сообщение IadixDev

6 февраля 2017, 3:23:41 AM   # 7
 
 
Сообщения: 210
Цитировать по имени
цитировать ответ
по умолчанию Re: Вопрос по общей производительности узла

Для меня это все еще выглядеть как какой-то пакетная обработка может ускорить IBD.

Как обрабатывать блоки, партии 100

Проходит 1, нарезная проверка блоков заголовков хэш и вычисление ТХ хэш

Pass 2 нон резьбовой проверки merkkle корня

Pass 3 Проверки ОГО в / из, потенциально нанизанных на на основе блока

Pass 4 резьбовой проверки всех операций сиг сценариев

Pass 5 пакетной записи блоков


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

6 февраля 2017, 2:06:06 PM   # 8
 
 
Сообщения: 1778
Цитировать по имени
цитировать ответ
по умолчанию Re: Вопрос по общей производительности узла

Я также заинтересован в этом.

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

6 февраля 2017, 2:28:26 PM   # 9
 
 
Сообщения: 210
Цитировать по имени
цитировать ответ
по умолчанию Re: Вопрос по общей производительности узла

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

Если нет такого теста уже сделан, я могу попасть в него


Im программист не трейдер, им не слишком много в спекуляции, я предпочитаю Тьюринг


И с резьбой и параллелизмом с пакетной обработкой, если он хорошо масштабируется, он может разделить общее время обработки, и дб партии запись предполагается уменьшить общее время обработки много на 100 или 1000 пишет.

Такие вещи, как вычисление заголовков блоков хэш, ТЕ хэш должны очень хорошо масштабируются.

Обработка Sig сценарии априори я не вижу, почему это не очень хорошо масштабируется. Насколько я могу сказать сценарии самодостаточны, они не делают ссылки на данные вне себя. Пока открытых ключей и сиг и данных сценария загружается в память с ТХ, я не понимаю, почему проверка сценария масштаба Wouldnt.

Если алгоритм может быть сделан для открытого п для вычисления хэша & сиг проверить на 1000 блоков партии, которые сделали бы существенную разницу не знают, как общее выполнение сценария ОП-код будет соответствовать с открытым п, но для простого p2sh это может быть стоит, а хорошая доля сделок являются p2sh или обычной мульти сиг без сложного сценария ,


Merkkle корень вычисление не может быть легко масштабируется Я думаю, проверка на txins, вероятно, может быть расширена для каждого блока.
IadixDev сейчас офлайн Пожаловаться на IadixDev   Ответить с цитированием Мультицитирование сообщения от IadixDev Быстрый ответ на сообщение IadixDev

6 февраля 2017, 11:53:47 PM   # 10
 
 
Сообщения: 1246
Цитировать по имени
цитировать ответ
по умолчанию Re: Вопрос по общей производительности узла

Для меня это все еще выглядеть как какой-то пакетная обработка может ускорить IBD.

Как обрабатывать блоки, партии 100

Проходит 1, нарезная проверка блоков заголовков хэш и вычисление ТХ хэш

Pass 2 нон резьбовой проверки merkkle корня

Pass 3 Проверки ОГО в / из, потенциально нанизанных на на основе блока

Pass 4 резьбовой проверки всех операций сиг сценариев

Pass 5 пакетной записи блоков


Я не в идее, это может улучшить синхронизирующее время нет? Может быть, IM отсутствует выпуск зависимости, или что-то, или он уже думал и испытан, или он может пропустить что-то в чеке, но мне кажется, что могло бы улучшить синхронизирующее время довольно signifciantly.
Я не думаю, что будет работать. Блоки должны быть обработаны последовательно. Блок может быть действительным только, если родительский блок (ссылка в заголовке блока) также является допустимым. Таким образом, обработка 100 блоков в то время, означает, что вы могли бы тратить энергию и время обработки на поврежденных блоках.

Обработка Sig сценарии априори я не вижу, почему это не очень хорошо масштабируется. Насколько я могу сказать сценарии самодостаточны, они не делают ссылки на данные вне себя. Пока открытых ключей и сиг и данных сценария загружается в память с ТХ, я не понимаю, почему проверка сценария масштаба Wouldnt.
Сценарии не обязательно самодостаточными. Проверка обоснованности сделки означает, что вам нужно как входной скрипт входа и выхода сценарий выхода он ссылается. Для подписей, необходимо выходной сценарий ссылочной сделки, потому что является частью процедуры подписания. Вы не можете проверить подписи, не зная предыдущую сделку.
achow101 сейчас офлайн Пожаловаться на achow101   Ответить с цитированием Мультицитирование сообщения от achow101 Быстрый ответ на сообщение achow101

7 февраля 2017, 12:09:04 AM   # 11
 
 
Сообщения: 210
Цитировать по имени
цитировать ответ
по умолчанию Re: Вопрос по общей производительности узла

Единственное, что действительно является последовательной txins проверки, и, насколько я знаю, TX-в блоке не может иметь вход с ТМ в том же блоке, так что на каждый блок основания, что не должна быть проблемой?

Вычислительный блок заголовки хэш и ТЕ хэш не требует предварительной проверки блока.


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

Пока все данные из ТХ в памяти или храниться на жесткий диск (подтверждено), сценарии сига может быть проверена в Параллельном нет? За пределами исходных данных ОГО, которые доступны в памяти и постоянная, они самодостаточны, то outscrig подпись постоянна, а также данные txins, так не должна быть пбом для масштабирования.

Единственное, что это значит, блоки должны быть отвергнуты партиями тоже, если один блок в партии плохой ТХ. Но, может быть, не все работы, проводимые на действующих блоках могут быть потрачены впустую.

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


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

7 февраля 2017, 12:15:05 AM   # 12
 
 
Сообщения: 1246
Цитировать по имени
цитировать ответ
по умолчанию Re: Вопрос по общей производительности узла

Единственное, что действительно является последовательной txins проверки, и, насколько я знаю, TX-в блоке не может иметь вход с ТМ в том же блоке, так что на каждый блок основания, что не должна быть проблемой?
Сделка может на самом деле имеет родительскую транзакцию в том же блоке.
achow101 сейчас офлайн Пожаловаться на achow101   Ответить с цитированием Мультицитирование сообщения от achow101 Быстрый ответ на сообщение achow101

7 февраля 2017, 1:01:16 AM   # 13
 
 
Сообщения: 210
Цитировать по имени
цитировать ответ
по умолчанию Re: Вопрос по общей производительности узла

Единственное, что действительно является последовательной txins проверки, и, насколько я знаю, TX-в блоке не может иметь вход с ТМ в том же блоке, так что на каждый блок основания, что не должна быть проблемой?
Сделка может на самом деле имеет родительскую транзакцию в том же блоке.

Тогда только txins проверки должны быть сделаны последовательно, может, возможно, попытаться найти последовательности ТХ без ребенка, не уверен, что будет в среднем, но это может быть сделано без проверки скриптов в первом проходе, а затем сделать масштабируемый сценарий исполнение по партии. Данные сценария не зависит от отказа прийти предыдущей сделки это?

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

8 февраля 2017, 7:58:24 AM   # 14
 
 
Сообщения: 210
Цитировать по имени
цитировать ответ
по умолчанию Re: Вопрос по общей производительности узла

Почему им просит это потому, что им интересно о лучшем способе пойти с глобальной политикой оптимизации.

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

Или это лучше сосредоточиться на чем-то, что может иметь истинную надежную обработку обработки Параллельная, даже если она не кажется, что полезно в общем случае использования.

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

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

И помимо этого, есть вопрос о том, "blockchain скорость обработки" в целом.

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

Ну ясно проверки заголовков блоков хэш из заголовка запроса GET может масштабироваться, вычисление ТХ хэш из блока тоже.

Tx обработки это имеет смысл, если многие ТХ должен быть обработан партии, которые включают увеличение задержки в обработке, даже с более высокой пропускной способностью, что не я уверен, что лучше против более низкой латентностью в обработке, чтобы ТХ обрабатываются как он приходит с низкой латентностью даже если обработка 100 ТХ один / один займет больше времени, чем ждать, чтобы иметь 100 ТХ, чтобы обработать их в пакетном режиме.

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

Потому что вопрос для меня, например, для меня 10 м / с нисходящей линией, существует практически бесконечное число узлов, которые имеют данные, он должен принять 1h синхронизироваться. Почему это занимает 3 дня ??

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



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

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

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

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW