Турбина — Протокол распространения блока Соланы решает масштабируемость Трилемма

Понять 1 из 7 ключевых технологий, которые делают Solana самым исполнительным блокчейном в мире

Solana является самым невыполнимым безразрешения blockchain в мире. На текущих итерациях Solana Testnet сеть из 200 физически различных узлов поддерживает устойчивую пропускную стоимость более 50 000 транзакций в секунду при запуске с графическими процессорами. Достижение этого требует внедрения нескольких оптимизаций и новых технологий, и в результате произошел прорыв в пропускной способности сети, который сигнализирует о новом этапе развития блокчейна.

Есть 7 ключевых нововведений, которые делают сеть Solana возможной:

В этой должности, мы рассмотрим Turbine, солана блок распространения протокола — вдохновленный BitTorrent — что решает блокчейн масштабируемости трилеммы.

Масштабируемость Трилемма

Трехемма масштабируемости в технологии блокчейн — это ширина полосы пропускания. В большинстве блокчейн-сетей сегодня, учитывая фиксированное количество пропускной способности на узла, увеличение количества узлов увеличит время, необходимое для распространения всех данных на все узлы. Это большая проблема.

Тем не менее, существует множество возможностей для оптимизации распространения данных. Существует множество новых методов распространения данных, каждый из которых оптимизирован для конкретных приложений. Например, BitTorrent оптимизирован для обслуживания больших файлов для больших групп людей, использующих TCP, в то время как MediaFLO, проект, с которым я работал, является протоколом, оптимизированным для распространения данных на физическом слое для повышения эффективности мультикастной по беспроводной связи Сетей.

В этом контексте, давайте перепрыгнем в Turbine, протокол распространения блоков Solana, чтобы объяснить, как сеть Solana распространяет данные для решения трилеммы масштабируемости блокчейна.

Турбины

Солана, блокчейн, построенный для шкалы

Одна из проблем высокопроизводительных блокчейнов заключается в том, как сеть распространяет большие объемы данных на большое количество узлов. Рассмотрим, например, сеть из 20 000 валидаторов. Лидеру необходимо передать блок 128 МБ (около 500 000 транзакций и 250 байт/ транзакций) всем 20 000 валидаторов. Наивная реализация потребует от лидера иметь уникальную связь с каждым валидатором и передавать полные 128 МБ 20 000 раз. Там просто не хватает пропускной способности для размещения, что многие соединения.

Наше решение этой проблемы, Turbine, сильно заимствует у BitTorrent — хотя некоторые основные технические детали дифференцируют два. Турбина оптимизирована для потоковой передачи и передает данные только с помощью UDP, и реализует случайный путь в пакет через сеть, поскольку лидеры (производители блоков) передают свои данные. Лидер разбивает блок на пакеты до 64KB в размерах. Для блока 128Mb, лидер производит 2000 64KB пакетов, и передает каждый пакет на другой валидатор.

Солана, блокчейн, построенный для шкалы

В свою очередь, каждый валидатор передает пакет группе узла, которую мы называем районом. Вы можете представить себе сеть как дерево окрестностей, позволяя сети расти далеко за 1000 валидаторов:

Солана, блокчейн, построенный для шкалы

Каждый район несет ответственность за передачу части своих данных в каждый район под ним.

Солана, блокчейн, построенный для шкалы

Если каждый район состоит из 200 узлов, 3-уровневая сеть, начиная с одного лидера в корне, может достигать 40000 валидаторов в 2 прыжка — или примерно 200 миллисекунд предполагая, что каждая ссылка сети составляет 100 мс в среднем.

Проблема, с которой мы сталкиваемся с этой техникой, заключается в обеспечении безопасности. Например: состязательные узлы могут не ретранслировать данные или ретранслировать неверные данные. Для обработки состязательных узлов лидер генерирует коды стиранияReed-Solomon. Коды Erasure позволяют каждому валидатору реконструировать весь блок, не получая все пакеты.

Солана, блокчейн, построенный для шкалы

Если лидер передает 33 пакета блока в качестве кодов стирания, то сеть может отбросить любые 33 пакета, не теряя блока. Лидеры могут даже динамически регулировать это число на основе сетевых условий. Эти определения принимаются наблюдается снижение уровня снижения пакетов лидеров по сравнению с предыдущими блоками.

Не все валидаторы созданы равными. Наиболее важными валидаторами являются те, с наибольшей долей. Поэтому мы отдав приоритет соответствующим образом пропаганде. Алгоритм отбора, взвешенный по ставке, строит дерево таким образом, что более высокие валидаторы, поставленные ставкой, находятся в районах, приближенных к лидеру. Каждый валидатор самостоятельно вычисляет одно и то же дерево. В то время как коды стир могут устранить сбои, противоборствующие узлы могут позиционировать себя в дереве таким образом, что они могут вызвать сбой выше, чем их совокупный размер ставки, особенно в сочетании с атаками отказа в обслуживании.

Как мы имеем дело с такого рода атаки затмения? Наш алгоритм фанаута генерирует взвешенное дерево для каждого пакета, используя случайный источник на основе цифровой подписи пакета. Поскольку каждый пакет проходит по другому пути, а путь неизвестен заранее, атака затмения на уровне соседства потребует почти полного контроля над сетью.

Солана, блокчейн, построенный для шкалыУзнайте больше о Туре де СОЛ – стимулируемом тестеном событии Соланы.

С одним уровнем, эта техника масштабируется где-то между 200 и 1000 узлов. Сетевые карты, поддерживающие 1 Гбит/с, могут передавать один миллион пакетов в секунду. Один валидатор может отправлять пакеты до 64 кБ на 1000 машин в течение одной секунды, если это позволяет сетевое соединение.

Использование Solana как турбины распространения, наряду с прорывами, как Доказательство истории, трубопровод VM, Доказательство репликации, и Гольфстрим объединить для создания наиболее эффективных blockchain во всей экосистеме. Тест-нет Соланы сегодня в прямом эфире. Вы можете увидеть его на https://explorer.solana.com/. Для целей затрат мы запускаем только несколько узлов. Тем не менее, мы закрутили его на многих экземплярах до более чем 200 физически различных узлов (не на общем оборудовании) в 23 центрах обработки данных на AWS, GCE и Azure для бенчмаркинга.

Время выполнения работает сегодня, и разработчики могут развернуть код на testnow сейчас. Разработчики могут строить смарт-контракты в C сегодня, и мы активно работаем над цепочкой инструментов Rust. Rust станет флагманским языком для разработки смарт-контрактов Solana. Цепочка инструментов Rust является общедоступной как часть SDK Соланы Javascript, и мы далее итерируем набор для разработки программного обеспечения.

Солана скоро запустит публичную бета-версию, стимулирующую валидаторы для запуска узлов через Tour de SOL — по аналогии с «Игрой ставок» Космоса, — которая бросает вызов широкой публике, чтобы проверить пределы сети Solana, зарабатывая жетоны для этого.