Antoine DESHAYS
Lucas DIGUET
Briac LE GUEN
Yumeng MA
Thomas QUENTEL
Louis SPIERENBURG
1 . Esprit du projet
2. Points importants
3. Difficultés rencontrées
4. Extensions possibles
Application de vote décentralisée
Blockchain privée
Smart contracts
Blockchain
Smart Contract
Front end
Navigateur
Blockchain : 3 noeuds dont 1 mineur
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);
}
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>`)
})
}
}
Javascript
Metamask
Travail distant
Déploiement du smart contract
Déploiement simplifié avec Docker
Affichage d'informations sur les candidats
Ajout de boutons de partage vers les réseaux sociaux
Merci de votre attention.