Ausstehende Transaktionen für einen vergangenen Block abrufen

Ich möchte eine historische Liste der ausstehenden Transaktionen erhalten. Ist es beispielsweise für eine Blocknummer 1.000.000 möglich, diese Liste zu erhalten?

Im Moment habe ich Blockchain-Daten bis zu Block 1.600.000 heruntergeladen, aber wenn ich dies ausführe:

> eth.getBlock('pending', true).transactions
[]
>

Ich erhalte keine ausstehenden Transaktionen.

Bedeutet dies, dass gethausstehende Transaktionen nicht pro Block in seiner Datenbank gespeichert werden? Wenn gethnicht, tut es vielleicht Parity ???

Antworten (2)

Ausstehende Transaktionen sind eigentlich derzeit ausstehende Transaktionen : Sie sind Transaktionen im Speicher jedes Knotens (des Transaktionspools ), die darauf warten, von einem Miner in einen Block aufgenommen zu werden.

Wenn ein TX in einen Block aufgenommen wird, befindet es sich nicht mehr im Wartezustand . Es macht also keinen Sinn, ausstehende Transaktionen für eine bestimmte Blocknummer zu erhalten.

Es ist jedoch sinnvoll, ausstehende Transaktionen lokal zu speichern, um zu verfolgen, wann eine bestimmte Transaktion im Netzwerk aufgetreten ist. Solche Daten helfen bei der Analyse des Netzwerks und können Hinweise für Verbesserungen geben.
Vielleicht, aber in jedem Fall erhalten Sie nicht, wann dieser tx "im Netzwerk erschienen ist", sondern nur, wann dieser tx Ihren Knoten erreicht hat: Sie wissen nicht, "wann" der Absender diesen tx tatsächlich gesendet hat. Sie können versuchen, bestimmte Transaktionen zu prüfen, die Sie senden, und versuchen, die Netzwerkleistung in diesem bestimmten Moment zu verstehen, aber das Speichern, wenn Ihr Knoten zum ersten Mal eine TX sieht, scheint "per se" nicht sehr nützlich zu sein, Sie müssen das in Beziehung setzen Informationen mit vielen anderen, um nützliche Informationen über den Netzwerkstatus zu erhalten.
"erscheinen nicht sehr nützlich" ? Es ist sehr nützlich. Mit diesen Daten können Sie beispielsweise die durchschnittliche Zeit berechnen, die für einen bestimmten Gaspreis benötigt wird, um eine Transaktion zu verarbeiten. Sie können diese Daten grafisch darstellen, sagen wir 2 GWei = Transaktion verarbeitet in 5 Minuten, 10 GWei = Transaktion verarbeitet in 30 Sekunden. Und zeigen Sie ein Diagramm der Transaktionsverarbeitungszeit im Vergleich zum Gaspreis. Dies sind sehr nützliche Daten, die Sie nicht erhalten können, ohne zu wissen, wann Sie die Transaktion im Netzwerk erhalten haben. Knoten leiten Transaktionen schnell weiter, daher sollte die Ausbreitungszeit minimal sein.
Es scheint nicht sehr nützlich zu sein, dies mit einem einzelnen Knoten zu tun. Wenn man Informationen aus vielen Quellen aggregiert (zum Beispiel was Dienste wie ethgasstation.info oder ethstats.net machen ) wird das interessant (aber selbst dann IMHO noch weit entfernt von "sehr nützlich" ^^)

Um Giuseppes Antwort etwas zu vervollständigen, besagt diese Antwortweb3.eth.getBlock('pending') , dass dies nur relevant ist, wenn Sie Bergbau betreiben.

Sie werden nicht in der Blockchain beibehalten . Sie "leben" im txpool .