Sur ma page facebook (https://www.facebook.com/profile.php?id=100011294258548), j’ai fait une serie de post pour parler de blockchaine et des technologies liées tout au tour surtout sur le point de vue d’un developpeur. Beaucoup de mes followers qui sont géneralement des developpeurs débutants, m’ont demandé de faire des exemples concrets des app (ou DAPP = application decentralisée) sur les blochaines. Je me propose dans une serie de 3 articles de faire 3 applications concretes sur les blockchaines:
NB: l’objectif de ces series n’est pas de ré-expliquer de nouveau tout ce que j’ai dejà expliqué sur ma page sur les blockchaine il suffit juste de faire des recherches sur facebook avec le mot clé “blockchaine gallinocoq” et vous aurez tous les articles que j’ai écrit pour expliquer de manière terre à terre ce qu’est une blockchaine et ce qu’on peut faire dessus. Ce post n’est n’ont plus un post pour vous apprendre le langage solidity iutilisé pour faire des smart contracts sur la blockhaine ethereum. Si vous connaissez dejà un langage de programmation, c’est assez suffisant pour comprendre le source code des differents projets et se faire sa propre idée, l’idée ici est juste de vous donner des pistes pour arriver à la réalisation de vos propres DAPPS sur les blockchaines.
Pour créer sa propre cryptomonnaie on a deux solutions : soit créer sa propre blockchaine et par consequence un réseau decentralisé pour cette blockchaine, soit utiliser une blockchaine existante dans un réseau decentralisé existant et c’est cette deuxième solution que nous allons implementé dans cet article, une cryptomonnaie dans une blockchaine et un réseau existant est le plus souvent appellé un “Token”(ou jeton) et j’en ai parlé sur ma page facebook du concept de jeton. Un token sur le réseau ethereum est en fait un smart contract qui respecte le protocole ERC20, sur binance chain on parlera du protocole BEP20.
Qu’est ce qu’il nous faut pour créer notre propre cryptomonnaie sur la blockchaine ethereum?
npm install -g truffle
si vous faite “truffle version” vous obtienderz la version exacte de truffle dans votre machine comme moi en image:
La cryptomonnaie qu’on va créer ici s’appelle “TontinarCoin” en abbrégé “TNAR” (Je suis du cameroun et les tontinars sont ceux qui font de la tontine et cette cryptomonnaie pourrait etre vraiment utilisé par les amis tontinars pour faire des transctions entre eux ainsi eviter de passer par les banques), on va successivement par la suite créer une page web en react pour commercialiser notre cryptommonaie, bref pour la lever de fond, ce qu’on appelle un ICO ou mieux un crowdsales, il faut que nous donnons l’opportunité aux nombreux tontinars de pouver acheter et vendre le “TontinarCoin” non?
c’est partit dans powershell crée un repertoir ““TontinarCoin”” en tappant les commandes suivantes: la première crée un repertoire et la deuxième navigue dans ce repertore, la troisième commande si vous avez VSC (visual studio code)
mkdir
TontinarCoincd
TontinarCoin code .
voici mon powershell
Voici mon VSC ou j’ai dejà tout affreté pour commencer à developper, y compris creer un terminale dans VSC ou je vais desormais lancer mes commandes
Cette fois ci dans le terminale de VSC tappez une après l’autre les commandes suivantes : la première permet d’initialiser un projet truffle qui nous permettra d’ecrire notre smart contract du token ERC20 en langage solidity, la deuxième initie un projet nodejs et la troisième nous installe une bibliothèque pour faciliter le developpement des token ERC20
truffle init
npm init -y
npm install @openzeppelin/contracts
Une fois fait votre visual studio code ressemblera à ceci:
remplacez le contenu de votre fichier “truffle-config.js” par : en fait ce fichier contient les configurations de truffle qui indique par exemple les reseau blockchaine ou on veut deployer les smart contract ainsi que les versions du compilateur du langage solidity qu’on va utiliser dans le projet car c’est truffle qui va s’occuper de la compilation du code solidity des smart contract en byte code qui est l’unique chose que comprend la machine virtuelle ethereum appellée EVM ( Ethereum Virtual Machine qui est exactement comme la machine virtuelle de java JVM ou la CLR de dotnet, j’en ai parlé de cet aspect sur mes articles sur facebook), dans le noeud “network ” de ce fichier, le “development” pointe sur notre fameux reseau “Ganache” qui tourne à la porte 7545 en localhost(127.0.0.1) donc quand nous lancerons la commande de deployement de truffle sans specifier le network, il va le deployer sur notre blockchaine locale sur ganache.
Dans le repertoire “Contract”, creer les fichiers solidity suivants (remarquez l’extension .sol comme solidity donc ces fichiers vont contenir le code solidity qui va decrire les smart contract qui vont nopus servire à faire notre levée de fond):
TontinarToken.sol (contient le code source de notre token), remarquez bien que notre token(TontinarToken) herite de ERC20 de openzeppelin qui est la bibliothèque qu’on a installé auparavent et qui contient dejà toutes les specifités du standard ECR20 qui régit le token dans ethereum, donc en fait le gros du boulot est dejà fait dans cette bibliothèque, on ne doit pas ré-inventé la roue, et toutes les cryptomonnaie que vous avez sur les plateformes d’echange sont fait exactement comme vous voyez là.
KycContract.sol : ce fichier contient le code qui va nous definir le KYC en fait dans un levée de fond, on doit savoir qui sont réelleement ceux qui participent, bref on peur definir une whitelist donc une liste blanche des investisseurs pour eviter que n’importe qui fasse du n’importe quoi, bref pour donner un peu duu serieux à notre levée de fond quoi, bref les fichier ou les smart contract que nous allons creer actuellment sont le plus pour faire la levée des fonds.
Crowdsale.sol : ce fichier contient la logique pour gerer la levée de fond proprement dite.
TontinarTokenSale.sol : ce fichier contient notre levée de fond qui sera basé sur notre token TNAR.
Au finale, votre VSC ressemblera à ceci:
Maintenant, nous allons deployé notre contrat sur la blockchaine ethereum locale (ganache), pour se faire, allez dans le repertoire “migration” et creez un nouveau fichier “2_deploy_contracts.js”
creez egalement dans la racine du projet un fichier “.env” contenant le code suivant, en fait INITIAL_TOKENS c’est le nombre de token de depart que vous voulez mettre en circulation pour que les potentiels investisseurs achetent, la moi j’ai mis 1 million de TNAR, le MNEMONIC c’est votre MNEMONIC lorsque vous avez installez metamask, et le PROJECT_ID c’est le code de votre projet sur infuria (https://infura.io/) si vous n’avez pas un compte sur infuria, creez le , ce compte n’est pas necessaire pour deployer notre contrat sur Ganache, mais si vous voulez deployer le contrat sur une blockchaine publique ethereum comme le mainnet ou celui de test comme rostpen network, il est plus facile de passer par infuria pour le faire, raison pour laquelle infuria est integré à ce projet.
Installez les libraries npm suivante qui nous seront très utiles;
npm install
truffle/hdwallet-providernpm install
dotenv@10.0.0npm install
object-keys@0.4.0
Compilé à present notre smart contract en tappant la commande.
truffle compile
Vous aurez la creation d’un repertoire client/src/abi avec tout ce qu’il faut pour interagir en javascript avec notre smart contract une fois qu’on l’aura installé dans la blockchaine.
Tappez ensuite la commande suivante pour deployer notre smart contract sur le reseau blockchain locale Ganache
truffle migrate — reset
cette commande va faire les transactions sur notre reseau locale pour y deployer nos differents smart contract
Vous pouvez egalement contactez le deployement sur l’interface de ganache
Passons actuellement à la creation d’une application react qui va nous permettre de faire la levée de fond proprement dite car il faut bien que les potentiels tontinars puissent acheter notre cryptomonnaie non?
tappez la commande suivante pour creer une app react
npx create-react-app client
Ce projet n’ayant pas pour but de décrire comment on travaille avec react, j’invites le lecteur à telecharger le code source de ce projet (il s’agit en fait d’une application banale en react qui utilise juste la librairie web3.js pour se connecter au reseau ethereum à travers metamask), une fois le code source telecharger, remplacer le contenu du projet react creer precedement par celui du code source puis à travers powershell, acceder au repertoire “client” et tappez la commande
npm install
puis successivement
npm start
ceci va vous lancer la page web pour faire la levée de fond, j’ai laisée expressement tout en anglais car mes resources sont en anglais et vous devez juste faire un effort de le comprendre.
une fois que vous avez lancez le site, on a la page suivante (moi je suis partit sur une simulation de 5 token seulement dans ma levèe de fond):
Faite un click sur “Complete Your KYC” pour aller à la page ou il faut inserrer votre addresse du wallet, ici je vais me connecter avec mon account 5 que j’ai utilisé depuis le debut de cet article, je copie cet addresse de metamaske puis je le colle à la page
Maintenant, voilà je suis habiliter dans la liste des persones pouvant investire dans tontinardCoin, je peux à present acheter un TNAR et à chaque fois metamask me demande la confirmation car je dois debourser de l’ether de mon wallet pour l’achat de ce token
Voilà j’ai à present 1 TNAR dans mon wallet et je peux avoir tous les info possibles de mon wallet
Je peux meme voir mon token dans mon wallet sur metamask, il suffit juste de ,copier l’addresse du smart contrat du token dans Ganache et fait une importation du token dans metamask
j’ai à present un TNAR dans mon wallet que je peux echanger avec d’autres cryptomonnaies.
Je vais à present importer un autre account de ganache à metamask en copiant sa clée privée
Je me connecte donc à metamask avec l’account 6
Je peux à present acheter aussi des TNAR de la meme manière qu’avec l’account 5 et ainsi de suite.
Voilà de manière simple comment on procède pour la creation d’une cryptomonnaie sur une blockchaine existante, si vous voulez le deployer sur le reseau publique ethereum par exemple sur le reseau de test rostpen, creer un projet infuria (ou passez par alchemy => https://docs.alchemy.com/alchemy/tutorials/hello-world-smart-contract) il suffira de le deployer tout simplement en tappant la commande suivante (il faudrait aussi que l’accout utiliser pour deployer le contrat ait un peu de ether, dans le reseau test rotspen, on peut obtenir un peu d’ether en utilisant le site faucet comme par exemple ici https://faucet.egorfine.com/ , il suffit juste d’indiquer l’addresse de l’account et hop, vous aurez quelques ether qui vous permettra de deployer le contrat car toutes transactions sur le reseau ethereum se paye en gas (wei donc ether)):
truffle migrate --reset --network ropsten
truffle dispose egalement de plusieurs template pour faire des DAPPS par bexemple si nous voulons creer un projet de smart contract plus le client web en react on peut juste tapper la commande suivante et il vous creera un template d’un projet complet comme celui que nous avaons fait pas à pas sur cet article qui comprend non seulement l’ossature pour la creation des smart contract, mais aussi le projet react pour la DAPPS pour toutes les types de projets et template de truffle c’est ici https://trufflesuite.com/boxes/index.html:
truffle unbox react
Le code source complet de ce projet se trouve sur mon compte github ici https://github.com/Defcoq/TontinarCoin
https://odessaforum.biz.ua/ Guest
27.07.2024, 02:05
Post: QuizCodeur...Enfin Disponible sur google play
https://odessaforum.biz.ua/ Guest
24.07.2024, 15:11
Post: Peut on faire du developpement web en local sans le HTTP? ou mieux c'est quoi le localhost?
Https://Odessaforum.BIZ.Ua Guest
21.07.2024, 11:13
Post: QuizCodeur...Enfin Disponible sur google play
Https://Odessaforum.BIZ.Ua Guest
21.07.2024, 11:12
Post: QuizCodeur...Enfin Disponible sur google play