go-ethereum/core/txpool/blobpool
Jonny Rhea 98b13f342f
Some checks are pending
/ Linux Build (push) Waiting to run
/ Linux Build (arm) (push) Waiting to run
/ Keeper Build (push) Waiting to run
/ Windows Build (push) Waiting to run
/ Docker Image (push) Waiting to run
miner: add OpenTelemetry spans for block building path (#33773)
Instruments the block building path with OpenTelemetry tracing spans.

- added spans in forkchoiceUpdated -> buildPayload -> background payload
loop -> generateWork iterations. Spans should look something like this:

```
jsonrpc.engine/forkchoiceUpdatedV3
|- rpc.runMethod
|  |- engine.forkchoiceUpdated
|     |- miner.buildPayload [payload.id, parent.hash, timestamp]
|        |- miner.generateWork [txs.count, gas.used, fees] (empty block)
|        |  |- miner.prepareWork
|        |  |- miner.FinalizeAndAssemble
|        |     |- consensus.beacon.FinalizeAndAssemble [block.number, txs.count, withdrawals.count]
|        |        |- consensus.beacon.Finalize
|        |        |- consensus.beacon.IntermediateRoot
|        |        |- consensus.beacon.NewBlock
|        |- miner.background [block.number, iterations.total, exit.reason, empty.delivered]
|           |- miner.buildIteration [iteration, update.accepted]
|           |  |- miner.generateWork [txs.count, gas.used, fees]
|           |     |- miner.prepareWork
|           |     |- miner.fillTransactions [pending.plain.count, pending.blob.count]
|           |     |  |- miner.commitTransactions.priority (if prio txs exist)
|           |     |  |  |- miner.commitTransactions
|           |     |  |     |- miner.commitTransaction (per tx)
|           |     |  |- miner.commitTransactions.normal (if normal txs exist)
|           |     |     |- miner.commitTransactions
|           |     |        |- miner.commitTransaction (per tx)
|           |     |- miner.FinalizeAndAssemble
|           |        |- consensus.beacon.FinalizeAndAssemble [block.number, txs.count, withdrawals.count]
|           |           |- consensus.beacon.Finalize
|           |           |- consensus.beacon.IntermediateRoot
|           |           |- consensus.beacon.NewBlock
|           |- miner.buildIteration [iteration, update.accepted]
|           |  |- ...
|           |- ...

```

- added simulated server spans in SimulatedBeacon.sealBlock so dev mode
(geth --dev) produces traces that mirror production Engine API calls
from a real consensus client.

---------

Co-authored-by: Felix Lange <fjl@twurst.com>
2026-03-16 19:24:41 +01:00
..
blobpool.go miner: add OpenTelemetry spans for block building path (#33773) 2026-03-16 19:24:41 +01:00
blobpool_test.go miner: add OpenTelemetry spans for block building path (#33773) 2026-03-16 19:24:41 +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: delay announcement of low fee txs (#33893) 2026-03-02 23:59:33 +01:00
evictheap_test.go core/txpool/blobpool: delay announcement of low fee txs (#33893) 2026-03-02 23:59:33 +01:00
interface.go core/txpool/blobpool: 4844 blob transaction pool (#26940) 2023-07-27 13:45:35 +03:00
limbo.go core/txpool/blobpool: fix slotter size limit (#33474) 2025-12-24 09:44:17 +08:00
lookup.go core/txpool/blobpool: remove legacy sidecar conversion (#33352) 2025-12-18 12:33:07 -07: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: delay announcement of low fee txs (#33893) 2026-03-02 23:59:33 +01:00
priority_test.go core/txpool/blobpool: delay announcement of low fee txs (#33893) 2026-03-02 23:59:33 +01:00
slotter.go core/txpool/blobpool: fix slotter size limit (#33474) 2025-12-24 09:44:17 +08:00
slotter_test.go core/txpool/blobpool: migrate billy to new slot size (#31966) 2025-09-15 21:34:57 +08:00