Umgang mit Benutzerprofilen in Ethereum DApps

8

Ich bin dabei, einen Ethereum DApp zu erstellen. Der DApp besteht aus Benutzern, die Daten wie E-Mail, Name und ein Profilbild zugeordnet haben. Ich möchte den Inhalt des Benutzers in IPFS als ein JSON-Objekt speichern und dieses auf Kette mit dem IPFS-Hash verweisen. Wie kann ich diese Daten mit einem bestimmten Benutzer verknüpfen? In dem Sinne, dass nachfolgende Interaktionen mit dem DApp den Benutzer mit den in IPFS gespeicherten Daten verbinden. Ist dies mit dem Benutzerkonto Hash mit einem Passwort irgendeiner Art getan?

Zum Beispiel ist Benutzer A an der Verwendung des DApp interessiert und stellt daher seine E-Mail-Adresse, seinen Namen und sein Profilbild zur Verfügung. Dann würde jede nachfolgende Interaktion mit dem DApp, wie ein Kommentar oder Post, diesen Benutzer mit den entsprechenden Benutzerdaten in IPFS verknüpfen.

Alle Vorschläge oder Anpassungen zu dieser Art der Modellierung von Benutzern würden sehr geschätzt werden. Danke!

(P.S. Ich komme aus der traditionellen Welt der Web- / Mobile-Apps, also gewöhne ich mich gerade daran, Dinge mit intelligenten Verträgen zu modellieren. Daher entschuldige ich mich im Voraus, wenn das eine einfache oder schlecht strukturierte Frage ist.)

    
Dondrey Taylor 28.02.2017, 22:38
quelle

1 Antwort

9

Eine der Schönheiten einer Plattform wie Ethereum ist, dass Sie eine ZERO-Klickanmeldung erstellen können. Wenn wir feststellen, dass web3.eth.accounts[0] des Benutzers der Beweis dafür ist, dass der Benutzer den privaten Schlüssel der Adresse dieses Kontos kontrolliert, werden Sie immer wissen, dass der Benutzer gültig ist.

Wenn Sie IPFS wie eine Datenbank verwenden möchten, wäre mein Vorschlag folgender:

Beachten Sie, dass bei den meisten dezentralisierten Systemen ein Großteil der Aktion auf der Clientseite stattfindet.

Benutzeranmeldung

  • Benutzer haben Ethereum-Accounts.
  • Beim Anmelden werden Benutzerdaten in einem JSON-Objekt
  • gesammelt
  • Eine Datei wird erstellt, JSON-Objekt in Datei schreiben.
  • Übergeben Sie die Datei an IPFS
  • Erhalte Datei-Hash (was im Grunde seinen IPFS-Standort ist)
  • Speichern Sie den IPFS-Hash in einem Ethereum-Vertrag, der das Ethereum-Konto des Benutzers mit dem IPFS-Datei-Hash verknüpft.

Benutzerprüfung

  • Der Benutzer besucht die Website
  • web3js erhält das aktive Ethereum-Konto
  • Lesen Sie im Benutzervertrag nach dem zugehörigen IPFS-Hash
  • Datei von IPFS abrufen
  • Lesen Sie das JSON-Objekt
  • Extrahieren Sie die Daten aus dem JSON
  • Daten für Benutzer anzeigen
Samuel Hawksby-Robinson 01.03.2017, 22:20
quelle

Tags und Links