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):




No comments:

Post a Comment