Blockchain

Antoine DESHAYS

Lucas DIGUET

Briac LE GUEN

Yumeng MA

Thomas QUENTEL

Louis SPIERENBURG

Sommaire

1 . Esprit du projet

2. Points importants

3. Difficultés rencontrées

4. Extensions possibles

Le projet

Application de vote décentralisée

Blockchain privée

Smart contracts

TECHNOLOGIES

ORGANISATION

Infrastructure

Blockchain

Smart Contract

Front end

Navigateur

BACK END

Blockchain : 3 noeuds dont 1 mineur

BACK END

Smartcontract : gestion des événements

  function vote (uint _candidateId) public {
        require(!voters[msg.sender]);
        //require(_candidateId > 0 && _candidateId <= numCandidates);
        voters[msg.sender] = true;
        candidates[_candidateId].voteCount ++;
        emit votedEvent(_candidateId);
    }

FRONT END

Javascript

VotingContract.setProvider(window.web3.currentProvider);
    console.log(window.web3);
    VotingContract.defaults({from: window.web3.eth.defaultAccount,gas:6721975})
    VotingContract.deployed().then(function(instance){
      instance.getNumOfCandidates().then(function(numOfCandidates){
        console.log(numOfCandidates);
        if (numOfCandidates == 0){
            $("#candidate-radio").append(`<p>Aucun Candidat n'est inscrit pour le moment</p>`)
        }
        else {

          for (var i = 0; i < numOfCandidates; i++ ){
            instance.getCandidate(i+1).then(function(data){
              $("#candidate-radio").append(`<div class="form-check">
              <input class="form-check-input" type="radio" name="candidate" value="" id=${data[0]}>
              	<label class="form-check-label" for=${data[0]}>${data[1]}</label></div>`)
            })
          }
        }

FRONT END

Javascript

FRONT END

Metamask

DIFFICULTÉS

Travail distant

 

Déploiement du smart contract

EXTENSIONS

Déploiement simplifié avec Docker

 

Affichage d'informations sur les candidats

 

Ajout de boutons de partage vers les réseaux sociaux

DÉMONSTRATION

Merci de votre attention.

Made with Slides.com