-
Notifications
You must be signed in to change notification settings - Fork 801
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
Change structure of Transactions
for faster block decoding
#6609
base: unstable
Are you sure you want to change the base?
Conversation
Paul the Optimiser returns 🤩 |
omg I did not mean to close that, sorry! |
This is currently blocked on sigp/tree_hash#18 |
Merged the tree_hash PR and a v0.9.0 release is building on CI now |
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 |
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 eachoffset
points to the start of a new transaction invalues
. This is how the data is represented as SSZ.The prior implementation required
N+1
allocations, where this requires2
allocations.Additional Info
SmallVec
#6915Before
After