Inside Fuel: Q2 2023

Welcome to Inside Fuel, our quarterly review of technical developments and everything happening in the Fuel Ecosystem. Take a moment to catch up on all the latest news.

Partnership with Hyperlane

We announced that Fuel Labs has partnered with Hyperlane to unlock permissionless interoperability within the Fuel ecosystem. This partnership will pave the way for interchain applications and permissionless bridging with existing blockchains, thereby expanding the reach of the Fuel ecosystem. The integration with Hyperlane will allow Fuel stakeholders to explore unique features such as permissionless deployments of Hyperlane to any chain, permissionless bridging of any asset from any Hyperlane-supported chain with Warp Routes, and interchain applications. This partnership is a significant step toward our vision of creating a more scalable and efficient blockchain ecosystem. Read more about it here.

Fuel Wallet Beta Release

The Beta version of the Fuel Wallet was released on the Chrome Store. We're excited to see huge interest from our community and beyond, with 30,000+ downloads since launch. The Fuel Wallet allows users to explore DApps on Fuel and manage their crypto assets all in one place. It supports transparent transactions, multi-account management, and easy tracking of assets on the Fuel network. Download it now.

Please note that the app is still in Beta, and we welcome any feedback or issues you may encounter.
0:00
/

Ecosystem AMAs

This quarter, in our ongoing efforts to foster community engagement and transparency, we have started hosting Twitter Spaces to introduce projects building on Fuel. Here are some of the projects we've featured so far:

Stay updated about the latest news from the Fuel Ecosystem projects by following this List, and discover more projects from the Fuel ecosystem with Fuel Build.

Events

🇵🇹 ETH Global Lisbon

We were on the ground in Lisbon to connect in person with hackers and distribute Fuel Swag. We also sponsored bounties for the best Sway developments during the hackathon.

🇫🇷 EthCC

We will be attending the Ethereum Community Conference on July 17-20 and be present at various side events to spread the Fuel thesis along the week:

Click here for more information.

🇦🇷 EthArgentina

The Fuel team will be on the ground at EthArgentina for the first time in August this year. Stay tuned for more information about it.

A sample of some of the best content shared on social media by some internal and external Fuel contributors:

Documentation and Articles

Podcasts and Videos

Fuel Core

The Fuel Core is the heart of the protocol that performs the state transition, bridging tokens, transaction validation, and their propagation through the network.

Network Beta 3 Analysis

Overview: The Beta 3 network, stress-tested by grantee projects, helped identify performance issues, streamline our deployment pipeline, and overall, equip us with vital insights for a more robust future network.

Impact:

  • Enhanced performance: The fuel-core underwent numerous optimizations, significantly boosting the network's transaction processing speed.
  • Deployment pipeline enhancement: The network offered valuable insights into issues regarding our deployment pipeline, debugging processes, and insufficient logging - all pivotal for upcoming releases.
  • Identified weak points: The network also revealed areas for improvement, initiating corrective measures.

Sparse Merkle Tree (SMT) Integration

Overview: Integrating Sparse Merkle Tree moved us closer to fraud proofs and light clients. SMT strengthens network security and offers trustless API node interaction. Work is underway to optimize SMT for faster storage interactions.

Impact:

  • Enhanced security and support: SMT facilitates light client and fraud-proof support, allowing for easy data/asset validation in contract storage/balance.
  • Greater security: All network participants can now validate contract states and balances, making the network more secure.

Message Re-engineering

Overview: The fuel-core and fuel-vm now support retriable messages, primarily use Nonce instead of MessageId, and have discontinued MessageId in fields.

Impact:

  • Enhanced security: Retryable messages significantly improve token bridging security and virtually eliminate the possibility of losing bridged funds.
  • Cost-efficient: By pruning redundant fields, messages are cheaper to support on the network and simpler for users/developers to use.

Predicate Estimation

Overview: Each transaction predicate now includes a used_gas field, indicating the actual gas required for executing the predicate.

Impact:

  • Parallel execution: Predicate estimation allows for concurrent predicate execution.
  • Improved accuracy: Predicates no longer consume the block's gas limit, improving transaction selection accuracy.
  • Cost-efficient: Transactions with empty scripts can now exclude the gas_limit field, reducing transaction costs.

FuelVM

The FuelVM is a virtual machine to execute the bytecode compiled by the Sway.

FuelVM Stabilization

Overview: Over the past months, significant fuel-vm refactoring has been done to fast-track development, remove unsafe code, increase test coverage, and reduce bug likelihood.

Impact:

  • Performance improvements: The refactoring and elimination of unsafe code have boosted performance.

New and Updated FuelVM Opcodes

Overview: The fuel-vm has shed many limitations and introduced new opcodes to reduce contract size and expand developers' possibilities.

Impact:

  • General optimization of the FuelVM Opcodes.
  • Nested calls: The limitation on the number of nested calls has been removed.
  • Upgradable contracts: Relative jump support allows contract developers to create upgradable contracts.
  • Native big-number support: 128 & 256 bit integers are now natively supported, allowing for faster math and decreased code size.

🌴 Sway

Sway is a smart contract programming language that prioritizes safety and speed, and brings modern programming language theory to the blockchain.

General Updates

  • Added new associated constants for the ABI. [Read more].
  • Introduced aliases to simplify type references.
  • Overhauled how modules and privacy rules work.
  • Added a feature to compile different code depending on the target and type of the program, beyond Fuel.
  • Added support to set configurable constants in storage.
  • Enabled scripts to return basic data types.
  • Added pattern matching with the OR operator. [Read more].
  • Allowed traits to be implemented on all types for closer alignment with Rust.
  • General Language Optimization.

Standard Library

  • Better system for handling storage, which avoids the storage ambiguity that Solidity and other contract languages have. Storage is now explicitly set/read.
  • Added a feature to convert bytes for primitive data types.
  • Added helpful methods for dealing with Identity types.
  • Refactored Bytes to use a more common From trait for conversion for a closer alignment with Rust.

Tooling

  • Added the ability to rename and highlight code to the Language Server Protocol (LSP).
  • Included limited autocomplete for expressions.
  • Made the forc doc interface and comment formatting better.
  • Added a feature to the LSP to automatically generate doc comments.
  • Set up the sway repository to work with Github's online coding environment, Codespaces.

Predicates

  • Allowed loops to be used in predicates and multiple contracts to be called in contract tests.
  • Support for configurable constants within the Fuel-TS and Fuel-RS.

Forc

  • Introduced commands to get contract-id and predicate-id in forc.
  • Added a feature to specify, expected to revert code in forc-test.
  • Added support for dependencies sourced from the InterPlanetary File System (IPFS).

Forc Doc

  • Enabled git SSH support in forc and allowed nested submodules.
  • Organized links alphabetically.

SDKs (Fuel-TS & Fuel-RS)

🦀 Rust SDK

The Rust SDK for Fuel can be used for a variety of things, including but not limited to: Deploying, and testing Sway contracts, Launching a local Fuel network, Crafting and signing transactions with hand-crafted scripts or contract calls, Generating type-safe Rust bindings of contract methods.
  • A new and easier way to set up Fuel tests through the setup_program_test! macro has been implemented.
  • Many new API changes due to fuel-core @ 0.18 support. Read the release notes for more in-depth details.

Improvements:

Many small quality-of-life improvements on the API:

  • No more .into()s for identity objects (e.g., ContractID).
  • Better and more crates re-exports.
  • fuels-types and fuels-core merged.
  • Trimming utilities to SizedAsciiString.

Other improvements:

  • Unified type import paths.
  • low_level_call support.
  • Gas estimation for script calls.
  • Better compatibility between Rust and Sway: Support for u128, Bytes and RawSlice.
  • Separate contract loading and deploying.

🧰 TypeScript SDK

The Fuel TS SDK is a toolkit for build dapps on The fuel network. You can use the SDK to execute scripts, interact with contracts, list transactions, balances and more.
  • Support for configurable constants in the typegen.
  • Support for the EvmAddress type.
  • Improved support for more complex types in vectors.
  • Support for transferring assets to contracts.
  • Support for configurable constants in scripts.
  • Optional UTXO caching mechanism.

Follow Us

About Us

Fuel is the fastest execution layer for the modular blockchain stack. Powerful and sleek, the technology enables parallel transaction execution, empowering developers with the highest flexible throughput and maximum security required to scale. Developers choose the FuelVM for its superior developer experience and the ability to go beyond the limitations of the EVM.

Become a Contributor