This is an old revision of the document!


Alle Infos in diesem Bereich sind hoffnungslos veraltet! Doku des aktuelle Standes folgt!

uPay: Bargeldloses Bezahlen im Club

Das System basiert auf einzelnen Tokens, die einen bestimmten Wert haben. Ein Geraet (fnordload) gibt gegen Bargeld solche Tokens auf USB-Sticks aus.

Ein Token besteht aus einer Zufallszahl, dem Wert und dem Erzeugungsdatum. Ein Hash jedes Tokens steht in einer zentralen Datenbank. Ein guelltiges Token stellt einen Schuldschein gegenueber dem fnordload dar.

Werden die Tokens an den dafuer vorgesehenen Stellen (Matemat, RepRap, …) verwendet werden sie in der (zentralen) Datenbank als benutzt markiert und ein neues Token generiert. Dieses Token wird vom Empfaenger (Matemat) gespeichert und einbehalten.

  • System befindet sich im Testbetrieb
    • Tokens koennen vom fnordload bezogen werden (vorher an schneider wenden)
    • Bezahlung nur mit USB-Stick
    • Getraenketaste so lange druecken bis die Motoren im Matematen anlaufen!
      • wird mittelfristig durch Zusatzhardware fuer Matematen behoben

In einer Datenbank werden die Hashes der ausgegeben Tokens (Form: 256 Zeichen Zufallsdaten + Timesteamp der Ausgabe) gespeichert und bei Verwendung als benutzt markiert. Die Datenbank enthaelt so keine Informationen, die zu einen Diebstahl von Tokens ausreichen und oeffentlich einsehbar gehalten werden.

Die Tokens werden per USB-Stick vom Matesuechtigen an das System herangetragen. Das System sucht dann per udev-rule nach einer “purse” Datei auf den Partitionen. Die erste gefundene Datei wird verwendet und die darin enthaltenen Tokens an einen auf dem System laufenden Daemon (checkout) uebermittelt. Dieser hasht die Tokens und vergleicht sie mit der in der Postgresql Datenbank gespeicherten Hashs. Waehlt der Suechtige ein Getraenk werden entsprechend viele Tokens in der Datenbank invalidiert.

Ausserdem befindet sich auf <fill me in> ein HTTP-Server, der eine API bereitstellt. Siehe den Punkt API weiter unten.

  • upay/start.1417031858.txt.gz
  • Last modified: 2021/04/18 12:33
  • (external edit)