# Ğ1Dons : paper wallets de propagande

**URL:** https://forum.duniter.org/t/g1dons-paper-wallets-de-propagande/7181
**Category:** Applications
**Tags:** python, ğ1don, ğ1pourboire, silkaj
**Created:** [24 April 2020 15:23 UTC](https://forum.duniter.org/t/g1dons-paper-wallets-de-propagande/7181 "2020-04-24T15:23:14Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![matograine](https://forum.duniter.org/letter_avatar/matograine/32/5_5575768a8748004e209b776fc1b2916d.png) [@matograine](https://forum.duniter.org/u/matograine)
#### Post date: [24 April 2020 15:23 UTC](https://forum.duniter.org/t/g1dons-paper-wallets-de-propagande/7181/1 "2020-04-24T15:23:14Z")

</div>

Bonjour,

(deition pour la 0.0.9)

Je suis heureux de vous annoncer une version [0.0.9](https://git.duniter.org/matograine/g1pourboire/-/tags/0.0.9) de Ğ1Don, générateur de _paper wallets_ destinés à donner quelques Ğ1 hors ligne. J’avais créé le [premier prototype](https://forum.monnaie-libre.fr/t/g1-pourboire/4098/) en 2018 😅

![](https://forum.monnaie-libre.fr/uploads/default/original/2X/e/e76fca2d6fc6793a6ae89cd179718dcb90c9a341.jpeg)

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](http://Cesium.app). Les destinataires sont invités à se rendre sur [Ğ1Don.fr](http://g1don.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](https://git.duniter.org/matograine/g1pourboire).

### Installation

Le paquet est disponible sur PyPi.

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

```bash
# 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

> ⚠ 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.

```auto
$ 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):

```auto
$ gdon recuperer

```

- Récupérer des Ğ1Dons depuis un dossier de sauvegarde:

```auto
gdon recuperer<dossier>

```

- Récupérer des Ğ1Dons depuis un fichier:

```auto
gdon recuperer fichier <fichier>

```

- Si la récupération s’est mal passée :

```auto
gdon recuperer backup <année>

```

- Configurer le noeud Duniter :

```auto
gdon noeud <noeud> <port>

```

- Configurer le dossier d’enregistrement :

```auto
gdon dossier <dossier>

```

- regarder la configuration:

```auto
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

---

<div class="post-metadata">

### Author: ![tuxmain](https://forum.duniter.org/user_avatar/forum.duniter.org/tuxmain/32/6423_2.png) [@tuxmain](https://forum.duniter.org/u/tuxmain)
#### Post date: [24 April 2020 17:00 UTC](https://forum.duniter.org/t/g1dons-paper-wallets-de-propagande/7181/2 "2020-04-24T17:00:30Z")

</div>

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

```
python setup.py install --user

```

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

---

<div class="post-metadata">

### Author: ![matograine](https://forum.duniter.org/letter_avatar/matograine/32/5_5575768a8748004e209b776fc1b2916d.png) [@matograine](https://forum.duniter.org/u/matograine)
#### Post date: [24 April 2020 17:17 UTC](https://forum.duniter.org/t/g1dons-paper-wallets-de-propagande/7181/3 "2020-04-24T17:17:41Z")

</div>

> [@tuxmain](#):
>
> Par contre j’ai du mal avec l’interface « user-friendly »…

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 😃

> [@tuxmain](#):
>
> on ne peut pas changer les chemins ?

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

merci !

---

<div class="post-metadata">

### Author: ![Moul](https://forum.duniter.org/user_avatar/forum.duniter.org/moul/32/9145_2.png) [@Moul](https://forum.duniter.org/u/Moul)
#### Post date: [24 April 2020 17:34 UTC](https://forum.duniter.org/t/g1dons-paper-wallets-de-propagande/7181/4 "2020-04-24T17:34:03Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![matograine](https://forum.duniter.org/letter_avatar/matograine/32/5_5575768a8748004e209b776fc1b2916d.png) [@matograine](https://forum.duniter.org/u/matograine)
#### Post date: [24 April 2020 17:39 UTC](https://forum.duniter.org/t/g1dons-paper-wallets-de-propagande/7181/5 "2020-04-24T17:39:21Z")

</div>

> [@Moul](#):
>
> Avec Poetry ou Pipenv il est possible de spécifier une URI

Merci de l’info 👍 (encore faut-il que je sache comment utiliser une URI 🤣)

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 😉

---

<div class="post-metadata">

### Author: ![tuxmain](https://forum.duniter.org/user_avatar/forum.duniter.org/tuxmain/32/6423_2.png) [@tuxmain](https://forum.duniter.org/u/tuxmain)
#### Post date: [24 April 2020 17:47 UTC](https://forum.duniter.org/t/g1dons-paper-wallets-de-propagande/7181/6 "2020-04-24T17:47:57Z")

</div>

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

- 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. 🙂

---

<div class="post-metadata">

### Author: ![matograine](https://forum.duniter.org/letter_avatar/matograine/32/5_5575768a8748004e209b776fc1b2916d.png) [@matograine](https://forum.duniter.org/u/matograine)
#### Post date: [16 September 2020 12:57 UTC](https://forum.duniter.org/t/g1dons-paper-wallets-de-propagande/7181/7 "2020-09-16T12:57:14Z")

</div>

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

## Installation (debian):

en ligne de commande :

```auto
$ 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 :

- génération :

- portefeuilles papier :

- meilleure précision de l’aide

Pour contribuer au code , le dépôt est [ici](https://git.duniter.org/matograine/g1pourboire).

* * *

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

* * *

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

> 3YtKyGWriJT6LZwaMVd1SjQP8XeSHUrh2W9JbqsButXs

Librement,  
Matograine

---

<div class="post-metadata">

### Author: ![tuxmain](https://forum.duniter.org/user_avatar/forum.duniter.org/tuxmain/32/6423_2.png) [@tuxmain](https://forum.duniter.org/u/tuxmain)
#### Post date: [16 September 2020 13:29 UTC](https://forum.duniter.org/t/g1dons-paper-wallets-de-propagande/7181/8 "2020-09-16T13:29:50Z")

</div>

Cool !

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

---

<div class="post-metadata">

### Author: ![matograine](https://forum.duniter.org/letter_avatar/matograine/32/5_5575768a8748004e209b776fc1b2916d.png) [@matograine](https://forum.duniter.org/u/matograine)
#### Post date: [16 September 2020 13:38 UTC](https://forum.duniter.org/t/g1dons-paper-wallets-de-propagande/7181/9 "2020-09-16T13:38:24Z")

</div>

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 «&nbsp;billets&nbsp;» 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 🤣

* * *

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.

---

<div class="post-metadata">

### Author: ![tuxmain](https://forum.duniter.org/user_avatar/forum.duniter.org/tuxmain/32/6423_2.png) [@tuxmain](https://forum.duniter.org/u/tuxmain)
#### Post date: [16 September 2020 13:40 UTC](https://forum.duniter.org/t/g1dons-paper-wallets-de-propagande/7181/10 "2020-09-16T13:40:42Z")

</div>

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

---

<div class="post-metadata">

### Author: ![gerard94](https://forum.duniter.org/user_avatar/forum.duniter.org/gerard94/32/58_2.png) [@gerard94](https://forum.duniter.org/u/gerard94)
#### Post date: [16 September 2020 13:55 UTC](https://forum.duniter.org/t/g1dons-paper-wallets-de-propagande/7181/11 "2020-09-16T13:55:24Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![matograine](https://forum.duniter.org/letter_avatar/matograine/32/5_5575768a8748004e209b776fc1b2916d.png) [@matograine](https://forum.duniter.org/u/matograine)
#### Post date: [16 September 2020 14:02 UTC](https://forum.duniter.org/t/g1dons-paper-wallets-de-propagande/7181/12 "2020-09-16T14:02:47Z")

</div>

La modif du [post initial](https://forum.duniter.org/t/g1dons-paper-wallets-de-propagande/7181/7) convient-elle ? Sinon, qu’est-ce qui ne marche pas ?

* * *

@tuxmain

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

**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.

---

<div class="post-metadata">

### Author: ![gerard94](https://forum.duniter.org/user_avatar/forum.duniter.org/gerard94/32/58_2.png) [@gerard94](https://forum.duniter.org/u/gerard94)
#### Post date: [16 September 2020 15:29 UTC](https://forum.duniter.org/t/g1dons-paper-wallets-de-propagande/7181/13 "2020-09-16T15:29:11Z")

</div>

> [@matograine](#):
>
> La modif du [post initial](https://forum.duniter.org/t/g1dons-paper-wallets-de-propagande/7181/7) convient-elle ? Sinon, qu’est-ce qui ne marche pas ?

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'

```

---

<div class="post-metadata">

### Author: ![Moul](https://forum.duniter.org/user_avatar/forum.duniter.org/moul/32/9145_2.png) [@Moul](https://forum.duniter.org/u/Moul)
#### Post date: [16 September 2020 15:35 UTC](https://forum.duniter.org/t/g1dons-paper-wallets-de-propagande/7181/14 "2020-09-16T15:35:56Z")

</div>

> <https://stackoverflow.com/questions/63516924/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`](https://git.duniter.org/matograine/g1pourboire/-/blob/53c12c7983330b0668c989990d817bb3575ab7ea/setup.py#L29). Faut regarder ce point. Manque peut-être un `.0` à la définition de la version de DuniterPy.

---

<div class="post-metadata">

### Author: ![matograine](https://forum.duniter.org/letter_avatar/matograine/32/5_5575768a8748004e209b776fc1b2916d.png) [@matograine](https://forum.duniter.org/u/matograine)
#### Post date: [17 September 2020 20:10 UTC](https://forum.duniter.org/t/g1dons-paper-wallets-de-propagande/7181/15 "2020-09-17T20:10:34Z")

</div>

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) :

```bash
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 ?

---

<div class="post-metadata">

### Author: ![gerard94](https://forum.duniter.org/user_avatar/forum.duniter.org/gerard94/32/58_2.png) [@gerard94](https://forum.duniter.org/u/gerard94)
#### Post date: [17 September 2020 20:54 UTC](https://forum.duniter.org/t/g1dons-paper-wallets-de-propagande/7181/16 "2020-09-17T20:54:00Z")

</div>

> [@matograine](#):
>
> Sur quelle plateforme es-tu ?

J’ai un Ubuntu 18.04.

---

<div class="post-metadata">

### Author: ![HubuH](https://forum.duniter.org/letter_avatar/hubuh/32/5_5575768a8748004e209b776fc1b2916d.png) [@HubuH](https://forum.duniter.org/u/HubuH)
#### Post date: [22 September 2020 09:51 UTC](https://forum.duniter.org/t/g1dons-paper-wallets-de-propagande/7181/17 "2020-09-22T09:51:41Z")

</div>

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

---

<div class="post-metadata">

### Author: ![matograine](https://forum.duniter.org/letter_avatar/matograine/32/5_5575768a8748004e209b776fc1b2916d.png) [@matograine](https://forum.duniter.org/u/matograine)
#### Post date: [22 September 2020 10:46 UTC](https://forum.duniter.org/t/g1dons-paper-wallets-de-propagande/7181/18 "2020-09-22T10:46:59Z")

</div>

> [@HubuH](#):
>
> est-ce que ça s’installe uniquement par lignes de commandes

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

---

<div class="post-metadata">

### Author: ![HubuH](https://forum.duniter.org/letter_avatar/hubuh/32/5_5575768a8748004e209b776fc1b2916d.png) [@HubuH](https://forum.duniter.org/u/HubuH)
#### Post date: [22 September 2020 11:32 UTC](https://forum.duniter.org/t/g1dons-paper-wallets-de-propagande/7181/19 "2020-09-22T11:32:47Z")

</div>

OK… pauvre de moi avec mon mac 🤪

---

<div class="post-metadata">

### Author: ![Moul](https://forum.duniter.org/user_avatar/forum.duniter.org/moul/32/9145_2.png) [@Moul](https://forum.duniter.org/u/Moul)
#### Post date: [22 September 2020 11:45 UTC](https://forum.duniter.org/t/g1dons-paper-wallets-de-propagande/7181/20 "2020-09-22T11:45:49Z")

</div>

macOS est basé sur BSD.

[Next page](https://forum.duniter.org/t/g1dons-paper-wallets-de-propagande/7181.md?page=2)
