12个版本 (破坏性更新)
0.8.2 | 2022年9月5日 |
---|---|
0.7.0 | 2022年9月1日 |
0.1.0 | 2021年8月11日 |
#737 在 并发
每月下载 28 次
25KB
504 行
多方计算实验库
此库模拟了在多方计算协议中协作的多个参与者。模拟器为每个参与者分配一个单独的线程,并通过异步通道模拟通信通道。跟踪每个参与者传输的字节数,并通过计时等附加功能,允许开发者通过检查评估协议后的结果统计数据来获得性能的清晰视图。
要实现一个协议,必须为自定义结构实现 Protocol<I,O>
特性。 I
是输入类型,而 O
是输出类型。这里的重要方法是 fn run_party(id: usize, n_parties: usize, this_party: Party, input: I) -> (PartyStats, O);
,它包含单个参与者运行的代码。参与者学习其独特的 id
、总参与者数 n_parties
和其 input
。this_party
对象提供发送和接收消息等功能。除了此方的协议输出外,此方法还必须输出此方的统计数据,可以使用 this_party.get_stats()
来完成。
在实现 run_party
后,开发者可以通过调用 evaluate(5, vec![10; 5])
来评估特定数量的参与方及其相应的输入的协议,例如。在这种情况下,将启动五个具有输入 10
的参与方。
依赖关系
~4.5MB
~74K SLoC