За прошедшие с момента появления Биткоина годы появился широкий спектр услуг и решений, чтобы удовлетворить потребности тех, кто использует цифровую валюту. К ним относятся обменники и биржи, которые позволяют продавать и покупать биткоины; майнинг пулы, помогающие майнерам объединиться для получения большей прибыли; новые виды кошельков, предоставляющих лучшую функциональность и безопасность. Однако, некоторые характеристики распределенной сети остаются не вполне понятными для обычных пользователей.
Когда разработчик Bitcoin Core Грег Максвелл создал Bitcoin Relay Network, другой участник проекта Мэтт Коралло заявил, что это была необходимость, которая возникла еще несколько лет назад.
"Пару лет назад, когда регулярно начали появляться блоки выше 250k, мы увидели, что началась консолидация майнеров в наиболее популярных пулах. И многие пулы лишились большего количества своих участников," - вспоминает Максвелл. "Нам казалось, что создается тенденция полной монополизации, где будет существовать только один пул".
После этого, как сказал Коралло, возникла разработка оригинальной технологии Relay Network, что по мнению Максвелла "радикально улучшило скорость распространения блоков".
Bitcoin Relay Network в конечном счете материализовалась в виде сети узлов, расположенных в Китае, Европе, Северной Америке, России и Юго-Восточной Азии. Каждый из узлов имеет надежное и быстрое подключение к Интернету, а в теории действует как "железная дорога" для блока данных. Данные сжимаются, а затем передаются через протокол управления передачей (TCP).
Эта система была описана, как сосудистая или нервная система биткоина - важный компонент для доставки информации по всему телу (сети).
Введение FIBRE
Коралло недавно представил быструю систему распространения блоков - Bitcoin Relay Engine (FIBRE). Разработка направлена на создание более мощной версии ретрансляционной сети биткоина.
Идея заключается в том, что за счет повышения скорости, на которой транспортируется информация, майнеры могут уменьшить количество пустых блоков или "орфанов" - отклоненных сетью в пользу другого блока, созданного примерно в это же время.
Коралло, который оперировал исходной Relay Network и разработал новую версию, говорит, что эта инициатива также способствует увеличению скорости добычи и сократит количество пустых блоков, генерируемых через SPV. По словам Коралло, существующая сеть начала "показывать свои границы" еще в прошлом году, что побудило его к работе над новым программным обеспечением в течение последних нескольких месяцев. Он сказал:
"За последние несколько лет работы я обнаружил, что мы просто не можем получить надежное распространение блоков с малой задержкой, которая требуется при использовании TCP. Несколько месяцев назад я пришел к тому, чтобы начать с нуля и построить новый протокол быстрой Relay Network, создавая компактные блоки в качестве фундамента для ранних версий FIBRE".
Коралло объяснил, что сеть, которая функционирует через TCP, восприимчива к потере данных, что требует дополнительной обработки (и таким образом увеличивает время, необходимое для передачи блоков). Он объяснил в своем блоге, что в FIBRE на основе TCP пакеты данных могут просто потеряться по пути.
"Только когда отправитель ретранслирует потерянные пакеты, это позволяет получателю (потенциально) восстановить первоначальную передачу".
Эти дополнительные передачи данных туда и обратно, в конечном счете, вызывали перегрузки в оригинальной ретрансляционной сети.
Обновление FIBRE
Чтобы обойти проблему задержки, в которой cеть пересылает пакеты данных из одной точки в другую (в данном случае, от узла к узлу), Коралло перешел к другому транспортному протоколу - UDP.
"Вместо того, чтобы использовать TCP для передачи данных, необходимых для передачи блока один раз, и опираясь на полный пакет для обнаружения и повторной отправки потерянных блоков, FIBRE отправляет данные, используя UDP с данными для дополнительного прямого исправления ошибок (FEC). Это позволяет вам реконструировать передаваемые данные, даже если некоторые пакеты были потеряны".
Изменения в FIBRE также включают BIP 152, предложение для "компактных блоков", направленное на сокращение необходимой полосы пропускания, когда блок данных перемещается от узла к узлу.
"Таким образом, даже если некоторые части теряются, блок будет полностью восстановлен в конечной точке. Также сохраняется скорость передачи."
Сетевые эффекты
Среди всех усовершенствований, наиболее амбициозная цель в FIBRE - сделать возможным для пользователей по всему миру запустить несколько сетей. Первоначально сеть поддерживалась самим Коралло, а это означает, что его работа, как и с любым узлом биткоина, зависела от способности поддерживать сеть.
Сначала у Коралло не было большого желания создавать дополнительные сети. В конечном счете, успех сети (или системы сетей), зависит от желания большого количества людей запустить их в работу.
FIBRE стремится изменить эту динамику. Программное обеспечение разработано так, чтобы функционировать в качестве дополнения к Bitcoin Core, предлагая возможности большему количеству пользователей работать с кодом и потенциально запустить свои собственные сети. Коралло также опубликовал руководство по настройке сетей FIBRE.