Ich bin eine neue Biene in der Ethereum-Blockchain, wenn ich dies als potenzielle Lösung für eine dezentrale Anwendung umsetze. Bei der Identifizierung der Lösung bin ich auf ein Problem gestoßen, bei dem ich das Erstellen/Löschen von Knoten in einer vorhandenen/funktionierenden Blockchain dynamisch verwalten möchte.
Zum Beispiel: Wenn ich eine private Blockchain habe, die ursprünglich mit 5 Knoten erstellt wurde, die laufen und miteinander kommunizieren. Jeder Knoten hat eine Static-Nodes-Datei mit (enode)-Informationen für das Peering miteinander. Wenn ich nun einen der Knoten aus dem Blockchain-Netzwerk booten möchte, würde ich den statischen Knoten aktualisieren, indem ich den ungeraden Knoten aus der Enode-Liste werfe und ihn auf jedem Knoten repliziere. Dies würde möglicherweise den gelöschten Knoten aus dem Blockchain-Netzwerk werfen.
Was ist, wenn ich diese Löschung von Knoten verwalten möchte, ohne jeden der Knoten zu berühren (vorausgesetzt, die Knoten sind nicht in unserer Kapazität, die Änderungen zu implementieren). Gibt es eine Lösung zum dynamischen Hinzufügen/Löschen von Knoten, ohne Änderungen an jedem Knoten vorzunehmen? auch ohne Zurücksetzen von Blockchain-Daten (kein Zurücksetzen des Genesis-Blocks).
Wenn jemand irgendwelche Zweifel an meiner Frage hat, schreib mir bitte zurück.
Jede Hilfe wird sehr geschätzt.
Danke.
Ich würde empfehlen, dem Blockheader ( types.Header
) ein neues Feld namens hinzuzufügen CustomerHash
, dieser Hash würde von einem sha256-Algorithmus für Kundendaten (Name + Adresse + beliebige Informationen) generiert. Jeder Kunde hätte einen eindeutigen Hash.
Jetzt, da Sie Hashes für alle Ihre Kunden haben, hätten Sie diese Kundenliste in das Swarm-Netzwerk gestellt, damit sie öffentlich zugänglich ist. Jeder Knoten würde die Liste einmal alle 1000 Blöcke herunterladen (oder so ähnlich).
Um sicherzustellen, dass diese Liste nur von Ihnen ausgegeben wird (da Sie hier eine zentrale Autorität sind), müssen Sie einen Verschlüsselungsmechanismus einbauen. Sie müssen die Liste mit Ihrem privaten Schlüssel verschlüsseln und jeder Knoten wäre sicher, dass es die von Ihnen ausgegebene Liste ist. Auf diese Weise würden Sie die Blockchain nur für Ihre Kunden nutzbar machen, da nur sie in der Lage wären, einen Block zu minen. Wenn ein Fremder versucht, einen Block zu setzen CustomerHash
, der nicht auf dieser Liste steht, werden andere Miner seinen Block als ungültig ablehnen.
Das Ergebnis ist: Sie haben eine öffentliche Blockchain, die jedoch nur von denen gemined werden kann, die bezahlt haben. Und es wird für jeden zugänglich sein, der daran interessiert ist, die Daten in der Kette verfügbar zu machen.
So würde ich es umsetzen, es ist ein transparenter und klarer Weg, Dinge zu tun, während Sie den Status einer zentralen Autorität behalten.
Nulik
Nulik
PSI