Demande d'explications sur les transactions


#1

Bonjour à tous,

Dans le cadre d’un projet avec @Max, j’implémente un serveur qui faciliter un “tiers de confiance” à réaliser des transactions sur Duniter.

Pour ce faire, j’ai regardé la spec et le code de Cesium (car c’est l’outil qui le fait le plus souvent à mon avis), et j’avoue avoir eu du mal à tout comprendre rien qu’avec ces exemples. Et avec mes interrogations, j’ai de nombreuses questions qui me viennent à l’esprit (sur la base, sur les conditions, etc.).

Pour y répondre, j’ai lancé une annonce sur gchange pour trouver quelqu’un qui accepterait 1hr d’accompagnement pour m’expliquer tout ça.

Et je poste également ici, afin d’avoir des réponses.

Est-ce que c’est le bon endroit ? Est-ce que j’ai loupé de la documentation sur le fonctionnement de Duniter ? Pourquoi n’y a-t-il pas de service dédié à cette opération dans l’API HTTP de Duniter ?


#2

Moi je veut bien, je maîtrise bien les documents transaction de Duniter et je serais ravis de voir émerger des systèmes de paiement tiers :slight_smile:
Je te donne mes coordonnées en MP :wink:


#3

@elois, cela pourrait ausi faire l’objet d’une formation, lors des RML11.
Si on veut faire venir de nouveau contributeur, c’est un point clef il me semble.


#4

Des documentations, mais je suppose que tu les as déjà vues :

L’API BMA :
https://git.duniter.org/nodes/typescript/duniter/blob/dev/doc/HTTP_API.md

Le format des documents à envoyer à Duniter :
https://git.duniter.org/nodes/typescript/duniter/blob/dev/doc/Protocol.md


#5

Ok, merci @elois.

Voici le résultat pour l’instant…

http://b3j0f.org:9000/

Prochaine étape, interface pour générer des paper wallets avec crédit automatisé.
Puis ensuite, SMS, carte à puce, tout ça…


#6

super ca ! Je viens de tester la création d’une TX. Ca fonctionne parfaitement !

Je ne sais pas si tu connais le GraphQL, comme interface extensible et auto-descriptive, je trouve ca excellent.

Je suis en train de m’y former, à mon boulot. C’est sur, ca va me servir sur Duniter :wink: Mais d’abord je me forme suffisamment.


#7

Est-ce que tu peux m’expliquer en une ou deux phrases comment tu signes un document à partir du couple (identifiant secret, mot de passe) de cesium stp ?

Si c’est pas possible de le faire aussi simplement, tu peux me faire un transfert de compétence d’une heure (grand) max pour 150 UL ? (ça m’étonnerait qu’on y passe 1hr, mais j’aime bien sur-évaluer du temps de travail et avoir la petite satisfaction d’avoir fini avant)

Vite fait, mais je ne l’ai pas utilisé dans un projet. Et là, tu viens de me donner envie, alors je m’y met direct :slight_smile:

PS : je me suis mis dernièrement à vuejs, après être passé par react et angular (je vais pas faire tout l’historique ^^’). Et là je me rends compte à quel point angular demande plus de temps que vuejs pour comprendre tout ce qu’il se passe :slight_smile:


#8

code = efficacité :slight_smile:

  • La création des clefs publique/secrete ici (Librairie NaCL en full-JS) ou ici (Libsodium via un plugin Apache Cordova)
  • La création du document ici
  • La signature ici
  • Pas avant la semaine prochaine. Mais je préfère que tu essaie avant tout seul, car ca dépend trop de la lib que tu utilises.

#9

En fait mes questions portent plus sur des lacunes que j’ai en cryptographie (pourquoi utiliser un seed ? Qu’est-ce que le salt, le box ? etc.)

Et je pensais en profiter pour faire un “peu d’humain” plutôt que de tout faire dans mon coin comme un sauvage (ça je sais faire :/). Et comme ça fait plus de 2 ans que je suis ce qu’il se passe sur Duniter, je pensais que c’était le moment de faire plus ample connaissance :stuck_out_tongue:

Donc au cas où je ne déduits pas la logique de la lib que tu utilises, je vais essayer de me dépatouiller pour retrouver ce qui m’intéresse à l’aide de mes propres infos sur cesium. Et si je bloque toujours, alors je prendrais le temps de lire des trucs sur les algos de crypto utilisés ^^’.

Merci, et je vous tiens au courant pour le service de génération de paperwallet avec gestion de crédit automatisé :D. Et ensuite, je m’attaque aux SMS, NFC et carte à puce. Je ne sais pas si je vais en faire de suite un plugin pour cesium car ça me parait compliqué sans prendre 2/3 jours pour comprendre comment ça marche, mais voilà.

@+


#10

Certes, mais ce faisant tu enrichirais l’équipe de développement de Cesium et tu pourrais alors devenir moteur pour son évolution technique et/ou fonctionnelle en fonction de tes propres apports.

La question de se greffer à un projet existant se pose dès qu’on veut penser le développement long terme et que l’on sort du “mon truc, tout de suite”.


#11

“Mon truc tout de suite” c’est un proto. Et si ça passe, bien-entendu que je vais le passer à l’échelle :wink:

J’ai déjà demandé à @elois pour intégrer mon code dans l’API HTTP de Duniter et il m’a dit que les devs ne le feraient pas car ils étaient déjà en train de développer une API plus sympa que celle proposée actuellement. Donc passage à l’échelle loupé pour ce coup-ci :slight_smile:

Je tenterai par Cesium dès que j’aurais validé certaines choses.


#12

Alors on n’a pas encore commencer sont développement, mais nous sommes en train de définir les spec ici : https://git.duniter.org/nodes/common/doc/blob/graphql_api_rfc/rfc/0003%20RFC%20GraphQL%20API%20for%20Duniter%20Clients.md


#13

Le couple (identifiant secret, mot de passe) permet de générer un couple de (clé publique, clé privée). La clé privée est utilisée pour signer le contenu du documents qui peut être vérifiée avec la clé publique.

Ce n’est pas spécifique à Cesium mais commun à tous les logiciels du projet Duniter, sans quoi il n’y aurait pas d’interaction possible entre les différents logiciels (duniter-ts, cesium, sakia, etc).


#14

Est-ce que tu peux être plus précis sur comment tu passes de (identifiant secret, mot de passe) à (clé publique, clé pivée) ?