186 个版本 (16 个重大变更)
0.17.6 | 2024 年 7 月 29 日 |
---|---|
0.17.4 | 2024 年 6 月 4 日 |
0.16.1 | 2024 年 3 月 28 日 |
0.10.0 | 2023 年 12 月 28 日 |
0.4.1 | 2023 年 7 月 31 日 |
#25 in WebSocket
1,451 每月下载量
在 13 个 Crates 中使用 (直接使用 9)
385KB
7K SLoC
sn_protocol
概览
sn_protocol
目录包含 Safe Network 的核心协议逻辑。它包括处理协议不同方面的各种模块,例如错误处理、消息和存储。
目录
错误处理
error.rs
文件包含协议中可能发生的各种错误的定义。
错误类型
ChunkNotFound(ChunkAddress)
:指示未找到数据块。- 示例:
Result::Err(Error::ChunkNotFound(chunk_address))
- 示例:
ChunkNotStored(XorName)
:指示未存储数据块。- 示例:
Result::Err(Error::ChunkNotStored(xor_name))
- 示例:
RegisterNotFound(Box<RegisterAddress>)
:表示未找到寄存器。- 示例:
Result::Err(Error::RegisterNotFound(register_address))
- 示例:
SpendNotFound(SpendAddress)
:表示未找到支出。- 示例:
Result::Err(Error::SpendNotFound(cash_note_address))
- 示例:
DoubleSpendAttempt(Box<SignedSpend>, Box<SignedSpend>)
:表示有双花尝试。- 示例:
Result::Err(Error::DoubleSpendAttempt(spend1, spend2))
- 示例:
消息
《messages
》模块包含可以在协议内发送或接收的不同类型的消息。
命令消息
Cmd::Replicate
- 描述:写入操作,通知对等方从持有者获取
NetworkAddress
列表。 - 参数:
holder: NetworkAddress
:复制密钥的持有者。keys: Vec<NetworkAddress>
:要复制的副本密钥。
查询消息
查询::GetStoreCost
- 描述:检索在给定地址存储记录的成本。
- 参数:
address: NetworkAddress
:记录将被存储的地址。
响应消息
查询响应::GetStoreCost
- 描述:存储下一个记录的存储成本(以纳诺为单位)。
- 参数:
store_cost: Result<Token>
:存储记录的成本。payment_address: PublicAddress
:支付存储成本的地址。
CmdResponse::Replicate
- 描述:对复制命令的响应。
- 参数:
Result<()>
:复制命令的结果。
存储
《storage
》模块处理协议的存储方面。
API调用
ChunkAddress
:网络中块的地址。SpendAddress
:网络中CashNote的支出的地址。Header
:存储项的标题信息。
Protobuf 定义
safenode_proto
目录包含 Safe Network 的 Protocol Buffers 定义。
文件
req_resp_types.proto
:请求和响应类型的定义。safenode.proto
:Safe Network 的主要 Protocol Buffers 定义。
依赖
~27–41MB
~857K SLoC