1 个稳定版本
1.0.0 | 2020 年 10 月 14 日 |
---|
#9 在 #计票
35KB
759 代码行
edge_voting
本模块包含投票逻辑。它目前支持二选一和多选项选举,使用 Blake2Hash 函数作为哈希算法的提交/揭示方案。
设置
安装 Rust 或更新到最新版本。
curl https://sh.rustup.rs -sSf | sh
rustup update nightly
rustup target add wasm32-unknown-unknown --toolchain nightly
rustup update stable
cargo install --git https://github.com/alexcrichton/wasm-gc
您还需要安装以下包
Linux
sudo apt install cmake pkg-config libssl-dev git clang libclang-dev
Mac
brew install cmake pkg-config openssl git llvm
投票生命周期
投票将经过多个阶段,具体取决于投票类型。
- 预投票
- (可选) 提交
- 投票
- 完成
计票类型
- 一人一票
- 一币一票
投票类型
- 二选一投票
- 多选项投票
- 提交-揭示投票
预投票
预投票阶段标记了投票的创建。此外,在此阶段不允许投票。目前此阶段正被 edge-signaling 模块使用。
提交
提交阶段用于需要提交/揭示方案的投票。在此阶段内,所有参与者提交承诺。提交阶段后,所有参与者应揭示。
投票
当投票使用提交/揭示方案时,投票阶段同时充当揭示阶段,否则为一般公开投票。
完成
完成阶段标记了投票的结束,这意味着在计票中不再考虑进一步的投票。
依赖项
~6–16MB
~216K SLoC