For native rollups, BLOCKHASH opcode use is not secured by the state root. It is implicit state, which L1 doesn't know
One solution is to have an L1 contract with a 256 long ring buffer for each rollup. After EXECUTE returns valid, the L2 blockhash buffer is updated
FOCILIS - an extension to FOCIL that uses a semaphore-like construction.
This allows IL publishers to be truly honest about what they see in the mempool.
I think the ZKPs are probably mature enough. What do you think?
ethereum-magicians.org/t/eip…
debug_traceBlockByNumber can be hundreds of MB. Tens of GB if memory is enabled.
Why not trace it yourself?
A proposal for a method that returns the state for re-executing a block.
eth_getRequiredBlockState
github.com/ethereum/executio…
Soothing matrix rain for live (@androolloyd) EVM data
debug_traceBlockByNumber -> semantic filter -> drip
@shemnon not pure bytecode sorry. I offer function selectors and logs as consolation
Should work against any execution node
github.com/perama-v/archors/…
I dream of a local dapp renaissance, as in @dappnetbby
If reth (@gakonst) ate the UnchainedIndex (@trueblocks ), and then spawned 1000 portal nodes (@pipermerriam)
The progeny could just, you know, show you what Ethereum is doing in a sane way
github.com/perama-v/eth_getA…
Snack sized archive node recipe
🧑🍳 Ingredients
- 172KB block body
- 2.5MB RequiredBlockState.ssz_snappy
🧑🍳 Method
1. Verify state proofs
2. Blend with revm
🧑🍳 Serves
270MB trace
github.com/perama-v/archors/…
Some notes on a sharded archive node architecture
perama-v.github.io/ethereum/…
Idea is to make/distribute per-block proofs of accessed state and pipe them into the exellent revm by @rakitadragan
A trustless money trace localized entirely within your kitchen!?
May I see it?
With the benefit of hindsight the state trie collapses down to about 167 KB/Mgas for historical block proof data
Ok hear me out
A magnet link for all data required to trace all blocks that start with some byte.
And a little client that can ingest those and serve debug_traceTransaction
Entry point via @trueblocks to know which 🧲. Post next magnet links in a contract every so often
In the spirit of @EthereumDenver I conjured up a hair-brained scheme:
Let's shard/distribute archive nodes!
perama-v.github.io/ethereum/…
Would you use a light-weight archive node?
What an estimated median per-block accessed-state merkle-proof sizes. ~1MB?
Roasts are welcome.
100%Would use. Proofs <1MB
0%Wouldn't use. Proofs <1MB
0%Would use. Proofs >1MB
0%Wouldn't use. Proofs >1MB
2 votes • Final resultsEach block has a state root though. So run through each block and create a small database of every state value accessed.
Database as a tree = proof rooted in the state root = verifiable database.
Distribute the databases and a header-accumulator.
You've heard of elf on a shelf
But have you considered
Nametags on a DAG
github.com/perama-v/min-know…
I have been having fun making my little rust library (min-know) generic over any data/database. Its purpose is to make it easier to make any data/database distributable and divisible over IPFS.
🔍🐟
github.com/perama-v/min-know
Users don't need 1/256th of all event/function signatures. They might only want 3. By automating the lookup to involve getting larger pieces of never-changing data, you make it easy for a casual user to be a data provider.
A pin-by-default norm
