[Ḡ1sms] Client SMS porte-monnaies libre (Ḡ1, DU, LOVE)

ḡ1sms

#1

Présenté aux RML12, j’ouvre ce fil pour établir une réflexion technique autour du développement du service Ḡ1sms.

Code

Installé sur RaspberryPi couplé à un dongle 3G et une carte SIM.
Le code est écrit en bash shell, les scripts (./shell/*.sh) correspondent aux commandes reconnues par le serveur sms sont exécutés au travers de “sms_received.sh”. Les interactions avec la blockchain sont réalisés au travers de Silkaj (actuellement un fork 0.5.0 qui simplifie les data échangées)
>>> Code sur git.duniter.org

Evolutions

Quelques TODO sont notés dans le Readme du projet.
Ce nouveau réseau de communication permet d’imaginer de nombreux services,
Par exemple permettre des alertes sms pour gchange, programmer des virements automatiques, imprimer ses Ḡ1billets … et bien plus…

Discutons de la suite des évolutions et des différentes façons de les réaliser techniquement.


#2

il faudra corrigé le numéro de tel sur la vidéo, lorsque j’ai essayé en début de semaine je suis tombé sur quelqu’un un peu surpris.

ton truc marche et c’est génial


#3

Quelle vidéo, quel numéro? La SIM redirige les appels vers un serveur vocal de chez linkeo (qui ont donné la puce)

Sinon, c’est le 06 66 80 57 20, pour activer un porte-monnaie, envoyer:

N uid_duniter

Tu trouveras une transaction de ton porte-monnaie vers ton compte membre pour le recharger depuis Cesium (ou autre si tu utilises ton identifiant, mot de passe reçu)
Pour virer des LOVE à ton ami(e), tu envois:

P 06_de_ton_ami(e) NNN

NB: NNN correspond au montant de LOVE que tu veux lui envoyer (1 DU = 100 LOVE)

Si tu veux envoyer des G1, change l’unité de ton porte-monnaie en envoyant

U G1

C (pour le solde du porte-monnaie)
A (pour l’aide)
D (pour recevoir les identifiants)


#4

https://youtu.be/2Me1czWzXIk?t=561


#5

Effectivement, il faut remplacer 67 par 57:

06 66 80 57 20


#6

J’ai reçus raspi et ce qu’il faut pour le faire tourné, j’attends plus que mon dongle SIM et ma carte SIM qui devraient arriver la semaine pro pour lancer mon node g1sms en test :slight_smile:

@Frederic_Renault est-ce que le dépot git est à jour ?
Ya moyen de tester ça sans avoir de dongle branché ? Genre un mode debug ou un dry_run ?

Et est-ce qu’il y a une roadmap quelque part pour g1sms ?


#7

Je suis en train de modifier le code pour ajouter la commande de création de billets :wink:
Donc une nouvelle mise à jour du code git bientot… Appelle moi quand tu veux modifier le code pour qu’on synchronise nos sources

Sans dongle SMS, le code va fonctionner sans envoyer les SMS. Pour tester, utilise sms_test.sh (qui permet de désactiver silkaj en créant un lien symbolique vers fake_silkaj.sh) et dé-commente “function gammu-smsd-inject” dans functions.sh pour voir les sms qui auraient été envoyés dans le log (/tmp/g1sms.log)

Il n’y a pas encore de roadmap, mais des idées dans le README.md


#8

Des billets ? De quel genre ?


#9

Le prototype ressemble à ça (avec une case à gratter qui cache le une partie du code pour encaissement et destruction du billet)

Celui-ci est un faux :wink:


#10

Je vais coupler une petite imprimante https://www.amazon.fr/gp/product/B07FLPCBQG/ au serveur SMS pour qu’il puisse imprimer des billets :wink:
Par contre, il faudra que je sache récupérer l’adresse du membre qui fait la demande de création de billets pour lui envoyer… Du coté de duniterpy peut-être…


#11

J’avoue ne pas comprendre très bien…
Est-ce que billet possède de la monnaie bloqué sur un compte différent de celui qui le demande ?
Quel moyen a t’on ensuite pour vérifier que le billet est unique ?
Par exemple le hash de la transaction qui a créé le billet.


#12

C’est encore au stade expérimental… mais en pratique, c’est réservé à un portefeuille appartenant à un membre.

  1. depuis son portefeuille G1sms on demande la création de billets (montant + nombre).
    BILL 50 3” : demande de créer 3 billets de 50 UNITES
  2. Si disponible, la somme en G1 correspondante est virée dans des portefeuilles “billets” créés et contrôlés par le serveur G1sms.
    ID = diceware(4) = CODE
    PWD = diceware(3) + diceware(3) = SEC1 + SEC2
  3. Les billets sont imprimés avec CODE en clair et SEC1 sous une zone à gratter (valable pour les 6 prochains mois) par le fournisseur de service G1sms et envoyés ou donnés au membre qui a demandé la création des billets (garantissant qu’un seul exemplaire existe)
  4. Le membre échange ses billets. On peut vérifier le montant du billets par la commande “CHK CODE” qui retourne sa valeur.
  5. Avant la date de péremption, celui qui détient le billet l’encaisse (et le détruit par grattage) avec la commande “CHK CODE SEC1” qui par ajout de SEC2 vire son montant sur le portefeuille qui a envoyé la commande.

PS: un cron détruit automatiquement les billets à leur date d’échéance (perte, oubli) et récupère leurs sommes sur le compte du collectif qui gère le service G1sms.

Je compte en imprimer pour le ḠMarché de Noel à Toulouse et permettre à ceux n’ayant pas de Ḡ1 d’en acquérir… Certains billets auront une somme plus importante que celle indiquée transformant les billets en tickets de Tombola :wink:

On verra suite à l’expérience les avantages et inconvénients que cela apporte.

I :heart: :free: :money_with_wings:


#13

Comme vue au téléphone, je trouve que c’est une super idée de cumuler prestataire SMS et prestataire billet, mais pour moi il faut revoir cette histoire de récupérer la monnaie à l’expiration du billet si il n’a pas été dépensé, jpense que c’est pas la bonne solution.

Ca fonctionnera, mais on perd l’utilité du billet si les gens ne peuvent même plus retirer leurs sous après expiration du billet. On verra

Hâte de voir votre tombola ^^