Warum gibt es so viele leere Blöcke?

Innerhalb der ersten 4 Millionen Blöcke habe ich festgestellt, dass ein erheblicher Teil davon leer ist. Wenn Miner für das Schreiben von Transaktionen belohnt werden, wäre es dann nicht in ihrem besten Interesse, den Block zumindest teilweise zu füllen?

Geben Sie hier die Bildbeschreibung ein

Das Diagramm wurde erstellt, web3.eth.getBlockTransactionCount(n)indem ein exponentiell gewichteter gleitender Durchschnitt mit einer Spanne von 5760 aufgerufen und gezeichnet wurde.

Antworten (1)

Kurz gesagt: Leere Blöcke breiten sich schneller im Netzwerk aus als Blöcke, die nicht leer sind.

Wenn zwei Mining-Knoten gleichzeitig die Proof-of-Work-Lösung für die Blöcke finden, die sie abbauen, wird letztendlich nur einer dieser Blöcke vom Netzwerk akzeptiert. Der andere wird Onkel.

Der Block, der sich schneller im Netzwerk ausbreiten kann, wird von der Community akzeptiert und erhält daher die Blockbelohnung.

Hier geht es eindeutig um Spieltheorie. Unter welchen Bedingungen ist es besser, leere Blöcke abzubauen und auf die Transaktionsgebühren zu verzichten? Ich bin kein Miner, aber wahrscheinlich, wenn das Netzwerk am stärksten belastet ist und die Blöcke, die von anderen Minern eingereicht werden, am vollsten sind. Auf diese Weise wird sich Ihr leerer Block im Vergleich zu den anderen viel schneller ausbreiten. Aber ich bin mir sicher, dass hier ein Guthaben vorhanden ist, bevor Sie anfangen, Transaktionsgebühren zu verlieren.

Es wäre interessant, Ihr Diagramm mit einem anderen zu vergleichen, das zeigt, wie voll die Blöcke für jede Blocknummer sind, und zu sehen, ob sie korrelieren.

Das macht Sinn, aber warum sind nach 4 Millionen Blöcken im Wesentlichen keine leeren Blöcke mehr vorhanden? Die 100%-Rate setzt sich bis zum aktuellsten Block bei ~5M fort. Ich würde gerne darstellen, wie voll die Blöcke sind, aber ich bin mir nicht sicher, wie ich das messen soll – wie viel „Platz“ nimmt jede Transaktion ein?
Gute Frage. Ich weiß nicht. Vielleicht haben sich die Variablen in dem Spiel, das sie gespielt haben, auf irgendeine Weise geändert? Um die Fülle eines Blocks zu berechnen, sehen Sie sich an, wie viel Gas verbraucht wurde ( gasUsed) und das Gaslimit ( gasLimit). (Etherscan zeigt zu Referenzzwecken auch das verbrauchte Gas in Prozent an.) Beachten Sie, dass die Gasgrenze nicht statisch ist und sich an verschiedenen Stellen geändert hat. (Was könnte mit Änderungen in der Anzahl leerer Blöcke korrelieren? Höheres Gaslimit, höhere potenzielle Transaktionsgebühren? Interessante Frage.)
Es könnte sich lohnen, einen kurzen Blick darauf zu werfen: etherscan.io/charts
Hmm. Rund um Block Nr. 3950000 wurde das Gaslimit von 4,7 Mio. auf 6,7 Mio. angehoben ... (Ende Juni letzten Jahres).
@RichardHorrocks: Betreff: Bedingungen zum Abbau leerer Blöcke und Verzicht auf die Transaktionsgebühren, vbuterin beschreibt die Arbeit, die er geleistet hat, um faire Preise für verschiedene Operationen auf dem EVM zu ermitteln: blog.ethereum.org/2016/10/31/… . Miner können dies verwenden/simulieren, um zu entscheiden, ob sie Transaktionen einbeziehen sollen. Ich glaube (über Gedankenexpt), dass Miner mit Festplatten und CPUs, die langsamer als der Durchschnitt sind, vermeiden sollten, tx einzuschließen. Vor dem State-Bloat-Angriff war eine HDD zum Speichern der Blkchain in Ordnung, aber ich denke, es hätte einen Miner benachteiligt, eine HDD zu verwenden und Txes zu verarbeiten.
Danke @lungj - meine "Besuchter Link"-Färbung deutet darauf hin, dass ich diese Seite schon einmal besucht habe, aber ich kann mich nicht erinnern, sie gelesen zu haben :-) Ich werde es mir ansehen. Ihre HDD-Argumentation ist sicherlich sinnvoll.