Speichern und Abrufen von Daten von MongoDb-Dokumenten mit Hash, der in der Blockchain gespeichert ist

Blockchain kann nicht alle Daten von Benutzern speichern und darf nicht dazu verwendet werden. Dafür gibt es 2 Gründe -

1) Das Speichern von Daten in der Blockchain erfordert einen Gaspreis (Transaktionskosten)

2) Da alle Blöcke auf allen an der Blockchain teilnehmenden Knoten repliziert werden, gibt es einige Einschränkungen für das Speichern von Big Data in der Blockchain.

Blockchain ist kein Ersatz für eine Datenbank, sondern eine weitere Ebene darüber, um Transaktionen zu speichern, die für das Geschäft von entscheidender Bedeutung sind, und um das Vertrauen zwischen mehreren Entitäten sicherzustellen.

Ich habe gelesen, dass die verbleibenden Daten in IPFS gespeichert werden sollen und der Hash dieser Daten in der Blockchain gespeichert wird. Aber da IPFS nur unstrukturierte Daten unterstützt, dh Bilder und Videos.

Ich möchte die verbleibenden Benutzerdaten in MongoDB speichern und ich werde den Hash des MongoDB-Dokuments in der Blockchain speichern. Ich werde in der Lage sein, im Dokument gespeicherte Daten aus dem in der Blockchain gespeicherten Hash abzurufen. Gibt es Ressourcen oder Tutorials für die Implementierung derselben?

Antworten (2)

Ich habe kürzlich ein Tool zum Speichern, Indizieren und Durchsuchen von Inhalten auf IPFS namens IPFS-Store erstellt , und ich verwende mein Tool zum Speichern und Indizieren von JSON-Dokumenten (MongoDB-Stil), aber Sie können es verwenden, um jede Art von Inhalt zu indizieren.

Der Dienst stellt eine REST-API bereit, die jede Art von Inhalt akzeptiert, sodass Sie grundsätzlich JSON-Dokumente per Push und Pull abrufen können.

Zum Beispiel

curl -X POST \
  http://localhost:8040/ipfs-store/store \
  -H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' \
  -F 'file={"attribute1": "my json file to store on IPFS", "attribute2": "val2", "attribute3": 10}'

Ich plane, SWARM in Zukunft zu unterstützen.

Bei Verwendung des obigen Ansatzes wird jeder Datensatz eines Benutzers als separate JSON-Datei gespeichert. Ich kann Benutzerdaten speichern und abrufen, aber ich kann keine Benutzerdaten abfragen. Wissen Sie, wie Sie vorhandene Daten (aus jeder SQL- oder NoSQL-Datenbank) extrahieren und laden, um sie zu schwärmen, und wie Sie sie abfragen?
Muss ich die JSON-Abfragesprache (JSONiq) verwenden, um Daten abzufragen, die in JSON-Dateien gespeichert sind?
Sie könnten grundsätzlich eine Datei pro Benutzer auf IPFS schreiben, einige Attribute auf Elasticsearch indizieren und dann die Suche (und ihre eigene Abfragesprache, siehe Dokument) verwenden, um Benutzer zu suchen und Benutzer abzurufen.

Wenn Sie sich für den MongoDB-Weg entscheiden, verlieren Sie einen Teil der Dezentralisierung Ihrer dApp, da MongoDB von jemandem gehostet werden muss .

Ein anderer Ansatz wäre die Verwendung von Ethereums Swarm , der Teil des Ökosystems von Ethereum ist.

Gibt es Tutorials / Blogs, die mir helfen, Benutzerdaten im Schwarm zu speichern?
Ihre offizielle Dokumentation ist dafür ein wirklich guter Anfang.
Swarm Proof-of-Concept Version 3 steht vor der Tür. Die Dokumentation wird derzeit grundlegend überarbeitet. Also warte vielleicht ein oder zwei Wochen, wenn du gerade erst damit anfängst. Zum Thema: Zur Inspiration ist hier ein Stub, den ich geschrieben habe, um zu demonstrieren, wie man die Funktionalität des virtuellen Dateisystems von sqlite mit Swarm als Backend verwendet (die „Blockgröße“ des Swarms ist 4096, genauso wie die Standardeinstellung von sqlite) github.com/nolash/swarm-sqlite-vfs Es gibt auch eine swarmdb-Initiation; um eine Datenbank direkt auf dem Schwarm aufzubauen. wolke.com arbeitet daran.