Fall Roadmap Updates

In June we shared a summer update on the 2024 roadmap. Time for another update!

The prioritization of UX has been a major success with the reduction of confirmation times to 1-2 seconds for most transactions.

However, thereā€™s been a new development on the fees and costs front: demand for Ethereum blobs has been steadily increasing to the point of being non-negligible. Many builders and developers have expressed related concerns, so it was really a no brainer: fee reduction is back on the menu, and with a high priority!

In a nutshell, there is some reshuffling that promotes fee reduction at the expense of performance.

As tradition dictates, let us return to the loving hands of the beloved table. Details after and even more details even more after.

Wen mainnet Content Effect
v0.13.3 Nov 20 Stateless compression & squash-pricing fee reduction
v0.13.4 Feb 20 Stateful compression, L2 gas, try/catch for function call failures; TBD: Cairo-native (Sierra ā†’ LLVM), nonce channels fee reduction, UX & devX; TBD: performance
v0.14.0 April '25 2 second blocks, mempool & fee market, Stwo integration TBD

Now some more words, but weā€™ll keep it short since @FeedTheFed is writing a more detailed post about the features.


v0.13.3

Right now, Starknet sends blobs that contain uncompressed state-diffs, which are lists of key-value pairs. Stateless compression means that blobs will contain a compressed version of the state-diffs, allowing us to pack more state-diffs into each blob.

Block-packing will also be optimized with more efficient squashing. Currently, a tree is closed once the sum (disjoint union) (coproduct for you, mā€™lady) of the blocksā€™ state-diffs reaches k blobs. In v0.13.3, trees will be closed once the union reaches k blobs. This means more Starknet blocks will enter each applicative tree, which brings two benefits:

  1. The fixed L1 state update costs will be amortized over more Starknet blocks.
  2. There will be more squashing, since there is a long time period over which repeated storage writes are squashed together.

The above features reduce operating costs, which will justify a reduction of tx fees. In fact, thereā€™s already some justification for fee reduction: currently Starknet charges a fee per every DA felt regardless of repeated writes. The fee reductions in v0.13.3 will improve on this inaccuracy as well!

:warning: All breaking changes planned for v0.13.3 are deferred to v0.13.4: new RPC version alongside termination of RPC versions <0.7, ERC-20 event changes, and walletā‡„dapp API changes.


v0.13.4

In this version weā€™ll continue reducing costs by improving the compression mechanism from stateless to stateful. What does this mean? Well, key-value are tough to compress because keys are hashes and therefore quite random. Weā€™ll remedy this by encoding keys using a small sequence number; such a number will have a suffix of zeros, which is very compressible. In essence weā€™ll re-encode state-diffs in a more compressible way.

Beyond fee reduction, weā€™ll improve devX by supporting try/catch patterns. Weā€™ll also introduce L2 gas as a protocol level resource to encapsulate all L2-native computation, storage, and bandwidth ā€“ all without coupling to L1 resource markets.

We hope Cairo-native will also be ready for this version, resulting in a phat performance improvement.

:warning: All changes planned for v0.13.3 are deferred to v0.13.4: new RPC version alongside termination of RPC versions <0.7, ERC-20 event changes, and walletā‡„dapp API changes.


v0.14.0

More on this one soon!

Summary

To summarize, the terms ā€˜sumā€™ and ā€˜coproductā€™ are much cooler than ā€˜disjoint unionā€™. If you disagree, please write down your reasoning on paper and throw it away ā€“ you are wrong.

GM,

Looking forward to all these changes!

Do you have an idea about how much fee reduction we are speaking about?
Are we speaking about something like 5-10% or magnitude(s?)?

Thanks!

Great update on the roadmap, thank you @ilia!

To confirm the warning in the post about RPC version, we shouldnā€™t expect any bump in RPC until 0.13.4, correct? Or only minor changes not breaking have to be expected in 0.13.3?

GM! This is great news!

GG for being so nimble with regards to BlobsGate and the Blobspocalypse.

Sidenote:
Is there a plan to add to 0.13.3 increase in step limit per transaction ?
I know I sound like a broken record or a broken watch whichever is more likely to ramble. We desperately require more bandwidth per transaction on Starknet. Ideally 20 million step limit per transaction as soon as 0.13.3;

Thanks again for your patience

Preparing starknet for the future, Iā€™m excited

In v0.13.3 weā€™re looking at a reduction of roughly 3x-6x on the tx fee per DA felt.

In v0.13.4 probably another factor of 2x.

:octopus:

Yes Ser! \;\;\;\;\;

Hello Ser!

Weā€™re discussing this hopefully today or next week. Last time there was pushback about an aggressive increase of 4Mā†’20M so we went with 4Mā†’10M. Letā€™s see what people think this time :slight_smile:

GM,

Small clarification to make sure I follow correctly:
All of that fee reduction only affect changes in DA reduction, right?
So there wonā€™t be any change related to builtin costs (step, pedersen, poseidon, range check, etc etc)?
ref

Thanks!

What I mentioned is definitely just for DA. For compute-related matters, IIRC the answer is ā€˜noā€™. However, Iā€™ll tag gigabrain feemaster @Leo_L.

Cheaper and cheaper! great work

Niceee update roadmap!

Im looking forward to everything happening :carrot:

Bullish on Starknet

@ilia this is an awesome read. Thanks for the roadmap update!

I am happy for this great news, Starknet has the future in mind

What try/catch mean for Cairo0 contracts? Failure canā€™t be proven in this case. @ilia

Nothing changes for Cairo0, only relevant for Cairo panics

So there wonā€™t be any change related to builtin costs (step, pedersen, poseidon, range check, etc etc)?

There will be cost reductions for steps and most other builtins as well, but they will only affect contracts compiled with a future compiler (that will be released around the time of 0.13.4). Weā€™ll publish more info about it in the upcoming pre-release notes!