---
# System prepended metadata

title: Voting System Prototype

---

# Voting System

## Ticket type

Different ticket should have different type

### Config: C
    CC   -> config 開始
    C:[candidate name]
    C-[voter public key]

### Vote: ACCESS ticket type

After CRKE, voter automatically send an u-token requiring cadidate information.

    "A"  should be automatically sent to get the candidates. 0.[name]1.[name] will be the format sent back to voter.
    
Sending the index after "V" to mention which candidate you want to vote. 

    V:[index]
    
### Tally: T

After CRKE, voter automatically send "TC" to get the tickets every cadidate gets.
    
    0:name,ticket number:1:name,ticket number:

after that, voter automatically send "TV[index]" multiple times to get the voter informations.

    [publickey]:[vote or not(0 for false, 1 for true)]
    
Voting machine will send a "-----" when index is larger than the number of voter number.

the "TV[index]" cmd will end up sending after receiving a "-----" from voting machine, which means all the public keys were sent.

### Permission Less
    message_operation : "PERMISSIONLESS"
    message_type : "PERMISSIONLESS"
    message_str : ""
    
    回傳：
    message_operation : "PERMISSIONLESS"
    message_type : "RTICKET"
    message_str : {
        candidate_0: name
        candidate_1: name
        voter_0: name
        voter_1: name
    }

