StarkNet Alpha 0.10.0
Published on: September 7, 2022

StarkNet Alpha 0.10.0

StarkNet Alpha 0.10.0 released to Mainnet!

TL;DR

  • Account Abstraction Improvements in spirit of EIP-4337
    • Validate — Execute separation
    • Transaction uniqueness is now ensured in the protocol (Nonce)
  • The fee mechanism is extended to include:
    • L1→L2 Messages
    • Declare Transactions
  • Few Cairo syntax changes

Intro

We are excited to present StarkNet Alpha 0.10.0. This version is another step toward scaling Ethereum without compromising on security and decentralization.

This blog post briefly describes the main features of this version. For the full list of changes, check the release notes. For more detailed information, check the documentation.

Account Abstraction Changes

We move forward with StarkNet’s account abstraction. This version introduces changes inspired by EIP-4337.

Validate/Execute Separation

Up until now, the account’s __execute__ function was responsible for both the transaction validation and execution. In 0.10.0 we break this coupling and introduce a separate __validate__ function into accounts. Upon receiving a transaction, the account contract will first call __validate__, and then, if successful, proceed to __execute__.

The validate/execute separation provides a protocol-level distinction between invalid and reverted (yet valid) transactions. Thanks to that, sequencers will be able to charge fees for the execution of a valid transaction regardless of whether it was reverted or not.

Nonce

In version 0.10.0 a nonce field is added in order to enforce transaction uniqueness at the protocol level. Until now nonces were handled at the account contract level, which meant that a transaction with the same hash could be executed twice theoretically.

Similarly to Ethereum, every contract now includes a nonce, which counts the number of executed transactions from this account. Account contracts will only accept transactions with a matching nonce, i.e., if the current nonce of the account is X, then it will only accept transactions with nonce X.

New Transaction Version

To allow backward-compatibility, we will introduce those two changes via a new transaction version — v1. Those changes will only apply to the new version, and older accounts will still be able to execute version 0 transactions.

Note — transaction v0 is now deprecated and will be removed in StarkNet Alpha v0.11.0. Please make sure you upgrade to use the new transaction version.

For more detailed information about the transaction version, please read the documentation.

Fees Mechanism

The new version allows to include fees for two required components:

These fees will not be mandatory in this version and will only be enforced starting StarkNet Alpha v0.11.0.

Cairo Syntax Changes

In favor of gradual progress towards an upgrade of Cairo, Cairo 1.0, this version includes several syntax changes.

To minimize inconvenience, the version release will include a migration script that automatically applies the above changes. You can find more details here.

What’s Next?

  • In a few weeks, we plan to introduce parallelization into the sequencer, enabling faster block production (V0.10.1)
  • We will soon complete the last part that must be included in the fee payment — Account deployment
  • Cairo 1.0 release! More info on that in an upcoming post.

How Can I Be More Engaged?

  • Go to starknet.io for all StarkNet information, documentation, tutorials, and updates.
  • Join StarkNet Discord for dev support, ecosystem announcements, and becoming a part of the community.
  • Visit the StarkNet Forum to stay up to date and participate in StarkNet research discussions.

We are always happy to receive feedback on our documentation!

ON THIS PAGE

Contact us