# Silkaj : Installation, virements automatiques et multi-destinataires

**URL:** https://forum.duniter.org/t/silkaj-installation-virements-automatiques-et-multi-destinataires/4836
**Category:** Silkaj
**Created:** [17 June 2018 13:25 UTC](https://forum.duniter.org/t/silkaj-installation-virements-automatiques-et-multi-destinataires/4836 "2018-06-17T13:25:13Z")
**Posts on this page:** 14
**Page:** 3

<div class="post-metadata">

### Author: ![vincentux](https://forum.duniter.org/user_avatar/forum.duniter.org/vincentux/32/172_2.png) [@vincentux](https://forum.duniter.org/u/vincentux)
#### Post date: [24 June 2018 12:25 UTC](https://forum.duniter.org/t/silkaj-installation-virements-automatiques-et-multi-destinataires/4836/42 "2018-06-24T12:25:51Z")

</div>

> [@Moul](#):
>
> Sinon, tu peux vérifier la version de python en comparaison avec celle du système.

```
python -V
Python 2.7.15rc1

```

sinon

```
python3 -V
Python 3.6.5

```

---

<div class="post-metadata">

### Author: ![Cebash](https://forum.duniter.org/user_avatar/forum.duniter.org/cebash/32/4021_2.png) [@Cebash](https://forum.duniter.org/u/Cebash)
#### Post date: [24 June 2018 21:25 UTC](https://forum.duniter.org/t/silkaj-installation-virements-automatiques-et-multi-destinataires/4836/43 "2018-06-24T21:25:02Z")

</div>

Salut,

C’est bizarre, je crois que pip installe la commande là:

```auto
$ which silkaj
/home/seba/.local/bin/silkaj

```

tu peux vérifier qu’elle est bien là ?

si c’est le cas, regarde si ce chemin est dans le path (liste des chemins où Linux va chercher les exécutables :

```auto
$ echo $PATH
/home/seba/.local/bin:/home/seba/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:...

```

Si le chemin de silkaj n’est pas là, dans ton fichier .bash\_profile, ajoute:

```auto
export PATH=$HOME/.local/bin:$PATH

```

Et redémarre ton terminal ou tapes:

```auto
. ~/.bash_profile

```

---

<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: [25 June 2018 12:52 UTC](https://forum.duniter.org/t/silkaj-installation-virements-automatiques-et-multi-destinataires/4836/44 "2018-06-25T12:52:00Z")

</div>

> [@cgeek](#):
>
> Une [Merge Request](https://git.duniter.org/clients/python/silkaj/merge_requests/78) a été soumise afin d’intégrer ce développement dans la release officielle.

[Merged](https://git.duniter.org/clients/python/silkaj/merge_requests/78)!

---

<div class="post-metadata">

### Author: ![vincentux](https://forum.duniter.org/user_avatar/forum.duniter.org/vincentux/32/172_2.png) [@vincentux](https://forum.duniter.org/u/vincentux)
#### Post date: [25 June 2018 16:38 UTC](https://forum.duniter.org/t/silkaj-installation-virements-automatiques-et-multi-destinataires/4836/45 "2018-06-25T16:38:26Z")

</div>

> [@Moul](#):
>
> Essaye d’installer silkaj avec :
> 
> ```auto
> pip3 install silkaj --user
> 
> ```

Bon j’ai voulu re installer Silkaj mais j’ai du péter quelque chose :

```
 pip3 install silkaj --user
Traceback (most recent call last):
  File "/usr/bin/pip3", line 9, in <module>
    from pip import main
ImportError: cannot import name 'main'

```

j’avais pourtant supprimer python3-pip et reinstaller

`sudo apt-get remove --auto-remove python3-pip`

#noob 😕

[EDIT] toujours un souci avec pip3… si ça parle a quelqu’un 🤔

```
cat `which pip3`
#!/usr/bin/python3
# GENERATED BY DEBIAN

import sys

# Run the main entry point, similarly to how setuptools does it, but because
# we didn't install the actual entry point from setup.py, don't use the
# pkg_resources API.
from pip import main
if __name__ == ' __main__':
    sys.exit(main())

```

Ah peut-être une réponse ici ?

> <https://stackoverflow.com/questions/49836676/error-after-upgrading-pip-cannot-import-name-main>

---

<div class="post-metadata">

### Author: ![vincentux](https://forum.duniter.org/user_avatar/forum.duniter.org/vincentux/32/172_2.png) [@vincentux](https://forum.duniter.org/u/vincentux)
#### Post date: [27 June 2018 19:32 UTC](https://forum.duniter.org/t/silkaj-installation-virements-automatiques-et-multi-destinataires/4836/46 "2018-06-27T19:32:03Z")

</div>

> [@Cebash](#):
>
> Si le chemin de silkaj n’est pas là, dans ton fichier .bash\_profile, ajoute:
> 
> ```auto
> export PATH=$HOME/.local/bin:$PATH
> 
> ```

bon j’ai réussi, je suis en v0.5.0 et effectivement j’ai du ajouter cette ligne 😉 Merci

---

<div class="post-metadata">

### Author: ![1000i100](https://forum.duniter.org/user_avatar/forum.duniter.org/1000i100/32/825_2.png) [@1000i100](https://forum.duniter.org/u/1000i100)
#### Post date: [30 June 2018 13:57 UTC](https://forum.duniter.org/t/silkaj-installation-virements-automatiques-et-multi-destinataires/4836/47 "2018-06-30T13:57:46Z")

</div>

que diriez-vous de spliter le topic en 2 :

- Réaliser des virements automatiques et multi-destinataires avec Silkaj
- Faciliter l’installation Silkaj

---

<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: [30 June 2018 20:00 UTC](https://forum.duniter.org/t/silkaj-installation-virements-automatiques-et-multi-destinataires/4836/48 "2018-06-30T20:00:55Z")

</div>

Je t’en pris, je n’ai pas réussit à le faire.

---

<div class="post-metadata">

### Author: ![1000i100](https://forum.duniter.org/user_avatar/forum.duniter.org/1000i100/32/825_2.png) [@1000i100](https://forum.duniter.org/u/1000i100)
#### Post date: [30 June 2018 20:21 UTC](https://forum.duniter.org/t/silkaj-installation-virements-automatiques-et-multi-destinataires/4836/49 "2018-06-30T20:21:41Z")

</div>

Est-il possible de spliter un commentaire en 2 pour répartir les propos dans les topic approprié ?

En attendant, j’ai renommé le topic pour faire état de son contenu.

---

<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: [1 July 2018 08:19 UTC](https://forum.duniter.org/t/silkaj-installation-virements-automatiques-et-multi-destinataires/4836/50 "2018-07-01T08:19:33Z")

</div>

> [@1000i100](#):
>
> Est-il possible de spliter un commentaire en 2 pour répartir les propos dans les topic approprié ?

Il faut le faire manuellement.

---

<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: [5 August 2018 20:28 UTC](https://forum.duniter.org/t/silkaj-installation-virements-automatiques-et-multi-destinataires/4836/51 "2018-08-05T20:28:25Z")

</div>

2 messages ont été déplacés vers un nouveau sujet : [Rémunération des contributeurs au projet Duniter](https://forum.duniter.org/t/remuneration-des-contributeurs-au-projet-duniter/4995)

---

<div class="post-metadata">

### Author: ![Inso](https://forum.duniter.org/user_avatar/forum.duniter.org/inso/32/1229_2.png) [@Inso](https://forum.duniter.org/u/Inso)
#### Post date: [25 September 2018 19:47 UTC](https://forum.duniter.org/t/silkaj-installation-virements-automatiques-et-multi-destinataires/4836/52 "2018-09-25T19:47:42Z")

</div>

On dirait que ça ne fonctionne plus sur la branche master. silkaj essaie de parser la public key… Voilà ce que j’obtiens (en loggant la public key que silkaj échoue à parser) :

```auto
$ ./silkaj tx --auth-file --file authfile.key --amount 200 --output `cat destinataires.txt | tr '\n' ':' | sed -e 's/:*$//'`
Requested default node: <g1.duniter.org:443>
Error: the format of the public key is invalid : 2ny7YAdmzReQxAayyJZsyVYwYhVyax2thKcGknmQy5nQ:FEkbc4BfJukSWnCU6Hed6dgwwTuPFTVdgz5LpL4iHr9J:D9D2zaJoWYWveii1JRYLVK3J4Z7ZH3QczoKrnQeiM6mx:38MEAZN68Pz1DTvT3tqgxx4yQP6snJCQhPqEFxbDk4aE:5cnvo5bmR8QbtyNVnkDXWq6n5My6oNLd1o6auJApGCsv:GfKERHnJTYzKhKUma5h1uWhetbA8yHKymhVH2raf2aCP:7F6oyFQywURCACWZZGtG97Girh9EL1kg2WBwftEZxDoJ:HQKzoCALqqkAZhZHXGMvDjvGuceKdGjtb8MpMYJnoxvJ:CRBxCJrTA6tmHsgt9cQh9SHcCc8w8q95YTp38CPHx2Uk:2sZF6j2PkxBDNAqUde7Dgo5x3crkerZpQ4rBqqJGn8QT:4FgeWzpWDQ2Vp38wJa2PfShLLKXyFGRLwAHA44koEhQj:55oM6F9ZE2MGi642GGjhCzHhdDdWwU6KchTjPzW7g3bp:BH8ZqCsp4sbHeDPPHpto53ukLLA4oMy4fXC5JpLZtB2f

```

Du coup pour le virement de septembre, obligé de faire comme ça… Mais c’est quand même beaucoup moins élégant !

```auto
while read p; do
  ./silkaj tx --auth-file --file authfile.key --amount 200 --yes --output $p --comment "DEV-DUNITER-09-2018" || true
done <destinataires.txt

```

---

<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: [26 September 2018 06:52 UTC](https://forum.duniter.org/t/silkaj-installation-virements-automatiques-et-multi-destinataires/4836/53 "2018-09-26T06:52:03Z")

</div>

Tu dois utiliser la branche dev qui est la seule branche qui inclus la fonctionnalité de transaction multi-destinataire. Sinon, une version de dév a été publiée sur pip pour installer plus facilement silkaj.  
De plus, tu fais fasse à un bug corrigé sur la future 0.6.0.

---

<div class="post-metadata">

### Author: ![hypericum](https://forum.duniter.org/letter_avatar/hypericum/32/5_5575768a8748004e209b776fc1b2916d.png) [@hypericum](https://forum.duniter.org/u/hypericum)
#### Post date: [21 February 2023 23:00 UTC](https://forum.duniter.org/t/silkaj-installation-virements-automatiques-et-multi-destinataires/4836/54 "2023-02-21T23:00:41Z")

</div>

Salut,

cron doit encore être utilisé, pour automatiser des tâches sur l’ordi, mais systemd a commencé à le faire, et en plus a bien évolué (je savais pas qu’il y avait un moyen d’avoir des timers système, et des timers utilisateurs, je n’étais pas à jour!).  
C’est étonnant, du coup pratique aussi car il demande aucun mot de passe pour les timers!

Je vais donc donner ici ce que j’ai fait.

`pipx install silkaj`

`systemctl list-timers --all`  
Pour voir où j’en suis! Les timers système.

`systemctl --user list-timers --all`  
Les timers côté utilisateur

```auto
cd ~
silkaj authentication --file authfile.txt

```

Pour créer le fichier dans le dossier utilisateur principal. On peut le mettre ailleurs, si on précise le chemin.

`nano ~/destinataires.txt`  
(ou d’autres programmes que nano, j’utilise plutôt vim même si je connais par coeur que les trucs que j’utilise tout le temps, donc peu)

Du coup on y écrit:

```auto
ABSOLUTE

# Megadon
10 HjWkHYDod49Cc9q6DB9BtUbiY2XgJ2tmQfKgyYKo5TQQ

# Remuniter

10 TENGx7WtzFsTXwnbrPEvb6odX2WnqYcnnrjiiLvp1mS

```

Le 10 avant la clé publique est la somme qu’on veut verser.  
C’est pratique, si on veut automatiser des modifs!

`systemctl edit --force --full --user backup-work.timer`  
Ça ressemble un peu à certaines commandes, qui contrôlent ce qu’on écrit (visudo par exemple), donc vaut mieux pas écrire ce fichier autrement.

Il est situé dans ~/.config/systemd/user

On y écrit:

```auto

[Unit]
Description=virements silkaj auto
RefuseManualStart=no
RefuseManualStop=no

[Timer]
Persistent=true
OnCalendar=weekly
Unit=silkaj.service

[Install]
WantedBy=default.targe

```

Ce fichier sert à donner la périodicité avec laquelle silkaj va faire le virement automatique.  
Là il y a plein d’exemples ( [systemd/Timers - ArchWiki](https://wiki.archlinux.org/title/Systemd/Timers) ) et ailleurs aussi (chez gentoo c’est top, ça m’a bien aidé d’ailleurs…! [systemd - Gentoo Wiki](https://wiki.gentoo.org/wiki/Systemd#Timer_services) )

Persistent ça veut dire que si l’ordi n’est pas allumé à la date donnée, il fera le virement à l’allumage suivant.

```auto
mkdir ~/.local/bin
cd ~/.local/bin

```

Au cas où ils n’existent pas.  
Il y a tout un truc avec PATH, pour que les programmes puissent être invoqués sans avoir à taper tout le chemin du programme pour l’executer (ce que j’ai dû faire quand même).

`nano silkaj-virements.sh`  
Et on écrit dedans:

```auto

#!/bin/bash

exec /home/user/.local/bin/silkaj --auth-file --file ~/authfile.txt money transfer --file ~/destinataires.txt --yes

```

Où user est remplacé par notre id de l’ordi,

`chmod +x silkaj-virements.sh`

Pour rendre exécutable le programme qu’on a créé.

`ls -actrl`

Pour vérifier que c’est bon, s’il y a les x dans les autorisations c’est bon:

```auto

-rwxr-xr-x 1 daniel daniel 131 21 févr. 22:23 silkaj-virements.sh

```

`systemctl edit --force --full --user silkaj.service`  
On écrit:

```auto

[Unit]
Description=virements auto silkaj
RefuseManualStart=no
RefuseManualStop=yes

[Service]
Type=oneshot
ExecStart=/home/daniel/.local/bin/silkaj-virements.sh

```

Puis j’ai fait:

```auto

systemctl --user daemon-reload
systemctl --user start silkaj.timer
systemctl --user enable silkaj.timer
systemctl --user enable silkaj.service

```

On peut contrôler si tout va bien avec:

```auto
systemctl --user list-timers --all
systemctl --user status silkaj.timer
systemctl --user status silkaj.service

```

Il doit mettre que c’est actif et tout.

J’ai fait pas mal de dons du coup, pour faire mes tests! 😂

Un truc qui est marrant, c’est que cesium met une seule ligne pour les deux virements auto faits en même temps.

---

<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 February 2023 08:24 UTC](https://forum.duniter.org/t/silkaj-installation-virements-automatiques-et-multi-destinataires/4836/55 "2023-02-22T08:24:46Z")

</div>

Super tutoriel ! Merci de le partager 😉

> [@hypericum](#):
>
> J’ai fait pas mal de dons du coup, pour faire mes tests! 😂

Les tests peuvent être faits sur la ĞTest, elle est là pour ce cas d’usages.  
`silkaj --gtest $command`

> [@hypericum](#):
>
> Un truc qui est marrant, c’est que cesium met une seule ligne pour les deux virements auto faits en même temps.

Surement qu’un seul a été validé, car consommant les mêmes sources.

[Previous page](https://forum.duniter.org/t/silkaj-installation-virements-automatiques-et-multi-destinataires/4836.md?page=2)
