Ğ1Dons : paper wallets de propagande

Bonjour,

(deition pour la 0.0.9)

Je suis heureux de vous annoncer une version 0.0.9 de Ğ1Don, générateur de paper wallets destinés à donner quelques Ğ1 hors ligne. J’avais créé le premier prototype en 2018 :sweat_smile:

Les Ğ1Dons ne sont pas des billets. L’émetteur a toujours la possibilité de récupérer la monnaie. Quelques lignes présentent la monnaie libre, mentionnent ĞChange et Cesium.app. Les destinataires sont invités à se rendre sur Ğ1Don.fr pour avoir de plus amples informations.

Le programme Ğ1Don est en ligne de commande. Je n’ai pas réussi à gérer en même temps une interface graphique et de la programmation asynchrone.

Le Git est ici.

Installation

Le paquet est disponible sur PyPi.

Vous pouvez l’installer ainsi (testé sous Debian) :

# installer les dépendances Debian
$ sudo apt-get install python3 python3-pip
# installer Ğ1Don
$ python3 -m pip install --upgrade gdon 
# ajouter .local/bin à votre PATH
$ echo 'export PATH="/home/$USER/.local/bin:$PATH"' >> .bash_aliases
# redémarrer votre terminal ou relancer votre shell

Utilisation

:warning: Précautions : c’est encore une version alpha.

  • Créez les dons depuis un compte portefeuille dont vous sauvegardez les identifiants (sinon, impossible de récupérer la monnaie non dépensée)
  • Ne modifiez pas les fichiers de récupération, jamais. Faites des sauvegardes.
  • Au début, ne créez que des petits dons. 1Ğ1 minimum. Pour des tests, vous pouvez mettre des dates de péremption dans le passé.
  • si vous préférez tester sur un compte ĞTest, donnez-moi sa clef publique pour que je vous envoie de la monnaie.
  • Générer et remplir des Ğ1Dons :

Les Ğ1Dons seront bloqués jusqu’à la péremption (qui peut être dans le passé).
Le compte depuis lequel vous créez les Ğ1Dons vous sera nécessaire pour les récupérer.

$ gdon generer <montant> <nombre_pages> <peremption_date_JJ/MM/AAAA> 
  • Récupérer le contenu de Ğ1Dons (ne fonctionne qu’après la date de péremption):
$ gdon recuperer
  • Récupérer des Ğ1Dons depuis un dossier de sauvegarde:
gdon recuperer<dossier>
  • Récupérer des Ğ1Dons depuis un fichier:
gdon recuperer fichier <fichier>
  • Si la récupération s’est mal passée :
gdon recuperer backup <année>
  • Configurer le noeud Duniter :
gdon noeud <noeud> <port>
  • Configurer le dossier d’enregistrement :
gdon dossier <dossier>
  • regarder la configuration:
gdon config

Les dons générés sont stockés par défaut dans ~/Documents/G1dons/ en pdf.
Les fichiers de récupération sont par défaut dans ~/Documents/G1dons/Récupération. Ne pas le supprimer !

Et ensuite ?

  • Un peu de nettoyage des fichiers de Silkaj.
  • Je n’ai pas réussi à intégrer une interface graphique, n’espérez pas cela avant longtemps, ou alors faites-le ou financez-le.

Si vous appréciez ce projet, faites-le savoir sur le compte :

3YtKyGWriJT6LZwaMVd1SjQP8XeSHUrh2W9JbqsButXs

5 J'aimes

L’installation marche bien chez moi. (ArchLinux, Python3.8)

python setup.py install --user

Par contre j’ai du mal avec l’interface « user-friendly »… (on ne peut pas changer les chemins ?)

1 J'aime

C’est-à-dire ? Tu aimerais qu’on donne un/des authfiles en entrée ? Qu’on passe les dates de péremption dans le passé sans vérif ?

Moi je la trouve pas très user-friendly, cette interface :smiley:

Pour la récupération, si. Pas (encore ?) pour la création.

merci !

Avec Poetry ou Pipenv il est possible de spécifier une URI git avec une référence (branche, tag, hash).
Ça pourrait t’aider à intégrer le paquet silkaj et le développer à un seul endroit, de manière centralisée.

Merci de l’info :+1: (encore faut-il que je sache comment utiliser une URI :rofl:)

Là je voulais avoir les mains libres. Je ne sais pas comment intégrer du multisig dans Silkaj, niveau interface, et ça m’aurait nettement bridé de travailler en même temps sur Silkaj et sur Ğ1Dons. J’ai deux fonctions différentes pour l’envoi « normal » et l’envoi multisig.

Je me « fais la main » sur des petits projets comme ça, sans pression :wink:

1 J'aime

Par « user-friendly », je voulais dire que tout a une apparence simple pour être intuitif, mais c’est peut-être un peu trop simplifié :

  • Qu’est-ce que la péremption ?
  • Quels sont les types de fichiers acceptés ? (
  • Peut-on choisir précisément le nombre de dons (pas que des multiples de 6) ? (en mettant une page je me suis fait avoir il a envoyé 6 transactions)
  • Ça serait bien d’avoir une confirmation avant d’envoyer les txs. (avec les clés publiques et le montant total par exemple)

Là je ne dis que du mal mais en fait j’aime bien. :slight_smile:

1 J'aime

La version 0.0.9 de Ğ1Dons est publiée !

Installation (debian):

en ligne de commande :

$ sudo apt-get install python3 python3-pip
$ python3 -m pip install --upgrade gdon

# ajouter .local/bin à votre PATH
$ echo 'export PATH="/home/$USER/.local/bin:$PATH"' >> .bash_aliases
# ouvrir un nouveau terminal ou relancer votre shell

Lancement

en ligne de commande :

$ gdon donne les commandes possibles

$ gdon config permet de connaître la configuration du logiciel

$ gdon generer <montant> <pages> <date_de_peremption> permet de générer X pages. Il y a 6 dons par page.

$ gdon recuperer permet de récupérer les pourboires périmés. Si les transactions ne passent pas, on peut faire : gdon recuperer backup <année>

Améliorations :

  • configuration :

    • consulter la configuration
    • configurer le dossier d’enregistrement des portefeuilles
  • génération :

    • confirmation de la transaction avant l’envoi de la monnaie
  • portefeuilles papier :

    • tracé d’un trait de découpe
    • petites reformulations et mise en forme
  • meilleure précision de l’aide

Pour contribuer au code , le dépôt est ici.


Pourquoi un saut de 0.0.4 à 0.0.9 ?
Parce que j’ai cru cinq fois que le paquet était prêt :rofl:


Si vous appréciez ce projet, les dons sont bienvenus sur le compte :

3YtKyGWriJT6LZwaMVd1SjQP8XeSHUrh2W9JbqsButXs

Librement,
Matograine

3 J'aimes

Cool !

Par contre, il manque une option pour récupérer des dons même si la date n’est pas passée…

C’est une option que je prévois de ne pas implémenter.

Ces bouts de papiers ne sont que des dons, mais j’imagine très bien quelqu’un qui voudrait s’en servir comme « billets » et les donner en paiement à des personnes crédules, pour retirer sa monnaie par la suite. Le fait que ceci ne soit pas autorisé, en l’état, par le logiciel, évitera ce genre de comportement frauduleux.

(mais qui sait faire un peu de python peut tout à fait coder cette option pour son propre usage)

Et si des gens fraudent quand même… Ca nous ramènera des contributeurs Python :rofl:


edit - Je pourrais ajouter des conditions de dépense. Mais les récipiendaires du don verraient une ligne verrouillée (icône cadenas) dans Cesium, au lieu d’une ligne normale… Niveau UX, c’est pas top.

Ça sert par exemple pour récupérer plus rapidement des dons générés par erreur ou des tests.

Super ! Est-ce que tu pourrais ajouter un petit guide pour les gens comme moi qui ne connaissent pas très bien pip (ni python d’ailleurs), qui indiquerait la marche à suivre pour l’installation et le lancement ? Merci.

1 J'aime

La modif du post initial convient-elle ? Sinon, qu’est-ce qui ne marche pas ?


@tuxmain

tests : on peut donner une date de péremption dans le passé :wink:

erreur : je considère que des dons récupérés par erreur sont plus dommageables que des dons générés par erreur. Et pour avoir déjà vendu et distribué des Ğ1dons, je sais qu’on ne suit pas forcément bien quel lot on a déjà entamé, et lequel on pourrait récupérer parce qu’aucun n’a été distribué.

En revanche, je pourrais demander confirmation pour les dates situées loin dans le futur (1 an et +). Générer 60 dons récupérables dans 20 ans par erreur, c’est dommage et c’est long à récupérer manuellement.

Ah, désolé, j’étais allé directement sur gitlab sans voir ce post. Ce serait peut-être bien de rajouter ces informations sur gitlab aussi.

Sinon, j’ai pu installer gdon et lancer la commande, mais je tombe sur l’erreur suivante :

Traceback (most recent call last):
  File "/home/gerard/.local/bin/gdon", line 4, in <module>
    from gdon.common import Creating  # Generator
  File "/home/gerard/.local/lib/python3.6/site-packages/gdon/common.py", line 8, in <module>
    from gdon.transfer import Transfer
  File "/home/gerard/.local/lib/python3.6/site-packages/gdon/transfer.py", line 8, in <module>
    from gdon.silkaj.money import get_amount_from_pubkey
  File "/home/gerard/.local/lib/python3.6/site-packages/gdon/silkaj/money.py", line 20, in <module>
    from gdon.silkaj.network_tools import ClientInstance, HeadBlock
  File "/home/gerard/.local/lib/python3.6/site-packages/gdon/silkaj/network_tools.py", line 25, in <module>
    from duniterpy.api.client import Client
  File "/home/gerard/.local/lib/python3.6/site-packages/duniterpy/api/client.py", line 10, in <module>
    from aiohttp import ClientResponse, ClientSession, ClientWebSocketResponse
  File "/home/gerard/.local/lib/python3.6/site-packages/aiohttp/__init__.py", line 6, in <module>
    from .client import BaseConnector as BaseConnector
  File "/home/gerard/.local/lib/python3.6/site-packages/aiohttp/client.py", line 30, in <module>
    from yarl import URL
  File "/home/gerard/.local/lib/python3.6/site-packages/yarl/__init__.py", line 1, in <module>
    from ._url import URL, cache_clear, cache_configure, cache_info
  File "/home/gerard/.local/lib/python3.6/site-packages/yarl/_url.py", line 56, in <module>
    @rewrite_module
  File "/home/gerard/.local/lib/python3.6/site-packages/yarl/_url.py", line 132, in URL
    _QUERY_PART_QUOTER = _Quoter(safe="?/:@", qs=True, requote=False)
  File "yarl/_quoting.pyx", line 192, in yarl._quoting._Quoter.__init__
TypeError: __init__() got an unexpected keyword argument 'requote'

Bizarre que yarl n’ait pas été installé par l’installation de aiohttp via duniterpy==0.56.0. Faut regarder ce point. Manque peut-être un .0 à la définition de la version de DuniterPy.

J’ai installé gdon sur une nouvelle installation d’Antix (debian), ça m’a permis de trouver des dépendances qui manquent (certaines sont peut-être inutiles, je vais vérifier) :

python3.X-dev #remplacer 3.X par ta version de Python3
python3-wheel
libffi-dev #pas sûr que ce soit nécessaire
build-essential #pas sûr non plus

Puis installer gdon via Pip

Mais… Je ne reproduis pas. yarl s’est bien installé, et j’ai pu créer des Ğ1dons. Sur quelle plateforme es-tu ?

1 J'aime

J’ai un Ubuntu 18.04.

hello,
est-ce que ça s’installe uniquement par lignes de commandes ou y-a-t-il une version « cliquer sur le bouton » qui procède à l’installation ?
si cette version [Télécharger] exister, je veux bien le lien ?!..

Oui. Et sur des systèmes compatibles UNIX (GNU/Linux, BSD, etc.), qui plus est.

OK… pauvre de moi avec mon mac :crazy_face:

macOS est basé sur BSD.

1 J'aime