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

Tracking: Transaction Pool #36

Closed
4 of 7 tasks
Tracked by #851
mattsse opened this issue Oct 11, 2022 · 1 comment
Closed
4 of 7 tasks
Tracked by #851

Tracking: Transaction Pool #36

mattsse opened this issue Oct 11, 2022 · 1 comment
Assignees
Labels
A-tx-pool Related to the transaction mempool C-tracking-issue An issue that collects information about a broad development initiative

Comments

@mattsse
Copy link
Collaborator

mattsse commented Oct 11, 2022

Progess here #22

Todos

  • implement new erigon style pool design, with several subpool
  • Good abstractions and interfaces for p2p and RPC
  • Implement tx pool traits for reth's concrete pool types
  • simplify types where possible
  • Good Test Coverage
  • Fuzzing?

Lower prio

  • Integrate metrics (prometheus)

Questions

There are currently two generic abstraction over:

the Transaction type itself: this would allow adding arbitrary additional context on top of required info like nonce, gas price, etc.. (maybe like a marker that this tx is part of a bundle)
Priority which is an arbitrary value that determines the best transactions in the pending pool (which contains tx that can be executed on the current state)
currently, the priority is expected to be determined like: fn Ordering::priority(tx: &Transaction) -> Priority I think ideally this should also allow gaining access to other transactions that are currently pending, so priority can be determined in relation to other txs.

perhaps sorting should be changed to be an operation on the entire pending pool instead.

I think "multiple pools" would basically be this: instead of dividing the pending pool, we add pay for order flow as an Ordering function applied to the entire pool, like fn Ordering::best(&pendingpool) -> impl Iterator< Transaction>

The representation of dependencies in transactions is probably a kind of graph, need to have a closure look at how mev bundles are handled now.

@mattsse mattsse self-assigned this Oct 11, 2022
@onbjerg onbjerg added C-tracking-issue An issue that collects information about a broad development initiative A-tx-pool Related to the transaction mempool labels Oct 11, 2022
@onbjerg onbjerg changed the title Tracking issue Transaction Pool Tracking: Transaction Pool Oct 11, 2022
@onbjerg onbjerg moved this to Todo in Reth Tracker Jan 4, 2023
@onbjerg onbjerg moved this from Todo to Tracking in Reth Tracker Jan 4, 2023
@mattsse
Copy link
Collaborator Author

mattsse commented Jan 24, 2023

closing this since most of this has landed already.

need to reevaluate again and open dedicated issues for missing parts of TxPool

@mattsse mattsse closed this as completed Jan 24, 2023
@github-project-automation github-project-automation bot moved this from Tracking to Done in Reth Tracker Jan 24, 2023
yutianwu pushed a commit to yutianwu/reth that referenced this issue Jul 1, 2024
* fix: base fee configuration of bsc

* fix: cargo dep

* fix: remove unused test codes
AshinGau added a commit to AshinGau/reth that referenced this issue Oct 13, 2024
AshinGau added a commit to AshinGau/reth that referenced this issue Oct 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-tx-pool Related to the transaction mempool C-tracking-issue An issue that collects information about a broad development initiative
Projects
Archived in project
Development

No branches or pull requests

2 participants