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

By [Fuel Labs — Russian Blog](https://paragraph.com/@fuel-labs-russian-blog) · 2024-03-01

---

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

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

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

Пользователи могут загрузить [Fuel кошелек](https://wallet.fuel.network/docs/install/) и исследовать приложения в режиме реального времени на [странице экосистемы](https://app.fuel.network/portal/ecosystem) `Beta-5`.

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

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

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

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

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

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

Недавно добавленная поддержка [политик транзакций](https://github.com/FuelLabs/fuel-vm/blob/master/CHANGELOG.md#version-0420) повышает безопасность для пользователей.

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

### Connectors Fuel кошельков

Fuel Wallet Connectors представляет комплексную систему для улучшения взаимодействия DApp с кошельками, позволяющую им выйти за рамки расширений браузеров. Узнайте больше [здесь](https://github.com/FuelLabs/fuels-wallet/wiki/Fuel-Wallet-Connectors).

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

Новый инструментарий обеспечивает самый быстрый способ разработки полноценных Fuel приложений Fuel dApp. Как типизированная обертка вокруг forc, он упрощает рабочие процессы создания и развертывания контрактов, а также интеграцию Sway в веб-приложения. Узнайте больше [здесь](https://fuellabs.github.io/fuels-ts/guide/cli/).

Что нового
----------

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

### 🌴 Compiler

*   Новый примитивный тип `u256` с поддержкой арифметики, который делает устаревшим `U256`
    
*   Разрешен вызов методов между методами `impl`
    
*   Поддерживаются обобщенные ограничения трейтов, такие как:
    

![](https://storage.googleapis.com/papyrus_images/7a190f4c03f71d21f7832c9f8438125a8dadc7aa0216b62df34ed90bef9b94a3.png)

*   Мы полностью поддерживаем ассоциированные типы, такие как:
    

![](https://storage.googleapis.com/papyrus_images/8d56a6f9268f1a8bd46ce86883db11ece4c17fa8b113d991a2a13aaa525e7f17.png)

*   Добавлены новые атрибуты `#[deprecated]` и `#[allow(deprecated)]` для предупреждения об устарелости
    
*   Малые значения, такие как `()` и `u8`, теперь представлены в памяти одним байтом, а не полным словом
    
*   Функции с более чем шестью аргументами теперь не требуют встраивания
    
*   Различные оптимизации ускоряют работу компилятора
    
*   Множество крайних случаев системы типов теперь обрабатываются корректно
    
*   Новые оптимизации байт-кода делают наш вывод меньше
    
    *   улучшена инициализация массивов
        
    *   оптимизированное индексирование агрегатов
        
    *   дедупликация функций
        

### 🌐 Клиент

*   Большинство изменений улучшили безопасность и стабильность работы узла.
    
    *   Gas модель была переработана, чтобы охватить все аспекты исполнения.
        
    *   Система бенчмаркинга была значительно усовершенствована, охватывая худшие сценарии.
        
    *   Добавлен новый набор бенчмарков для отслеживания точности цен на газ.
        
    *   Оптимизированы тяжелые операции и удалена/заменена функциональность, которая может быть использована.
        
*   Унифицированы имена для всех аргументов CLI. Добавлены зависимости между связанными полями, чтобы избежать неправильной конфигурации в случае отсутствия аргументов. Добавлен флажок `-debug`, который включает дополнительную функциональность, например, отладчик.
    
*   Улучшена телеметрия для отслеживания внутренней работы сервисов и добавлена поддержка Pyroscope, что позволяет генерировать фламеграммы в реальном времени для отслеживания производительности.
    
*   Улучшена стабильность P2P-слоя и скорректирован подсчет репутации. Значительно увеличена скорость синхронизации блоков.
    
*   Узел является более стабильным и отказоустойчивым. Улучшена устойчивость к DoS-атакам и управление ресурсами. Исправлены критические ошибки при переходе состояния.
    
*   Переработана транзакция `Mint`, чтобы накапливать комиссию от производства блоков внутри контракта, определенного производителем блоков.
    
*   FuelVM получил много улучшений безопасности и стабильности:
    
    *   Недавний аудит помог выявить некоторые ошибки, которые были успешно исправлены.
        
    *   Обновлена модель цены на gas для начисления платы за ресурсы, использованные в течение жизненного цикла транзакции.
        
    *   Добавлена поддержка `no_std` и 32-битной системы. Это открывает возможности для доказательства мошенничества в будущем.
        
    *   Удален `ChainId` из расчета `PredicateId`, что позволяет использовать предикаты между цепочками.
        
    *   Улучшение производительности некоторых опкодов, связанных с хранилищами.
        
    *   Поддержка инструкции `ECAL`, которая позволяет добавлять кастомную функциональность к виртуальной машине. Это может быть использовано для создания уникальных ролловеров или продвинутых индексаторов в будущем.
        
    *   Поддержка [политик транзакций](https://github.com/FuelLabs/fuel-vm/blob/master/CHANGELOG.md#version-0420) повышает безопасность для пользователей и закрывает некоторые векторы DOS для сети. Кроме того, эта функция прокладывает путь для будущей многомерной модели ценообразования, которая снизит транзакционные издержки и позволит осуществлять больший объем транзакций, не влияющих на хранение данных.
        
    *   Исправлены ошибки, которые возвращают пользователю более подробную информацию об ошибках, что упрощает отладку.
        

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

*   Sway Playground: улучшенный пользовательский интерфейс, теперь можно выбрать, против какого набора инструментов вы хотите собрать проект.
    
*   Новый инструмент `forc-crypto` CLI для работы с распространенными криптографическими операциями.
    
*   `forc-doc` теперь имеет строку поиска с нечетким поиском и семантической подсветкой.
    

![](https://storage.googleapis.com/papyrus_images/62c33730679ecba1e5434976aa26795eb69bb6e7d8acbfa685aef0fe2fb3faed.png)

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

*   На языковом сервере включено кэширование модулей, что приводит к значительному ускорению набора текста.
    
*   Значительное улучшение стабильности бэкэнда.
    
*   Функции автоматического импорта и автоквалификации были добавлены в линзу кода.
    
*   Пользователи VScode могут визуализировать граф зависимостей проекта.
    

![](https://storage.googleapis.com/papyrus_images/8b28b9c04164d7bcc0de7f74f85e5f671fa4db6cb2432c31725a98d889816ef6.png)

### **🏗️ 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](https://github.com/FuelLabs/fuels-wallet/wiki/Fuel-Wallet-Connectors)
        
*   **Интерфейс коннекторов кошелька Fuel**
    
    *   Новый интерфейс Connectors UI, реализованный на основе нового шаблона Connectors, предоставляет для реагирования приложения готовый к использованию интерфейс, позволяющий пользователям выбирать кошелек, который они хотят использовать. [https://next-wallet.fuel.network/docs/dev/connectors/#with-react](https://next-wallet.fuel.network/docs/dev/connectors/#with-react)
        

![](https://storage.googleapis.com/papyrus_images/113997aead9fee22ad26c076e55af6c688dcc6f0d8b0ce943091108c9a4dd71b.png)

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

*   Hooks Fuel React
    
    *   Теперь разработчики React могут использовать нашу библиотеку хуков для более естественной разработки, используя хуки для взаимодействия с Fuel SDK. Наша документация была обновлена с новыми примерами. Вы можете ознакомиться со всеми доступными хуками в нашем [справочнике хуков.](https://next-wallet.fuel.network/docs/dev/hooks-reference/)
        
*   Hooks Fuel React
    
    *   Новый проводник Fuel был разработан с учетом потребностей пользователей и разработчиков, чтобы помочь визуализировать общие детали транзакции, последовательность операций, входные и выходные данные. А для более продвинутых пользователей мы также включили представление, которое позволяет визуализировать необработанную транзакцию, устраняя потребность в нескольких инструментах.
        
    *   Новый проводник также включает визуализации для счетов и предикатов, контрактов и блоков. Проверьте это [здесь](https://app.fuel.network/).
        

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

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

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

### 🚰 Faucet

*   Для развертывания контрактов и взаимодействия с сетью нужны действительные транзакции ю нужны действительные транзакции, для которых нужны монеты. Testnet ETH можно получить с [faucet](https://faucet-beta-4.fuel.network/), заполнив капчу.
    

### 📃 GraphQL Endpoint

*   Узел [Fuel Core](https://github.com/FuelLabs/fuel-core) использует GraphQL вместо JSON RPC вместо JSON. Игровая площадка для публичной конечной точки GraphQL для `Beta-5` доступна [здесь](https://beta-4.fuel.network/playground).
    

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

*   Для ознакомления с Fuel обратитесь к новому [порталу документации Fuel](https://docs.fuel.network/).
    
*   Чтобы начать разработку на Fuel, ознакомьтесь с [кратким руководством для разработчиков](https://docs.fuel.network/guides/quickstart/). Это руководство содержит сквозное руководство для разработчиков, которые создают dapp на Fuel.
    

Если у вас есть вопросы (связанные с разработкой или другие), вы можете присоединиться к дискуссии [Fuel Labs Discord](https://discord.gg/xfpK4Pe) и перейти на канал #questions в категории Testnet. Не забудьте следить за обновлениями в нашем [Twitter](https://twitter.com/fuel_network).

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

* * *

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

*   [**Twitter**](https://twitter.com/fuel_network?ref=fuel-labs.ghost.io)
    
*   [**Discord**](http://discord.com/invite/xfpK4Pe?ref=fuel-labs.ghost.io)
    
*   [**LinkedIn**](https://www.linkedin.com/company/fuel-labs/?ref=fuel)
    
*   [**Lens**](https://lenster.xyz/u/fuelnetwork?ref=fuel-labs.ghost.io)
    
*   [**YouTube**](https://www.youtube.com/channel/UCam2Sj3SvFSAIfDbP-4jWZQ?ref=fuel)
    
*   [**Forum**](https://forum.fuel.network/?ref=fuel-labs.ghost.io)
    

Стать **Fuel Contributor**
--------------------------

*   [Ознакомьтесь с нашими текущими вакансиями](https://jobs.lever.co/fuellabs)

---

*Originally published on [Fuel Labs — Russian Blog](https://paragraph.com/@fuel-labs-russian-blog/beta-5)*
