Meine Frage besteht eigentlich aus drei Teilen (ja, ich weiß über die bevorstehende Sharding-Entwicklung Bescheid):
Bitte beantworten Sie diese nur, wenn Sie ein fortgeschrittener Programmierer sind. Vielen Dank.
Ja, das Abrufen von Daten aus der Blockchain ist kostenlos. Sie können entweder einen vollständigen Knoten selbst synchronisieren (derzeit werden ca. 50 GB benötigt, je nach System/Netzwerk einige Stunden bis zu einem Tag für die Synchronisierung), einen leichten Knoten (maximal einige GB und einige Minuten für die Synchronisierung) oder Verwenden Sie infuras öffentliche Knoten (sofort, keine Synchronisierung erforderlich, aber auch vertrauenswürdig).
Natürlich sollte man die benötigte Menge im Vertrag so gering wie möglich speichern. Wenn Sie die Daten nicht on-chain betreiben/abrufen müssen, sollten Sie im Allgemeinen einfach so etwas wie einen IPFS-Hash speichern und die tatsächlichen Daten auf IPFS speichern. Speichern Sie nur, was in der Kette benötigt wird. Damit sind Guthaben, Berechtigungen usw. gemeint, aber nicht Dinge wie Benutzer-Avatare oder Kommentare.
Die Menge an Daten, die Sie speichern können , ist unbegrenzt. Der einzige verlangsamende Faktor ist, dass es teuer ist. Es kostet 20.000 Gas, ein 256-Bit-Wort im Speicher zu erstellen, und 5.000 Gas, um es anschließend zu aktualisieren. Bei aktuellen Gaspreisen sind das 4-5 Cent und 1 Cent. Wenn man den Gaspreisverfall ignoriert und es nur 8 Millionen Gas pro Block gibt, um 1 GB Speicher in der Kette zuzuweisen, würde es allein für die Zuweisung etwa 500.000 US-Dollar kosten, ohne die 21.000 TX-Kosten und die anderen erforderlichen Opcodes.
Zur Ergänzung der bestehenden Antwort.
- ... wo ist der wirtschaftliche Nutzen?
Ein paar Ideen:
Sie tragen dazu bei, das Netzwerk und damit auch Ihre ETH zu schützen. Indem Sie einen ehrlichen, vollständigen (Nicht-Mining-)Knoten ausführen, fügen Sie dem Pool von Knoten hinzu, auf denen eine ehrliche Version der Konsensalgorithmen ausgeführt wird. Ihr Node ist in der Lage, Blöcke und Transaktionen zu validieren und die Verbreitung unehrlicher zu verhindern. Je gesünder das Netzwerk, desto sicherer ist es für Ihre Investitionen.
Sie können Ihr eigenes Wallet betreiben. Es besteht keine Notwendigkeit, sich auf Dritte zu verlassen, unabhängig davon, wie vertrauenswürdig sie angeblich sind. Auch hier sind Ihre Gelder sicherer.
- ... und das kann in naher Zukunft leicht in TBs von Daten fließen.
Siehe Die Größe der Ethereum-Blockchain wird in absehbarer Zeit 1 TB nicht überschreiten, um eine Beschreibung der bestehenden Pruning- und Syncing-Modi zu erhalten. Sharding wird dabei nicht berücksichtigt. (Vitalik: „ Sharding is coming “)
- ... Ich verstehe, dass die zugrunde liegende Backend-Datenbank leveldb ist ... LEVELDB ... 100 GB?
Hängt von der Client-Implementierung ab. Geth verwendet LevelDB. Parität verwendet RocksDB (ja, gut, es ist ein Fork von LevelDB). Es steht Ihnen frei, eine Implementierung mit einer beliebigen Datenbank zu schreiben - die Yellow Paper-Spezifikation - soweit es sich um eine Spezifikation handelt - erwähnt die zugrunde liegende Datenbank nicht.
Das wird kein praktischer Speicher für IOT sein.
Vielleicht nicht jetzt. Pruning-Modi und Sharding helfen dabei. Ebenso wie Kryders Gesetz, wenn es auf IOT-Hardware angewendet wird.