5 个版本 (破坏性更新)
0.7.0 | 2024年7月9日 |
---|---|
0.4.0 | 2023年6月19日 |
0.3.0 | 2023年6月14日 |
0.2.0 | 2023年6月14日 |
0.1.0 | 2023年6月13日 |
在 密码学 中排名 170
每月下载量 222
120KB
2K SLoC
多方计算协议
为使用噪声协议和 WebSocket 进行传输层设计的端到端加密中继服务,适用于使用噪声协议和 WebSocket 构建的 MPC/TSS 应用。
该服务便于对等方之间的安全通信,但不处理公钥交换或会面点。
要使用中继服务,客户端必须知道服务器的公钥和会话中所有参与者的公钥。
创建一个共享会话标识符的会面点以执行 MPC/TSS 协议的任务留给应用程序。通常,这可以通过将会话标识符编码到 URL 中并与所有参与者共享来实现。
服务器安装
cargo install mpc-relay
文档
客户端实现使用 web-sys 进行 WebAssembly,并使用 tokio-tungstenite 进行其他平台。
开发
入门
您需要 rust 工具链和一些其他工具
cargo install cargo-make
cargo install wasm-pack
最低支持的 rust 版本 (MSRV) 为 1.68.1。
运行 gen-keys
任务以设置服务器和测试规范密钥对
cargo make gen-keys
服务器
启动服务器
cargo run -- start config.toml
文档
cargo make doc
测试
本地平台
要使用本地客户端运行测试
cargo make test
Web 平台
要使用 WebAssembly 测试 Web 客户端,首先启动测试服务器(端口 8008)
cargo make test-server
现在您可以运行 WebAssembly 测试
cargo make test-wasm
端到端测试
WebAssembly 测试无法模拟密钥生成和签名,因为在单线程环境中计算过于密集,集成测试会在完成之前触发浏览器脚本超时。
要运行 Web 平台端到端测试,首先编译 WebAssembly 绑定
cargo make bindings
然后生成测试文件
cargo make gen-e2e
启动服务器进行端到端测试
cargo make e2e-server
注意,我们不使用test-server
任务,因为端到端测试使用具有不同超时设置的配置。
然后启动开发服务器(端口9009),用于提供HTML和JavaScript。
cargo make dev-server
运行测试规范需要playwright,因此首先安装端到端测试的依赖项,然后是playwright浏览器。
cd tests/e2e
npm install
npx playwright install
然后你应该能够运行端到端测试。
npm test
或者运行带头浏览器以查看浏览器,这对于调试可能很有用。
npm run test-headed
或者使用playwright UI。
npm run test-ui
如果您需要调试测试规范,也可以在浏览器中手动打开页面,首先打开启动页面/cggmp/p1.html
,然后打开参与页面/cggmp/p2.html
和/cggmp/p3.html
,这些页面位于https://127.0.0.1:9009
开发服务器上。
许可证
绑定和驱动程序包在GPLv3许可证下发布,所有其他代码要么是MIT许可证,要么是Apache-2.0许可证。
依赖关系
~7-22MB
~329K SLoC