Команда Bitcoin Core опубликовала очередной релиз своего клиента – 0.15.0. Версия 0.15.0 на данный момент существует в качестве RC1 (Release Candidate 1) и пока не доступна для загрузки с официального сайта, но RC1 для всех операционных систем уже можно скачать на GitHub. Публикация релиза ожидается в ближайшие дни.
Ниже представлены наиболее заметные изменения, появившиеся в новом релизе. Версия 0.15.0 содержит ряд существенных улучшений производительности, которые ускоряют первичную синхронизация блокчейна (IBD), запуск, транзакцию и проверку блоков:
База данных chainstate (которая используется для отслеживания UTXO, таблицы «неизрасходованных выходов») была изменена с модели для каждой транзакции на модель для каждого выхода, что позволит оптимизировать многие процессы, такие как использование мемпула, адаптация к различным стратегиям очистки кэша, а также избежать повышенной нагрузки на центральный процессор (CPU).
В Bitcoin Core 0.15.0 использование памяти для UTXO вычисляется более точно – весь доступный кэш (dbcache) теперь фактически используется полностью, что уменьшает частоту очистки кэша в 2 раза.
Кроме того, ускоряется время проверки новых блоков на 40-50% за счет улучшенного кэширования при проверке транзакций во время поступления в мемпул.
База данных LevelDB была обновлена до версии 1.20 – в результате синхронизация и проверка блоков теперь происходит быстрее.
В Bitcoin Core 0.15.0 улучшен алгоритм расчета комиссий, содержащий теперь более широкий диапазон опций. Внутренние оценки теперь отслеживаются на трех разных временных горизонтах. Это позволяет использовать более длинные целевые показатели и средние оценки, чтобы быстрее адаптироваться к изменениям условий.
Теперь оценки могут быть консервативными или экономичными. Консервативные оценки используют более длительные временные горизонты для расчета, комиссия менее подвержена быстрым изменениям в платежных условиях. Экономичные оценки используют более короткие временные горизонты и будут в большей степени подвержены краткосрочным изменениям в платежных условиях. Экономичные оценки могут быть значительно ниже в периоды низкой активности транзакций (например, в выходные дни), но могут привести к тому, что транзакции останутся неподтвержденными, если комиссии будут расти.
Также изменен интерфейс RPC для комиссий. Добавлен новый RPC оценки, чтобы предоставить необработанные данные о платежах. Клиенты могут запрашивать и использовать эти данные в собственной логике расчета комиссий.
Bitcoin Core 0.15.0 теперь поддерживает загрузку нескольких отдельных кошельков с индивидуальными балансами, ключами и полученными транзакциями.
Новая версия удаляет остатки так называемой поддержки приоритета монет (часть каждого блока могла быть зарезервирована для транзакций в зависимости от возраста и стоимости UTXO, которые потратили майнеры).
Кроме того, в BitcoinCore 0.15.1 устранены предыдущие мелкие ошибки и введены некоторые оптимизации. Полный список изменений в Bitcoin Core 0.15.0 традиционно опубликован на Github.