Skip to content

Membership Management System as Plugin

Provide a Membership Management System as plugin

Frontend: https://vaadin.com/


  1. Beim Start-Event (Node-Online) registriert sich der Client beim Group-Manager (mit einem Passwort?), der in seiner Config hinterlegt ist
  2. Der Group-Manager prüft, ob der Client für den Join berechtigt ist und stellt ihm dann mithilfe seines privaten Schlüssels ein Membership-Zertifikat aus, dass er anderen Teilnehmern vorweisen kann (dadurch muss das Passwort nicht immer umhergeschickt werden und es können auch andere Dinge als Zugangsberechtigung verwendet werden, wie bspw. der Key)
  3. Der Group-Manager sendet dem Client das Zertifikat
  4. Der Group-Manager informiert alle bereits gejointen Clients über den neuen Client
graph TD
  A[Client] -->|Join| B[Group-Manager]
  B --> C{Fulfills group requirments?}
  C -->|No| E(Generate join failed message)
  C -->|Yes| D(Generate welcome message)
  D --> |Send| A
  E --> |Send| A

  • Der Group-Manager informiert immer alle registrierten Knoten über alle Änderungen wie Join und Leave
  • Group-Events wie ein Join oder Leave werden an die App weitergereicht, so dass diese darauf reagieren kann und auch mitbekommt wer alles momentan Teil des Netzwerks ist
  • Man sollte sich bei mehreren Gruppen gleichzeitig anmelden können
  • Group Manager sollte vllt auch festlegen können welche Schwierigkeit der Proof-of-Work mindestens haben muss. PoWs mit höherer Güte werden immer akzeptiert.
  • Auf dem Group-Manager Knoten sollte es möglich sein über eine UI die Gruppe zu verwalten (bspw. Knoten Zugangsberechtigungen für die Gruppe zu geben oder zu entziehen)
  • Man kann an alle Mitglieder einer Gruppe eine Nachricht schreiben über die Syntax *@groupName oder an eine zufällige Person über ?@groupName. Das Plugin löst dies dann automatisch in korrekte Einzelanfragen auf. Eine bestimmte Person kann man per publicKey@groupName addressieren
Edited by 6roebert