Dynamische Knotenmitgliedschaftsverwaltung in Ethereum Blockchain

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.

Sie können die Protokolle ändern, um ACL zu Ihrer Blockchain hinzuzufügen. Dies würde eine Änderung des Discovery-Protokolls ( github.com/ethereum/wiki/wiki/Node-discovery-protocol ) und wahrscheinlich auch des Ethereum Wire Protocol ( github.com/ethereum/wiki/wiki/Ethereum-Wire-Protocol ) erfordern.
Ich sehe keinen Sinn darin, eine Blockchain-basierte Anwendung zu schließen. Das Erstellen einer zentralisierten Anwendung in Ihrem Fall wird besser sein. Der springende Punkt bei der Verwendung der Blockchain-Technologie besteht darin, die App auf andere Peers zu verteilen, sodass Sie die Knoten nicht kontrollieren können. Ihr Versuch, die Knoten zu kontrollieren, widerspricht dem Konzept der Verwendung der Blockchain-Technologie
Danke für Ihre Antwort. Stellen Sie sich ein Szenario vor, in dem Sie eine verteilte Anwendung erstellen möchten. Diese Anwendung würde die Erstellung von Knoten für jeden Onboarding-Kunden ermöglichen. Jetzt ist dies eine private Kette, in der nur berechtigte Kunden Transaktionen durchführen dürfen. Die Kunden werden in der Kette dynamisch wachsen, auch können sie die Kette irgendwann verlassen. Wenn ich bereits eine private Blockchain erstellt habe, wie würde ich ein neues Mitglied (Knoten) in diese laufende Blockchain aufnehmen und wie entferne ich einen Knoten? Denken Sie an eine Lösung für ein solches Szenario? Danke.

Antworten (1)

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.

Danke für Ihre Antwort. Ich habe herausgefunden, wie eine Kombination aus statischen Knotendateien zusammen mit einem dynamischen Befehl zum Hinzufügen eines Peers die Admin-Zuständigkeiten für (Admin-)Knoten in einem Blockchain-Netzwerk nutzen würde. Es gibt jedoch sicherlich einen intelligenteren Weg, die dynamische Mitgliederverwaltung in einem Blockchain-Netzwerk zu verwalten, aber vorerst nehme ich diese Lösung als Anfangslösung und werde darauf aufbauen und improvisieren.