Дисклеймер: Данная публикация является переводом, выполненным участником сообщества Fuel. Была проведена вычитка, но возможны некоторые ошибки. Fuel Labs не несет ответственности за точность, актуальность или последовательность переведенной информации.
Оригинальная публикация: Inside Fuel: Q1 2023.
Добро пожаловать в Inside Fuel, наш ежеквартальный обзор технических разработок и всего, что происходит в Fuel Network. Уделите немного времени, чтобы узнать обо всех последних новостях.
Создание самого быстрого модульного уровня исполнения было бы невозможным без невероятной команды разработчиков. Вот новые участники команды в этом квартале:
Согласно ежемесячному обзору Rust In Blockchain, Fuel является одним из самых активных проектов на основе Rust в этом квартале, что позволило нам снова войти в топ-5 самых активных блокчейнов на основе Rust.
Мы официально представили новый визуальный стиль Fuel, самого быстрого модульного уровня исполнения.
Незадолго до ETH Denver мы провели Layer 2 Day, однодневное мероприятие, собравшее всех главных сторонников Ethereum Scalability со всего мира, чтобы поговорить о будущем блокчейна, проектировании языков, абстракции аккаунтов и многом другом!
Посмотрите запись всех дискуссий и панелей:
ETH Denver стал для нас невероятной возможностью встретиться, развиваться и поделиться своими знаниями с сообществом Fuel. Если вы были там, возможно, у вас также была возможность выпить коктейли Moscow Fuel и получить эксклюзивные сувениры Fuel!
ETH Denver также предоставил разработчикам возможность проверить, как создаются проекты на Fuel с помощью Sway. Вот краткое описание проектов-победителей:
Здесь представлены некоторые из лучших материалов, которыми поделились в социальных сетях внутренние и внешние контрибьюторы Fuel:
**The Fuel dApp Template **от Eda и Carlos: Набор инструментов для разработчиков позволяет быстро создавать децентрализованные приложения на Fuel! Этот шаблон построен с использованием NextJS, TypeScript, Tailwind CSS, Forc и Sway.
Build a DApp on Fuel от Sarah Schwartz: Самое необходимое, что вам нужно знать, чтобы начать разработку dApp на Fuel.
**Building Decentralized Applications on Fuel **от Eda и Carlos: Подробное описание шаблона dApp для Fuel: Создан с использованием NextJS, TypeScript, Tailwind CSS, Forc и Sway.
FuelVM binary analysis от Jtriley: Статья о бинарном анализе смарт-контрактов Fuel. Здесь рассматриваются шаги компиляции Sway и анализ конечного исполняемого файла.
Bridging on Fuel от Rubyto: Руководство в 4 частях о том, как работает мост на Fuel: Part 1, Part 2, Part 3, Part 4.
**Fuel Build **от @0xYami9 и @0xYuminomizu: Управляемый сообществом ресурс о экосистеме Fuel.
Supercharging Modular Execution от Eshita из Messari: Подробный обзор сети Fuel Network, включая подробное изучение ее архитектуры и дизайна, а также потенциальных рисков и проблем.
Еще больше интересных материалов о Fuel вы найдете здесь.
Скрипт установки fuelup и документация теперь находятся по адресу https://install.fuel.network/latest;
fuelup show
показывает версию SDK fuels-rs, с которой тестировалась релизная версия [Подробнее];
fuelup show
теперь показывает версию fuels-rs
, которая использовалась в тестах совместимости. Это дает пользователям представление о том, какая версия fuels
будет совместима с инструментарием;
Основные обновления
Добавлен новый pass-менеджер для IR-оптимизатора;
Введена аннотация #[allow(dead_code)]
;
Добавлена поддержка синтаксиса Enum::<T>::Variant
;
Улучшение производительности распределителя регистров;
Отключено использование круглых скобок в вариантах перечисления единиц;
Добавлена поддержка супертрайтов для ABI;
Исправление ошибок
Различные исправления и улучшения в анализе "мертвого" кода;
Исправлены многочисленные ошибки в системе типов;
Исправлены некоторые проблемы, связанные с shadowing rules в Sway;
Стандартная библиотека
Расширена поддержка полей типа Input::Message
в std::inputs
;
Обновлены std::storage::get
и std::storage::StorageMap::get
для возврата Option
;
Представлены __state_clear
, std::storage::clear
и std::storage::StorageMap::remove
;
Представлен std::storage::StorageBytes
;
Добавлены реализации трейта Not
для U128
и U256
;
Добавлен метод TryFrom
;
Инструменты
Добавлено форматирование Markdown для предварительного просмотра элементов в forc doc
;
Добавлена поддержка атрибутов внутреннего модуля doc с синтаксисом #!
и //!
;
Добавлена подсветка синтаксиса для блоков кода в forc doc
;
Различные улучшения в LSP, включая сбор большего количества токенов из языка;
Разрешено форматирование одного файла с помощью forc fmt --path
;
Forc
Добавлена команда плагина forc-submit
для отправки txs на заданный узел;
Добавлен флаг salt
в forc deploy
и флаг maturity
в forc deploy
и forc run
;
Добавлен флаг forc build
для обработки предупреждений как ошибок;
Функции:
Реализация Keygen CLI для конфигурации нод;
Диаграммы Helm для многоузловых развертываний с дозорными; S
ticky sessions для маршрутизации API-запросов к дозорным;
Graceful shutdown для всех компонентов fuel-core;
Отделение логики API от резольверов GraphQL для поддержки альтернативных RPC; Поддержка TxPointer на входах;
Реализованы сообщения с возможностью возврата;
Доказательства вывода, поддерживающие периодические коммиты в L1;
Полная мерклизация состояния контракта, балансов и заголовков блоков;
Диапазоны памяти нулевой длины теперь могут пройти проверку на принадлежность, если позиция верна;
Новые опкоды относительного перехода, новая инструкция CFE
и обновление LDC
для поддержки позиционно-независимого кода в компиляторе;
Улучшения:
Многочисленные значительные улучшения производительности базы данных;
Улучшенная безопасность мостов с отдельной колонкой для статуса потраченного сообщения;
Устранение большинства случаев использования unsafe
с равной производительностью в VM;
Устранение рекурсивных узких мест в VM;
ChainID
теперь используется при хешировании идентификаторов транзакций и владельцев предикатов;
$HP
теперь регистрирует точки на первый доступный байт на гэпе;
SMO был обновлен для зарядки от внутреннего баланса во внутреннем контексте;
Улучшена балансировка нагрузки, метрики, форматирование логов для очень больших полей и UTXO pruning;
Рефакторинг:
🦀 Rust SDK
Функции:
Поддержка возврата raw_slice
из скриптов и контрактов;
Поддержка переадресации пользовательских активов в вызовах контрактов;
Поддержка #[payable]
в Sway;
Поддержка настраиваемых констант Sway - используйте SDK для обновления значений констант без необходимости перекомпиляции кода Sway;
derive
в Parameterize
и Tokenizable
;
Новые API скриптов: ScriptTransaction
и CreateTransaction
;
Поддержка путей типов и разрешение конфликтующих типов;
Vec
как выходные типы для контрактных методов;
Новый способ фильтрации расходуемых ресурсов;
Поддержка платежей с предикатами;
Поддержка возврата типов Vec<>
из контрактов;
Возврат результата из try_from_type_application
;
Добавлены последние данные о времени блока и расходуемых ресурсах с исключением;
Улучшения:
Улучшенная тестируемость благодаря новой поддержке логов assert_eq
;
Улучшенная конфигурация развертывания контрактов;
Более удобный способ получения последнего времени блока;
Исправления ошибок:
Слоты для хранения сортируются в create tx;
Выполнить load_contract
pub;
Запрос монет больше не возвращает потраченные монеты;
Рефакторинг:
fuels
wasm-offending packages/reexports, скрытые за флагом std
;
Улучшение декодирования логов и упрощение ParamType
;
Конфигурация развертывания контракта;
Удаление типа Byte
из SDK;
Удаление неиспользуемых cargo
файлов;
Реорганизация harness тестов;
Обновление шаблона PR;
Документация:
🧰 TypeScript SDK
Функции:
Полная поддержка предикатов и скриптовых ABI в новом typegen
;
Поддержка main
аргументов для предикатов и скриптов;
Добавление поддержки ABI предикатов в Typegen
;
Добавление поддержки ABI скриптов в Typegen
;
Реализация вектора в качестве output slice;
Улучшения:
Предикаты теперь работают аналогично кошелькам - предикаты теперь можно использовать для оплаты комиссий и многого другого;
Переключен движок документации;
Реорганизация констант во всем репозитории;
Стандартизация конфигураций пакетов;
Исправления ошибок:
B512
и Typegen, чтобы обеспечить правильный тип Sway;Fuel – это самый быстрый уровень исполнения для модульного стека блокчейна. Технология, отличающаяся мощностью и изяществом, обеспечивает параллельное выполнение транзакций, предоставляя разработчикам высочайшую гибкую пропускную способность и максимальную безопасность, необходимую для масштабируемости. Разработчики предпочитают FuelVM за превосходный опыт разработки и возможность выйти за пределы ограничений EVM.