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 logic for selecting block timestamp based on bundle conditions #4

thegostep opened this issue Nov 11, 2020 · 2 comments


Copy link

No description provided.

jparyani pushed a commit that referenced this issue May 13, 2021
* eth/protocols: persist received state segments

* core: initial implementation

* core/state/snapshot: add tests

* core, eth: updates

* eth/protocols/snapshot: count flat state size

* core/state: add metrics

* core/state/snapshot: skip unnecessary deletion

* core/state/snapshot: rename

* core/state/snapshot: use the global batch

* core/state/snapshot: add logs and fix wiping

* core/state/snapshot: fix

* core/state/snapshot: save generation progress even if the batch is empty

* core/state/snapshot: fixes

* core/state/snapshot: fix initial account range length

* core/state/snapshot: fix initial account range

* eth/protocols/snap: store flat states during the healing

* eth/protocols/snap: print logs

* core/state/snapshot: refactor (#4)

* core/state/snapshot: refactor

* core/state/snapshot: tiny fix and polish

Co-authored-by: rjl493456442 <>

* core, eth: fixes

* core, eth: fix healing writer

* core, trie, eth: fix paths

* eth/protocols/snap: fix encoding

* eth, core: add debug log

* core/state/generate: release iterator asap (#5)

core/state/snapshot: less copy

core/state/snapshot: revert split loop

core/state/snapshot: handle storage becoming empty, improve test robustness

core/state: test modified codehash

core/state/snapshot: polish

* core/state/snapshot: optimize stats counter

* core, eth: add metric

* core/state/snapshot: update comments

* core/state/snapshot: improve tests

* core/state/snapshot: replace secure trie with standard trie

* core/state/snapshot: wrap return as the struct

* core/state/snapshot: skip wiping correct states

* core/state/snapshot: updates

* core/state/snapshot: fixes

* core/state/snapshot: fix panic due to reference flaw in closure

* core/state/snapshot: fix errors in state generation logic + fix log output

* core/state/snapshot: remove an error case

* core/state/snapshot: fix condition-check for exhausted snap state

* core/state/snapshot: use stackTrie for small tries

* core/state/snapshot: don't resolve small storage tries in vain

* core/state/snapshot: properly clean up storage of deleted accounts

* core/state/snapshot: avoid RLP-encoding in some cases + minor nitpicks

* core/state/snapshot: fix error (+testcase)

* core/state/snapshot: clean up tests a bit

* core/state/snapshot: work in progress on better tests

* core/state/snapshot: polish code

* core/state/snapshot: fix trie iteration abortion trigger

* core/state/snapshot: fixes flaws

* core/state/snapshot: remove panic

* core/state/snapshot: fix abort

* core/state/snapshot: more tests (plus failing testcase)

* core/state/snapshot: more testcases + fix for failing test

* core/state/snapshot: testcase for malformed data

* core/state/snapshot: some test nitpicks

* core/state/snapshot: improvements to logging

* core/state/snapshot: testcase to demo error in abortion

* core/state/snapshot: fix abortion

* cmd/geth: make verify-state report the root

* trie: fix failing test

* core/state/snapshot: add timer metrics

* core/state/snapshot: fix metrics

* core/state/snapshot: udpate tests

* eth/protocols/snap: write snapshot account even if code or state is needed

* core/state/snapshot: fix diskmore check

* core/state/snapshot: review fixes

* core/state/snapshot: improve error message

* cmd/geth: rename 'error' to 'err' in logs

* core/state/snapshot: fix some review concerns

* core/state/snapshot, eth/protocols/snap: clear snapshot marker when starting/resuming snap sync

* core: add error log

* core/state/snapshot: use proper timers for metrics collection

* core/state/snapshot: address some review concerns

* eth/protocols/snap: improved log message

* eth/protocols/snap: fix heal logs to condense infos

* core/state/snapshot: wait for generator termination before restarting

* core/state/snapshot: revert timers to counters to track total time

Co-authored-by: Martin Holst Swende <>
Co-authored-by: Péter Szilágyi <>
jparyani pushed a commit that referenced this issue Dec 10, 2021
* Creates cache structure making cache operations local w/r to head (cache content is still reference-like)
* Adjusts simulation results readers to properly wait until everything is read before returning
Copy link

dcposch commented Jan 23, 2022

i wrote a post exploring the implications of this:

what happens if MEV searchers start picking the timestamp of each block, say to get an optimal outcome from on-chain randomness mechanisms that rely on block timestamp?

tldr; the typical block should go from (true time the block was found) to (roughly the time the previous block was found). variance goes up a lot, from the current ~0 (freshly gossiped blocks are almost always at the current time) to a uniformly distributed [-30seconds, 0].

i'm excited to see whether this happens in practice.

Copy link

thegostep commented Jan 23, 2022

This is so cool, thanks for sharing 👀

I believe geth and other clients have a consensus rule that rejects blocks which fall outside a certain range from their local timestamp in order to prevent this time loss.

To answer the question in your post, yes this would essentially be a timestamp auction and no it has not yet been implemented. (Maybe you want to submit a PR?😁)

dmarzzz pushed a commit to dmarzzz/mev-geth that referenced this issue Jul 14, 2022
dmarzzz added a commit to dmarzzz/mev-geth that referenced this issue Aug 17, 2022
* Implement geth-embedded builder API

* Adjust transactions root computation (flashbots#3)

* Adjust logsBloom encoding (flashbots#4)

* Adjust base fee encoding (flashbots#5)

* Allow resending of the same validator registration (flashbots#7)

* Adjust value encoding (flashbots#9)

* Adjust gas limit calculation (flashbots#8)

* Show builder pubkey on index page (flashbots#10)

Co-authored-by: Mateusz Morusiewicz <>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
None yet
None yet

No branches or pull requests

2 participants