https://blog.matter-labs.io/zksync-progress-update-first-large-loadtest-of-v1-1-d35886d1abf8
2 days ago we announced the upcoming zkSync v1.1 with fully integrated support for recursive PLONK SNARKs.
The work on recursion was complete just days before the deadline of the Great Reddit Scaling Bake-Off, and we faced a dilemma: shall we risk integrating it with the features of the “Reddit edition”, or shall we leave the PoC on the stable non-recursive zkRollup version (live on mainnet) with the peak capacity of 300 TPS?
We took the risk. Because recursion is a huge deal. It not only unlocks the maximum throughput capacity, it’s also the key ingredient in bringing smart contracts to zkRollup.
Debugging of the loadtest lasted until today. Here are the results:
It contains the link to the contract and links to commitments/verifications of over 300,000 transactions (minting, subscriptions, transfers, burns). Every block has 1 data commit transaction, and up to 20 blocks share 1 multi-block verification transaction. Most blocks contain 315 rollup transactions.
We also added the link to the demo to our Bake-off submission post.
Since the submission has required a live PoC with hundreds of thousands of transactions, technically we crossed the deadline. We want to humbly apologize for this before the community and leave the judgement to the contest organizers. What matters is results, not intentions—this is one of our core beliefs in Matter Labs. Teams who provided their full submissions in time clearly deserve a ton of respect.
This version is heavily unoptimized. As we explained in the v1.1 post, we integrated the recursive verification of blocks but did not yet change the smart contracts and the server node to make commits in batches. As a result, the amortised gas cost in the loadtest was 1184 gas per transfer, which translates into the maximum throughput of 800 TPS (assuming 12,5M gas block limit and 13 sec block interval).
The good news: as we detailed in the previous post, the gas consumption metrics we measured show that minimal changes in the contract and server code will bring us to 3,000 TPS. We will keep posting updates on the implementation progress.
I would like to also thank in this post the entire Matter Labs Core team for the fantastic work they done in this huge sprint. Guys, you’re the best!
两天前,我们宣布了即将推出的 zkSync v1.1,它完全集成了对递归 PLONK SNARK 的支持。
递归的工作在 Great Reddit Scaling Bake-Off 截止日期前几天完成,我们面临一个两难的境地:我们是冒险将其与“Reddit 版”的功能集成,还是将 PoC 留在稳定峰值容量为 300 TPS 的非递归 zkRollup 版本(主网上线)?
我们承担了风险。因为递归是一件大事。它不仅释放了最大的吞吐能力,也是将智能合约引入 zkRollup 的关键因素。
负载测试的调试一直持续到今天。结果如下:
它包含指向合约的链接以及指向超过 300,000 笔交易(铸币、订阅、转让、销毁)的承诺/验证的链接。每个区块有 1 个数据提交事务,最多 20 个区块共享 1 个多区块验证事务。大多数区块包含 315 个汇总交易。
我们还在 Bake-off 提交帖子中添加了演示链接。
由于提交需要具有数十万笔交易的实时 PoC,因此从技术上讲,我们已经超过了最后期限。我们想在社区面前谦虚地为此道歉,并将判断权留给比赛组织者。重要的是结果,而不是意图——这是我们对 Matter Labs 的核心信念之一。及时提供完整提交的团队显然值得尊重。
此版本严重未优化。正如我们在 v1.1 帖子中解释的那样,我们集成了块的递归验证,但尚未更改智能合约和服务器节点以批量提交。结果,负载测试中的摊销 gas 成本为每次传输 1184 gas,这转化为 800 TPS 的最大吞吐量(假设 12.5M 的 gas 块限制和 13 秒的块间隔)。
好消息:正如我们在上一篇文章中详述的那样,我们测量的 gas 消耗指标表明,合约和服务器代码的最小更改将使我们达到 3,000 TPS。我们将继续发布有关实施进度的更新。
我还要在这篇文章中感谢整个 Matter Labs Core 团队在这个巨大的冲刺中所做的出色工作。伙计们,你们是最棒的!