Так что мне было интересно, если любая попытка была сделана в профиль производительности узла в течение всего и где узкое место может быть, и то, что была предпринята попытка улучшить его?
Я не говорю о время подтверждения транзакции, или вещах, связанные с протоколом, но как быстро узел может обрабатывать блоки, в основном для того, чтобы ускорить процесс синхронизации, или задержку узла в целом в обслуживании различных запросов.
Время синхронизации по-прежнему большая проблема, и от того, что я мог видеть в быстрых тестах, это, кажется, не поступает в основном из сырого времени загрузки или скорости сети, что много, поэтому мне было интересно, что уже думали о или пытались улучшить это.
В нескольких вещах ид попробовать было бы:
Оптимизация операций на хэш, как, по крайней мере хэш сравнения, возможно, с УСЭ или AVX, как есть, вероятно, хорошее число тех, выполняется для каждого процесса блока.
Асинхронный ввод / вывод, используя асинхронный (прерывание на основе) -й я думаю могу ускорить signifiantly, как центральный процессор может обрабатывать данные в то время как ИО операции имеют место, из моего опыта с потоковым видео это сделать хорошую разницу.
Оптимизация хранения двигателя, я уже видел определенную монету bitmonero подправили с различного рода механизмом хранения, либо Berkeley DB, дб на уровне, или другие вещи, или даже нулевой кэш nodb дискового пространства, как в purenode, интересно, сколько разница это действительно делает.
Параллелизме / нарезание резьба, распараллеливание, как много вещей, как можно в полной мере воспользоваться многоядерной архитектурой, не может быть применена к блоку обработки, поскольку каждая проверка блока зависит от предыдущего, но для обработки всех транзакций и подписи в блоке, он может сделать разница, если общее время обработки достаточно долго, чтобы извлечь выгоду из резьбы.
Оптимизация проверки подписи, большинство использования монет OpenSSL для подписи, но есть и другие библиотеки, такие как микро ЕСС или другие, часто делаются для встраиваемой системы, будет потенциально может быть быстрее, чем OpenSSL.
сжатие блоков потенциально может помочь также сократить немного времени загрузки.
Увидел о тонком блоке, но от того, что я могу понять, это Wouldnt изменится на время синхронизации или обработке запроса.
Я думаю, что это он, плохо добавить больше, если больше вещей приходит на ум.
Кроме того, есть какие-либо данные профилирования доступны где-нибудь?