Saturday 15 October 2016

Solidity

Here is some code from ether.fund:

contract Ballot {
    // Create a new ballot with $(_numProposals) different proposals.
    function Ballot(uint8 _numProposals) {
        address sender = 0x123; // msg.sender
        chairperson = sender;
        numProposals = _numProposals;
    }

    // Give $(voter) the right to vote on this ballot.
    // May only be called by $(chairperson).
    function giveRightToVote(address voter) {
        if (/*msg.sender != chairperson ||*/ voted[voter]) return;
        voterWeight[voter] = 1;
    }

    // Delegate your vote to the voter $(to).
    function delegate(address to) {
        address sender = 0x123; // msg.sender
        if (voted[sender]) return;
        while (delegations[to] != address(0) && delegations[to] != sender)
            to = delegations[to];
        if (to == sender) return;
        voted[sender] = true;
        delegations[sender] = to;
        if (voted[to]) voteCounts[votes[to]] += voterWeight[sender];
        else voterWeight[to] += voterWeight[sender];
    }

    // Give a single vote to proposal $(proposal).
    function vote(uint8 proposal) {
        address sender = 0x123; // msg.sender
        if (voted[sender] || proposal >= numProposals) return;
        voted[sender] = true;
        votes[sender] = proposal;
        voteCounts[proposal] += voterWeight[sender];
    }

    function winningProposal() const returns (uint8 winningProposal) {
        uint256 winningVoteCount = 0;
        uint8 proposal = 0;
        while (proposal < numProposals) {
            if (voteCounts[proposal] > winningVoteCount) {
                winningVoteCount = voteCounts[proposal];
                winningProposal = proposal;
            }
            ++proposal;
        }
    }

I am interested in building a trust system and voting will be a part of that. I am unsure how currently a node can access data relevant to an external contract. Ethereum.org states that voting is possible using Ethereum. They also talk about a concept of Liquid Democracy.

I googled this and found a useful site talking about some of the issues - stackexchange.


A video follows which has some details about TrustDavis and a Reputation Systems (Farmer & Glass):




1 comment:

  1. Invest in Ethereum on eToro the World's Best Social Trading Network.

    Join millions who have already discovered easier methods for investing in Ethereum...

    Learn from profitable eToro traders or copy their positions automatically!

    ReplyDelete