Silkaj : Installation, virements automatiques et multi-destinataires

Ben étant donné que la fiche de pair est signée, celui qui passe par la fiche de pair est déjà “assuré” qu’il parle bien au bon nœud.

Ben non, il est juste assuré d’avoir le bon endpoint, mais il peut y avoir une attaque de l’homme du milieu pendant la communciation si elle se fait en HTTP et que les messages échangés ne sont pas signés.

C’est pourquoi perso je prévois que l’API Client de Duniter-Rust signe systématiquement toutes ses réponses.

Oui, d’accord, c’est vrai. :slight_smile:

1 Like

Attention, @Moul parle de Pipenv pas Pyenv ! Oui je sais c’est confusant.

Pyenv est l’équivalent de nvm pour nodejs. Il permet d’installer dans un dossier .pyenv, plusieurs versions de Python. Il permet aussi, avec un plugin, de créer des virtualenvs.

Pipenv, lui, est un pip sous steroid, qui installe une application avec ses dépendances dans un virtualenv.
Il permet de séparer les dépendances de dev, des dépendances de prod. Une tuerie.

Pour la librairie HTTP client/serveur, Duniterpy et Sakia utilise AIOHTTP.

Une vidéo pour découvrir AIOHTTP : https://hooktube.com/watch?v=ZGU_fIOMpgk&t=449s

j’ai un souci au moment de créer le fichier d’authentification
je lance la commande suivante :

./silkaj generate_auth_file -p cgeek.fr:10901

et j’ai l’erreur :

Error: no authentication method

j’ai oublié quelque chose ?

Mince, j’ai enlevé l’option --auth-scrypt qui est l’option par défaut dans la future v0.6.0 qui n’est plus nécessaire de spécifier.

c’est a dire… je lance quelle commande pour créer le fichier d’authentification ?

silkaj generate_auth_file --auth-scrypt

merci ça fonctionne,
par contre je suis toujours obligé de faire pyenv activate silkaj-env avant de lancer Silkaj ?

C’est fort possible.

Cette méthode d’installation ne s’avère toujours pas aisée à mettre en place.

On est en train de bosser sur l’installation de Silkaj via pip.
Essaye d’installer silkaj avec :

pip3 install silkaj --user

Si tu n’as pas pip3 d’installé sur ton système :

sudo apt install python3-pip

@cgeek

j’ai une erreur de clé invalide :confused:

Error: the format of the public key is invalid

Voilà les deux clés utilisées dans le fichier destinataires.txt

5dzkzedBWdeqTFCaD7AkKPMPusfRUL1XyFNJWWGYQ9f1
nEo27vwk8scV1XuXj7YV8CRJruQUJc9KFqHmGrvS2XN

l’erreur peut peut-être venir du fait que l’une soit plus courte que l’autre, non ?

Bon j’ai retiré cette “petite” clé et relancé la commande

./silkaj tx --auth-file --file authfile --amount 20 -p cgeek.fr:10901 --output `cat destinataires.txt | tr '\n' ':' | sed -e 's/:*$//'` --comment Silkaj-virement-interne

mais

Wrong node gived as argument

[EDIT]
et des fois j’obtiens cette erreur :

Traceback (most recent call last):
  File "./silkaj", line 122, in <module>
    manage_cmd(ep, cli_args)
  File "./silkaj", line 106, in manage_cmd
    send_transaction(ep, cli_args)
  File "/home/vincentux/logiciels/silkaj/src/tx.py", line 23, in send_transaction
    tx_confirmation = transaction_confirmation(ep, c, issuer_pubkey, amount, ud, output, comment)
NameError: name 'c' is not defined

j’ai installer Silkaj avec cette commande
c’est la bonne version ?

./silkaj -v
silkaj 0.4.0

y a une typo dans le message d’erreur, devrait être :

Wrong node given as argument

Ok, faut que je vérifie ça.

Soit le nœud n’est pas atteignable, soit cette option doit être mis en dernière position.
Tu n’es pas obligé de mettre cette option. Ça utilise https://duniter.org par défaut.

Ah, oui, c’est possible que ça soit un bug non corrigé que je ne vois pas à cause de cache Python.

Par contre, là tu dois mettre à jour ton dépôt silkaj git pull.

Si tu veux utiliser silkaj installé via pip utilise simplement la commande silkaj.

Peut-être qu’en utilisant la dernière version les problèmes ci-dessus seront corrigés !

Voici une contribution simple pour celui qui veut avoir son nom dans l’historique git de silkaj.

j’ai bien a jour le dépôt, silkaj 0.5.3 est bien installé :

pip3 install silkaj --user
Collecting silkaj
  Using cached https://files.pythonhosted.org/packages/b3/fd/1fba05730f8bf6672ef64d37a04fc45b32dc14cb0904c0bd33a3b85ebd51/silkaj-0.5.3-py3-none-any.whl
Requirement already satisfied: ipaddress in /home/vincentux/.pyenv/versions/3.6.0/envs/silkaj-env/lib/python3.6/site-packages (from silkaj) (1.0.22)
Requirement already satisfied: pyaes in /home/vincentux/.pyenv/versions/3.6.0/envs/silkaj-env/lib/python3.6/site-packages (from silkaj) (1.6.1)
Requirement already satisfied: pynacl in /home/vincentux/.pyenv/versions/3.6.0/envs/silkaj-env/lib/python3.6/site-packages (from silkaj) (1.2.1)
Requirement already satisfied: scrypt in /home/vincentux/.pyenv/versions/3.6.0/envs/silkaj-env/lib/python3.6/site-packages (from silkaj) (0.8.6)
Requirement already satisfied: commandlines in /home/vincentux/.pyenv/versions/3.6.0/envs/silkaj-env/lib/python3.6/site-packages (from silkaj) (0.4.1)
Requirement already satisfied: tabulate in /home/vincentux/.pyenv/versions/3.6.0/envs/silkaj-env/lib/python3.6/site-packages (from silkaj) (0.8.2)
Requirement already satisfied: six in /home/vincentux/.pyenv/versions/3.6.0/envs/silkaj-env/lib/python3.6/site-packages (from pynacl->silkaj) (1.11.0)
Requirement already satisfied: cffi>=1.4.1 in /home/vincentux/.pyenv/versions/3.6.0/envs/silkaj-env/lib/python3.6/site-packages (from pynacl->silkaj) (1.11.5)
Requirement already satisfied: pycparser in /home/vincentux/.pyenv/versions/3.6.0/envs/silkaj-env/lib/python3.6/site-packages (from cffi>=1.4.1->pynacl->silkaj) (2.18)
Installing collected packages: silkaj
Successfully installed silkaj-0.5.3

mais :

silkaj : commande introuvable

Relance la commande d’installation de silkaj via pip dans un nouveau terminal.
Car, là tu l’as installé dans un shell pyenv.

dans un nouveau terminal :

pip3 install silkaj --user
Collecting silkaj
  Using cached https://files.pythonhosted.org/packages/b3/fd/1fba05730f8bf6672ef64d37a04fc45b32dc14cb0904c0bd33a3b85ebd51/silkaj-0.5.3-py3-none-any.whl
Collecting pyaes (from silkaj)
Collecting ipaddress (from silkaj)
  Using cached https://files.pythonhosted.org/packages/fc/d0/7fc3a811e011d4b388be48a0e381db8d990042df54aa4ef4599a31d39853/ipaddress-1.0.22-py2.py3-none-any.whl
Collecting tabulate (from silkaj)
Collecting commandlines (from silkaj)
  Using cached https://files.pythonhosted.org/packages/92/20/9fdf2c639119447ac03246ed3a04beb3c24aaf88d38f348e8c24375ec4aa/commandlines-0.4.1-py2.py3-none-any.whl
Collecting pynacl (from silkaj)
  Using cached https://files.pythonhosted.org/packages/77/03/927e4cdbd821f929392608ddb2220a9548ce164c52047e90fadd20786fd8/PyNaCl-1.2.1-cp36-cp36m-manylinux1_x86_64.whl
Collecting scrypt (from silkaj)
Collecting six (from pynacl->silkaj)
  Using cached https://files.pythonhosted.org/packages/67/4b/141a581104b1f6397bfa78ac9d43d8ad29a7ca43ea90a2d863fe3056e86a/six-1.11.0-py2.py3-none-any.whl
Collecting cffi>=1.4.1 (from pynacl->silkaj)
  Using cached https://files.pythonhosted.org/packages/6d/c0/47db8f624f3e4e2f3f27be03a93379d1ba16a1450a7b1aacfa0366e2c0dd/cffi-1.11.5-cp36-cp36m-manylinux1_x86_64.whl
Collecting pycparser (from cffi>=1.4.1->pynacl->silkaj)
Installing collected packages: pyaes, ipaddress, tabulate, commandlines, six, pycparser, cffi, pynacl, scrypt, silkaj
Successfully installed cffi-1.11.5 commandlines-0.4.1 ipaddress-1.0.22 pyaes-1.6.1 pycparser-2.18 pynacl-1.2.1 scrypt-0.8.6 silkaj-0.5.3 six-1.11.0 tabulate-0.8.2

j’ai toujours :

silkaj : commande introuvable

Comment s’assurer de ne plus être dans shell pyenv ?

Ça semble être bon. Silkaj est installé.

Après, je sais pas pourquoi la commande n’est pas trouvable.
Essaye d’ouvrir un nouveau shell.

Avec Bash, le prompt est préfixé du nom du shell python.
Sinon, tu peux vérifier la version de python en comparaison avec celle du système.