Correct definition of bloctime
Created by: galuel
[10:16:25] <Ğaluel> ok n = medianTimeBlocks, mais quel est d = durée moyenne cible de calcul entre 2 blocs ?
[10:16:39] Ğaluel: avgGenTime = 5 minutes
[10:18:46] <Ğaluel> Ok. Donc c'est normal qu'on ait 50 minutes de retard ! C'est mal calculé ! Si on prend l'heure "réelle" calculée sur le temps des blocs h = Moyenne(Time,medianTimeBlocks) + n/2 * 5 minutes ! Il manque 20/2 * 5 minutes = 50 minutes pour avoir une bonne estimation de l'heure "réelle" !
[10:20:35] Ğaluel: pourquoi dis-tu que c'est "calculé" et encore plus "mal calculé" ?
[10:22:50] <Ğaluel> cgeek : mediantime est bien calculé, mais il donne dans les faits le temps moyen du bloc - (n/2) pas celui du bloc courant, la moyenne de temps des n derniers blocs, donne un bon temps pour le milieu, pas pour l'extrémité...
[10:23:26] Ğaluel: oui mais si tu parles de l'affichage dans les clients, ils ne font que restituer ce temps, ils ne le calculent pas
[10:24:30] Ğaluel: et côté nœud, je ne cherche pas à avoir "l'heure réelle" qui n'est pas vraiment importante, le DU peut être produit à 1h de décalage sans problème
[10:25:18] <Ğaluel> cgeek : oui tout à fait, mais donc ce temps n'est pas le "temps du bloc" mais "le temps moyen du bloc n/2 derrière", il serait donc meilleur d'afficher (mediantime + n/2 * avgGenTime) comme étant l'heure de calcul du bloc affiché.
[10:27:05] Ca fait sens
[10:27:19] Les utilisateurs s'en foutent de l'heure technique, ils veulent une heure pratique
[10:27:34] <Ğaluel> Ca fait plus que sens ! http://gtest.duniter.fr/#/app/block/3907/00001CF666B5891FCF60AD9EBEFF9DAD5711574E405AD99F54A0AB24CD664070 devrait afficher 10h25 ce qui colle parfaitement à mon horloge PC.
[10:27:37] On peut ainsi leur donner une heure "au delta près"
[10:27:57] Tu peux ouvrir un ticket chez kima et moi stp ?
[10:37:27] <Ğaluel> Il faut donc mettre un commentaire aussi quelque part dans le code pour la définition de mediantime en expliquant que c'est "le temps moyen des n derniers blocs, le temps de calcul du bloc étant donc plutôt proche de mediantime + n/2 * avgGenTime", lequel d'ailleurs n'a de nécessité d'être calculé que pour les n/2 derniers blocs, car plus loin en arrière on peut très bien recalculer ce temps en disant bloccurrenttime = mediantime(bloccurrent + n/2).