Warum erstellt Ethereum einen neuen Block, ohne auch nur eine einzige Transaktion? [Duplikat]

Ich betreibe eine private Ethereum-Blockchain. Wenn ich einen der Knoten auf meinen setze, erstellt dieser Knoten kontinuierlich Blöcke, auch wenn keine Transaktionen darin enthalten sind. Was ist der Zweck davon?

Antworten (3)

Ein Vorteil einer Blockchain besteht darin, dass sie nur mit in der Praxis unveränderlichen vergangenen Blöcken angehängt wird.

Diese vergangenen Blöcke sind unveränderlich, da es sehr schwierig ist (über Proof-of-Work), einen konkurrierenden Block zu erstellen, der „die Geschichte umschreibt“. Außerdem müssen Sie berücksichtigen, dass nachfolgende Blöcke ihre eigene Schwierigkeit hinzufügen. Um also einen Block in der Vergangenheit zu ändern und von anderen Knoten akzeptiert zu werden, müssen Sie diesen vergangenen Block und alle nachfolgenden ändern.

Um auf Ihre Frage zurückzukommen, diese leeren Blöcke fügen ständig neue Schwierigkeitsebenen hinzu, um die praktische Unveränderlichkeit vergangener Blöcke sicherzustellen.

Die Vergabe neuer Ether soll Miner dazu anregen, vergangene Blöcke zu schützen.

Diese Antwort ist so gut wie sie sein könnte, aber Sie könnten den Grund erklären, warum dies aufgrund der jüngsten Dos-Angriffe jetzt häufiger vorkommt als in der Vergangenheit. Ich bin mir nicht sicher, warum das so ist. Vielleicht können Sie eine Erklärung hinzufügen, warum es jetzt häufiger vorkommt als früher.
Wenn Miner einen neuen gültigen Block erhalten, müssen sie beim nächsten Block zum Mining wechseln. Bevor sie jedoch mit dem Mining beginnen können, müssen sie entscheiden, was sie in den nächsten Block stecken möchten. Dies nimmt eine Zeit ungleich Null in Anspruch. Daher schürfen die Miner in der Zwischenzeit entweder weiter auf dem alten Block in der Hoffnung, eine Onkel-Belohnung zu erhalten, oder sie beginnen sofort mit dem Mining auf einem leeren nächsten Block, in der Hoffnung, eine volle Belohnung zu erhalten. Wenn der neue nicht leere Block zum Mining bereit ist, können sie mit dem Mining beginnen. Es kann aber durchaus vorgekommen sein, dass der leere Block zwischenzeitlich abgebaut wurde.

In einer öffentlichen Kette ist es absolut sinnvoll, weiterhin Blöcke zu erstellen, da ein Miner immer noch die 5-ETH-Block-Belohnung erhält, mit oder ohne Transaktionen darin. Daher wird Geth ununterbrochen minen, solange es dazu aufgefordert wird. Es weiß nicht, dass die Kette nicht öffentlich ist. Es ist möglich, ein Skript zu schreiben, um das Mining von Geth zu steuern. Siehe diese Frage.

Wenn Sie nach einer privaten Blockchain zum Testen von Dapps suchen, ist ein Simulator wie testrpc wahrscheinlich besser geeignet als ein echter Full Node. testrpc „minet“ nur, wenn eine Transaktion stattfindet, und dieses Mining wird simuliert – es findet kein tatsächliches Hashing statt.

In der Ethereum-Blockchain erstellen wir alle N Mal (15 s) Blöcke, siehe https://etherscan.io/charts/blocktime

Wir tun das für 2 Zwecke:

1-Transaktionen einschließen.

2 neue Ether erzeugen.

Wenn es keine einzuschließende Transaktion gibt oder der Miner sich weigert, sie einzuschließen, erstellt er einen neuen Block ohne Transaktionen, der jedoch die belohnten Ether enthält.

Ein Block könnte also keine Transaktion enthalten, aber denken Sie daran, dass ein validierter Block einige Bestätigungen (zusätzliche Blöcke danach) benötigt, um zuverlässiger zu sein [12 Bestätigungen für "irreversible" Änderungen an Daten].