Distance

Ce serait pas mal d’ajouter quelques trucs par rapport à la distance :

  • pouvoir appeler request_distance_evaluation pour quelqu’un d’autre. Parce qu’on se fait slasher si la distance est ko, donc il vaut mieux que ce soit un ancien membre qu’un nouveau
  • ajouter des événements quand une évaluation de distance est demandée ou un résultat publié. Ça va grandement aider le débuggage, on pourra toujours enlever les événements s’ils sont trop bruyants (mais j’en doute).
  • que le binaire distance-oracle ait un mode plus verbeux par défaut pour savoir plus facilement ce qu’il a fait. Et aussi des logs dans un fichier ça me paraît une bonne idée.

Voilà. Je suis en train d’ajouter des trucs dans Ğcli pour la distance, ça va être utile.

2 Likes

Côté client, je n’ai pas suivi au moment où vous travaillez sur la distance.
En gros, il faudrait pouvoir batcher l’extrinsic `` au moment de la dernière certification nécessaire pour devenir membre ?

Mais ce n’est pas possible pour le moment, car seul l’intéressé peut executer cet extrinsic si je comprend bien, étant qu’il ne prend aucun argument.

Si cela devient possible, alors je pourrais augmenter ce batch d’un 3ème extrisic à cet endroits.

final tx1 = 'api.tx.cert.addCert($fromIndex, $toIndex)';
final tx2 = 'api.tx.distance.requestDistanceEvaluation($toIndex)';
final tx3 = 'api.tx.identity.validateIdentity($toIndex)';

C’est l’idée ?


Sauf qu’il faudrait que j’attende le résultat de l’oracle avant de tenter de valider l’identité, donc non ça ne peut pas s’exécuter dans le même bloc …
Comment je fais pour récupérer le résultat de l’oracle ? Si le résultat arrive disons 10 secondes plus tard par exemple, je ne vois pas trop où et quand appeler identity.validateIdentity()

1 Like

C’est pas encore très clair de savoir comment on va gérer la validation d’identité et la règle de distance. Peut-être qu’il faudrait une autre API qui sert au calcul de la règle de distance pour savoir si on doit ou pas inclure le call requestDistanceEvaluation dans le batch de la dernière certification parce que sinon on expose le certificateur à être slashé parce que l’évaluation est négative. Par contre, c’est possible d’inclure un call schedule pour valider l’identité deux sessions plus tard (du moment que c’est appelable par un tiers).

1 Like

Le calcul prend 2-3 sessions (heures). Le résultat est stocké dans IdentityDistanceStatus seulement s’il est positif (ou que le calcul est en cours).

Le but est que les clients (ou les indexeurs, ou autre service dédié) fassent le calcul en local avant d’appeler le call, pour réduire le risque d’échec en blockchain (qui peut coûter cher, et dans le futur activer un délai antispam). La crate distance-oracle peut être utilisée facilement dans un client ou en standalone, mais l’algo est compatible avec les logiciels de la V1 normalement donc les calculateurs de distance existants peuvent aussi être adaptés.