Silkaj : Installation, virements automatiques et multi-destinataires

python -V
Python 2.7.15rc1

sinon

python3 -V
Python 3.6.5

Salut,

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

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

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

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

Et redémarre ton terminal ou tapes:

. ~/.bash_profile

Merged!

1 Like

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

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

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 ?

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

1 Like

que diriez-vous de spliter le topic en 2 :

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

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

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.

Il faut le faire manuellement.

2 messages ont été déplacés vers un nouveau sujet : Rémunération des contributeurs au projet Duniter

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

$ ./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 !

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
1 Like

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.

1 Like

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

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:

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:


[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 ) et ailleurs aussi (chez gentoo c’est top, ça m’a bien aidé d’ailleurs…! systemd - Gentoo Wiki )

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

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:


#!/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:


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

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


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

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

Puis j’ai fait:


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:

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! :joy:

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

5 Likes

Super tutoriel ! Merci de le partager :wink:

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

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

2 Likes