Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
20 февраля 2015, 9:11:36 AM   # 1
 
 
Сообщений: 5
Цитировать по имени
цитировать ответ
по умолчанию Re: bitcoind производительность JSON RPC снижается по blockchain?

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


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

Я насосный данные обо всех операциях с blockchain в базу данных для последующего анализа, и я пришел к выводу, что, как я прогрессирую через blockchain, я провожу больше времени в ожидании ответов bitcoind, в в течение примерно такого же количества обрабатываемых данных. Вот изображение закладных базы данных для всех операций, их входов и выходов за последние несколько дней. В начале я анализировала сотни блоков в секунду (что понятно из того, что они были простыми или пусто), и вокруг блока 200,000 производительность сделала резкое падение, до точки, где я сейчас делаю 1-2 раз второй.

http://i.imgur.com/NvF2Agz.png

Я понимаю, что использование ЦП bitcoind составляет около 150%, что примерно такой же, как когда я начал, хотя я 4 RPC темы. Увеличение параллелизма не помогает. Я нигде вблизи IO переплете (SSD, достаточно RAM). Это выглядит просто как сейчас, bitcoind занимает больше времени, чтобы обработать ту же общую сумму сделок.

Из погуглить вокруг, я вижу, что "bitcoind трудно масштабировать" это свой рода общего вывода, но я не нашел ничего об этом резком падении производительности. Является ли это общее знание? Что-то изменилось вокруг блока 200.000?

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


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


20 февраля 2015, 9:24:28 AM   # 2
 
 
Сообщения: 2366
Цитировать по имени
цитировать ответ
по умолчанию Re: bitcoind производительность JSON RPC снижается по blockchain?

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





Почему вы предполагая, что производительность не имеет ничего общего с Bitcoind. JSON, просто по своей природе довольно медленно, но производительность не должна зависеть от того, где расположены сделок и должны более или менее потушить равное количество транзакций в секунду. Ваша база данных, с другой стороны, будет замедляться резко, как вставить несколько записей в нем. Быстрый тест здесь показывает, что он читает такое же количество ОГО в секунду на высоту 150k и 300k.

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

20 февраля 2015, 11:53:32 AM   # 3
 
 
Сообщения: 386
Цитировать по имени
цитировать ответ
по умолчанию Re: bitcoind производительность JSON RPC снижается по blockchain?

Замедление вокруг блока 200k является нормальным, если вы оцениваете вашу perfs в перспективе блоков.
Основным изменением является увеличение числа сделок по всему в конце 2012 года.

С одной нити вы должны быть в состоянии обрабатывать сотни или тысячи операции за минуту без каких-либо проблем.
Но не стоит ожидать, чтобы обрабатывать сотни блоков / с больше, поскольку каждый блок имеет (в среднем) сотни сделок.

Мое предположение, что узкое место (если есть один) на стороне записи.
Минимизация количества туда и обратно между вашей партией и базами данных может быть частью решения.
Массовая вставка нескольких передатчиков должна обеспечить лучшую производительность. Хорошие показатели должны помочь тоже.

Но если честно, я даже не уверен, что у вас есть что-то оптимизировать, если ваш сценарий может обрабатывать сотни операций в секунду.
В настоящее время Bitcoin емкость сети составляет около 3,5 Txs / с ...

Я надеюсь, что это помогает.


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

23 февраля 2015, 12:43:38 PM   # 4
 
 
Сообщений: 5
Цитировать по имени
цитировать ответ
по умолчанию Re: bitcoind производительность JSON RPC снижается по blockchain?

Мое предположение, что узкое место (если есть один) на стороне записи.
Минимизация количества туда и обратно между вашей партией и базами данных может быть частью решения.
Массовая вставка нескольких передатчиков должна обеспечить лучшую производительность. Хорошие показатели должны помочь тоже.

Нах, сторона записи покрыта очень хорошо: база данных находится на SSD, и MySQL использует в совокупности около 20% одного ядра (который включает в себя iowait, которая сама по себе составляет около 1%).

Медлительность на самом деле, на самом деле на bitcoind стороне. Я могу породить произвольное число раздвоенных, независимы клиентские процессы (так ни один потока блокировки вопросов между ними), выдающими JSON запросов RPC к bitcoind, и примерно через 3 клиентов не существуют какие-либо существенные улучшения производительности (т.е. в широком масштабе суб-линейные улучшения), с клиентами не тратить время ожидания bitcoind ответить.

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

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

23 февраля 2015, 1:06:49 PM   # 5
 
 
Сообщений: 5
Цитировать по имени
цитировать ответ
по умолчанию Re: bitcoind производительность JSON RPC снижается по blockchain?

Но если честно, я даже не уверен, что у вас есть что-то оптимизировать, если ваш сценарий может обрабатывать сотни операций в секунду.
В настоящее время Bitcoin емкость сети составляет около 3,5 Txs / с ...

Это основная часть импорта, производительность в режиме реального времени в пределах возможностей коды и системы.

Теперь мой скрипт обрабатывает 1-2 блоков / с, что, как правило, более 1000 транзакций / с, и он работает в параллельных процессах, поэтому у меня нет ничего не осталось, чтобы оптимизировать кроме bitcoind
ivoras сейчас офлайн Пожаловаться на ivoras   Ответить с цитированием Мультицитирование сообщения от ivoras Быстрый ответ на сообщение ivoras

23 февраля 2015, 4:42:27 PM   # 6
 
 
Сообщения: 386
Цитировать по имени
цитировать ответ
по умолчанию Re: bitcoind производительность JSON RPC снижается по blockchain?

Но если честно, я даже не уверен, что у вас есть что-то оптимизировать, если ваш сценарий может обрабатывать сотни операций в секунду.
В настоящее время Bitcoin емкость сети составляет около 3,5 Txs / с ...
Теперь мой скрипт обрабатывает 1-2 блоков / с, что, как правило, более 1000 транзакций / с, и он работает в параллельных процессах, поэтому у меня нет ничего не осталось, чтобы оптимизировать кроме bitcoind
Ага. ИМХО, ваш perfs довольно хорошо
Я предполагаю, что замедление на 200k блоков было пережито всеми людьми, пытающимися отсканировать blockchain.
В предыдущих версиях ядра Bitcoin, это было заметно и во время первого сельсина в blockchain.

В вашем случае, последнее усовершенствование, которое я мог себе представить, это обход ПКР апи. В принципе, вы читать непосредственно в .dat файлов (пример).

EDIT: еще одна идея: Пытались ли Вы увеличить количество потоков удаленных процедур? (-rpcthreads = N),
laurentmt сейчас офлайн Пожаловаться на laurentmt   Ответить с цитированием Мультицитирование сообщения от laurentmt Быстрый ответ на сообщение laurentmt

23 февраля 2015, 7:01:11 PM   # 7
 
 
Сообщений: 5
Цитировать по имени
цитировать ответ
по умолчанию Re: bitcoind производительность JSON RPC снижается по blockchain?

Но если честно, я даже не уверен, что у вас есть что-то оптимизировать, если ваш сценарий может обрабатывать сотни операций в секунду.
В настоящее время Bitcoin емкость сети составляет около 3,5 Txs / с ...
Теперь мой скрипт обрабатывает 1-2 блоков / с, что, как правило, более 1000 транзакций / с, и он работает в параллельных процессах, поэтому у меня нет ничего не осталось, чтобы оптимизировать кроме bitcoind
Ага. ИМХО, ваш perfs довольно хорошо

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

Я уверен, что сторона дб никогда не будет проблемой в моей установке.

В вашем случае, последнее усовершенствование, которое я мог себе представить, это обход ПКР апи. В принципе, вы читать непосредственно в .dat файлов (Г-А-масштабируемые и-отказоустойчивый-BLO] Пример).

EDIT: еще одна идея: Пытались ли Вы увеличить количество потоков удаленных процедур? (-rpcthreads = N),

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

Да, я всегда соединиться с меньшим количеством клиентов, чем rpcthreads - вот почему я думаю, что это bitcoind вопрос здесь. Позвольте мне попытаться объяснить лучше с примером:

Использование ЦП bitcoind остается тем же после того, как около 3 клиентов: 150%. Если добавить больше клиентов RPC процессов, я вижу использование CPU на bitcoind остается одинаковым, * общее * количество вызовов RPC в секунду остается тем же самым, и нагрузка на процессор каждого отдельного клиента идет вниз (так как больше клиентов в настоящее время работают на то же количество RPC вызовов в секунду). В настоящее время каждый из моих 4 клиентских процессов занимает около 20% процессорного времени, и они в основном ждут ответов от bitcoind.

Как я уже писал ранее, нагрузка DB незначительна (туздО в настоящее время менее 5%, в том числе iowait).
ivoras сейчас офлайн Пожаловаться на ivoras   Ответить с цитированием Мультицитирование сообщения от ivoras Быстрый ответ на сообщение ivoras

24 февраля 2015, 1:15:21 AM   # 8
 
 
Сообщения: 464
Цитировать по имени
цитировать ответ
по умолчанию Re: bitcoind производительность JSON RPC снижается по blockchain?

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

24 февраля 2015, 6:56:13 PM   # 9
 
 
Сообщения: 280
Цитировать по имени
цитировать ответ
по умолчанию Re: bitcoind производительность JSON RPC снижается по blockchain?

Я могу подтвердить, что bitcoinqt или bitcoind не то, что вы можете использовать в любом более крупный проект. После того, как он имеет несколько тысяч адресов и работают в течение нескольких месяцев, это официальный клиент замедляется до того момента, когда он занимает несколько минут, чтобы обработать каждый блок. В то же время, он блокирует все RPC вызовов, в том числе тех, которые не должны быть заблокированы (например, getdiff или получить новый адрес). Это замедление не имеет ничего общего с его внутренней системой учета (что один работает отлично, но из-за долгое время вызовов RPC заблокирован, гораздо менее полезным, чем вашей собственной системы бухгалтерского учета). Почему официальный клиент замедляется так значительно - делать 2 резьбовую обработку в течение нескольких минут, когда новый блок приходит - то есть что-то разработчики могут объяснить и, возможно, даже исправить в будущих версиях. Это позор, я бы лично доверять этому клиенту самое, но из-за эти замедления, бесполезно для нас, и мы будем в ближайшее время перехода на BitGo.
nicehashdev сейчас офлайн Пожаловаться на nicehashdev   Ответить с цитированием Мультицитирование сообщения от nicehashdev Быстрый ответ на сообщение nicehashdev

24 февраля 2015, 8:46:04 PM   # 10
 
 
Сообщения: 840
Цитировать по имени
цитировать ответ
по умолчанию Re: bitcoind производительность JSON RPC снижается по blockchain?

bitcoind или Bitcoin-Qt будет иметь блокировки бои над базой данных и, да, вы, вероятно, не можете получить больше, чем около 3 клиентов продуктивны в то время (зависит от возможностей ввода / вывода машины, как долго замки последними) , 

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



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

24 февраля 2015, 10:53:42 PM   # 11
 
 
Сообщения: 2366
Цитировать по имени
цитировать ответ
по умолчанию Re: bitcoind производительность JSON RPC снижается по blockchain?

он блокирует весь RPC вызовы, в том числе тех, которые не должны быть заблокированы (например, getdiff или получить новый адрес)
Случайные RPC блокируют вы описываете звуки несколько, как то, что происходит, когда у вас есть клиент RPC, который просачивается поддержкой активности. С настройками по умолчанию Bitcoin ядра имеют только 4 потоков для обработки RPC запросов (как дополнительные потоки потребляют достаточное количество памяти, и люди хотели бы, чтобы запустить этот материал на 500 мб VPSes) и как только он имеет, что многие соединения KEEPALIVE открытых далее из них будут блокировать , Многие клиентские библиотеки RPC просачиваться соединениями, оставляя открытую старую поддержку активности в течение длительного времени без намерения использовать их снова. Если это ваш вопрос, вы можете Forstall его (за счет потери памяти) за счет увеличения количество потоков RPC, или избежать его отключения KeepAlive (-rpckeepalive = 0) ... (или лучше, исправить ваш клиент не просочиться поддержку активности) ,

Если это не ваш вопрос, вы можете попробовать на самом деле отчетности вашей проблемы (особенно с репродукцией), так как никто не сделал так. В частности, я продолжаю тестирование бумажник работает с десятками тысяч адресов и многие тысячи сделок не наблюдается, что вы описываете; поэтому я не могу сказать, если ваш комментарий на обновление блока является отвлекающим маневром или нет (принимая новый блок действительно должен блокировать большинство вызовов RPC, но также должен только занять второе). Не знаю, почему люди идут на поводу программного обеспечения "неподходящий" когда они не могут даже быть обеспокоены, чтобы сообщить о проблемах они имели. Это, конечно, не собирается волшебным образом адаптироваться к потребительному случае, если вы Снарку в потоках заусениц на форумах, а не вопросы отчетности (гораздо меньше, способствуя улучшению).

Что касается нити здесь, я протестированный узла здесь обработок более 5500 ОЙ / s в совокупности при IBD, в том числе проверки подписи и все. Учитывая, что сеть в целом ограничивается <10, я думаю, что это очень хорошо. Если существует реальная проблема производительности вам нужно настроить воспроизведение в отрыве от вашего приложения для того, чтобы выяснить, где он находится. Просто сказать, что это медленно для вас очень не полезно; мы должны знать, что RPCs, называется, в каком шаблоне, принимают какое количество time-- и в идеале иметь только некоторый скрипт, чтобы воспроизвести его, в противном случае есть только бесконечный цикл "кажется, быстро мне",
gmaxwell сейчас офлайн Пожаловаться на gmaxwell   Ответить с цитированием Мультицитирование сообщения от gmaxwell Быстрый ответ на сообщение gmaxwell



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

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

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

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW