Nur zu Bildungszwecken; stellt keine Anlageberatung oder Anlageempfehlung dar. Anlagen können zu Verlusten führen.
Direkte Antwort
Ein Mempool oder Transaktionspool ist die temporäre, im Arbeitsspeicher und gelegentlich persistent gehaltene Menge signierter Transaktionen, die eine Node nach ihren aktuellen Validierungs- und Richtlinienregeln angenommen hat, die aber nicht in ihrer kanonischen Chain enthalten sind. Er ist weder Konsensobjekt noch globale Warteschlange oder Aufnahmezusage. Zwei ehrliche Nodes können unterschiedliche Transaktionen halten, weil sie anderes Gossip empfangen, andere Clients oder Einstellungen verwenden, neu gestartet wurden, Einträge entfernt haben oder verschiedene öffentliche und private Übermittlungswege nutzen.
Bei einem Ethereum Execution Client wird eine ausführbare Transaktion mit der nächsten Konto-nonce üblicherweise als pending bezeichnet; eine spätere Nonce, die von einer Lücke blockiert wird, als queued. Diese Bezeichnungen sind Client-Schnittstellen, keine endgültigen Protokollzustände. Eine Transaktion kann vor der Annahme abgelehnt, weitergegeben, durch eine andere signierte Transaktion desselben Absenders und derselben Nonce ersetzt, entfernt, verworfen, erfolgreich aufgenommen, aufgenommen und revertiert oder nach einer Reorganisation erneut berücksichtigt werden.
Eine Wallet erstellt eine Transaktion mit Ziel, Wert, Gebührenparametern und Replay-Schutzdaten wie ausgegebenen UTXOs oder einer Nonce.
Funktionsweise
- Umgebung festlegen: Chain ID, Execution Client und Version, aktueller Head und Base Fee, Transaktionstyp, Absender, Nonce, Wert, Calldata, Gaslimit, Gebührenobergrenzen und Übermittlungsweg. Öffentliches Gossip, privaten Relay oder Builder und einen ERC-4337-
UserOperation-Pfad unterscheiden; sie teilen keinen universellen Pool. - Signierte Bytes decodieren und Prüfungen vor der Annahme durchführen. Signatur und Absender, Chain ID, Typ und Kodierung, Intrinsic Gas, Nonce-Beziehung, Guthaben für Wert plus maximale Gebührenbelastung, Gebührenfelder und erforderliches Blob-Sidecar prüfen. Eine Ablehnung hier ist kein EVM-
REVERTund erzeugt normalerweise weder Receipt noch Onchain-Gebühr. - Lokale Pool-Richtlinie erfassen. Festhalten, ob der Client die Transaktion als pending oder queued einstuft, welche Kapazitäten pro Konto und global, Mindestgebührenfilter, Lebensdauer, Ausnahmen für lokale Konten, Replacement Bump und Persistenz gelten. Geth-Flags und Standardwerte dokumentieren Geth, nicht Ethereum-Konsens oder jeden Anbieter.
- Weitergabe beobachten, ohne eine globale Sicht zu unterstellen. Raw-Transaction-Hash und signierte Bytes über unabhängige Nodes vergleichen, Abwesenheit aber als mehrdeutig behandeln: Die Node könnte die Transaktion nicht erhalten, nach lokaler Richtlinie abgelehnt, entfernt oder ihren Pool nicht offengelegt haben. Ein privater Pfad kann öffentliches Gossip umgehen und die Transaktion dennoch mit Betreibern und Buildern teilen.
- Blockeignung und Reihenfolge im Kandidatenblock modellieren. Bei einer Typ-2-Transaktion beträgt der Execution-Gaspreis
min(maxFeePerGas, baseFeePerGas + maxPriorityFeePerGas); übersteigt die Base Fee die Max Fee, ist die Transaktion unter dieser Obergrenze nicht geeignet. Nonce-Abhängigkeiten, Gas- und Blob-Limits, Zustandsgültigkeit, Builder Bundles und MEV können wichtiger sein als der Empfangszeitpunkt. - Lebenszyklus bewusst steuern. Warten oder einen dokumentierten Ersatz mit derselben Nonce erst nach Bestätigung von aktiver Chain, Absender und Ersetzungsrichtlinie senden. Eine Selbstüberweisung mit derselben Nonce ist nur ein weiterer Ersetzungskandidat, keine Stornierungsprimitive. Eine Wertübertragung niemals wiederholen, nur weil ein Explorer das Original nicht mehr zeigt.
- Mit dem Konsenszustand abstimmen. Jeden signierten Hash und die Ersetzungslinie aufbewahren, anschließend kanonisches Receipt, Block-Hash, Status, verbrauchtes Gas, Logs, verbrauchte Nonce sowie Konto- oder Contract-Zustand auf erforderlicher Bestätigungs- oder Finalitätsstufe prüfen. Entfernt eine Reorganisation den Block, kann eine weiterhin gültige Transaktion in einige lokale Pools zurückkehren; das hängt von Client und Zustand ab.
Durchgerechnete Beispiele
- Eignung unter der Gebührenobergrenze. Eine Typ-2-Überweisung hat
gasUsed = 21,000,baseFeePerGas = 32 gwei,maxPriorityFeePerGas = 3 gweiundmaxFeePerGas = 34 gwei. Ihr effektiver Preis beträgtmin(34, 32 + 3) = 34 gwei, der tatsächliche Tip somit2 gwei. Die Gebühr beträgt21,000 * 34 = 714,000 gwei = 0.000714 ETH, aufgeteilt in0.000672 ETHverbrannte Base Fee und0.000042 ETHTip. Steigt die Base Fee des Kandidatenblocks auf35 gwei, reicht die Obergrenze von34 gweifür diesen Block nicht aus. - Nonce-Lücke. Die kanonische Konto-Nonce ist
10. Ein lokaler Pool erhält Transaktionen mit den Nonces10und12, aber keine mit11; er kann10als pending und12als queued einstufen. Nach Aufnahme von Nonce10wird die kanonische Nonce zu11;12bleibt blockiert, bis eine gültige Transaktion mit Nonce11aufgenommen wurde. Die Sichtbarkeit von Nonce12in einem Pool macht sie nicht eigenständig ausführbar. - Richtlinienspezifische Ersetzung. In einer didaktischen Geth-Konfiguration mit
txpool.pricebump = 10hat die alte TransaktionmaxFeePerGas = 40 gweiundmaxPriorityFeePerGas = 2 gwei. Ein Aufschlag von 10 % ergibt Schwellen von44 gweiund2.2 gwei. Ein Vorschlag mit43 gweiund3 gweikann weiterhin abgelehnt werden, weil eine Obergrenze den konfigurierten Aufschlag verfehlt;44 gweiund2.2 gweierreichen beide didaktischen Schwellen. Exakte Ganzzahlrundung, Transaktionstyp und Annahmelogik sind versionsabhängig; eine andere Node kann einen anderen Kandidaten behalten. - Kein globaler Pool. Node A meldet
120,000verschiedene Transaktions-Hashes, Node B100,000, ihre Schnittmenge beträgt80,000. Die Vereinigungsmenge ist120,000 + 100,000 - 80,000 = 140,000; die Jaccard-Übereinstimmung beträgt80,000 / 140,000 = 57.1428571429%.40,000Hashes sind nur für A und20,000nur für B sichtbar. Keine der Zahlen beweist, was Builder, private Relays oder der Rest des Netzwerks sehen.
Risiken
- Auf der falschen Chain ID oder im falschen Netzwerk signieren oder senden.
- Einem bösartigen, veralteten oder falsch konfigurierten RPC-Endpunkt vertrauen.
- Ungültige Signatur, Transaktionstyp, Kodierung oder Blob-Sidecar.
- Unzureichendes Guthaben für Wert plus maximale Gebührenbelastung.
- Ablehnung vor der Annahme durch Intrinsic-Gas- oder Calldata-Regeln.
- Bereits verbrauchte oder zu niedrige Nonce.
- Eine Nonce-Lücke hält spätere Transaktionen in der Queue.
- Same-Nonce-Ersatz wird lokal als zu niedrig bepreist abgelehnt.
- Max Fee liegt unter der Base Fee des Kandidatenblocks.
- Niedrige effektive Priorität oder Ressourcenlimits verzögern die Aufnahme.
- Abweichende Richtlinien von Client, Anbieter, Version oder Konfiguration.
- Pool-Kapazität, Ablauf, Neustart oder Entfernung beseitigt eine Transaktion.
- Schlechte Peer-Weitergabe, Eclipse oder selektives Relay-Verhalten.
- Leck, Zensur, Ausfall oder fehlende Builder-Teilnahme beim privaten Relay.
- Frontrunning, Sandwich oder sonstiges MEV bei öffentlichem Orderflow.
- Builder-Reihenfolge, Bundles oder private Transaktionen verändern den Ausführungszustand.
- Simulation wird vor der Aufnahme veraltet.
- Blinde Doppeleinreichung oder Verlust der Ersetzungslinie.
- Aufgenommener
REVERT, Out of Gas oder abgefangener Subcall-Fehler trotz Pool-Annahme. - Reorganisation, Finalitätsverwechslung oder ERC-4337-Mempool als gewöhnlichen Txpool behandeln.
Häufige Irrtümer
- Der Mempool ist eine global synchronisierte FIFO-Warteschlange.
- Ein Transaktions-Hash beweist Annahme oder Weitergabe durch das Netzwerk.
- Pending bedeutet aufgenommen, erfolgreich, unumkehrbar oder beim Empfänger bezahlt.
- Eine ausreichend hohe Gebühr garantiert Aufnahme und erfolgreiche Ausführung.
- Ein privater Übermittlungsweg ist automatisch vertraulich, zensurresistent und garantiert erfolgreich.
Verwandte Themen
Quellen
- Transactions - Ethereum.org (abgerufen: 2026-08-13)
- EIP-1559: Fee market change for ETH 1.0 chain - Ethereum Improvement Proposals (abgerufen: 2026-08-13)
- txpool Namespace - go-ethereum (abgerufen: 2026-08-13)
- Command-line Options - go-ethereum (abgerufen: 2026-08-13)
- JSON-RPC API - Ethereum.org (abgerufen: 2026-08-13)
- EIP-4844: Shard Blob Transactions - Ethereum Improvement Proposals (abgerufen: 2026-08-13)
- ERC-4337: Account Abstraction Using Alt Mempool - Ethereum Improvement Proposals (abgerufen: 2026-08-13)
- MEV Protection Overview - Flashbots Documentation (abgerufen: 2026-08-13)