Wie viele Blöcke kann ein Cache von 1 GB (1024) vorläufig aufnehmen?

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?

Antworten (1)

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.

Das ist eine nette Erklärung und absolut wahr, vielleicht fügen Sie diesen Link hinzu, damit wir zusätzliche Informationen erhalten.
Eine weitere Sache, die ich wissen möchte, wann werden die Blöcke auf die Festplatte geschrieben? denn als ich den Knoten mit 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?
Der Datenverlust kann durch verschiedene Knoten verhindert werden. Dadurch kann mindestens einer von ihnen weiterhin den Blockchain-Zustand aufzeichnen. Und wenn man weiß, dass es zum Beispiel auf Ethereum mehr als 20000 Knoten gibt, ist es ziemlich schwierig, dass alle gleichzeitig abstürzen und dann Daten verloren gehen. Fügen Sie hinzu, wenn die Antwort für Sie richtig war, markieren Sie sie als solche, um anderen Benutzern zu helfen, sie leicht zu erreichen.
Ja. aber immer wenn der Cache voll wird, werden Blöcke auf die Festplatte geschrieben, und wir haben wieder den leeren Cache. Rechts?
Caches können auch kontinuierlich Daten schreiben und lesen, ihr Ziel ist es, niemals voll zu werden, denn wenn sie voll sind und ein neuer Datenblock ankommt, geht dieser verloren, da die Verarbeitungszeit des Caches nicht so schnell ist muss sein.