#投票 #模块 #二进制 #提交 #计票 #辅助 #提交-揭示

no-std edge-voting

Edgeware 辅助投票模块

1 个稳定版本

1.0.0 2020 年 10 月 14 日

#9#计票


用于 edge-signaling

GPL-3.0-or-later…

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

投票生命周期

投票将经过多个阶段,具体取决于投票类型。

  1. 预投票
  2. (可选) 提交
  3. 投票
  4. 完成

计票类型

  • 一人一票
  • 一币一票

投票类型

  • 二选一投票
  • 多选项投票
  • 提交-揭示投票

预投票

预投票阶段标记了投票的创建。此外,在此阶段不允许投票。目前此阶段正被 edge-signaling 模块使用。

提交

提交阶段用于需要提交/揭示方案的投票。在此阶段内,所有参与者提交承诺。提交阶段后,所有参与者应揭示。

投票

当投票使用提交/揭示方案时,投票阶段同时充当揭示阶段,否则为一般公开投票。

完成

完成阶段标记了投票的结束,这意味着在计票中不再考虑进一步的投票。

依赖项

~6–16MB
~216K SLoC