-
Notifications
You must be signed in to change notification settings - Fork 29
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
feat: add mempool txs to payload #575
Conversation
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.
Looks good overall, left some comments to discuss, and btw, how are we testing these changes?
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.
The PR looks good. I agree with @fkrause98 comments. After creating issues for the TODOs it'd be great to link them as a comment in the code where appropriate.
Looks good, let me know when the CI is fixed and I'll take another look! @fmoletta |
Should be working now 🚀 |
> [!WARNING] > This PR depends on #575 and must be merged after it. **Motivation** <!-- Why does this pull request exist? What are its goals? --> **Description** <!-- A clear and concise general description of the changes this PR introduces --> - Adds block producer module - Implements `Engine` to advance the blockchain --------- Co-authored-by: fmoletta <fedemoletta@hotmail.com> Co-authored-by: Manuel Bilbao <manuel.bilbao@lambdaclass.com> Co-authored-by: Manuel Iñaki Bilbao <bilbaomanuel98@gmail.com>
**Motivation** Fetching transactions from the mempool during the block building process (engine_GetPayload). This code can and should be improved in the future, but it sets a basis for block building <!-- Why does this pull request exist? What are its goals? --> **Description** * Add method `build_payload`, which fetches transactions from the mempool and adds them to the payload. * Add a way to remove and filter transactions from the mempool * (Misc) Simplify state_trie related `StoreEngine` api. The `StoreEngine` now only creates the trie, leaving block and state root fetching to the `Store`. This removes duplicated code LEFTOVER WORK: * Save timestamp when a tx is added to the mempool * process blobs in block building pipeline (we are now ignoring them) <!-- A clear and concise general description of the changes this PR introduces --> <!-- Link to issues: Resolves lambdaclass#111, Resolves lambdaclass#222 --> TESTING_STATUS: The pipeline for block_building tests is ForkChoiceUpdated -> (SendRawTransaction) -> GetPayload -> NewPayload -> (Fetch blocks/receipts). Tests are currently failing at NewPayload because of different blob versioned hashes. Closes None, but is part of lambdaclass#344
> [!WARNING] > This PR depends on lambdaclass#575 and must be merged after it. **Motivation** <!-- Why does this pull request exist? What are its goals? --> **Description** <!-- A clear and concise general description of the changes this PR introduces --> - Adds block producer module - Implements `Engine` to advance the blockchain --------- Co-authored-by: fmoletta <fedemoletta@hotmail.com> Co-authored-by: Manuel Bilbao <manuel.bilbao@lambdaclass.com> Co-authored-by: Manuel Iñaki Bilbao <bilbaomanuel98@gmail.com>
**Motivation** Fetching transactions from the mempool during the block building process (engine_GetPayload). This code can and should be improved in the future, but it sets a basis for block building <!-- Why does this pull request exist? What are its goals? --> **Description** * Add method `build_payload`, which fetches transactions from the mempool and adds them to the payload. * Add a way to remove and filter transactions from the mempool * (Misc) Simplify state_trie related `StoreEngine` api. The `StoreEngine` now only creates the trie, leaving block and state root fetching to the `Store`. This removes duplicated code LEFTOVER WORK: * Save timestamp when a tx is added to the mempool * process blobs in block building pipeline (we are now ignoring them) <!-- A clear and concise general description of the changes this PR introduces --> <!-- Link to issues: Resolves lambdaclass#111, Resolves lambdaclass#222 --> TESTING_STATUS: The pipeline for block_building tests is ForkChoiceUpdated -> (SendRawTransaction) -> GetPayload -> NewPayload -> (Fetch blocks/receipts). Tests are currently failing at NewPayload because of different blob versioned hashes. Closes None, but is part of lambdaclass#344
> [!WARNING] > This PR depends on lambdaclass#575 and must be merged after it. **Motivation** <!-- Why does this pull request exist? What are its goals? --> **Description** <!-- A clear and concise general description of the changes this PR introduces --> - Adds block producer module - Implements `Engine` to advance the blockchain --------- Co-authored-by: fmoletta <fedemoletta@hotmail.com> Co-authored-by: Manuel Bilbao <manuel.bilbao@lambdaclass.com> Co-authored-by: Manuel Iñaki Bilbao <bilbaomanuel98@gmail.com>
**Motivation** Fetching transactions from the mempool during the block building process (engine_GetPayload). This code can and should be improved in the future, but it sets a basis for block building <!-- Why does this pull request exist? What are its goals? --> **Description** * Add method `build_payload`, which fetches transactions from the mempool and adds them to the payload. * Add a way to remove and filter transactions from the mempool * (Misc) Simplify state_trie related `StoreEngine` api. The `StoreEngine` now only creates the trie, leaving block and state root fetching to the `Store`. This removes duplicated code LEFTOVER WORK: * Save timestamp when a tx is added to the mempool * process blobs in block building pipeline (we are now ignoring them) <!-- A clear and concise general description of the changes this PR introduces --> <!-- Link to issues: Resolves #111, Resolves #222 --> TESTING_STATUS: The pipeline for block_building tests is ForkChoiceUpdated -> (SendRawTransaction) -> GetPayload -> NewPayload -> (Fetch blocks/receipts). Tests are currently failing at NewPayload because of different blob versioned hashes. Closes None, but is part of #344
> [!WARNING] > This PR depends on #575 and must be merged after it. **Motivation** <!-- Why does this pull request exist? What are its goals? --> **Description** <!-- A clear and concise general description of the changes this PR introduces --> - Adds block producer module - Implements `Engine` to advance the blockchain --------- Co-authored-by: fmoletta <fedemoletta@hotmail.com> Co-authored-by: Manuel Bilbao <manuel.bilbao@lambdaclass.com> Co-authored-by: Manuel Iñaki Bilbao <bilbaomanuel98@gmail.com>
Motivation
Fetching transactions from the mempool during the block building process (engine_GetPayload).
This code can and should be improved in the future, but it sets a basis for block building
Description
build_payload
, which fetches transactions from the mempool and adds them to the payload.StoreEngine
api. TheStoreEngine
now only creates the trie, leaving block and state root fetching to theStore
. This removes duplicated codeLEFTOVER WORK:
TESTING_STATUS:
The pipeline for block_building tests is ForkChoiceUpdated -> (SendRawTransaction) -> GetPayload -> NewPayload -> (Fetch blocks/receipts).
Tests are currently failing at NewPayload because of different blob versioned hashes.
Closes None, but is part of #344