Wie viele Transaktionen gibt es in einem Block?

Wenn ein Block als Hauptbuch für Transaktionen fungiert, wie viele Transaktionen passen dann in einen Block?

Ich muss ein privates Testnetz einrichten, in dem nur eine Maschine minen darf, während (viele) andere Transaktionen auf ihrer Blockchain durchführen (der Miner richtet auch den Genesis-Block ein). Was passiert, wenn die Anzahl der Transaktionen die maximal zulässige Anzahl von Transaktionen in einem Block überschreitet?

Antworten (2)

Das Folgende ist eine vereinfachte Erklärung dessen, was Geth tut.

Es gibt zwei Hauptorte, an denen sich Transaktionen befinden können: in einem Block oder im Transaktionspool (txpool).

Wenn ein Knoten zum ersten Mal von einer Transaktion hört, legt er sie in den Txpool. Dies sind im Wesentlichen Transaktionen ohne Bestätigung. Es gibt eine Reihe von Möglichkeiten, darauf zuzugreifen, insbesondere den "ausstehenden" Pseudoblock in web3.

Wenn ein Node mit dem Mining beginnt, nimmt er die bestbezahlten Transaktionen im Txpool, eine nach der anderen, und führt sie aus. Wenn das gasLimit oder die Transaktionen im Pool aufgebraucht sind, verpflichtet es sich, diesen bestimmten Block abzubauen. (Dies erscheint in der Konsole als etwas wie "commit new work on block X with Y txs...") Dann fährt es mit dem Hashen dieses Blocks fort, bis es einen Hash findet, der ausreichend selten genug ist, damit der Block vom Netzwerk akzeptiert wird.

Jede andere Transaktion, ob sie empfangen wurde, bevor sie mit der Arbeit am Block begann, sie aber aus irgendeinem Grund nicht verwenden konnte, oder ob sie sie danach erhalten hat, bleibt im Txpool, bis sie abgebaut wird, oder wird aus einem anderen Grund dauerhaft ungültig.

Wer legt also das Blockgaslimit fest und wie wird es regelmäßig aktualisiert, damit neue Blöcke abgebaut werden können?
Jeder Miner kann das Blockgaslimit um einen bestimmten Prozentsatz nach oben oder unten anpassen. In der Praxis einigt sich die Mehrheit der Bergleute darauf, sie auf eine bestimmte Zahl festzulegen, und sie weicht nicht effektiv davon ab. Jeder neue Block hat ein Frischgaslimit, das von neuen Transaktionen verwendet werden kann.

Normalerweise werden in einem privaten Testnetzwerk periodisch leere Blöcke abgebaut. Die maximale Anzahl von Transaktionen im Block hängt von der maximalen Blockgröße ab. Informationen zur maximalen Blockgröße in Ethereum finden Sie unter diesem Link

Maximale Blockgröße

Danke, aber das macht nicht wirklich Sinn (um die Blockgröße nicht zu begrenzen). Ich meine, warum nach neuen Blöcken suchen, wenn sie im Wesentlichen nicht benötigt werden.
Was ist, wenn ich im Testet das anfängliche Gaslimit für das erste (Mining-) Konto auf 32 0xff Bytes setze? Ist das nicht der absolute Höchstbetrag?
Wenn Sie die leeren Blöcke in einem Testnetzwerk abbauen, erhalten Sie nur die Anzahl der Ether.
@Sebi Sie können nicht wissen, dass ein Block leer ist, bis er endet, also müssen Sie ihn trotzdem abbauen.
Ich habe gefragt, was passieren würde, wenn es zu viele Transaktionen gäbe, bevor der Block abgebaut werden könnte? Eine große Zahl in dem Sinne, dass mehr als ein Block aufnehmen kann.