Ich experimentiere mit Smart Contracts auf der Ethereum Blockchain. Nehmen wir an, ich habe einen Vertrag, etwas wie SimpleStorage.sol gefunden in the Solidity documentation, die einen Speicherstatus für jedermann zugänglich hat. Da der Link beschreibt,Wie können Smart Contracts mehrere Benutzer und unterschiedlichen Speicher verwalten?
jemand gerade gesetzt mit einem anderen Wert wieder anrufen konnte und Ihre Zahl überschreibt
Dies zu Problemen führen würde, und die Lösung, die Erreichbarkeit dieser Funktion auf bestimmte Konten zu beschränken ist in meinem Anwendungsfall nicht angemessen. In meinem Vertrag möchte ich, dass die Daten, auf die jedes Konto gesetzt wird, später von einem anderen vorgegebenen Konto zugänglich sind (denken Sie an eine Beziehung, in der Person A-> B, also B die Daten ausschließlich von A verwendet, und x-> y, wo y die Daten verwendet ausschließlich aus x. Es kann keine Überlappung geben, wo y die Daten von A verwenden kann. Von meinem Verständnis gibt es 2 Lösungen für das Problem:
- Karte Adressen miteinander und verfolgen Sie alle Daten in diesem einzelnen Smart-Vertrag.
- Haben Sie ein intelligentes Vertrags- "Template", auf das das ursprüngliche Konto zugreifen würde, und generieren Sie einen separaten intelligenten Vertrag für jedes neue Konto, um einfach Daten zu speichern, die mit der Vorlage interagieren.
Das Problem mit tritt auf, wenn die Beziehung zwischen den Konten komplexer (Karte getrennt structs?) Wird oder eine große Menge von Menschen versuchen, ihre Informationen in dem Vertrag zu speichern.
Das Problem mit ist Redundanz. Muss ich wirklich einen separaten "Vertrag" für jede einzelne Person erstellen, die versucht, auf die Hauptvorlage zuzugreifen?
Wenn meine Frage vage ist, kann ich mehr erklären, aber ich suche hauptsächlich nach einer begrifflichen Antwort. Die meisten intelligenten Vertragsbeispiele, die ich gefunden habe, sind entweder extrem einfach oder unnötig komplex und bieten keinen konkreten Anwendungsfall.