Wenn ich einen Befehl verwende geth --cache=1024
, wie viele Blöcke wird die Laufzeit im Cache halten. Und wie groß wird jeder Block sein? Gibt es eine Berechnung? Und gibt es eine Möglichkeit, mit der wir erzwingen können, dass die im Cache vorhandenen Daten in leveldb-Dateien geschrieben werden?
Ich habe diese Erklärung von einem Reddit-Benutzer gefunden und dachte, dass sie für Sie nützlich sein wird, um einige Dinge zu verstehen.
Ethereum hat eher ein Gaslimit als eine Blockgröße. Das Gaslimit ist eine Obergrenze sowohl für die Verarbeitung als auch für die Speicherung/Bandbreite, da die Kosten einer Transaktion/Funktion für jede Art von Anweisung in Gaseinheiten festgelegt sind.
Das Gaslimit wird von jedem Bergmann nach oben oder unten gewählt, und jeder Bergmann bestimmt, welchen Gaspreis er zu akzeptieren bereit ist, was wie Bitcoin-Transaktionsgebühren ist, aber auf einer Pro-Gas-Basis und nicht auf einer Pro-Transaktion-Basis.
Um herauszufinden, wie viele Transaktionen in einen Block passen, müssen Sie den Gaspreis nicht kennen. Sie müssen nur wissen, wie viel Gas eine Transaktion verbraucht, und das Gaslimit dadurch teilen.
Wenn das Netzwerk eine Menge Spam-Transaktionen erhält, die anfangen, Blöcke zu füllen, haben Miner zwei Möglichkeiten. Sie können das Gaslimit erhöhen, um mehr Transaktionen zu ermöglichen, oder sie können den Gaspreis erhöhen und Transaktionen ablehnen, die eine zu niedrige Gebühr zahlen. Wie bei Bitcoin könnte eine Transaktion mit einer niedrigen Gebühr immer noch durchkommen, aber sie müsste warten, bis ein Miner, der eine niedrigere Gebühr (niedrigerer Gaspreis) akzeptiert, bereit ist, sie hereinzulassen.
Bei einem anhaltenden Spam-Angriff würde es immer teurer werden, Transaktionen durchzuführen, bis entweder dem Spammer das Geld ausgeht oder die Miner so viel Geld verdienen, dass sie anfangen, die Netzwerkkapazität zu erweitern ...
Alles, was dieser Benutzer sagt, ist wahr und es ist sehr gut erklärt.
Wie Sie sehen, funktioniert es ganz anders als das Bitcoin-Schema.
BEARBEITEN Ich lasse hier die vollständige Reddit-Diskussion darüber
Ich hoffe es hilft.
Kevin J.
BLINKEN
kill -9 <processId>
Blockhöhe 1000 beendete und dann die Kette erneut startete, begann sie jedoch nicht mit der Höhe 1000. Wenn also meine Kette beendet wird, wie kann ich den Datenverlust verhindern? Und gibt es eine Möglichkeit, mit der ich die Cache-Daten explizit auf die Festplatte schreiben kann?CPerez19
BLINKEN
CPerez19