Gibt es eine theoretische Grenze für die Größe der Transaktionsdaten, wenn Sie eine Transaktion an das Ethereum-Netzwerk senden?
Ref.
Gibt es eine (theoretische) Grenze für die Datenmenge, die ein Vertrag speichern kann?
Wow, das ist eine so interessante Frage! TL;DR : Die Transaktionsgrößengrenze liegt zum Zeitpunkt des Schreibens bei etwa 780 kB (etwa 3 Millionen Gas). Aber lesen Sie weiter.
Es gibt kein direktes oder festes Limit , weder für Transaktionsgrößen noch für Blockgrößen. Dies ist eine Stärke des Ethereum-Netzwerks, es skaliert.
Das bedeutet nicht, dass es keine Grenzen gibt. Es gibt das Blockgaslimit von derzeit 3.141.592 Gas, das maximal pro Block ausgegeben werden kann.
Das bedeutet, dass Sie theoretisch eine einzelne Transaktion erstellen könnten, die das gesamte Gas eines einzelnen Blocks verbraucht.
Versuchen wir, 256 kB Zufallsdaten mit einem Vertrag zu senden:
Das würde fast 9 Millionen Gas verbrauchen, was derzeit nicht verfügbar ist. Mist versucht, die Transaktion zu erstellen, aber sie ist ungültig.
Versuchen wir, etwas nahe an der Gasgrenze zu erstellen, 44.444 zufällige Bytes :
Diese Transaktion wurde durchgeführt, hier ist ein Explorer-Link . Hash:
I0207 11:47:14.558908 eth/api.go:946] Tx(0x25e54394ab4e5f17d6e1240c02c1a6c4bb675ef9471f1105b006988f5fe5aec1) to: 0xfcae7970392f510a985a7eaccd3820b7759d65d9
Also habe ich gerade 44kB zur Blockchain in Block 967163 hinzugefügt .
Und jetzt beginnt die Skalierungsmagie von Ethereum zu wirken. In Block 967164 reagiert das Netzwerk auf den hohen Gasverbrauch und erhöht das Blockgaslimit auf 3.142.967 !
Wenn also eine kontinuierliche Anforderung bei hohem Gasverbrauch besteht, kann das Gaslimit um plus/minus erhöht werden 1/1024
, was ungefähr ist 0.09%
. Siehe gelbes Papier, Gleichungen 40-42 .
Kurz gesagt, Grenze: Ja, zum Zeitpunkt des Schreibens etwa 780 KB für einen TX voller Null-Bytes oder 46 KB für einen TX voller Nicht-Null-Bytes. Feste Limits (wie bei Bitcoin): nein.
Am 08.12.2017 beträgt das auf EthStats.net angegebene Gaslimit 6.700.314 .
Das Gaslimit blieb bei 4,7 Millionen „hängen“. Es wurde empfohlen , dass Miner ihre Einstellungen so ändern, dass das Gaslimit angehoben werden kann.
Wie in diesem Artikel beschrieben , ist dies geschehen.
Jedes hexadezimale Zeichen besteht aus 4 Bit. 2 Zeichen sind ein Byte.
Das gelbe Papier beschreibt die Gebühren für verschiedene Operationen.
Mit ähnlichen Berechnungen wie denen von 5hcdn/Giuseppe Bertone können wir nun sehen, dass eine Transaktion (im Prinzip) **** halten könnte
(6.700.314 - 21.000) / 68 = 98.225 (abgerundet) Nicht-Null-Bytes.
Nun ... die von EthGasStation bereitgestellten Daten lassen uns sehen, dass wir eine Transaktion mit einem Gaspreis von nur 0,5 Gwei abbauen könnten.
6,700,314 * 0.5 = 3,350,157 Gwei = 0.003350157 Ether.
Ein üblicherer Gaspreis von 20 Gwei würde ergeben:
6,700,314 * 20 = 40,201,884 Gwei = 0.040201884 Ether.
Bei einem aktuellen ETH-Preis von rund 315 US -Dollar würde es zwischen 1,05 und 12,66 US-Dollar kosten , so viele Daten an die Blockchain zu übermitteln.
eth
Raine Verehrer
q9f
Giuseppe Bertone
FrenchieiSverige
q9f
Ismael