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.
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.
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:
- Spark: A UTXO limit order book on Fuel. Replay.
- Fuelet: A non-custodial wallet on Fuel. Replay.
- Acumen: Introducing Real-world Assets on Fuel. Replay.
- Fuel Art: A next-gen NFT marketplace on Fuel. Replay.
- PlayEstates: Real Estate fractional ownership on Fuel. Replay.
- Fluid Protocol: A native decentralized stablecoin on Fuel. Replay.
- Swaylend: A decentralized lending protocol on Fuel. Replay.
- RedStone: The first Oracle in the Fuel ecosystem. Replay.
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:
- Rollup Day with Altlayer
- Rendez-Vous with TRGC and Kiln
- Epic Layer Two Day
- The Fuel Soirée
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
- The Fuel dApp template by Eda and Carlos
- Fuel Build: a community-led ecosystem directory by 0xYami
- Scaling Ethereum with Fuel
- The Fuel Beta Documentation Portal
- Deploying a smart contract on Fuel by Paul
- Get started with Sway with badcodes
- The Fuel Minis by LearnWeb3
Podcasts and Videos
- Because Bitcoin Podcast ft. Nick Dodson
- Full-stack introduction to Fuel by Nader Dabit
- The Bridged Series podcast ft. Ruben Amar
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 commonFrom
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
andFuel-RS
.
Forc
- Introduced commands to get
contract-id
andpredicate-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
andfuels-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
andRawSlice
. - 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.