Сегодня состоялся официальный релиз Bitcoin Core 0.15.0, пятнадцатого поколения оригинального клиента биткоина, разработанного Сатоши Накамото почти 9 лет назад. Разработкой руководил главный сопроводитель Bitcoin Core Владимир ван дер Лаан, а в общей сложности над проектом трудились около 100 программистов на протяжении 6 месяцев. О том, что нового пользователи смогут обнаружить в Bitcoin Core 0.15.0, рассказал Bitcoin Magazine.
Bitcoin Core 0.15.0 содержит улучшения производительности и функциональности. Помимо этого, в новом клиенте реализованы несколько особенностей, которые помогут ему адаптироваться к текущему состоянию сети.
Изменена структура базы данных Chainstate
Одним из самых значимых изменений является изменение способа хранения информации о текущем состоянии блокчейна в узле. Теперь «chainstate» или «набор UTXO» хранятся в отдельной базе данных. Раньше они разбивались на категории по транзакциям. Если в ходе одной транзакции биткоины отправлялись на несколько выходов («адресов»), все эти выходы сохранялись в форме одной записи в базе данных.
В Bitcoin Core 0.15.0 каждый из этих выходов сохраняется в форме отдельной записи. Если в ходе одной транзакции вы отправляете биткоины на несколько адресов, каждый выход сохраняется отдельно. Действительно, такой метод хранения информации требует больше места на жёстком диске, но, если один из этих выходов будет потрачен позднее, но обработку такой операции будет затрачено меньше вычислительных мощностей.
Очевидную выгоду обнаружат те, кто собирается проводить начальную синхронизацию своих узлов биткоина, поскольку время начальной синхронизации снизилось приблизительно на 40%. Кроме того, более простой код не требует высоких затрат памяти. Также была решена проблема, которая могла вызывать падение узлов Bitcoin Core.
Улучшена система расчёта сборов
Как стало понятно за последние год или два, не все биткоин-транзакции попадают в первый же блок. Обычно майнеры сначала выбирают транзакции, к которым привязаны высокие комиссии. Если пользователь хочет, чтобы его транзакцию обработали быстрее, он платит больше; если он не торопится – платит меньше.
Однако, следует понимать, что не всегда можно угадать, сколько транзакций майнеры обрабатывают в данный момент, из-за чего можно ошибиться с комиссией.
В Bitcoin Core 0.15.0 проблема неопределённости частично решается благодаря улучшенным алгоритмам расчёта комиссий. Программное обеспечение использует больший объём данных в ходе расчёта. Сюда входят сборы за предыдущие подтверждённые транзакции, а также за неподтверждённые транзакции, если по какой-то причине размер комиссии оказался недостаточным для их быстрого подтверждения.
Кроме того, пользователи получили возможность более гибкой настройки сборов. Например, они могут уплатить такую комиссию, что их транзакция будет обрабатываться неделю. Также снижен риск задержки транзакций в случае внезапного наплыва желающих отправить биткоины.
Функция «replace-by-fee» доступна прямо в интерфейсе
Улучшенный механизм расчёта комиссий всё же не гарантирует, что транзакция будет обработана в заданное время, если число транзакций резко увеличится. Или, например, пользователь мог передумать и теперь он хочет, чтобы его транзакцию обработали быстрее.
На этот случай некоторые кошельки позволяют пользователям добавить к транзакции тег «replace-by-fee». Узлы и майнеры увидят этот тег и поймут, что пользователь хочет заменить настоящую транзакцию новой с более высокой комиссией. По сути, пользователь проталкивает свою транзакцию в очереди.
Узлы Bitcoin Core уже год поддерживают эту функцию, но использовать её было не так просто. Теперь эта опция была добавлена в интерфейс кошелька, и все пользователи Bitcoin Core смогут без труда увеличивать размеры комиссий.
Поддержка нескольких кошельков
В Bitcoin Core 0.15.0 впервые реализована возможность создания нескольких кошельков. Каждый из этих кошельков обладает отдельным адресом, приватным ключом и счётом. Пользователи могут использовать разные кошельки для разных целей: например, один кошелёк – для повседневных трат, другой – для бизнеса, третий – для торговли.
В таком подходе можно найти ряд преимуществ. Во-первых, пользователям проще вести учёт средств. Во-вторых, повышается уровень анонимности, поскольку эти кошельки никак не связаны друг с другом. Можно найти и другие способы применения этой функции.
Пока эта опция недоступна для обычных пользователей. Только продвинутые пользователи, работающие через командную строку или подключенные приложения, могут воспользоваться ей.
Прочие улучшения
Среди прочего в Bitcoin Core 0.15.0 был интегрирован ряд улучшений, призванных повысить производительность узла. Теперь блоки из сети скачиваются быстрее, на запуск узлов тратится меньше времени, сами узлы быстрее подтверждают транзакции, вместе с чем растёт быстродействие сети в целом.
В конце стоит отметить, что Bitcoin Core 0.15.0 не будет подключаться к пользователям, использующим программную реализацию BTC1. Это поможет устранить перебои в работе сети, если хардфорк SegWit2x всё-таки состоится, поскольку клиенты разных сетей не будут подключаться друг к другу.