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

A way to enforce transaction order in a block #1622

Open
xlc opened this issue Sep 19, 2023 · 1 comment
Open

A way to enforce transaction order in a block #1622

xlc opened this issue Sep 19, 2023 · 1 comment
Labels
T1-FRAME This PR/Issue is related to core FRAME, the framework.

Comments

@xlc
Copy link
Contributor

xlc commented Sep 19, 2023

Previous discussion: paritytech/substrate#4177

Is it possible enforce certain transaction to be included in the beginning of the block? Or more generalized version, enforce transaction orders in a block.

A deterministic transaction order (e.g. order by their hash) reduces the ability for block author to manipulate the block in their favor. Block author won't be able to arbitrarily craft and insert transaction to gain advantages. They can still to do this in some degree but at least it will be harder.

Use case: I would like to enforce oracle transactions to always be included in the beginning of the block to reduce the possibility of front-running. By doing this, block producer will not able to craft and insert buy transaction before oracle price update and sell transaction after price update and making profit risk-free. With honest block producer that includes all received transactions, front runner will not able to monitor price change and make arbitrage because price update transaction is more likely to be executed before his arbitrage transaction.

@kianenigma
Copy link
Contributor

will be done as a part of #198

@kianenigma kianenigma added the T1-FRAME This PR/Issue is related to core FRAME, the framework. label Sep 19, 2023
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Mar 26, 2024
* reintroduce header chain trait

* renive BridgedChainWithMessages::maximal_extrinsic_size
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Mar 27, 2024
* reintroduce header chain trait

* renive BridgedChainWithMessages::maximal_extrinsic_size
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Apr 8, 2024
* reintroduce header chain trait

* renive BridgedChainWithMessages::maximal_extrinsic_size
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Apr 8, 2024
* reintroduce header chain trait

* renive BridgedChainWithMessages::maximal_extrinsic_size
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Apr 8, 2024
* reintroduce header chain trait

* renive BridgedChainWithMessages::maximal_extrinsic_size
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Apr 8, 2024
* reintroduce header chain trait

* renive BridgedChainWithMessages::maximal_extrinsic_size
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Apr 8, 2024
* reintroduce header chain trait

* renive BridgedChainWithMessages::maximal_extrinsic_size
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Apr 9, 2024
* reintroduce header chain trait

* renive BridgedChainWithMessages::maximal_extrinsic_size
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Apr 9, 2024
* reintroduce header chain trait

* renive BridgedChainWithMessages::maximal_extrinsic_size
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Apr 9, 2024
* reintroduce header chain trait

* renive BridgedChainWithMessages::maximal_extrinsic_size
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Apr 9, 2024
* reintroduce header chain trait

* renive BridgedChainWithMessages::maximal_extrinsic_size
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Apr 9, 2024
* reintroduce header chain trait

* renive BridgedChainWithMessages::maximal_extrinsic_size
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Apr 9, 2024
* reintroduce header chain trait

* renive BridgedChainWithMessages::maximal_extrinsic_size
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Apr 10, 2024
* reintroduce header chain trait

* renive BridgedChainWithMessages::maximal_extrinsic_size
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Apr 10, 2024
* reintroduce header chain trait

* renive BridgedChainWithMessages::maximal_extrinsic_size
bkchr pushed a commit that referenced this issue Apr 10, 2024
* reintroduce header chain trait

* renive BridgedChainWithMessages::maximal_extrinsic_size
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
T1-FRAME This PR/Issue is related to core FRAME, the framework.
Projects
None yet
Development

No branches or pull requests

2 participants