-
Notifications
You must be signed in to change notification settings - Fork 131
feat: extend Store api with block functionality
#146
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
Conversation
ElFantasma
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice!
crates/storage/src/libmdbx.rs
Outdated
| } | ||
|
|
||
| #[test] | ||
| fn store_and_fetch_block() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does it make sense to move tests to crate/storage/src/lib just as test_store_account?
That way we'll have tests for all Engine implementations right away
…m libmdx impl of store (#150) Based on #146, please merge it first **Motivation** Add a way to fetch blocks from their hashes (as blocks are stored by number this translates to adding a block_hash -> block_number mapping) <!-- Why does this pull request exist? What are its goals? --> **Description** * Add `get_block_number` & `add_block_number` methods to `Store` (both using block_hash as key) * Remove unwraps from libmdx impl of `Store` <!-- A clear and concise general description of the changes this PR introduces --> <!-- Link to issues: Resolves #111, Resolves #222 --> Closes None, but is needed in order to implement #31
Motivation
Being able to store and fetch blocks from the db via
StoreapiDescription
Transaction::encodewithTransaction::encode_with_typelogic (Reasoning: We cannot decode the transactions without knowing their type with the current behaviour, making it impossible to implementRLPDecodeforTransaction)RLPDecodeforTransaction(Using the logic that was previoulsy used inEncodedTransaction::decode(payload module))RLPDecodeforWithdrawal,BlockHeaderandBlockBodyStoreandStoreEngine:add_block_header,add_block_body,get_block_header,get_block_body, and implement them forInMemoryandLibmdbxengine typesCloses None, but is needed for #145