go-ethereum/core/txpool/blobpool
Martin HS 7c7b7f6ab1
core/txpool: remove locals-tracking from txpools (#30559)
Replaces  #29297, descendant from #27535

---------

This PR removes `locals` as a concept from transaction pools. Therefore,
the pool now acts as very a good simulation/approximation of how our
peers' pools behave. What this PR does instead, is implement a
locals-tracker, which basically is a little thing which, from time to
time, asks the pool "did you forget this transaction?". If it did, the
tracker resubmits it.

If the txpool _had_ forgotten it, chances are that the peers had also
forgotten it. It will be propagated again.

Doing this change means that we can simplify the pool internals, quite a
lot.

### The semantics of `local` 

Historically, there has been two features, or usecases, that has been
combined into the concept of `locals`.

1. "I want my local node to remember this transaction indefinitely, and
resubmit to the network occasionally"
2. "I want this (valid) transaction included to be top-prio for my
miner"


This PR splits these features up, let's call it `1: local` and `2:
prio`. The `prio` is not actually individual transaction, but rather a
set of `address`es to prioritize.
The attribute `local` means it will be tracked, and `prio` means it will
be prioritized by miner.

For `local`: anything transaction received via the RPC is marked as
`local`, and tracked by the tracker.
For `prio`: any transactions from this sender is included first, when
building a block. The existing commandline-flag `--txpool.locals` sets
the set of `prio` addresses.

---------

Co-authored-by: Gary Rong <garyrong0905@gmail.com>
2025-02-04 17:23:01 +01:00
..
blobpool.go core/txpool: remove locals-tracking from txpools (#30559) 2025-02-04 17:23:01 +01:00
blobpool_test.go params,core: add max and target value to chain config (#31002) 2025-02-04 15:43:18 +01:00
config.go core/txpool/blobpool: reduce default database cap for rollout (#29090) 2024-02-26 14:27:56 +02:00
evictheap.go core/txpool/blobpool: improve newPriceHeap function (#30050) 2024-06-28 15:51:27 +02:00
evictheap_test.go params,core: add max and target value to chain config (#31002) 2025-02-04 15:43:18 +01:00
interface.go core/txpool/blobpool: 4844 blob transaction pool (#26940) 2023-07-27 13:45:35 +03:00
limbo.go params,core: add max and target value to chain config (#31002) 2025-02-04 15:43:18 +01:00
lookup.go beacon/engine, core/txpool, eth/catalyst: add engine_getBlobsV1 API (#30537) 2024-10-17 19:27:35 +03:00
metrics.go core/txpool/blobpool: post-crash cleanup and addition/removal metrics (#28914) 2024-02-02 18:26:35 +02:00
priority.go core/txpool/blobpool: calculate log1.125 faster (#29300) 2024-03-20 14:51:05 +01:00
priority_test.go params,core: add max and target value to chain config (#31002) 2025-02-04 15:43:18 +01:00
slotter.go params,core: add max and target value to chain config (#31002) 2025-02-04 15:43:18 +01:00
slotter_test.go params,core: add max and target value to chain config (#31002) 2025-02-04 15:43:18 +01:00