Neu bei Blockchain und Smart Contracts. Ich habe recherchiert und festgestellt, dass ich meinen Transaktions-Smart-Vertrag nicht aktualisieren kann. Ist es möglich, Datenbankdaten als Eintrag im Ledger oder in einem anderen Smart Contract zu speichern, den nur ich aktualisiere und auf den der Transaktions-Smart Contract zugreifen kann, um die Daten abzurufen?
Zum Beispiel
Der Benutzer möchte eine Spende an eine Organisation leisten. Seine Brieftasche muss alle möglichen Organisationen einbeziehen, damit er aus einer Datenbank auswählen kann, die ich gerne dezentralisiert hätte.
Wo kann ich die Organisationen und ihre Wallet-Adresse speichern, aktualisieren oder entfernen? Außerdem möchte ich Unterabschnitte einer Organisation und ihrer Adresse hinzufügen.
Zum Beispiel
Benutzer-Wallet zieht ein:
Ich würde den einzigen lesen, der Organisationen hinzufügt und sie entfernt. Gibt es eine Möglichkeit, dies alles dezentral innerhalb der Blockchain zu tun?
Chris
Smart Contracts können Arrays und Maps als Datenstrukturen haben, die den Status dauerhaft in der Blockchain speichern, und Funktionen des Smart Contracts können sie ändern.
Für Ihr Beispiel könnten Sie so etwas verwenden:
pragma solidity ^0.4.16;
contract MyOrgDatabase {
struct Organization {
address _where;
string _name;
}
Organization[] public availableOrgs;
address public owner = msg.sender;
function addOrg(address _where, string _name) {
require(msg.sender == owner);
availableOrgs.push(Organization(_where, _name));
}
}
Dieser Vertrag hat ein öffentliches availableOrgs
Eigentum, das jeder aus der Blockchain lesen kann. Aber nur die Adresse, die den Vertrag erstellt hat (die owner
), kann Organisationen zu dieser Liste hinzufügen (Sie möchten wahrscheinlich auch Funktionen zum Entfernen von Organisationen aus der Liste oder zum Ändern der Eigentümerschaft des Vertrags für einen voll funktionsfähigen Vertrag hinzufügen, aber das sollte Ihnen eine Idee geben).
Eduard Pereira
MitternachtBlitz
address
Typfeld ist ein Typ, der speziell für die Aufnahme von Ethereum-Adressen (normalerweise lange hexadezimal codierte Zahlen) ausgelegt ist.Aniketh Saha
MitternachtBlitz
MitternachtBlitz