Skip to content
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

GetPooledTransactions (0x09) #384

Open
Tracked by #128
mpaulucci opened this issue Sep 12, 2024 · 1 comment · May be fixed by #1444
Open
Tracked by #128

GetPooledTransactions (0x09) #384

mpaulucci opened this issue Sep 12, 2024 · 1 comment · May be fixed by #1444
Assignees
Labels
network Issues related to network communication

Comments

@mpaulucci
Copy link
Collaborator

No description provided.

@mpaulucci mpaulucci added this to the 2 - P2P Network milestone Sep 12, 2024
@mpaulucci mpaulucci added the network Issues related to network communication label Sep 12, 2024
@belfortep belfortep self-assigned this Oct 8, 2024
@fmoletta
Copy link
Contributor

fmoletta commented Oct 8, 2024

I found a couple tests on the engine hive suite that test this functionality:

  • Request Blob Pooled Transactions Single
  • Request Blob Pooled Transactions Multiple

We should add them to the CI once this is implemented

github-merge-queue bot pushed a commit that referenced this issue Oct 10, 2024
…ne tests (#715)

**Motivation**
Implements necessary fixes across the codebase and adds the now-passing
hive tests to the CI. As most of this fixes are small, I grouped them in
the same PR.
<!-- Why does this pull request exist? What are its goals? -->

**Description**
Fixes:
* Add field `shouldOverrideBuilder` to `engine_getPayload` rpc response
* Fix blob_gas_used computation for rpc receipts
* Fix blob_gas_price computation for rpc receipts
* Set a max size for limbdbx DB (1TB) to avoid MapFull errors when
storing multiple blobs
* Return `InvalidPayloadAttributes` instead of `BadParams` when
receiving an invalid `PayloadAttributes` param in `ForkChoiceUpdated`
* Return `UnsupportedFork` error for pre-Cancun payload attributes
(forkChoiceUpdated)
* Fix error returned when parsing NewPayloadV3Request (BadParams ->
WrongParam)

Tests added to CI:
* `Blob Transactions On Block 1, Cancun Genesis`
* `Blob Transactions On Block 1, Shanghai Genesis`
* `Blob Transaction Ordering, Single Account, Single Blob`
* `Blob Transaction Ordering, Single Account, Dual Blob`
* `Parallel Blob Transactions`
* `ForkchoiceUpdatedV3 Modifies Payload ID on Different Beacon Root`
* `NewPayloadV3 After Cancun` (3 tests)
* `NewPayloadV3 Versioned Hashes` (18 tests)
* `cancun/Unique Payload ID` (6 tests)
* `cancun/ParentHash equals BlockHash on NewPayload` (2 tests)
* `cancun/RPC` (4 tests)
* `ForkchoiceUpdated Version on Payload Request`
*  `cancun/Re-Execute Payload`
* `cancun/Payload Build after New Invalid Payload` (2 tests)
* `cancun/Build Payload with Invalid ChainID` (3 tests)

Tests that may need some looking into out of the scope of this PR:
* Tests failing due to triggering re-orgs (we should check if this is
the expected test behaviour):
  * `Incorrect BlobGasUsed` (2 tests) 
  * `Inconsistent Head in ForkchoiceState`
  * `Inconsistent Safe in ForkchoiceState`
  * `Inconsistent Finalized in ForkchoiceState`
* Tests failing due to triggering a sync (we should check if this is the
expected test behaviour):
  * `In-Order Consecutive Payload Execution`
* Uncategorized:
  * `NewPayload with Missing ForkchoiceUpdated`
  * `Invalid PayloadAttributes`  (multiple) mostly adding checks
  * `InvalidNewPayload` (multiple)

Tests failing due to known issues:
* ` Replace Blob Transactions` should be fixed by #681 
* `Request Blob Pooled Transactions` (2 tests)  requires #384 
* `Bad Hash on NewPayload` (8 tests): failing due to sync not being
implemented (sync milestone)
* `Unknown HeadBlockHash`: requires sync
* `Multiple New Payloads Extending Canonical Chain, Set Head to First
Payload Received` requires reorgs
* `Multiple New Payloads Extending Canonical Chain, Wait for Canonical
Payload` (reorgs)
* `Valid NewPayload->ForkchoiceUpdated on Syncing Client` requires sync
+ p2p
* `Invalid Missing Ancestor ReOrg` (reorgs)
* `Invalid Missing Ancestor Syncing ReOrg` (reorg + sync)

Notes:

* The tests I added to the list above come from running the `engine`
hive test suite with the "/cancun" filter. I went in order but had to
skip some of the tests in the middle due to them using both V3 & V2
versions of the endpoints (when we only support V3).
* I also tried to group test with the same prefix when possible, aka
`NewPayloadV3 Versioned Hashes, Out of Order, Syncing=True ` &
`NewPayloadV3 Versioned Hashes, Extra Hash, Syncing=True` both run under
the pattern `NewPayloadV3 Versioned Hashes`)
<!-- A clear and concise general description of the changes this PR
introduces -->

<!-- Link to issues: Resolves #111, Resolves #222 -->

Closes #issue_number
mpaulucci pushed a commit to mpaulucci/lambda_ethereum_rust that referenced this issue Oct 16, 2024
…ne tests (lambdaclass#715)

**Motivation**
Implements necessary fixes across the codebase and adds the now-passing
hive tests to the CI. As most of this fixes are small, I grouped them in
the same PR.
<!-- Why does this pull request exist? What are its goals? -->

**Description**
Fixes:
* Add field `shouldOverrideBuilder` to `engine_getPayload` rpc response
* Fix blob_gas_used computation for rpc receipts
* Fix blob_gas_price computation for rpc receipts
* Set a max size for limbdbx DB (1TB) to avoid MapFull errors when
storing multiple blobs
* Return `InvalidPayloadAttributes` instead of `BadParams` when
receiving an invalid `PayloadAttributes` param in `ForkChoiceUpdated`
* Return `UnsupportedFork` error for pre-Cancun payload attributes
(forkChoiceUpdated)
* Fix error returned when parsing NewPayloadV3Request (BadParams ->
WrongParam)

Tests added to CI:
* `Blob Transactions On Block 1, Cancun Genesis`
* `Blob Transactions On Block 1, Shanghai Genesis`
* `Blob Transaction Ordering, Single Account, Single Blob`
* `Blob Transaction Ordering, Single Account, Dual Blob`
* `Parallel Blob Transactions`
* `ForkchoiceUpdatedV3 Modifies Payload ID on Different Beacon Root`
* `NewPayloadV3 After Cancun` (3 tests)
* `NewPayloadV3 Versioned Hashes` (18 tests)
* `cancun/Unique Payload ID` (6 tests)
* `cancun/ParentHash equals BlockHash on NewPayload` (2 tests)
* `cancun/RPC` (4 tests)
* `ForkchoiceUpdated Version on Payload Request`
*  `cancun/Re-Execute Payload`
* `cancun/Payload Build after New Invalid Payload` (2 tests)
* `cancun/Build Payload with Invalid ChainID` (3 tests)

Tests that may need some looking into out of the scope of this PR:
* Tests failing due to triggering re-orgs (we should check if this is
the expected test behaviour):
  * `Incorrect BlobGasUsed` (2 tests) 
  * `Inconsistent Head in ForkchoiceState`
  * `Inconsistent Safe in ForkchoiceState`
  * `Inconsistent Finalized in ForkchoiceState`
* Tests failing due to triggering a sync (we should check if this is the
expected test behaviour):
  * `In-Order Consecutive Payload Execution`
* Uncategorized:
  * `NewPayload with Missing ForkchoiceUpdated`
  * `Invalid PayloadAttributes`  (multiple) mostly adding checks
  * `InvalidNewPayload` (multiple)

Tests failing due to known issues:
* ` Replace Blob Transactions` should be fixed by lambdaclass#681 
* `Request Blob Pooled Transactions` (2 tests)  requires lambdaclass#384 
* `Bad Hash on NewPayload` (8 tests): failing due to sync not being
implemented (sync milestone)
* `Unknown HeadBlockHash`: requires sync
* `Multiple New Payloads Extending Canonical Chain, Set Head to First
Payload Received` requires reorgs
* `Multiple New Payloads Extending Canonical Chain, Wait for Canonical
Payload` (reorgs)
* `Valid NewPayload->ForkchoiceUpdated on Syncing Client` requires sync
+ p2p
* `Invalid Missing Ancestor ReOrg` (reorgs)
* `Invalid Missing Ancestor Syncing ReOrg` (reorg + sync)

Notes:

* The tests I added to the list above come from running the `engine`
hive test suite with the "/cancun" filter. I went in order but had to
skip some of the tests in the middle due to them using both V3 & V2
versions of the endpoints (when we only support V3).
* I also tried to group test with the same prefix when possible, aka
`NewPayloadV3 Versioned Hashes, Out of Order, Syncing=True ` &
`NewPayloadV3 Versioned Hashes, Extra Hash, Syncing=True` both run under
the pattern `NewPayloadV3 Versioned Hashes`)
<!-- A clear and concise general description of the changes this PR
introduces -->

<!-- Link to issues: Resolves lambdaclass#111, Resolves lambdaclass#222 -->

Closes #issue_number
mpaulucci pushed a commit to mpaulucci/lambda_ethereum_rust that referenced this issue Oct 16, 2024
…ne tests (lambdaclass#715)

**Motivation**
Implements necessary fixes across the codebase and adds the now-passing
hive tests to the CI. As most of this fixes are small, I grouped them in
the same PR.
<!-- Why does this pull request exist? What are its goals? -->

**Description**
Fixes:
* Add field `shouldOverrideBuilder` to `engine_getPayload` rpc response
* Fix blob_gas_used computation for rpc receipts
* Fix blob_gas_price computation for rpc receipts
* Set a max size for limbdbx DB (1TB) to avoid MapFull errors when
storing multiple blobs
* Return `InvalidPayloadAttributes` instead of `BadParams` when
receiving an invalid `PayloadAttributes` param in `ForkChoiceUpdated`
* Return `UnsupportedFork` error for pre-Cancun payload attributes
(forkChoiceUpdated)
* Fix error returned when parsing NewPayloadV3Request (BadParams ->
WrongParam)

Tests added to CI:
* `Blob Transactions On Block 1, Cancun Genesis`
* `Blob Transactions On Block 1, Shanghai Genesis`
* `Blob Transaction Ordering, Single Account, Single Blob`
* `Blob Transaction Ordering, Single Account, Dual Blob`
* `Parallel Blob Transactions`
* `ForkchoiceUpdatedV3 Modifies Payload ID on Different Beacon Root`
* `NewPayloadV3 After Cancun` (3 tests)
* `NewPayloadV3 Versioned Hashes` (18 tests)
* `cancun/Unique Payload ID` (6 tests)
* `cancun/ParentHash equals BlockHash on NewPayload` (2 tests)
* `cancun/RPC` (4 tests)
* `ForkchoiceUpdated Version on Payload Request`
*  `cancun/Re-Execute Payload`
* `cancun/Payload Build after New Invalid Payload` (2 tests)
* `cancun/Build Payload with Invalid ChainID` (3 tests)

Tests that may need some looking into out of the scope of this PR:
* Tests failing due to triggering re-orgs (we should check if this is
the expected test behaviour):
  * `Incorrect BlobGasUsed` (2 tests) 
  * `Inconsistent Head in ForkchoiceState`
  * `Inconsistent Safe in ForkchoiceState`
  * `Inconsistent Finalized in ForkchoiceState`
* Tests failing due to triggering a sync (we should check if this is the
expected test behaviour):
  * `In-Order Consecutive Payload Execution`
* Uncategorized:
  * `NewPayload with Missing ForkchoiceUpdated`
  * `Invalid PayloadAttributes`  (multiple) mostly adding checks
  * `InvalidNewPayload` (multiple)

Tests failing due to known issues:
* ` Replace Blob Transactions` should be fixed by lambdaclass#681 
* `Request Blob Pooled Transactions` (2 tests)  requires lambdaclass#384 
* `Bad Hash on NewPayload` (8 tests): failing due to sync not being
implemented (sync milestone)
* `Unknown HeadBlockHash`: requires sync
* `Multiple New Payloads Extending Canonical Chain, Set Head to First
Payload Received` requires reorgs
* `Multiple New Payloads Extending Canonical Chain, Wait for Canonical
Payload` (reorgs)
* `Valid NewPayload->ForkchoiceUpdated on Syncing Client` requires sync
+ p2p
* `Invalid Missing Ancestor ReOrg` (reorgs)
* `Invalid Missing Ancestor Syncing ReOrg` (reorg + sync)

Notes:

* The tests I added to the list above come from running the `engine`
hive test suite with the "/cancun" filter. I went in order but had to
skip some of the tests in the middle due to them using both V3 & V2
versions of the endpoints (when we only support V3).
* I also tried to group test with the same prefix when possible, aka
`NewPayloadV3 Versioned Hashes, Out of Order, Syncing=True ` &
`NewPayloadV3 Versioned Hashes, Extra Hash, Syncing=True` both run under
the pattern `NewPayloadV3 Versioned Hashes`)
<!-- A clear and concise general description of the changes this PR
introduces -->

<!-- Link to issues: Resolves lambdaclass#111, Resolves lambdaclass#222 -->

Closes #issue_number
mpaulucci pushed a commit that referenced this issue Oct 16, 2024
…ne tests (#715)

**Motivation**
Implements necessary fixes across the codebase and adds the now-passing
hive tests to the CI. As most of this fixes are small, I grouped them in
the same PR.
<!-- Why does this pull request exist? What are its goals? -->

**Description**
Fixes:
* Add field `shouldOverrideBuilder` to `engine_getPayload` rpc response
* Fix blob_gas_used computation for rpc receipts
* Fix blob_gas_price computation for rpc receipts
* Set a max size for limbdbx DB (1TB) to avoid MapFull errors when
storing multiple blobs
* Return `InvalidPayloadAttributes` instead of `BadParams` when
receiving an invalid `PayloadAttributes` param in `ForkChoiceUpdated`
* Return `UnsupportedFork` error for pre-Cancun payload attributes
(forkChoiceUpdated)
* Fix error returned when parsing NewPayloadV3Request (BadParams ->
WrongParam)

Tests added to CI:
* `Blob Transactions On Block 1, Cancun Genesis`
* `Blob Transactions On Block 1, Shanghai Genesis`
* `Blob Transaction Ordering, Single Account, Single Blob`
* `Blob Transaction Ordering, Single Account, Dual Blob`
* `Parallel Blob Transactions`
* `ForkchoiceUpdatedV3 Modifies Payload ID on Different Beacon Root`
* `NewPayloadV3 After Cancun` (3 tests)
* `NewPayloadV3 Versioned Hashes` (18 tests)
* `cancun/Unique Payload ID` (6 tests)
* `cancun/ParentHash equals BlockHash on NewPayload` (2 tests)
* `cancun/RPC` (4 tests)
* `ForkchoiceUpdated Version on Payload Request`
*  `cancun/Re-Execute Payload`
* `cancun/Payload Build after New Invalid Payload` (2 tests)
* `cancun/Build Payload with Invalid ChainID` (3 tests)

Tests that may need some looking into out of the scope of this PR:
* Tests failing due to triggering re-orgs (we should check if this is
the expected test behaviour):
  * `Incorrect BlobGasUsed` (2 tests) 
  * `Inconsistent Head in ForkchoiceState`
  * `Inconsistent Safe in ForkchoiceState`
  * `Inconsistent Finalized in ForkchoiceState`
* Tests failing due to triggering a sync (we should check if this is the
expected test behaviour):
  * `In-Order Consecutive Payload Execution`
* Uncategorized:
  * `NewPayload with Missing ForkchoiceUpdated`
  * `Invalid PayloadAttributes`  (multiple) mostly adding checks
  * `InvalidNewPayload` (multiple)

Tests failing due to known issues:
* ` Replace Blob Transactions` should be fixed by #681 
* `Request Blob Pooled Transactions` (2 tests)  requires #384 
* `Bad Hash on NewPayload` (8 tests): failing due to sync not being
implemented (sync milestone)
* `Unknown HeadBlockHash`: requires sync
* `Multiple New Payloads Extending Canonical Chain, Set Head to First
Payload Received` requires reorgs
* `Multiple New Payloads Extending Canonical Chain, Wait for Canonical
Payload` (reorgs)
* `Valid NewPayload->ForkchoiceUpdated on Syncing Client` requires sync
+ p2p
* `Invalid Missing Ancestor ReOrg` (reorgs)
* `Invalid Missing Ancestor Syncing ReOrg` (reorg + sync)

Notes:

* The tests I added to the list above come from running the `engine`
hive test suite with the "/cancun" filter. I went in order but had to
skip some of the tests in the middle due to them using both V3 & V2
versions of the endpoints (when we only support V3).
* I also tried to group test with the same prefix when possible, aka
`NewPayloadV3 Versioned Hashes, Out of Order, Syncing=True ` &
`NewPayloadV3 Versioned Hashes, Extra Hash, Syncing=True` both run under
the pattern `NewPayloadV3 Versioned Hashes`)
<!-- A clear and concise general description of the changes this PR
introduces -->

<!-- Link to issues: Resolves #111, Resolves #222 -->

Closes #issue_number
@Arkenan Arkenan linked a pull request Dec 9, 2024 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
network Issues related to network communication
Projects
Status: In Progress
3 participants