Logo ESILV

TP Blockchain Programming
Smart contracts

Quête

Cette série de TP souhaite permettre à chaque étudiant le développement d'une série de Smart Contract en Solidity (Ethereum).
Pour chaque cas d'usage, la même méthode est appliquée : Modélisation, Canvas, Développement.

Nota Bene
Pour chaque cas d'usage, les TP se limitent aux premières étapes d'un projet.
Les étudiants sont invités à tester le déploiement et le bon fonctionnement de leurs smart-contracts sur des noeuds Ethereum.

Livrable et notation

A la fin de la dernière séance, envoyer l'adresse de votre repository à votre encadrant, tel que :

Plateforme de développement et éditeur de texte

Versionning

Il n'y a pas d'installation nécessaire pour le développement des Smart Contract en Solidity. Nous utiliserons le Browser Solidity d'Ethereum.

Canevas

Canvas Blockchain Canevas Blockchain en version Excel

Dans l'onglet "Run", si l'adresse indiquée reste vide :
- Vérifier que MetaMask est bien connecté.
- Sauvegarde du code Solidity : Ctrl + A / Ctrl + C
- Rechargement de la page : Ctrl + R

Problème fréquent de connexion de MetaMask

Contexte

Prendre une décision commune et applicable est parfois source de débats. Afin de permettre à des personnes d'intérêts, de convictions, de compétences, ... différents, il est parfois nécessaire de recourir à un vote.
C'est pour cela qu'il existe une grande diversité de solutions, ... et qu'une technologie auditable (open source et open data), infalsifiable et peu onéreuse semble idéale pour ce cas d'usage.
A vous d'imaginer votre cas dans lequel l'utilisation d'un smart-contract serait *judicieux*.

Institut de sondage, vote d'une assemblée générale, référendum, ... détaillez, dans le canvas, les acteurs et les modalités de votre système.
- Y-a-t-il un organisateur désigné ?
- Qui seront les votants ?
- Quelles seront les propositions ?
- Qui peut ajouter une proposition ?
- Combien de temps durera le vote ?
- Comment seront calculés les résultats ?
- Peut-on faire des délégations ? Comment ?
- Quelles informations a-t-on sur les votants ? Comment s'assure-t-on que chacun ne vote que le nombre de fois autorisé ?

Une fois ces informations précisées et organisées dans le canevas, il vous sera plus facile de développer votre smart-contract Solidity.

Contexte

Une blockchain est la solution idéale pour se transmettre de la valeur :
- International
- Nul besoin d'intermédiaire
- Frais minimes
- Pas de délai
- Auditabilité complète rendant tout conflit impossible.

Logo Consensys

Consensys, une entreprise spécialisée dans le développement de smart-contracts Solidity, a alors jugé judicieux de normer ce qu'est un "Token". De même qu'il y a les RFC ("Request for comments") pour la normalisation d'Internet, ils ont défini les ERC. L'ERC#20 est une interface de smart-contract indiquant les fonctions que l'on attends d'un token.
L'interface de la norme EIP#20 (= ERC#20) est disponible sur leur repository Github. Hériter votre token de cette interface à l'aide de l'opérateur "is".
Vous disposez d'un exemple sur le repository.

Nous utilisons de nombreux tokens pour nous transmettre différentes valeurs : Actions d'entreprises, points de fidélité, monnaies locales, ...
Charge à vous, de définir le jeton/token que vous souhaitez implémenter.
- Quelle sera sa valeur ?
- Qui l'émettra ? En quelle quantité ? Sera-t-il possible d'un créer de nouveaux ? D'en détruire ?
- Faudra-t-il être authentifié pour en posséder ? pour en transmettre ? Si oui, par qui ?

Que le trading commence...

Contexte

Tester blockizor.com

Modélisation

Lister les acteurs, les actifs et les interactions

Canevas

Compléter le canevas

Smart Contract

Rédiger le Smart-contract pour la gestion d'actes notariés

Commit + Push le Smart-contract dans Github

Modélisation

Lister les acteurs, les actifs et les interactions

Canevas

Compléter le canevas

Smart Contract

Rédiger le Smart-contract pour le financement d'un projet.

Commit + Push le Smart-contract dans Github

Modélisation

Lister les acteurs, les actifs et les interactions

Canvas

Compléter le canevas

Smart Contract

Rédiger le Smart-contract pour la génération et le transfert de points de fidélité.

Commit + Push le Smart-contract dans Github

Rédaction d'un Smart-contract pour l'un des cas suivants :

Toujours avec un projet public dans GitHub avec documentation dans le ReadMe

Plusieurs outils permettent d'évaluer facilement le potentiel d'idées de business.
En // des Etudes de Marchés des écoles de commerce, vous trouverez ci-dessous deux canvas permettant de détailler une activité.
Complétez les pour un sujet/domaine dans lequel vous souhaitez évaluer les capacités de traction.

Canvas Business Model Canvas Value Proposition

De manière à tester les interractions avec vos smart contract suivez ce tutoriel