FEUILLE DE ROUTE de Tikka

Ce sujet vous tiendra au courant des étapes à venir dans le développement de Tikka.

Tikka se veut être un client bancaire avancé pour les professionnels (entreprises, associations, crypto-investisseurs, etc) de la ğ1 (version Duniter V2S).

Important : pas de gestion de la Toile de Confiance de prévue (ça n’a pas de sens pour une entreprise, mais à voir si des collectifs se servent de Tikka et gèrent des comptes membres pour des personnes physiques. Mais je pense que cela mérite un logiciel à part, intégrant Wotwizard.)

Les fonctionnalités ou idées de fonctionnalités, faites ou à faire sont les suivantes :

Configuration

Interface disponible en plusieurs langues, choix dans la configuration
Multi-monnaie, choix dans la configuration

Connection

Liste de serveurs de confiance pour se connecter à la blockchain
Connection par défaut au premier serveur de confiance
Ajout d’url de serveurs pour se connecter à la blockchain
Affichage des infos du serveur connecté (version, bloc, etc)

Divers

Affichage des infos de la monnaie (nombre de membres, masse monétaire, montant du DU)
Affichage de la licence Ğ1 dans la langue configurée

Comptes

Création de compte par mnémonique multi langue
Import de mnémonique multi langue
Import de compte dérivé multi langue
Stockage optionnel du trousseau chiffré et protégé par un mot de passe auto généré

Pour chaque compte :

  • affichage du solde
  • affichage du statut verrouillé/déverrouillé du trousseau stocké
  • Affichage du statut de l’identité
  • affichage du chemin de dérivation et de l’adresse du compte racine

Catégories

Classement des comptes par arborescence de catégories (un peu comme gnucash)

Dérivation

Création du compte racine si absent (stockage trousseau optionnel et déconseillé par sécurité)
Affichage groupé des compte dérivés avec la racine en tête, puis //0, //1, //2,4,6,8 (respect de la RFC)
Gestion des comptes jetables (one-shot accounts <mnemonic>//<account_id>//1/i, voir RFC)

Contacts (email, téléphone, profil)

Connection à un carnet d’adresses externe (protocole cardDav)
Lier un compte avec une carte de visite cardDav

Virements

Virement simple avec calcul des frais de transaction
Virement avec délai de récupération
Virement en Atomic Swap
Virement multi-signatures
Gestion des virements périodiques automatisés

Historique transactions

Filtre pour afficher uniquement les transactions qui concernent les comptes déclarés dans l’application
Export en fichier au standard OFX (pour logiciel de compta externe)


[OBSOLETE]
La première grande nouvelle est que je ne vais pas attendre la migration substrate, et que je vais donc implémenter l’API BMA pour avoir les fonctions de bases rapidement. L’architecture hexagonale permetra de changer d’implémentation (vers substrate) facilement grâce à l’inversion de dépendance.

A venir dans la feuille de route :

  • Créer un compte : Ajout du champ mot de passe dans l’IGU prérempli avec le même contenu que le code d’accès (le mnémonique à 12 mots).
  • Suppression de la sauvegarde en fichier Dewif car la RFC n’est pas finalisée (voir ce sujet).
  • Ajout d’un adaptateur pour l’API BMA de Duniter.
6 Likes

L’aventure Tikka continue. Bravo, mon poulet.

1 Like

Si la RFC 13 est classé comme validé (c’est d’ailleurs la seule). C’est juste le cas des portefeuilles de type Cesium qui n’est pas pris en compte, il faudrait amender est expliquant stoquer la seed, il faut juste qu’on se mette d’accords sur la taille du padding, j’ai choisi 40 mais je ne saurais le justifier.

Après je ne sais pas comment fait Polkadot, si ils ont un format spécial pour le stockage de leurs wallets.

Great to see so many wallets continuing their developments in G1…

I submitted a change-behaviour feature for Cesium to avoid choosing Portefeuille Simple et Membre at the beggining (just allowing becoming member from a simple to avoid confusions or stress from newbies…, since revocation file can only be downloaded from laptop)

I hope it can also be considered in Tikka and Gecko…

2 Likes

It will be in Tikka. You will need to create an account first, then add an identity to it.
Then you deal with your identity.

1 Like

Grosse news pour Tikka. Je suis en train de réécrire toute l’interface en PyQt5 ! :sweat_smile:

L’abandon de wxPython était nécessaire suite à un bug bloquant sur les onglets.
J’ai ouvert un ticket sans réponse depuis 15 jours, ce qui m’a permis de constater que wxPython a les mêmes libs codées en python et en C. Quand on a un bug en python, ils demandent si on a le même bug sur la lib en C. Et oui, j’ai le même bug sur la lib en C, qui elle n’est pas du ressort de wxPython, mais de wxWidget… Bref j’arrête avec wxPython. Dommage.

Au départ, je cherchais un framework plus léger pour Tikka, PyQt5 étant assez lourd à coder. Mais qui dit plus léger dit aussi incomplet… Après Tkinter et wxPython, c’est finalement un retour à une valeur sûre.

La bonne nouvelle, c’est que Sakia est en PyQt5 aussi, ce qui me conforte dans le fait que c’est un framework qui permet de faire un client complet ! Je picore du code dedans, mais j’en profite aussi pour alléger ce code.

Ce qui est lourd dans PyQt5, c’est le data model pour les tableaux. Pour l’instant je n’utilise pas ce data model et cela me suffit. Espérons que cela dure. :wink:

5 Likes

Pourquoi ne pas être directement parti sur PyQt6 ?

Bien, vu, j’ai hésité effectivement, puis j’ai vu la liste des modules supprimés par rapport à la version 5 et j’ai flippé (surtout la webview) :

https://doc.qt.io/qt-6/whatsnew60.html#removed-modules-in-qt-6-0

Réécrire la partie GUI de Tikka était déjà un gros morceau, je me suis dit que explorer un territoire inconnu et très récent était dangereux et consommateur d’énergie. Une fois les fondations en place et les fonctionnalités de base implémentées, je regarderai évidemment si un passage en pyqt6 est possible sans trop de problèmes. Pourquoi pas juste avant d’implémenter l’api de Duniter v2s. :wink:

2 Likes

Champagne ! Je viens de réussir la première transaction depuis Tikka sur mon serveur DuniterV2S de dev !

Capture du 2022-03-31 19-40-09

Ne faîtes pas attention au infos bidons de l’interface, seulement au message Transfer done.

La preuve dans Polkadot.js :

Je peux maintenant envisager de faire une release d’ici une semaine ou deux, avec un logiciel enfin testable à minima pour faire des transactions.

Vous me direz ce que vous pensez de l’ergonomie, mais franchement, les comptes dans des onglets, ça déchire !

Tikka n’est plus une “coquille vide” (expression tout à fait juste de @tuxmain et très drôle rapport au logo de Tikka…).

Bon ben c’est raté, j’ai du utiliser le data model pour la liste des nodes dans l’onglet de connection. Mais c’est assez basique, donc maintenable sans s’arracher les cheveux.

Pour info, j’ai implémenté :

  • La requête au serveur DuniterV2S du solde des comptes et leur affichage.
  • La requête des infos de la monnaie à partir du serveur DuniterV2S et son affichage dans un onglet dédié.
  • Avec ces infos, j’ai pu implémenter un sélecteur d’unité pour l’affichage des montants (unités ou DU).

A bientôt pour la release !

6 Likes

Je ne me rappelle pas avoir écrit ou dit ça, et je ne le retrouve pas dans la recherche du forum… Es-tu sûr ? J’ai bien dit d’autres bêtises à propos du logo.

Bah je ne retrouve plus non plus, mais c’était quand tu avais testé une des première release de Tikka qui ne faisait que créer des comptes. Tu m’avais dit ça, ce qui était tout à fait exact. Je faisais une release pour avoir un avis juste sur l’ergonomie, mais sans aucune fonctionnalité intéressante.
Et j’ai réalisé tout à l’heure que c’était très drôle rapport au logo avec l’œuf (coquille → œuf). :wink:
Ça m’a fait marré.

2 Likes

Cette expression vient d’un de mes messages en privé.
Ça y est quelque chose commence à prendre forme à l’intérieur de la « coquille vide » :wink:

4 Likes

Tikka 0.5.2 est disponible.

Feature spéciale RML16 :

  • Importer un compte : supporte les chemins de dérivation, du genre [mnemonic]//[account_id]//0, mais aussi les comptes de dev comme //Alice
3 Likes

Tikka 0.5.2 a un bug bloquant !

Impossible d’importer un mnemonic en français.

Ce n’est pas de mon fait, mais un bug dans la bibliothèque Python substrate-interface.
J’ai ouvert un ticket :

Je peux faire une rustine sale (on pourra importer un mnemonic français, mais pas de chemin de dérivation en français) pour les RML16 si besoin. Dîtes moi.

1 Like

Perso j’utilise des mnemonic anglais donc ça ne me gène pas.

Par conter ce qui me gène c’est de ne pas pouvoir indiquer l’adresse du nœud à joindre, une fois la ĞDev lancée le nœud ne sera pas sur localhost :sweat_smile:

Bien sûr que tu peux.
Menu Réseau/Noeuds ouvre l’onglet Noeuds du réseau.

Pour ajouter un point d’entrée, il faut entrer ton endpoint dans le champ Point d’entrée de l’onglet puis valider avec « enter ». Tu peux aussi modifier celui affiché.

Ensuite, tu affiches la liste de la combo box en cliquant sur la flèche, et sélectionne le nouveau point d’entrée pour te connecter.

Oui j’avais vu et essayé mais ça ne marchais pas, donc je croyais que c’était factive (avce l’interface seule sans implémentation).
Il faut que je réessaye, je n’ai peut-être pas validé avec enter, car habitué aux UX qui auto-valide toute modif d’un champ, ou qui valide quand le focus sort du champ :slight_smile:

En améliorant l’ergonomie grâce aux retours précieux des pionniers sur Tikka, je viens de découvrir des erreurs aléatoires (le pire bug…) dans les requêtes RPC.

J’ai la quasi certitude que le problème vient du fait que le client websocket (officiel python) est censé supporté le multithread, mais visiblement pas… Les requêtes reçoivent des réponses vides ou erronées, qui ne sont sûrement pas les leurs. En mode pas à pas, avec des breakpoints, j’ai quasi zero erreur.

Donc, si vous rencontrez le problème : je suis au courant, j’y travaille (mise en place d’une file d’attente des requêtes websocket, comme j’ai déjà fait pour la database qui elle aussi ne supportait pas le multithread). On est pas aidé, hein ! A suivre…

À tu vérifié s’il y a une issue ouverte, si c’est un problème connu par les mainteneurs ? Sinon il faut leur signaler :slight_smile:

Non, pas pensé. Je vais le faire tu as raison.

Sortie de Tikka 0.5.3 :

  • Paiement plus facile (pas besoin de taper “enter” pour valider le destinataire).
  • Nouveau menu Réseau/Ajouter un point d’entrée qui ouvre une fenêtre permettant de tester et ajouter un nouveau point d’entrée.
2 Likes