Update developer documentation authored by Johannes Buechele's avatar Johannes Buechele
......@@ -93,6 +93,18 @@ IPFS (InterPlanetary File System) ist ein verteiltes Dateisystem, mit dem das We
Im IPFS werden Dateien nicht mehr durch ihren Speicherort identifiziert, sondern durch ihren Inhalt. Jede Datei und jeder Block im IPFS erhält eine eindeutige Kennung, die auf dem Inhalt der Datei basiert. Dieser Identifikator wird CID (Content Identifier) genannt. Mit dieser Methode kann auf eine Datei unabhängig von ihrem Speicherort zugegriffen werden, was eine bessere Verfügbarkeit und Fehlertoleranz ermöglicht. Außerdem wird die Sicherheit und Integrität der Dateien gewährleistet. Dazu verwendet IPFS einen kryptographischen Hashing-Algorithmus. Damit wird sichergestellt, dass Dateien unveränderbar sind und ihre Integrität überprüft werden kann.
- Blockchain:
Ursprünglich war geplant, den Hashwert des Werks und der Metadatei auf der Blockchain zu speichern. Zu diesem Zweck wurden verschiedene Blockchains untersucht. Nach den Recherchen haben wir uns jedoch entschieden, die Metadatei und das Werk (optional) ausschließlich im IPFS zu speichern. Diese Entscheidung wurde aus folgenden Gründen getroffen
1. Skalierbarkeit: Skalierbarkeit ist ein zentrales Problem der Blockchain-Technologie. Da jeder Knoten in der Blockchain alle Transaktionen speichern muss, kann die Skalierbarkeit stark von der Anzahl der Transaktionen und Teilnehmer beeinflusst werden. Im Gegensatz dazu bietet das IPFS-Protokoll eine verbesserte Skalierbarkeit, da Dateien über das Netzwerk verteilt werden und die Last nicht auf jedem einzelnen Knoten liegt. Dadurch können mehr Teilnehmer und größere Datenmengen effizienter verarbeitet werden.
2. Effizienz: Die Blockchain erfordert oft einen hohen Rechenaufwand, um einen Konsens über den Zustand der Daten zu erzielen. Dies geschieht typischerweise durch Konsensalgorithmen wie Proof-of-Work (PoW) oder Proof-of-Stake (PoS). Im Vergleich dazu ermöglicht das IPFS-Protokoll eine effizientere Speicherung und Abfrage von Dateien, ohne dass komplexe Konsensalgorithmen verwendet werden müssen.
3. Transaktionskosten: In der Blockchain, insbesondere in öffentlichen Netzwerken wie Bitcoin oder Ethereum, fallen für jede Transaktion Transaktionsgebühren an. Diese Gebühren können je nach Netzwerklast und gewünschter Transaktionspriorität variieren. Im Laufe der Zeit können die Transaktionskosten erheblich ansteigen, was die Nutzung der Blockchain für kleinere Transaktionen oder häufige Interaktionen unwirtschaftlich macht. Durch die Verwendung des IPFS entfallen diese Transaktionskosten, da das Protokoll keine Transaktionen im herkömmlichen Sinne erfordert.
Aufgrund der besseren Skalierbarkeit, der höheren Effizienz und der geringeren Transaktionskosten haben wir uns daher entschieden, das Metafile und das Werk ausschließlich im IPFS zu speichern.
- Spring:
Spring bietet ein Modul namens Spring MVC (Model-View-Controller), das für die Erstellung von Webanwendungen verwendet wird und RESTful-Webservices unterstützt. Mit Spring MVC können Sie einfach Controller-Klassen definieren, die HTTP-Anfragen entgegennehmen und HTTP-Antworten zurückgeben. Sie können auch Daten in verschiedenen Formaten (wie JSON oder XML) senden und empfangen.
......
......