Offchain scheduling

Dans le sujet Rythme de certifications, je me suis amusé à imaginer un scénario de scheduling offchain pour répondre à la question de la programmation des certifications. J’aimerais détailler ici la forme que pourrait prendre le “scénario 4”.

Le document ressemblerait à :

- call à appeler
- arguments du call
- hash d'un bloc récent #X
- numéro du bloc #Y auquel réaliser l'action programmée

Il serait fourni signé par l’auteur du call à un bot hors chaîne chargé de le soumettre en blockchain au bloc visé.
Il serait accepté par la blockchain si la différence Y-X est inférieure à une valeur définie en blockchain.

L’idée de ce dernier critère est d’éviter qu’un utilisateur puisse programmer des actions pour dans trop longtemps : ça peut avoir du sens de dire “dans un mois, cette personne que j’ai rencontré IRL respectera toujours la licence”, mais ça n’a pas de sens de dire “dans cinquante ans, cette personne que j’ai rencontré IRL respectera toujours la licence”.

Ça implique que le bot hors chaîne paye des frais de transaction pour soumettre ce document, donc ce serait un service à financer autrement (par exemple un service payant, ou avec ses propres règles antispam).


Voici des exemples de valeurs pour ce scheduling :

  • certifications : maximum 20 jours à l’avance
  • transactions : maximum 6 mois à l’avance
  • création d’identité : impossible

Si on a programmé une certification et qu’on souhaite l’annuler (par exemple pour pouvoir créer une identité à la place), c’est possible en contactant le bot. C’est hors chaîne.

Pour que le bot pousse la certification, celui-ci utiliserait une palette spécifique à Duniter qu’il faudrait donc développer ? Ou bien c’est un cas d’utilisation de la palette proxy ?