Aller directement au contenu
  • 0 Votes
    14 Messages
    12k Vues
    Crypto_KingC

    Une nouvelle “fonctionnalité” (ou pas) empêche maintenant de faire des copier-coller à partir de votre adresse publique de wallet pour la dernière version de Mist (V. 0.7.4) … c’est un peu déroutant

  • 0 Votes
    1 Messages
    2k Vues
    Personne n'a répondu
  • 0 Votes
    8 Messages
    14k Vues
    R

    @ffmad Bonsoir ffmad. Merci beaucoup pour ce tuto excellent. Je l’ai essayé et tout se passe à merveille sur testrpc. Cependant, quand je le test sur morden testnet, là c’est vraiment une autre paire de manche. D’abord, le déploiement ne fonctionne que si le compte n°0 “eth.coinbase” est débloqué. Ensuite le déploiement utilise du gaz à ce que j’ai vu. Et après avoir surmonter toutes les péripéties avec testnet, enfin la page web envoie une vraie transaction (vérifiée sur testnet.etherscan.io) mais la valeur du “temps du vote” ne change pas malgré que je suis sur le premier compte. J’ai cherché et j’ai remarqué que sur testrpc, Democracy.deployed().owner envoi bien l’adresse du compte 0 tandis que sur testnet la fonction envoie 0x. Avez vous une idée d’où peut venir cette erreur sur Testnet?

    Merci par avance pour votre aide
    Bien cordialement

  • 0 Votes
    6 Messages
    9k Vues
    ffmadF
    5 - Votons ! contract Democracy { uint public votingTimeInMinutes ; // Propriétaire du contrat address public owner; // Les membres (tableau adresse / appartenance aux votants) mapping (address => bool) public members; // Liste des propositions Proposal[] proposals; // Definition de l'objet proposal struct Proposal { string description; mapping (address => bool) voted; bool[] votes; uint end; bool adopted; } // Auth propriétaire uniquement modifier ownerOnly(){ if (msg.sender != owner) throw; _ } // Auth membre uniquement modifier memberOnly(){ if (!members[msg.sender]) throw; _ } // Si la proposition correspondant à cet index n'est pas ouverte au vote, la fonction n'est pas exécutée modifier isOpen(uint index) { if(now > proposals[index].end) throw; _ } // Si la proposition correspondant à cet index est fermée au vote, la fonction est exécutée modifier isClosed(uint index) { if(now < proposals[index].end) throw; _ } // Si le compte (msg.sender) a déjà vôté pour cette proposition, la fonction n'est pas exécutée modifier didNotVoteYet(uint index) { if(proposals[index].voted[msg.sender]) throw; _ } // Constructeur function Democracy() { owner = msg.sender; setVotingTime(votingTime); } // Fonction de modification du temps function setVotingTime(uint newVotingTime) ownerOnly() { votingTimeInMinutes = newVotingTime; } // Ajout des membres function addMember(address newMember) ownerOnly() { members[newMember] = true; } // Ajouter une proposition function addProposal(string description) memberOnly() { uint proposalID = proposals.length++; Proposal p = proposals[proposalID]; // Donner la description p.description = description; // Donner le moment de fin de vote p.end = now + votingTimeInMinutes * 1 minutes; } // Voter pour une proposition function vote(uint index, bool vote) memberOnly() isOpen(index) didNotVoteYet(index) { proposals[index].votes.push(vote); proposals[index].voted[msg.sender] = true; } // Obtenir le résultat d'un vote function executeProposal(uint index) isClosed(index) { uint yes; uint no; bool[] votes = proposals[index].votes; // On compte les pour et les contre for(uint counter = 0; counter < votes.length; counter++) { if(votes[counter]) { yes++; } else { no++; } } if(yes > no) { proposals[index].adopted = true; } } }

    Les conditions isOpen et isClosed vont vérifier que la date de fin de vote de la proposition index est passée ou non. Selon le cas, on pourra faire un nouveau vote via la fonction vote() ou obtenir le résultat de la proposition via la fonction executeProposal()

    La condition didNotVoteYet va vérifier que le compte souhaitant voter ne l’a pas déjà fait.

    fonction vote() function vote(uint index, bool vote) memberOnly() isOpen(index) didNotVoteYet(index) { proposals[index].votes.push(vote); proposals[index].voted[msg.sender] = true; }

    push permet d’ajouter le vote (booléen) à la liste des votes de l’objet proposal (trouvé à la position index dans la liste des propositions)

    On va ensuite modifier la variable voted associée au votant en true (cette variable ayant été mise par défaut à false)

    fonction executeProposal() // Obtenir le résultat d'un vote function executeProposal(uint index) isClosed(index) { uint yes; uint no; bool[] votes = proposals[index].votes; // On compte les pour et les contre for(uint counter = 0; counter < votes.length; counter++) { if(votes[counter]) { yes++; } else { no++; } } if(yes > no) { proposals[index].adopted = true; } }

    Cette fonction ne peut être exécutée que si la proposition (trouvée à index) est terminée. On va tout simplement parcourir le tableau des votes de la proposition et compter combien de votes oui et votes non ont été faits.

    Si il y a plus de votes oui que de votes non, la fonction va retourner un résultat positif (booléen true), sinon rien.

    Suite

    Avec ce code nous en avons donc finit avec notre contrat. Maintenant il serait agréable de pouvoir faire une application permettant de voter en utilisant ce contrat. vous pouvez voir cela dans la partie 2 :

  • 1 Votes
    3 Messages
    4k Vues
    ffmadF

    @Crypto_King la perspective d’homestead, le dump sur bitcoin et sûrement le nombre croissant d’articles autour d’Ethereum 🙂

  • Wiki Ethereum (en)

    Ethereum General
    1
    1 Votes
    1 Messages
    2k Vues
    Personne n'a répondu
  • 2 Votes
    3 Messages
    4k Vues
    ffmadF

    çà mérite une petite mise à jour 🙂

  • 2 Votes
    44 Messages
    66k Vues
    ffmadF

    @christophedlr a dit dans [VF] Construire avec Ethereum #1 : faire votre propre crypto-monnaie sans une ligne de code ! :

    C’est bien beau tous de donner votre wallet pour avoir ces CFR, mais ils ont aucune valeur lol.

    C’est pour la beauté du geste :grinning_face_with_smiling_eyes:

    (by the way, je ne sais pas où j’ai mis le wallet CFR …)

  • 0 Votes
    12 Messages
    14k Vues
    E

    En fait le POS est aussi un genre de minage, en version light (pas du brute force).
    Chaque bloc(transaction) recu murit apres un certain temps (Proof of Stake) et ca peut etre plus ou moins rapide selon les crypto monnaies.

    Il y a aussi un systeme de difficulté qui donne plus ou moins de chance à chaque bloc de “mûrir”, mais plus le bloc est ancien, plus il a de chances de faire des bébés. Au final on peut voir ca comme un genre de % d’intérêts.

    Certaines monnaies ont une valeur fixe (telle que AXIOM) lors d’un “stake” et d’autres fournissent un % de la transaction recue.

    Sinon, je ne sais pas trop ce qu’a choisi Ethereum pour le PoS… pour le moment.

  • 0 Votes
    7 Messages
    12k Vues
    TulseneT

    oui effectivement, ethminner requiert au mois 1.5Go de ram

  • Liste de tous les projets de DApps

    Épinglé DApps
    11
    4 Votes
    11 Messages
    16k Vues
    D

    Il faudrait rajouter :
    Etherplay - Jeux d’adresse sur ethereum http://etherplay.io

    🙂

  • Étapes du lancement d'Ethereum

    Ethereum General
    25
    2 Votes
    25 Messages
    43k Vues
    distoD

    Bonjour Kalina,
    Comme tu débutes vraiment, je te conseille de passer un peu de temps à lire les articles d’introduction sur le site Ethereum France (qu’-est-ce qu’ethereum, la blockchain, etc.), dont je suis le webmaster. Il y a aussi de la littérature facile à comprendre chez Blockchain France.
    Pour la procédure d’installation, je laisse les spécialistes :).

  • 0 Votes
    1 Messages
    3k Vues
    Personne n'a répondu
  • 0 Votes
    10 Messages
    7k Vues
    ffmadF

    @cobotica avec les bitcoins, ils payent le développement.

    Dans cette section tu peux voir le plan de lancement d’ethereum

  • [Video] Ethereum Paris

    Ethereum General
    1
    0 Votes
    1 Messages
    2k Vues
    Personne n'a répondu
  • 0 Votes
    4 Messages
    6k Vues
    V

    Bon, malgré quelques problèmes réseaux dans notre bâtiment…nous avons mis en place un live via Ustream…

    Pour en savoir plus rdv à 9h30 Mercredi 25 !!! 🙂

    go => http://ustre.am/1mNCS

  • 0 Votes
    1 Messages
    2k Vues
    Personne n'a répondu
  • 0 Votes
    1 Messages
    3k Vues
    Personne n'a répondu
  • Minage d'Ethers / Achat

    Ethereum General
    37
    0 Votes
    37 Messages
    32k Vues
    HildorH

    Tu as bien raison !

  • 1 Votes
    1 Messages
    4k Vues
    Personne n'a répondu