Состоялся анонсированный ранее релиз клиента биткоина Bitcoin Core версии 0.15.0, над которым в течении полугода работал ведущий разработчик компании Владимир ван дер Лаан при участии Chaincode Labs, Blockstream и MIT Digital Currency Initiative. Файлы теперь доступны для загрузки на сайте Bitcoin Core. Ниже приведены основные изменения этой версии.
Реструктуризация базы данных
База данных chainstate (которая используется для отслеживания UTXO, таблицы «неизрасходованных выходов») была изменена с модели "для каждой транзакции" на модель "для каждого выхода".
Теперь, если одна транзакция отправляет биткойны на разные выходы, каждый выход хранится отдельно. Несмотря на то, что для этой модели необходимо большего объема на диске, ей требуется гораздо меньше вычислительных ресурсов.
Это позволит оптимизировать использование мемпула, на 40% уменьшить время синхронизации для новых узлов [без учета их собственных аппаратных возможностей], вводить более простой код и исправить ошибку, которая теоретически может привести к "падению" клиента Bitcoin Core, о чем говорилось на конференции Breaking Bitcoin в Париже.
Алгоритм расчета комиссий
Bitcoin Core 0.15.0 улучшает алгоритм расчёта комиссий. Теперь клиент учитывает больше данных при расчетах: сборы, включенные в «старые» подтвержденные транзакции, а также сборы в неподтвержденных транзакциях.
Кроме того, пользователи получают более гибкое решение: Bitcoin Core 0.15.0 впервые позволяет заранее включать комиссии, которые могут потребовать их транзакции для подтверждения, а при малой загрузке сети проводить с уменьшенными. Кроме того, новые пользователи могут увидеть, что их транзакция может быть отложена из-за внезапного притока транзакций.
Интерфейс
Даже с улучшенным алгоритмом расчета комиссий возможно, что пользователям все равно придется ждать подтверждения транзакции дольше, чем хотелось бы: из-за внезапного притока транзакций в сети или из-за того, что пользователь передумал и предпочитает подтвердить транзакцию быстрее, чем первоначально заплатил, или по другим причинам.
В этих случаях некоторые кошельки позволяют пользователям добавлять в свои транзакции тег «замена за вознаграждение». С таким тегом узлы и майнеры в сети знают, что отправитель может заменить эту транзакцию новой, которая включает в себя более высокую плату. Это позволяет пользователям «ускорить» очередь транзакции для её более быстрого подтверждения.
Поддержка нескольких кошельков (только для клиентов и RPC)
Bitcoin Core 0.15.0 поддерживает загрузку нескольких отдельных кошельков с индивидуальными балансами, ключами и полученными транзакциями. Так, пользователи могут использовать различные кошельки для разных целей: например, один кошелек – для личных ежедневных покупок, другой – для деловых операций, а третий для торговли.
Помимо вышеупомянутых заметных изменений, Bitcoin Core 0.15.0 включает ряд дополнительных улучшений производительности, в частности: увеличивают скорость доставки блоков из сети, позволяют новым узлам запускаться быстрее, а существующим – быстрее проверять новые блоки, из-за чего, в свою очередь, выигрывает время распространения блоков в сети.
И последнее - узлы Bitcoin Core 0.15.0 могут отключаться от узлов BTC1, таким образом будет решен спор о "разводе" c SegWit2x. Это означает, что сеть Биткоина будет испытывать меньше сбоев при активации SegWit2x, поскольку оба типа узлов будут легче находить совместимые одноранговые узлы и отбрасывать подключения с несовместимыми, таким образом подсети Core и SegWit2x будут изолированы друг от друга и смогут бороться за лидерство каждая на своем поле.