Local Snapshots / Speicherbedarf

Snapshots sind eine Besonderheit des Tangle, regelmäßig werden so genannte Snapshots des IOTA-Netzwerks durchgeführt. Hierbei werden alte Transaktionen gelöscht und nur Adressen mit einer positiven Balance werden weitergeführt. Dadurch wird die Größe des Tangle-Netzwerks reduziert, wodurch die IOTA-Nodes weniger Rechenleistung und Speicher benötigen. 

Seit dem 11.01.2019 führen die Nodes selbstständig die sogenannten "Local Snapshots" durch, dies bedeutet eine schnellere Synchronisierung, geringere Systemressourcenanforderungen und kein Warten mehr auf globale Snapshots, um die Datenbank zu bereinigen. Standardmäßig speichern die Nodes ungefähr 30 Tage Transaktionsdaten, das kann aber individuell geändert werden. Die Local Snapshots sind zudem ein weiterer Schritt zur Dezentralität, der Tangle bzw. die Nodes sind jetzt nicht mehr auf die von IOTA imitierten global Snaphots angewiesen.

 

Local Snapshots sind dringend notwendig um den Speicherbedarf der Nodes auf eine gebräuchliche Größe zu beschränken.

Das Community Mitglied ShyGuy aus dem IOTA-Talk Forum hat zum Thema Speicherbedarf einen bemerkenswerten Artikel verfasst, welchen ich hier unbedingt festhalten möchte.

"Die Transaktionsgröße beträgt 1,6kb, davon ist etwa 82% die Message und die restlichen 18% "die Verpackung". Also etwa 288 Byte Verpackung um daraus eine kostenlos nutzbare DLT mit Geldwert- und Daten-Tx ohne Miner zu basteln. Bitcoin im Vergleich dazu im Schnitt bei 250 Byte pro Tx, aber unter anderen Bedingungen.

Nun bleiben etwas mehr als 1,3 kb Message übrig. 
Bei Daten müssen die nicht vollständig genutzt werden, aber die Tx wird mit Nulltrits aufgefüllt (im IOTA Alphabet der Tryte "9"). Hier ist auf jeden Fall "Komprimierpotential" da.
Bei einer Value Tx, also dem Transfer von Token, reicht 1 Tx sowieso nicht. Es sind mindestens 3 (bei der Standard-Sicherheitsstufe 2). 2 signierte Tx um Token auszugeben (quantensichere Winternitz Signatur ist groß) und eine Einzahl Tx. Der Token Transfer benötigt also eher 4,8kb mit geringerem Komprimierungspotential.

1 TPS macht also etwas mehr als 50GB im Jahr!
1.000.000 TPS wären demnach 50.000TB im Jahr.
Mag noch komprimiert werden können, aber die Menge pro Jahr ist schon gewaltig.

Ist das jetzt ein Problem? Jein.
Permanodes mit vollständiger Übersicht über den Tangle müssen sich dieser Problematik annehmen, aber nicht jeder einzelne FullNode.
FullNodes machen lokale Snapshots und reduzieren ihre Datenbank auf eine angemessene Vergangenheit. Dabei werden alle älteren Tx gelöscht und alle Adressen mit Token behalten. Selbst wenn jetzt für eine Adresse mit Token nicht eine Tx mehr bekannt ist, darfst du dieser Adresse, beim Versuch die Token auszugeben, (lokal) vertrauen und kommst mit keinem anderen Node in Konflikt. Die Ausgabe funktioniert also ohne die ganze Historie zu kennen. PermaNodes werden nicht benötigt um den Token zu sichern.
LightNodes sind reine Clienten und geben Tx weiter, aber speichern keine (Sensor z.b.) oder nur die eigene (Wallet z.b.) Historie. Zum Betrieb wird die Anbindung an eine FullNode benötigt.

Welche Herausforderungen stellen sich nun in Bezug auf die Datenmenge?
Wir betrachten verschiedene, mögliche Anforderungen...

1. Nur Geldwert überweisen wie beim Bitcoin. Datenmenge ist kein Problem (local snapshots).
2. Daten nur transferieren ohne dauerhafte Speicherung im Tangle. Datenmenge kein Problem (local snapshots).
3. Alle Daten für 1 Jahr zur Verfügung stellen. 50GB/Jahr * TPS des Clusters (ohne Komprimierung). Eine Herausforderung, aber auch heute schon machbar.
4. Nur eigene Daten für 1 Jahr zur Verfügung stellen. Durch eine günstige Struktur der eigenen Tx (hauptsächlich sich selbst referenzierend) lässt sich die Datenmenge massiv reduzieren. Aber unter 50GB/Jahr * eigene TPS fällt es definitiv nicht, über 100GB/Jahr * eigene TPS mit Sicherheit auch nicht (Speicherung angrenzender Transaktionen um die eigenen "untermauern" zu können). Schon machbar. Die Message könnte auch direkt in eine Blockchain Struktur übertragen werden.
5. Permanodes stehen vor einer Herkulesaufgabe.

IOTA ist ein Datenübertragungsprotokoll mit eingebauter Cryptocurrency. 1,6kb pro Tx sind nicht viel und Datentransfer braucht immer so viel Platz, bis alle Daten passen. 10kb sind immer mindestens 10kb Übertragung. Kann in eine, aber auch in viele Tx passen. 82% der Übertragung sind diese Daten. Daten sichern jedoch auch den Tokentransfer mit. Wenn der Coordicide funktioniert, dann ist IOTA in vielerlei Hinsicht besser als z.b. der hochgelobte BTC in Sachen Geldwerttransfers. Sogar dezentraler, wenn die Risiken von großen Mining Pools berücksichtigst werden, was IOTA nicht passieren kann.

Selbstverständlich bedeutet Datenübertragungsprotokoll, dass - Achtung jetzt kommt die Überraschung - eine Menge Daten übertragen werden! Und wenn diese Datenmengen nötig sind, um die Überweisungen sicher, kostenlos und dezentraler (Coordicide muss noch bewiesen werden!) realisieren zu können, dann lebe ich halt mit der 120GB SSD für die FullNode und den >=4,8kb pro Überweisung. Ich persönlich brauche keine PermaNode. Vielleicht braucht es überhaupt keine PermaNodes und BigData wird anders archiviert, während es FullNodes für 1-5 Jahre Historie gibt. Die fälschungssichere Übertragung/Verbreitung in einem Peer to Peer Netzwerk ist doch der Grund für die Adoption und nicht der spekulative Token. Der Token kann später zu Einsparungen führen, weil keine Dritte (z.b. Banken) für die Übertragung von Geldwert nötig sind. Und wenn alle den Token der Einsparung Willen nutzen, dann ist das Nachfrage. Höhere Nachfrage und fixes Angebot an Token erhöhen den Preis. Nachfrage bedeutet "realwirtschaflich nötig" plus/minus "Spekulanten Order".


Zusammenfassung:

1. IOTA braucht nicht zwangsläufig Permanodes. BigData wird eher anders archiviert.
2. Für normale FullNodes ist der Speicherbedarf dank local snapshots nicht gewaltig.
3. Eine Daten DLT wird immer mit großen Datenmengen einhergehen (und benötigt irgendwann Clustering)
4. IOTA wird fürs IoT gebaut und da reicht die Übertragung von Geldwert nicht. Eine funktionierende IoT DLT könnte auch Überweisungen von Menschen übernehmen (im IoT werden deutlich mehr Tx erwartet).
5. Ein "Transaktions DAG" bildet die niedrigste und damit auch flexibelste Struktur für Lösungen. "Block DAGs" (z.b. Nano oder Fantom) oder Blockchains (ein "eindimensionaler" DAG von Blöcken wie bei BTC oder nicht "vollständig" dezentral XRP) sind von der Struktur schon eingeschränkter. Mehr Layer müssen diese Einschränkungen nicht vollständig aufheben.
6. Kostenlos und mit rechtlichem Rahmen (gemeinnützige Organisation mit klar definierter Aufgabe).
7. Kein Krypto Projekt ist production ready. Alle haben ihre Macken oder sind noch ganz am Anfang. Der höhere Speicherbedarf ist DAS Problem? Der Coordicide, Qubic, Clustering und ternäre Hardware wird spannend, aber der Speicherbedarf ist...so *mimimi*"

 

 

PS: Sämtliche Anerkennung und mein persönlicher Dank für diese sehr gute Erklärung gehen an ShyGuy, unglaublich wie gut er sich als nicht IF Mitglied mit der Technologie auskennt, wer mehr von ihm lesen möchte sollte unbedingt im Iota-Talk Forum vorbei schauen, er ist dort Teil des Teams.

 

 

Quellen: iota.org

https://www.iota-talk.com/iota-talk-f12/iota-talk-t14-s20580.html#p46128