20个版本 (12个重大更新)
新 0.13.0 | 2024年8月20日 |
---|---|
0.12.1 | 2024年3月27日 |
0.11.1 | 2024年3月9日 |
0.10.0 | 2023年9月25日 |
0.1.0 | 2019年10月8日 |
#38 in 神奇豆
每月下载量 3,275
用于 5 个crate(直接使用4个)
2MB
35K SLoC
zcash_client_backend
此库包含用于创建屏蔽式Zcash轻量级客户端的Rust结构和特性。
构建
请注意,为了(重新)构建GRPC接口,您需要在您的系统上安装protoc
。这仅在您更改./proto/
目录中的任何文件时才需要。
许可
根据您的选择,许可方式为以下之一:
- Apache许可证,版本2.0,(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
。
贡献
除非您明确声明,否则根据Apache-2.0许可中定义的,您有意提交以包含在工作中的任何贡献,应按上述方式双重许可,不得附加任何其他条款或条件。
lib.rs
:
一个用于实现Zcash轻量级客户端的crate。
zcash_client_backend
包含用于创建屏蔽型Zcash轻量级客户端的Rust结构和特质。
设计
钱包同步
在 data_api::chain
模块中的API可用于实现以下同步流程
┌─────────────┐ ┌─────────────┐
│Get required │ │ Update │
│subtree root │─▶│subtree roots│
│ range │ └─────────────┘
└─────────────┘ │
▼
┌─────────┐
│ Update │
┌────────────────────────────────▶│chain tip│◀──────┐
│ └─────────┘ │
│ │ │
│ ▼ │
┌─────────────┐ ┌────────────┐ ┌─────────────┐ │
│ Truncate │ │Split range │ │Get suggested│ │
│ wallet to │ │into batches│◀─│ scan ranges │ │
│rewind height│ └────────────┘ └─────────────┘ │
└─────────────┘ │ │
▲ ╱│╲ │
│ ┌ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │
┌────────┐ ┌───────────────┐ │ │
│ Choose │ │ │Download blocks│ │
│ rewind │ │ to cache │ │ │
│ height │ │ └───────────────┘ .───────────────────.
└────────┘ │ │ ( Scan ranges updated )
▲ │ ▼ `───────────────────'
│ ┌───────────┐ │ ▲
.───────────────┴─. │Scan cached│ .─────────. │
( Continuity error )◀────│ blocks │──▶( Success )───────┤
`───────────────┬─' └───────────┘ `─────────' │
│ │ │
│ ┌──────┴───────┐ │
▼ ▼ │ ▼
│┌─────────────┐┌─────────────┐ ┌──────────────────────┐
│Delete blocks││ Enhance ││ │Update wallet balance │
││ from cache ││transactions │ │ and sync progress │
└─────────────┘└─────────────┘│ └──────────────────────┘
└ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─
功能标志
依赖关系
~18–41MB
~686K SLoC