Je vous mets le code tel que pubblié sur la blockchain $tezos
C'est du code compilé donc pas très compréhensible pour le commun des mortels. Comme pour #ethereum le smart contract est un petit code. Tezos utilise notamment un language, michelson, qui est promu plus sécurisé qu'ethereum mais évidemment c'est important de l'auditer.
N'étant pas expert de la machine virtuelle, je vais essayer de trouver des infos. Première tentative je décompile. Il existe un outil (liquidity-lang.org) qui fait ca bien. voici ce que ca donne
Premièrement, il semble que seul la fonction replace (!?) est utilisée par l'application en regardant bien elle fait ce qu'on avait déjà compris dans l'analyse d'hier : elle incrémente le nombre de votes et enregistre le dernier vote (!?)
accrochez vous :
- 'double' consiste à multiplier par 2 la valeur du dernier vote
- 'divide' permet de diviser par 2, 3, 4 ou 5 la nombre de votes (!?)
Je crois avoir à faire à une mauvaise blague. J'essaye de regarder sur internet d'où çà peut bien venir...
un exemple pour apprendre à coder en smartpy, l'équivalent de solidity pour tezos
Oui en regardant bien on a les mêmes fonctions qui font presque les même chose (on a même le divide limité à 5)
Donc notre stagiaire a fait un bête copier-coller d'un exemple, avec quelques modifications sans même prendre le temps de retirer les fonctions inutiles.
Bon un truc me chiffonne quand même. Je ne connais rien à Tezos, mais je crois qu'il n'y a pas de conditions qui empêche n'importe qui d'appeler ce smart contract (si quelqu'un peut m'éclairer)
Je suis parti pour acheter des tezos, installer un wallet et tester tout çà.
Laissez-moi un peu de temps pour faire cela, je reviens
De retour, après quelques pérégrinations pour trouver le bon outil tezos, je me suis porté sur celui en ligne de smartpy, et j'utilise le formulaire ici smartpy.io/dev/explorer.h…
J'ai acheté des $tezos sur binance et créé un wallet, envoyé mes tezos sur ce wallet, un peu lutté pour comprendre l'interface smartpy et réussi ma transaction
Donc voilà, j'ai compris qu'en fait il fallait diviser par un nombre plus grand que 5 et pas plus petit.
et çà marche !
observons le storage on a un vote à 0 :)
Essayons donc de voter comme un grand et voilà
A voté ! le storage nbVotes s'est bien incrémenté de 1
bon on peut voter null ou blanc aussi, donc on fait mieux !
j'essaye la dernière fonction 'double' et je multiplie par 2 le vote
Il me reste 9.06 $tezos sondage pour savoir quoi en faire
Bon comme je suis gentil, il existe un moyen de pouvoir trier les votes et enlever les votes bourrages d'urnes, il suffit de sélectionner seulement les transactions qui sont envoyées par le wallet tz1bmrGR6z8RNEKc44uW6ozwH2D3Ken7wZqc
Pour s'inscrire, il nous faut nom, prénom et email. Et un mot de passe. Bon déjà on comprend que la blockchain ne sera pas utilisé pour l'identité. Vérification de l'email à l'inscription
Bon après pour se logger, l'application envoie en clair le mot de passe. On espère que le serveur ne mémorise pas les mots de passes en clair dans sa base de donnée !?
Passons rapidement que quand bien même elle respecterait toutes les garanties de vie privée (ce qui n'est pas le cas), l'application est inutile tant que la quasi totalité des français ne l'a pas installée. A moins de la rendre obligatoire donc...
En outre il faudrait pour être efficace que le moindre contact soit répertorié (le virus n'attend pas 15 minutes pour se transmettre). L'unique raison pour laquelle il y a cette tempo de 15 min est que votre batterie de téléphone serait complètement vidée en qqs heures