✓ SubscribeSubscribers: 64

Telegram channel hamsterdao
Hamster Dao


Инновация виртуальной машины Fantom

FVM превратит блокчейн Fantom в широко масштабируемый уровень 1 с такой же быстрой завершенностью транзакций, низкими комиссиями и атомарностью. Это означает отсутствие фрагментации основной цепочки с уровнями 2 или подсетями, которые приносят в жертву децентрализацию, повышают риски безопасности и усложняют общее взаимодействие с пользователем.

Текущая современная технология ограничивает количество достижимых транзакций блокчейна до менее 10 миллионов в день. Более высокая производительность обычно требует централизации валидаторов или использования сайдчейнов или 2-го уровня.

По сути, децентрализованные реестры — это базы данных, хранящиеся в локальных узлах, на которых работает блокчейн. Традиционно Merkel Patricia Trie (MPT) была стандартной структурой данных, как для состояния базы данных, так и для управления версиями базы данных.

Но MPT ограничен двумя факторами. Он по своей природе медленный, а во-вторых, поскольку это древовидная структура данных, любые изменения значений в листовых узлах должны отражаться в родительских узлах посредством хеш-вычислений, что может быть дорогостоящим. Решение Fantom организует все изменения блока в набор изменений, для которого хеш вычисляется более эффективно и с меньшими затратами.

Решение Fantom основано на использовании совершенно новой структуры данных, которая сжимает адреса хранения и опирается на файлы, а не на базы данных типа «ключ-значение».

Текущее выполнение смарт-контракта EVM работает как наивный интерпретатор, запускающий простой цикл, который последовательно извлекает инструкции из байтового кода EVM, декодирует его и выполняет операции с инструкциями. Процесс в целом неэффективен, поскольку огромные объемы инструкций, которые обычно должны быть выполнены в контракте, создают узкие места в производительности диспетчеризации инструкций.

Подход Fantom состоит из двух частей, включая «суперинструкции» и реализацию C++.

Суперинструкции можно легко понять с помощью концепции «динамического перевода». Рассмотрим сложный смарт-контракт с последовательностью непрерывных инструкций, называемый «базовым блоком».

FVM может преобразовывать подпоследовательности этого базового блока в новую единую «суперинструкцию», которая может выполнять базовый блок за одну отправку, что намного быстрее, чем выполнение нескольких инструкций одну за другой. Преобразование базового блока в новый формат суперкоманд может быть сохранено в буфере кеша/кода для использования в будущем, чтобы при повторном появлении базового блока перевод в суперинструкции не нужно было повторять. Суперинструкции — невероятно мощные объединения, но их нельзя создать неограниченное количество.

Еще одно соображение заключается в том, что механизм диспетчеризации EVM имеет тенденцию быть медленным в своей текущей итерации на языке GO. Команда R&D экспериментирует с кодом, переписанным на C++. Новая версия находится в стадии тестирования, где критерием успеха является скорость при бескомпромиссной безопасности.

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

Исследователи обнаружили, что две-три транзакции в блоке могут обрабатываться параллельно без конфликтов — случаи, когда транзакции необходимо обрабатывать последовательно, поскольку они связаны или влияют друг на друга. Текущие эксперименты сосредоточены на одновременном управлении транзакциями, чтобы обеспечить параллельную обработку, но с функцией автоматического отката, которая исправляет конфликтующие транзакции. Первоначальное тестирование показало увеличение производительности в 2 или 3 раза по сравнению с текущей системой.
fantom.foundation
ERROR: The request could not be satisfied
🕒 23.11.2022 04:37👍 2≈0.014 Ƶ👎 0