Change structure of Transactions for faster block decoding#6609
Change structure of Transactions for faster block decoding#6609paulhauner wants to merge 40 commits intosigp:unstablefrom
Transactions for faster block decoding#6609Conversation
|
Paul the Optimiser returns 🤩 |
|
omg I did not mean to close that, sorry! |
|
This is currently blocked on sigp/tree_hash#18 |
|
Updated ssz_types, but Milhouse will still need an update |
|
Merged latest unstable into this because I'd like to base some other changes off the latest Milhouse version. Oddly I'm now getting Clippy failures for |
This reverts commit 2d39282.
|
I've just created #6915 to isolate the SSZ version bump. I primarily wanted to get the bitfield |
|
Some required checks have failed. Could you please take a look @paulhauner? 🙏 |
|
Hi @paulhauner, this pull request has been closed automatically due to 30 days of inactivity. If you’d like to continue working on it, feel free to reopen at any time. |
Issue Addressed
NA
Proposed Changes
Reduces the time to decode a block by ~15% by reducing the effort needed to decode
execution_payload.transactions.Previously we stored transactions as
VariableList<VariableList>. Now we store them as(Vec<offsets>, Vec<values>), where eachoffsetpoints to the start of a new transaction invalues. This is how the data is represented as SSZ.The prior implementation required
N+1allocations, where this requires2allocations.Additional Info
SmallVec#6915Before
After