-
Notifications
You must be signed in to change notification settings - Fork 141
Bundle cancellations #36
Conversation
flashbotsextra/database.go
Outdated
| insertBuiltBlockStmt *sqlx.NamedStmt | ||
| insertMissingBundleStmt *sqlx.NamedStmt | ||
| fetchPrioBundlesStmt *sqlx.NamedStmt | ||
| fetchGetLatestUuidBundles *sqlx.NamedStmt |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nitpicking : to make it consistent
| fetchGetLatestUuidBundles *sqlx.NamedStmt | |
| fetchGetLatestUuidBundlesStmt *sqlx.NamedStmt |
| } | ||
|
|
||
| return simBundles, nil | ||
| ccBundles := <-ccBundlesCh |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nitpick: I wouldn't separate the simulation of bundles here, as long as I don't return simBundles & simCcBundles separately. But I would add a log to give an insight on the size of simCcBundles.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The bundles coming from the channel are not ready when we start the simulation of the other bundles, it can take up to few ms for the channel to be ready.
|
What is actually the reason to submit the block every 500ms. From experience the best block is usually built in the last second of the slot time. Wouldn't it be more efficient to start the building job in the last third or quarter to reduce load on the relays? |
The builder doesn't know when is the proposer going to request the block. The proposer is free to chose any time they want. |
Introduces bundle replacement and cancellation via replacementUuid. Since the replacement is tied to a specific sender, eth_sendBundle gets two additional optional fields: the replacement uuid and the signingAddress of the bundle submission. The DB requests are done in the background, and cancellations are resolved while non-cancelable bundles are already being simulated to avoid waiting for DB to reply. If anything goes wrong with the cancellations, the cancelable bundles are not considered. Note: every block is now sent to the relay, as we can no longer rely on the highest-profit rule!
Introduces bundle replacement and cancellation via replacementUuid. Since the replacement is tied to a specific sender, eth_sendBundle gets two additional optional fields: the replacement uuid and the signingAddress of the bundle submission. The DB requests are done in the background, and cancellations are resolved while non-cancelable bundles are already being simulated to avoid waiting for DB to reply. If anything goes wrong with the cancellations, the cancelable bundles are not considered. Note: every block is now sent to the relay, as we can no longer rely on the highest-profit rule!
* miner logs * builder logs
Introduces bundle replacement and cancellation via replacementUuid. Since the replacement is tied to a specific sender, eth_sendBundle gets two additional optional fields: the replacement uuid and the signingAddress of the bundle submission. The DB requests are done in the background, and cancellations are resolved while non-cancelable bundles are already being simulated to avoid waiting for DB to reply. If anything goes wrong with the cancellations, the cancelable bundles are not considered. Note: every block is now sent to the relay, as we can no longer rely on the highest-profit rule!
* miner logs * builder logs
Introduces bundle replacement and cancellation via replacementUuid. Since the replacement is tied to a specific sender, eth_sendBundle gets two additional optional fields: the replacement uuid and the signingAddress of the bundle submission. The DB requests are done in the background, and cancellations are resolved while non-cancelable bundles are already being simulated to avoid waiting for DB to reply. If anything goes wrong with the cancellations, the cancelable bundles are not considered. Note: every block is now sent to the relay, as we can no longer rely on the highest-profit rule!
* miner logs * builder logs
Introduces bundle replacement and cancellation via replacementUuid. Since the replacement is tied to a specific sender, eth_sendBundle gets two additional optional fields: the replacement uuid and the signingAddress of the bundle submission. The DB requests are done in the background, and cancellations are resolved while non-cancelable bundles are already being simulated to avoid waiting for DB to reply. If anything goes wrong with the cancellations, the cancelable bundles are not considered. Note: every block is now sent to the relay, as we can no longer rely on the highest-profit rule!
Introduces bundle replacement and cancellation via replacementUuid. Since the replacement is tied to a specific sender, eth_sendBundle gets two additional optional fields: the replacement uuid and the signingAddress of the bundle submission. The DB requests are done in the background, and cancellations are resolved while non-cancelable bundles are already being simulated to avoid waiting for DB to reply. If anything goes wrong with the cancellations, the cancelable bundles are not considered. Note: every block is now sent to the relay, as we can no longer rely on the highest-profit rule!
📝 Summary
Introduces bundle replacement and cancellation via
replacementUuid.Since the replacement is tied to a specific sender,
eth_sendBundlegets two additional optional fields: the replacement uuid and the signingAddress of the bundle submission.func (b *EthAPIBackend) SendBundle(ctx context.Context, txs types.Transactions, blockNumber rpc.BlockNumber, uuid uuid.UUID, signingAddress common.Address, minTimestamp uint64, maxTimestamp uint64, revertingTxHashes []common.Hash) error.The DB requests are done in the background, and cancellations are resolved while non-cancelable bundles are already being simulated to avoid waiting for DB to reply.
If anything goes wrong with the cancellations, the cancelable bundles are not considered.
Note: every block is now sent to the relay, as we can no longer rely on the highest-profit rule!
📚 References
Cancellations docs: https://github.com/flashbots/flashbots-docs/pull/317/files
CONTRIBUTING.md