Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add timeboost troubleshooting guide #2113

Open
wants to merge 18 commits into
base: master
Choose a base branch
from

Conversation

leeederek
Copy link
Member

this pull request adds a troubleshooting guide and best practice recommendations for users of Timeboost following some testing with a few teams trying Timeboost out.

I'd really like to have a separate Timeboost section since we now have docs on: how to use timeboost, troubleshoot timeboost, and its conceptual design. We will have docs on decentralized timeboost eventually as well.

Copy link

vercel bot commented Feb 28, 2025

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Updated (UTC)
arbitrum-docs ✅ Ready (Inspect) Visit Preview Mar 5, 2025 2:55pm

Copy link
Member

@Tristan-Wilson Tristan-Wilson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Content mostly good, some files included incorrectly.

Copy link
Contributor

@TucksonDev TucksonDev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks ser!
A few notes and comments on the general document, but mainly requesting changes because of the extra files present in the PR.
I'll share a few other comments in Slack.


## How response times work

The response for a <a data-quicklook-from="transaction">Transaction</a> submission is returned only once the block containing the transaction is produced. For example, irrespective of the type of transaction (express lane or normal), if a transaction arrives at the <a data-quicklook-from="sequencer">Sequencer</a> at `t=0ms` and the block is produced at `t=250ms`, then the expected response time is always (`time_to_arrive`) + 250ms, where `time_to_arrive` is the time it took for the transaction to be received by the sequencer.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This paragraph seems a bit confusing, since it starts saying that the transaction arrives at t=0ms but later say that it takes time_to_arrive to arrive.

I have some extra comments in general about the sequencer behavior explained here, that I'll share on Slack.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How does this sound?

Suggested change
The response for a <a data-quicklook-from="transaction">Transaction</a> submission is returned only once the block containing the transaction is produced. For example, irrespective of the type of transaction (express lane or normal), if a transaction arrives at the <a data-quicklook-from="sequencer">Sequencer</a> at `t=0ms` and the block is produced at `t=250ms`, then the expected response time is always (`time_to_arrive`) + 250ms, where `time_to_arrive` is the time it took for the transaction to be received by the sequencer.
The response for a <a data-quicklook-from="transaction">Transaction</a> submission is returned only once the block containing the transaction is produced, plus some time for the message to get through the network (`time_to_arrive`). For example, irrespective of the type of transaction (express lane or normal), if a transaction arrives at the <a data-quicklook-from="sequencer">Sequencer</a> at `t=0ms` and the block is produced at `t=250ms`, then the expected response time is at least (`time_to_arrive`) + 250ms, where `time_to_arrive` is the time it took for the transaction to be received by the sequencer.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The paragraph is still confusing, at the beginning it says that the transaction arrives at t=0ms (if a transaction arrives at the Sequencer at t=0ms) but later says that it takes time_to_arrive to arrive (where time_to_arrive is the time...) 😅

Maybe it would be clearer if we say something like "If transaction is sent at t=0ms, and the block is produced at t=250ms, the expected response time is 250ms - time_to_arrive, where time_to_arrive is ..."

wdyt?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh I see what you're saying, apologies. How's this? Also I think its always going to be 250ms plus time_to_arrive right?

Suggested change
The response for a <a data-quicklook-from="transaction">Transaction</a> submission is returned only once the block containing the transaction is produced. For example, irrespective of the type of transaction (express lane or normal), if a transaction arrives at the <a data-quicklook-from="sequencer">Sequencer</a> at `t=0ms` and the block is produced at `t=250ms`, then the expected response time is always (`time_to_arrive`) + 250ms, where `time_to_arrive` is the time it took for the transaction to be received by the sequencer.
The response for a <a data-quicklook-from="transaction">Transaction</a> submission is returned only once the block containing the transaction is produced. For example, irrespective of the type of transaction (express lane or normal), if a transaction is sent to the <a data-quicklook-from="sequencer">Sequencer</a> at `t=0ms` and the block is produced at `t=250ms`, then the expected response time is at least `time_to_arrive` + 250ms, where `time_to_arrive` is the time it took for the transaction to be received by the sequencer.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ahh, that's less confusing, yeah. But I think the timing is still a bit off. If I send my transaction at t=0ms, and the block is produced at t=250ms, it will be confirmed at t=250ms if time_to_arrive is less than 250ms.

For example, say that I send at t=0ms, and time_to_arrive is 50ms. The transaction will make it to the next block at the t=250ms mark, but the current formula suggests that the expected response time will be 50+250ms = 300ms.

If time_to_arrive is more than 250ms, then it will make it to the next block. Always assuming that the block is not filled up before.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sounds good - will make a change.

Copy link
Member Author

@leeederek leeederek left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @TucksonDev for your review! How do the changes look to you now?


## How response times work

The response for a <a data-quicklook-from="transaction">Transaction</a> submission is returned only once the block containing the transaction is produced. For example, irrespective of the type of transaction (express lane or normal), if a transaction arrives at the <a data-quicklook-from="sequencer">Sequencer</a> at `t=0ms` and the block is produced at `t=250ms`, then the expected response time is always (`time_to_arrive`) + 250ms, where `time_to_arrive` is the time it took for the transaction to be received by the sequencer.
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How does this sound?

Suggested change
The response for a <a data-quicklook-from="transaction">Transaction</a> submission is returned only once the block containing the transaction is produced. For example, irrespective of the type of transaction (express lane or normal), if a transaction arrives at the <a data-quicklook-from="sequencer">Sequencer</a> at `t=0ms` and the block is produced at `t=250ms`, then the expected response time is always (`time_to_arrive`) + 250ms, where `time_to_arrive` is the time it took for the transaction to be received by the sequencer.
The response for a <a data-quicklook-from="transaction">Transaction</a> submission is returned only once the block containing the transaction is produced, plus some time for the message to get through the network (`time_to_arrive`). For example, irrespective of the type of transaction (express lane or normal), if a transaction arrives at the <a data-quicklook-from="sequencer">Sequencer</a> at `t=0ms` and the block is produced at `t=250ms`, then the expected response time is at least (`time_to_arrive`) + 250ms, where `time_to_arrive` is the time it took for the transaction to be received by the sequencer.

Copy link
Contributor

@ganeshvanahalli ganeshvanahalli left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Copy link
Contributor

@TucksonDev TucksonDev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, added 2 comments to clarify, but approving to unblock 🙏

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants