Aide En Informatique
Latest Posts:

Creation d’une application décentralisée (Dapps)sur la blockchaine ethereum : une lotterie decentralisée
Creation d’une application décentralisée (Dapps)sur la blockchaine ethereum : une lotterie decentralisée

Nous continuons notre serie sur des exemples des applications qu’on peut developper sur une blockchaine pour débutant, bien vouloir lire les deux premières parties avant d’entamer celle ci.

. Première partie sur la creation d’une cryptomonnaie ici (https://itinnovdesign.com/creation-dune-cryptomonaie-sur-la-blockchaine-ethereum-%C3%A9tape-par-%C3%A9tape-pour-les-d%C3%A9butants-smart-contract-erc20-ico-token).

Deuxième partie sur une application des elections (un scrutin de vote) ici (https://itinnovdesign.com/developement-dun-application-decentralis%C3%A9e-sur-la-blockchaine-%C3%A9thereumdappsune-application-des-elections)

Dans cette dernière partie, nous allons developper une lotterie ou mieux un tombola, comme vous pouvez le voir dans l’image suivante,chaque parieur doit miser sur un nombre en payant en ether(la cryptomonnaie de la blockchaine ethereum), le contrat intelligent qui se trouve sur la blockchaine devra tirer un nombre au hasard, si l’un des parieurs à deviner le nombre, il gagne la somme des montants totale fait par tous les parieurs, s’ils sont plus d’un à avoir trouver le nombre magique, la somme est divisée proprtionnelement au montant parié, dans l’image, supposons que le nombre gagnant soit 2, dans ce cas le le parieur 2 et 4 on gagné et les autres ont perdu, la somme tootale pariée est de 2 +4+2+1+1=10 ether, la somme pariée par les deux gagnants est 4+1=4 donc le parieur 2 aura 4/5*10 = 8 ether et le parieur 4 aura 1/5*10 =2ether. Si persone ne trouve le nombre gagnant, la somme des montants va dans les poches du developpeur du contrat intelligent donc celui qui a deployé le contrat sur la blockchaine. Ici le jeux est transparent car le code du contrat intelligent n’est pas centralisé comme dans le cas d’une BDD ou on peut manipuler et truquer, ici tout est sur la blockchaine et sur un reseau publique decentralisé donc on peut lire le code qui régit la blockchane et se fier avant de jouer.

Ouvrez powershell et creez un repertoire “Tombola”, puis ouvrez ce repertoire dans VSC et du terminale de visual studio code creez un projet truffle avec la command truffle init comme on l’a fait dans les deux première partie. Dans le repertoire “Contracts” crée par truffle, creez un fichier “Tombola.sol” qui va contenir notre code solidity du smart contract de la lotterie, puis inserrez le code suivant:

Le code est assez explicite, la fonction suivante “bet”(qui veut dire parier en anglais) c’est elle qui est appellé pour parier, cette fonction utilise un algorithme basé sur le nombre de parieur pour decider de tirer au hasard le nombre magique.

les champs suivants:

minwager c’est le nombre minimum d’ether qu’on peut parier.numberOfWagers contient le nombre de parieur au fure et à mesure qu’on parie et MAX_NUMBER_OF_WAGERS contient le nombre maximum de parieurs, ces variables sont utilisés dans l’algorithme pour declencher le jeu.

Le tirage du nombre gagnant est fait dans la fonction suivante:

Creez comme on a fait dans les deux première partie un fichier “2_deploy_contracts.js” dans le repertoir “migrations” avec le code suivant:

puis dans le terminale de VSC tappez la commande suivante:

truffle migrate — reset

le contrat intelligent est à present deployer sur la blockchaine à l’addresse suivante:

Passons à present à la dapps

Creez un fichier “TombolaOnline.html” dans un nouveau repertoire “Client” avec le code suivant:

Vous devez changer l’addresse du smart contract present dans ce code avec la votre, l’addresse vous l’obtenez quand vous faite le deployement avec truffle comme expliqué plus haut.

puis à partir du terminale de VSC dans le repertoire client, tappez la commande suivante qui vous lance un serveur http dans le repertoir client:

npx http-server

vous pouvez acceder à la page de la tombolla par le lien suivant:

http://127.0.0.1:8080/TombolaEnligne.html

eh voilà, metamask va s’ouvrir et vous allez choisir une address(account) pour parier, vous pouvez par la suite changer d’account et parier avec un autre utilisateur, une fois cela fait et que le corum est atteind, le resultat de la lotterie est affichée en bas avec le gagnant, bref le code est assez explissif.

pour plus d’approfondissement, je vous recommande le livre “Beginning Ethereum Smart Contracts Programming” .

Le code source se trouve ici https://github.com/Defcoq/TombolaSmartContract


Author: admin
26.08.2022, 08:58
Category: Blockchain
Comments: 0
Views: 323
-

Share

Comments (0)
There are no comments yet.

Leave A Comment
processing...