# Beta-5: Поетапна модернізація мережі

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

---

> **Відмова від відповідальності**
> 
> Цю статтю було перекладено з її оригінальної мови для вашої зручності. Незважаючи на прагнення до точності, можуть бути невеликі помилки або відмінності в тлумаченні. Для найбільш точного і достовірного уявлення, будь ласка, зверніться до оригінальної [**публікації**](https://fuel.mirror.xyz/5JCTjM3jSG84QYLKqQ4idHf6X_zVtwTInQvg7kWhaMA), доступної за посиланням. Ми цінуємо ваше розуміння і рекомендуємо звертатися до оригінального джерела за детальною інформацією.

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

З 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`.

_Зверніть увагу, що_ `бета-5` _\- це фінальна тестова мережа. Далі ми запустимо стимульовану тестову мережу. Більше інформації незабаром._

Ключові покращення та нові функції
----------------------------------

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

### Обмеження щодо типових ознак

Підтримка узагальнених типів у Sway зазнала значних змін. Завдяки обмеженням типових ознак, Sway значно покращує досвід розробників. Це дозволяє використовувати звичайні патерни, такі як iterators, conversion traits тощо.

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

Нещодавно додана підтримка [політик транзакцій](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/cfed3532184b085d65120c46d3a31d951f7321690b9e92f259ad52306558d0cd.png)

*   Ми повністю підтримуємо асоційовані типи, такі як:
    

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

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

### 🌐 Клієнт

*   Більшість змін покращили безпеку та стабільність роботи вузла.
    
    *   Gas модель було перероблено, щоб охопити всі аспекти виконання.
        
    *   Система бенчмаркінгу була значно вдосконалена, охоплюючи найгірші сценарії.
        
    *   Додано новий набір бенчмарків для відстеження точності цін на 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: покращений UX, тепер можна вибрати, проти якого інструментарію ви хочете будувати.
    
*   Новий інструмент `forc-crypto` CLI для роботи з поширеними криптографічними операціями.
    
*   `forc-doc` тепер має рядок пошуку з нечітким пошуком і семантичним підсвічуванням.
    

![](https://storage.googleapis.com/papyrus_images/70bab86431e0e47d3e423a657916bf173dad4cc10b49540379fb6ec7cd433b87.png)

### **🧩** Мовний сервер

*   На мовному сервері увімкнено кешування модулів, що призводить до значного прискорення набору тексту.
    
*   Значне покращення стабільності бекенду.
    
*   Функції автоматичного імпорту та автокваліфікації були додані до лінзи коду.
    
*   Користувачі VScode можуть візуалізувати граф залежностей проекту.
    

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

### 🏗️ SDK

*   **Rust SDK**
    
    *   Механізм повторних спроб: конфігурація для автоматичної повторної спроби транзакцій у разі невдачі;
        
    *   Підтримка `str`повернень з контрактів;
        
    *   Кешування монет/UTXO;
        
    *   Застарілий `U256` та використання власного `u256` у Rust;
        
    *   Додано перетворення з типів `Address/ContractId` на `Identity`;
        
    *   Автоматичне встановлення параметрів транзакцій за замовчуванням з мережі: Змінено `gas_limit` та `gas_price` у `TxParams` на необов'язкові. TransactionBuilder використовує відповідні значення з `ConsensusParameters` та `NodeInfo` під час `build()`, якщо ці поля були встановлені в `None`;
        
    *   Покращення UX щодо доступу до даних свідків предикатів;
        
    *   Покращення UX для типу `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/2fb535bdbf000305ded75383b10f2231bd82d8f2aafe2533c5563bc46da1716a.png)

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

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

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

### 🧳 Посібник з міграції

*   Для усунення будь-яких суттєвих змін у порівнянні з бета-4, активні розробники в екосистемі Fuel можуть слідувати посібнику з міграції → [https://docs.fuel.network/guides/testnet-migration/](https://docs.fuel.network/guides/testnet-migration/)
    

### **🚰 Faucet**

*   Для розгортання контрактів і взаємодії з мережею потрібні дійсні транзакції, для яких потрібні монети. Testnet ETH можна отримати з [faucet](https://faucet), заповнивши капчу.
    

### **📃 GraphQL Endpoint**

*   Вузол [Fuel Core](https://github.com/FuelLabs/fuel-core) використовує GraphQL замість JSON RPC. Ігровий майданчик для публічної кінцевої точки 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. Не забудьте слідкувати за оновленнями у нашому [Твіттері](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 — Ukrainian Blog](https://paragraph.com/@fuel-labs-ukrainian-blog/beta-5)*
