Contribution to the OPStack community: A Critical Issue Fixed

Let's find out how NodeReal fixed a crucial issue that surfaced during the Optimistic Rollup migration to the #BSC ecosystem.

Contribution to the OPStack community: A Critical Issue Fixed

TL;DR

🔎
Exciting news for the #OPStack community 🎉! We've fixed a crucial issue that surfaced during the Optimistic Rollup migration to the #BSC ecosystem. Improved transaction compatibility & data frame handling now ensures a smoother Layer 2 experience.

What is the issue?

op-batcher/batcher/channel_manager: when send tx failed, the frame should strip the version by s7v7nislands · Pull Request #5050 · ethereum-optimism/optimism
DescriptionWhen send tx failed, the frame should strip the version. fix #4937Metadata Fixes #4937Fixes CLI-3428

We all know BSC transaction does not support EIP1559 and the blocking time of BSC is quicker(3s) than ETH. Because of the difference between BSC and ETH, when the Layer 1 network faced issues or became overloaded, compressed batch transactions that are being committed to Layer 1 could fail. As the Optimistic Rollup batcher attempted to retry the submission, the transaction type was automatically converted to the EIP1559 type, which led to another failure due to incompatibility. When the compressed transactions were reverted to the queue, the data framework version was not removed. Instead, a new version of the data was added to the frame, causing data frame parsing to fail. This logic negatively impacted the smooth functioning of the Optimistic Rollup protocol in the BSC ecosystem and it may also impact the reliability of Optimistic Rollup on ETH.

How did we solve it?

We changed the logic to make the batcher work smoothly with the BSC and also improved the stability of Rollup on ETH as well because the compressed transactions submitted to ETH could also be reverted to queue when there is a traffic spike on ETH (It usually happens).

The Upcoming Plan?

Besides the issue, during we working on the migration, our team also reviewed the Optimistic Core Code, and the following technical debts were found and refactored by us, which is not only useful for OPRollup on BSC but also for ETH and other chains.

Remove the addSafeAttributes Function

https://github.com/ethereum-optimism/optimism/pull/5054

Remove LastL2Time function

https://github.com/ethereum-optimism/optimism/pull/5066

Cancel Failed Payload Confirmation

https://github.com/ethereum-optimism/optimism/pull/5065

About NodeReal

NodeReal is a leading one-stop blockchain infrastructure and service provider that embraces the high-speed blockchain era and empowers developers by “Make your Web3 Real”. We provide scalable, reliable, and efficient blockchain solutions for everyone, aiming to support the adoption, growth, and long-term success of the Web3 ecosystem.

NodeReal’s Semita helps developers to build their custom Application Chains or scale their blockchains with Layer 2 solutions, like ZK Rollup and Optimistic Rollup.

Join Our Community

Join our community to learn more about NodeReal and stay up to date!

Discord | Twitter| Youtube | LinkedIn