Ğ1Dons : paper wallets de propagande

Merci pour cette explication, qui m’entraine vers un peu plus de compréhension.

Et je comprend maintenant l’intérêt d’avoir un compte portefeuille à part, (à partir duquel générer les dons,) parce que taper sa clé et identifiant secret à l’aveugle, c’est pas si simple :sunglasses:

1 Like

@matograine, @tuxmain : le bug est corrigé avec DuniterPy 0.58.1 et DuniterPy 0.60.1 !

Attention, la version 0.60.1 nécessite python 3.6 minimum.

5 Likes

J’ai imprimé une première page de G1dons…
C’est super !

Je pense qu’en changeant le fond on peut en faire des billets pour un Gmarché, par exemple.

Par contre je n’arrive pas à utiliser le qrcode de la clé publique pour vérifier le montant du billet.
J’ai l’impression que mon appli césium cale sur la capture du QRcode et ne sais pas quoi en faire. :roll_eyes:

Reste à voir si y a moyen de mettre les montant en DU, ou avec des virgules… :upside_down_face:

1 Like

Si le montant est garanti par qqun, avec des mesures de sécurité adaptées. Les Gdons ne sont pas du tout assez sécurisées pour en faire des billets.

Ce serait plus facile et sécurisé d’avoir une monnaie ultra-locale pour le temps du marché, et un comptoir de change.

Oui. Parce que c’est destiné à des gens qui n’ont pas encore Césium. Essaie avec un lecteur de QRcode normal, tu iras sur une page de demo cesium.

Ce n’est pas un billet, ni un chèque au porteur. C’est un “bon pour” des G1, qui n’est pas destiné à circuler ni à servir de paiement.

Il suffit :wink: de modifier le code pour qu’il place la péremption au prochain équinoxe. Je ne compte pas le faire.

Ah zut, c’est pas possible ?:sweat_smile:

Merci de l’info @vit !

L’idée est bien d’en faire un usage juste le temps du marché, en évitant d’avoir un comptoir de change saturé en fin de marché.
Serait imprimer sur un papier de couleur, avec une date de validité au lendemain du marché et en ajoutant un tampon ou signature.
Ne pas encaisser ces coupons revient à faire un don à l’organisateur :wink:

Je crois que çà peu le faire ! Je suis le genre de gars à enfoncer des clous avec une pince monseigneur… :crazy_face:

Bon il faut maintenant que je trouve un lecteur de qrcode simple et pratique.

Ça ressemble quand même à un bon au porteur.
Et çà me parait plus simple d’utilisation et de compréhension que les G1billets…

Alors faudrait pas que sur le coupon on voit un montant de 1.0 G1 :stuck_out_tongue:

J’ai trouvé comment enlever la virgule !
dans generator.py
txt = "\n".join([str(int(self.amount)) + " " + G1_SYMBOL])
J’ai codé en python pour la première fois de ma vie :sunglasses:
J’en ai même profité pour ajouter le qr-code de la clé publique que je peut scanner avec césium :stuck_out_tongue:
Je vais continuer à faire mumuse avec ce truc … :wink:

6 Likes

Mais si c’est possible, en fait! du coup :

            if self.amount == int(self.amount) :
                txt = "\n".join([str(int(self.amount)) + " " + G1_SYMBOL])
            else:
                txt = "\n".join([str(self.amount) + " " + G1_SYMBOL])

OK, version 0.1.0 publiée.

  • utilise duniterpy 0.58.1 pour éviter le souci remonté par @gerard94
  • inclut les propositions de @Maaltir
1 Like

Hello,
Je découvre G1Dons, et je trouve l’idée géniale !
En complément du travail en Python, n’est-il pas possible de faire une interface web en PHP notamment ?
De ce que j’ai cru comprendre G1Dons utilise duniterpy pour faire le lien entre les « pourboires » et le portefeuille g1.
Du coup, est-il possible de créer une interface web en PHP qui fait de simple appels exec au script gdon ?
Si tel est le cas je pense, pouvoir faire quelque chose :stuck_out_tongue:

Merci pour vos retours !

1 Like

Un site en PHP qui appelle gdon en ligne de commande pourrait fonctionner, mais ce ne serait pas très propre. Si tu connais un peu le python, ce serait plus facile d’utiliser un framework web comme Flask par exemple

3 Likes

J’imagine que c’est faisable. @ofontes avait créé une page web en PHP qui utilisait Silkaj pour créer les transactions. Un service entièrement en Python serait sans doute plus propre, mais c’est aussi la joie du libre : prendre les briques logicielles qui nous sont utiles, même si le résultat est un peu bancal.

Attention si vous faites ça, à prévoir comment les usager.e.s vont récupérer les Ğ1dons qu’iels ont émis.

Quant à moi, je n’ai aucune compétence en PHP, je ne vais pas relire ni intégrer vos contributions à Ğ1Dons. Mais je serais heureux, si vous montez votre propre service, d’apporter toute l’aide qui m’est possible.

Le but est-il de faire le travail de G1Don côté serveur avec une interface web ? Ça nécessiterait de faire confiance à l’admin du serveur, qui pourrait récupérer les identifiants du compte source et du compte don.

J’y ai déjà réfléchi, alors je donne le truc :

  1. la personne indique combien de dons elle compte créer.
  2. le serveur génère les dons et le doc de récupération, et un compte intermédiaire.
  3. La personne verse la somme nécessaire sur le compte intermédiaire, qui répartit aux comptes de don
  4. le serveur envoie les feuilles de GDon et les docs de récupération à la persone.

Ainsi, l’admin n’a “que” les clefs privées des comptes de don et du compte intermédiaire. Pas de risque de fuite d’identifiants membres.

En effet c’est moins risqué, mais l’admin malveillant peut quand récupéré les dons a son compte!
G1dons m’a permis de faire quelques cadeaux de noël, j’attends de voir s’ils seront appréciés à leur juste valeur. :wink:

Je joue avec ce truc
Après plusieurs erreurs de saisie d’identifiants mot de passe j’ai remplacer la simple saisie d’identifiant mot de passe par ceci :


    while True:
        self.key = auth_by_scrypt(None)
        answer = input("Voulez-vous continuer avec la clé "+self.key.pubkey+" (O/N) ? (A pour abandonner): ")
        if answer == "a" or answer == "A":
            print ("Au revoir.")
            exit(0)
        elif answer == "o" or answer == "O" :
            break
        else:
            print (" Veuillez refaire la saisie ! ")

Juste pour ne pas avoir à tout recommencer en cas d’erreur :sunglasses:

Maintenant je me pose des questions.
Est-ce que ce petit programme fonctionnera toujours avec l’évolution de l’api de BMA vers GVA ? Parce que j’avoue je suis loin de maîtriser le truc.

Non, la crypto restera la même, on aura toujours les mêmes formats de clés ed25519. En plus, Scrypt génère une clé privée indépendamment de ce qu’on en fait après.

Le passage de BMA à GVA change la manière dont le client communique avec le nœud, donc éventuellement la manière dont le client et le nœud structurent et traitent ces données, mais les données échangées restent essentiellement les mêmes.

1 Like

Be justement, G1dons utilise Silkaj ou des morceaux de Silkaj (je sais pas trop)
Donc il y aura une évolution a faire dans G1dons, il me semble.

Je n’ai pas regardé dans le code de Silkaj mais a priori auth_by_scrypt ne touche pas au réseau…

GDons utilise l’API BMA. Il sera nécessaire de faire la transition vers GVA, comme c’est également prévu pour Silkaj.

GDons utilise du code directement issu de Silkaj pour les transactions de provisionnement, et légèrement modifié pour les transactions de récupération.


Par ailleurs, la création du trousseau n’a effectivement rien à voir avec BMA ou GVA.

3 Likes

Hello.
Je sais pas trop pourquoi mais G1dons ne fonctionne plus chez moi.

Envoyer la transaction ? (O/n) : o
Transferts...

ERREUR : Quelque chose s'est mal passé durant le transfert.
Les fichiers Ğ1Don_2021-05-26T11h21.pdf/.json.signed ont été déplacés dans le dossier /home/martial/Documents/G1dons/.backup/.
Vérifiez que votre clef publique est la bonne.
Vérifiez que le noeud Duniter est disponible.
Vérifiez si le transfert a eu lieu.
ERROR:asyncio:Unclosed client session
client_session: <aiohttp.client.ClientSession object at 0x7fc74062bbe0>

Pourtant le compte de départ est bien approvisionné, et la clé publique est la bonne, et le nœud réponds bien sur césium.
Est-ce que cela aurait a voir avec la nouvelle API ?