Une synchronisation silencieuse des sources pourra donc être réalisée, dès que la connectivité réseau le permet, pour constituer un index des sources en local. Il s’agit donc de récupérer non pas toutes les sources, mais uniquement un delta, dans le but d’actualiser - le plus rapidement possible - cet index :
Récupération des sources, à partir d’une date de dernière synchro :
Nouvelles sources issues de paiements reçues, ou de DU;
Sources connus nouvellement consommées, à actualiser comme tel dans le client;
Elles ont pu être consommées via une TX émises par client (la sources aura déjà un état “consommée en attente de prise en compte”), ou en dehors du client (par exemple depuis la version bureau).
Actualisation de l’index local;
Calcul ad-hoc : actualisation de la balance du compte, notifications à l’utilisateur, etc ;
Réduire le risque de double dépense
Pour éviter le problème des doubles dépenses, les différentes versions de logiciels (ordiphone, bureau) pourraient avoir un ordre de consommation des sources différent. Par exemple :
en priorité les sources terminant par /[0-9A-H]/ pour les version mobiles, soit 18 valeurs possibles;
et /[I-Z]/ pour les versions bureau, soit également 18 valeurs possibles;
Transmettre une TX au destinataire n’apporte aucune preuve qu’il pourra récupérer les fonds. Un des inputs de la TX pouvant être bloqué sciemment par ailleurs pour arnaquer le vendeur.
La seule façon de transmettre un document TX au vendeur de manière sécurisée pour le vendeur c’est justement les Lightning Network.
Mais cela nécessite soit :
qu’un channel existe déjà entre l’acheteur et le vendeur
ou que l’acheteur et le vendeur est chacun un channel avec un tiers commun (à noter qu’il n’y a pas besoin de faire confiance au tiers commun, c’est toute la force des LN),
Et avec les LN pas besoin de récupérer un delta des sources.
Pour les paiements sans LN : une connexion internet ou un tiers de confiance est nécessaire sans quoi le vendeur n’a aucune garantie possible.
Pour les paiements sans connexion internet et sans LN il est nécessaire de passer par un tiers de confiance (par exemple prestataire de paiement par SMS ou autre).
Le cas d’usage que tu décris n’est pas acceptable en termes de sécurité, Dans les cas d’usages acceptables que j’indique, il n’est pas nécessaire d’obtenir un delta des sources. Je ne développerai donc pas cette fonctionnalité, sauf à ce qu’un cas d’usage sécurisé le nécessite.
Je penses que nous nous sommes mal compris. Je n’aurais pas du te parler du mode hors ligne, car cela n’est pas indispensable à mon besoin initial d’avoir les sources.
Tu est d’accord, que, de toute façon :
il faut les sources pour générer les TX ?
qu’il faut du réseau pour récupérer les sources ?
C’est ce que Cesium fait déjà, sans que la sécurité ne soit un problème.
Je recherche avant tout un moyen optimiser pour récupérer ses sources. SI je les stocke localement, cela permet de ne demander que ce qui a changé. Ce qui a l’avantage de réduire la lecture de la BDD du noeud, tout en allégant la charge réseau. Typiquement, si l’utilisateur n’a utilisé (depuis plusieurs jours) que son ordiphone pour payer, et que toutes ses TX sont passées en BC, alors la requête GVA sur les sources devrait ne rien renvoyer, ou bien juste les sources validées entre temps (acquittement sur des sources déjà connues par l’ordiphone). Par rapport à aujourd’hui, cela me semble un gros progrès en terme de fluidité. Cela supprimerai les temps d’attentes au lancement de l’App.
Laissons de côté l’usage en hors ligne, pour le moment.