Beta-5: Поэтапная модернизация сети

Отказ от ответственности

Эта статья была переведена с ее оригинального языка для вашего удобства. Несмотря на стремление к точности, могут быть небольшие ошибки или различия в толковании. Для наиболее точного и достоверного представления, пожалуйста, обратитесь к оригинальной публикации, доступной по ссылке. Мы ценим ваше понимание и рекомендуем обращаться к оригинальному источнику за подробной информацией.

Мы рады перенести сеть Fuel на Beta-5. Сеть Beta-5 имеет множество новых функций и обновлений, позволяющих интегрировать кошельки, защищать от DDoS-атак, улучшить Sway DevEx и многое другое.

С Beta-5 разработчики могут использовать новый пакет npm create fuels, упрощающий создание полноценного dApp для любого, будь то разработчик интерфейса или серверной части. Кроме того, он принёс нам Fuel Wallet Connectors, которые представляют собой комплексную систему для повышения взаимодействия dApp и позволяющую кошелькам выходить за рамки расширений браузера.

Пользователи могут загрузить Fuel кошелек и исследовать приложения в режиме реального времени на странице экосистемы Beta-5.

Обратите внимание, что Beta-5 - это финальная тестовая сеть. Затем мы запустим стимулированную тестовую сеть. Больше информации скоро.

Ключевые улучшения и новые функции

Beta-5 представляет ряд усовершенствований и новых функций:

Ограничения по типовым признакам

Поддержка обобщений в Sway была значительно улучшена. С помощью обобщенных ограничений по трейтам, Sway существенно улучшает опыт разработчиков. Это позволяет применять такие стандартные паттерны, как итераторы, трейты преобразования и другие.

Политики транзакций

Недавно добавленная поддержка политик транзакций повышает безопасность для пользователей.

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

Connectors Fuel кошельков

Fuel Wallet Connectors представляет комплексную систему для улучшения взаимодействия DApp с кошельками, позволяющую им выйти за рамки расширений браузеров. Узнайте больше здесь.

Новые инструменты для разработчиков Dapp

Новый инструментарий обеспечивает самый быстрый способ разработки полноценных Fuel приложений Fuel dApp. Как типизированная обертка вокруг forc, он упрощает рабочие процессы создания и развертывания контрактов, а также интеграцию Sway в веб-приложения. Узнайте больше здесь.

Что нового

Вот полный список функций и обновлений:

🌴 Compiler

  • Новый примитивный тип u256 с поддержкой арифметики, который делает устаревшим U256

  • Разрешен вызов методов между методами impl

  • Поддерживаются обобщенные ограничения трейтов, такие как:

  • Мы полностью поддерживаем ассоциированные типы, такие как:
  • Добавлены новые атрибуты #[deprecated] и #[allow(deprecated)] для предупреждения об устарелости

  • Малые значения, такие как () и u8, теперь представлены в памяти одним байтом, а не полным словом

  • Функции с более чем шестью аргументами теперь не требуют встраивания

  • Различные оптимизации ускоряют работу компилятора

  • Множество крайних случаев системы типов теперь обрабатываются корректно

  • Новые оптимизации байт-кода делают наш вывод меньше

    • улучшена инициализация массивов

    • оптимизированное индексирование агрегатов

    • дедупликация функций

🌐 Клиент

  • Большинство изменений улучшили безопасность и стабильность работы узла.

    • Gas модель была переработана, чтобы охватить все аспекты исполнения.

    • Система бенчмаркинга была значительно усовершенствована, охватывая худшие сценарии.

    • Добавлен новый набор бенчмарков для отслеживания точности цен на газ.

    • Оптимизированы тяжелые операции и удалена/заменена функциональность, которая может быть использована.

  • Унифицированы имена для всех аргументов CLI. Добавлены зависимости между связанными полями, чтобы избежать неправильной конфигурации в случае отсутствия аргументов. Добавлен флажок -debug, который включает дополнительную функциональность, например, отладчик.

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

  • Улучшена стабильность P2P-слоя и скорректирован подсчет репутации. Значительно увеличена скорость синхронизации блоков.

  • Узел является более стабильным и отказоустойчивым. Улучшена устойчивость к DoS-атакам и управление ресурсами. Исправлены критические ошибки при переходе состояния.

  • Переработана транзакция Mint, чтобы накапливать комиссию от производства блоков внутри контракта, определенного производителем блоков.

  • FuelVM получил много улучшений безопасности и стабильности:

    • Недавний аудит помог выявить некоторые ошибки, которые были успешно исправлены.

    • Обновлена модель цены на gas для начисления платы за ресурсы, использованные в течение жизненного цикла транзакции.

    • Добавлена поддержка no_std и 32-битной системы. Это открывает возможности для доказательства мошенничества в будущем.

    • Удален ChainId из расчета PredicateId, что позволяет использовать предикаты между цепочками.

    • Улучшение производительности некоторых опкодов, связанных с хранилищами.

    • Поддержка инструкции ECAL, которая позволяет добавлять кастомную функциональность к виртуальной машине. Это может быть использовано для создания уникальных ролловеров или продвинутых индексаторов в будущем.

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

    • Исправлены ошибки, которые возвращают пользователю более подробную информацию об ошибках, что упрощает отладку.

🔧 Инструменты

  • Sway Playground: улучшенный пользовательский интерфейс, теперь можно выбрать, против какого набора инструментов вы хотите собрать проект.

  • Новый инструмент forc-crypto CLI для работы с распространенными криптографическими операциями.

  • forc-doc теперь имеет строку поиска с нечетким поиском и семантической подсветкой.

🧩 Языковой сервер

  • На языковом сервере включено кэширование модулей, что приводит к значительному ускорению набора текста.

  • Значительное улучшение стабильности бэкэнда.

  • Функции автоматического импорта и автоквалификации были добавлены в линзу кода.

  • Пользователи VScode могут визуализировать граф зависимостей проекта.

🏗️ SDK

  • Rust SDK

    • Механизм повторных попыток: конфигурация для автоматической повторной попытки транзакций в случае неудачи;

    • Поддержка str возвратов из контрактов;

    • Кэширование монет/UTXO;

    • Устаревший U256 и использование собственного u256 в Rust;

    • Добавлено преобразование из типов Address/ContractId в Identity;

    • Автоматическая установка параметров транзакций по умолчанию из сети: Изменено gas_limit и gas_price в TxParams на необязательные. TransactionBuilder использует соответствующие значения из ConsensusParameters и NodeInfo во время build(), если эти поля были установлены в None;

    • Улучшено юзабилити доступа к данным предикатов-свидетелей;

    • Улучшение юзабилити для типа Bytes благодаря новому from_hex_str;

    • TxParameters заменены на TxPolicies;

    • В TxPolicies добавлены новые поля:

      • WitnessLimit

      • MaxFee

    • ScriptGasLimit ограничивает только выполнение скриптов;

    • Новый WitnessLimit влияет на расчет max_gas и max_fee;

    • Минимальная стоимость газа для расчета ID транзакции;

    • Установка политики GasPrice является обязательной для каждой транзакции;

    • Изменения в правилах GasLimit и MAX_GAS_PER_TX;

    • get_message_proof теперь использует Nonce;

    • Предикаты больше не используют ChainId для вычисления адреса;

      • manual_blocks_enabled заменено на debug;
    • fee_checked_from_tx использует FeeParameters;

    • По умолчанию включены utxo_validation и manual_blocks;

    • Изменения в конфигурации узла: Замена local_node на значение по умолчанию;

    • TransactionType больше не реализует Transaction. Пользователям нужно сопоставить и извлечь внутренний tx;

  • Typescript SDK

    • Поддержка Typegen для фрагментов строк

    • Автоматическая загрузка слотов хранилища во время развертывания контрактов

    • Улучшено кодирование/поддержку AssetID

    • Улучшенная возможность "вытряхивания" пакетов

    • Поддержка Node v20 (LTS)

    • Поддержка подписок на GraphQL

    • Механизм повторной попытки для неудачных транзакций

    • Кэширование монет/UTXO

    • Улучшены DX и утилита для расчета комиссий

    • Новые инструменты CLI для создания/автоматизации новых fullstack Fuel dApps

    • В TxPolicies добавлены новые поля:

      • WitnessLimit

      • MaxFee

    • ScriptGasLimit ограничивает только выполнение скриптов;

    • Новый WitnessLimit влияет на расчет max_gas и max_fee;

    • get_message_proof теперь использует Nonce;

    • Предикаты больше не используют ChainId для вычисления адреса;

      • manual_blocks_enabled заменено на debug;

🔌 Передняя часть

  • Коннекторы Fuel кошельков

    • Fuel Wallet Connectors представляют собой комплексную систему, направленную на улучшение взаимодействия между DApp и кошельками, позволяя кошелькам выходить за рамки браузерных расширений без избыточной абстракции. Вдохновение для нового дизайна было черпнуто из реализаций других экосистем; однако, в случае с Fuel, это реализовано на уровне протокола с целью улучшения пользовательского опыта без усложнения работы разработчиков DApp или кошельков. Узнать больше об этом можно в нашей вики: https://github.com/FuelLabs/fuels-wallet/wiki/Fuel-Wallet-Connectors
  • Интерфейс коннекторов кошелька Fuel

    • Новый интерфейс Connectors UI, реализованный на основе нового шаблона Connectors, предоставляет для реагирования приложения готовый к использованию интерфейс, позволяющий пользователям выбирать кошелек, который они хотят использовать. https://next-wallet.fuel.network/docs/dev/connectors/#with-react

Обновите свой Fuel кошелек: Если вы не можете подключить свой Fuel кошелек к Fuel мосту или в других приложениях, возможно, вы используете не последнюю версию Fuel кошелька. Вот как его обновить: Перейдите в параметры расширений, активируйте режим разработчика и нажмите кнопку "Обновить".

  • Hooks Fuel React

    • Теперь разработчики React могут использовать нашу библиотеку хуков для более естественной разработки, используя хуки для взаимодействия с Fuel SDK. Наша документация была обновлена с новыми примерами. Вы можете ознакомиться со всеми доступными хуками в нашем справочнике хуков.
  • Hooks Fuel React

    • Новый проводник Fuel был разработан с учетом потребностей пользователей и разработчиков, чтобы помочь визуализировать общие детали транзакции, последовательность операций, входные и выходные данные. А для более продвинутых пользователей мы также включили представление, которое позволяет визуализировать необработанную транзакцию, устраняя потребность в нескольких инструментах.

    • Новый проводник также включает визуализации для счетов и предикатов, контрактов и блоков. Проверьте это здесь.

Больше ресурсов для разработчиков и пользователей

🧳 Руководство по миграции

  • Для устранения любых существенных изменений по сравнению с beta-4, активные разработчики в экосистеме Fuel могут следовать руководству по миграции → https://docs.fuel.network/guides/testnet-migration/

🚰 Faucet

  • Для развертывания контрактов и взаимодействия с сетью нужны действительные транзакции ю нужны действительные транзакции, для которых нужны монеты. Testnet ETH можно получить с faucet, заполнив капчу.

📃 GraphQL Endpoint

  • Узел Fuel Core использует GraphQL вместо JSON RPC вместо JSON. Игровая площадка для публичной конечной точки GraphQL для Beta-5 доступна здесь.

🏃🏻 Начало работы

Если у вас есть вопросы (связанные с разработкой или другие), вы можете присоединиться к дискуссии Fuel Labs Discord и перейти на канал #questions в категории Testnet. Не забудьте следить за обновлениями в нашем Twitter.

beta-5 активно развивается, и в ней могут появиться революционные обновления и даже события регенерации.


Присоединяйтесь к сообществу Fuel

Стать Fuel Contributor

Subscribe to Fuel Labs — Russian Blog
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.