15 个重大版本
0.16.2 | 2024年6月17日 |
---|---|
0.15.0 | 2024年1月24日 |
0.13.0 | 2023年12月11日 |
0.12.0 | 2023年11月15日 |
0.2.0 | 2022年9月7日 |
#86 in #chain
147,461 每月下载量
在 24 个crate(2 直接)中使用
4.5MB
79K SLoC
Smoldot 轻客户端库。
此库提供了一种创建轻客户端的简单方法。
此轻客户端对某些方面有明确观点:它下载的内容、它愿意消耗的内存和CPU等。
用法
初始化
为了使用轻客户端,请调用 Client::new
,传递一个实现 platform::PlatformRef
特性的类型。有关 platform::PlatformRef
特性的更多信息,请参阅其文档。
Client
包含两个泛型参数
platform::PlatformRef
特性的实现。- 一个不透明的用户数据。如果您不使用它,您可以直接使用
()
。
当此库的 std
功能启用时,可以使用 platform::DefaultPlatform
结构作为 platform::PlatformRef
的实现。
例如
use smoldot_light::{Client, platform::DefaultPlatform};
let client = Client::new(DefaultPlatform::new(env!("CARGO_PKG_NAME").into(), env!("CARGO_PKG_VERSION").into()));
如果禁用了此库的 std
功能,则需要手动实现 platform::PlatformRef
特性。
添加链
客户端初始化后,使用 Client::add_chain
请求客户端连接到该链。有关要提供的信息,请参阅 AddChainConfig
的文档。
Client::add_chain
返回一个 ChainId
,用于在 Client
中识别链。可以将 Client
视为链连接的集合,每个连接由其 ChainId
识别,类似于一个 HashMap<ChainId, ...>
。
可以使用 Client::remove_chain
在任何时候移除链。这将导致客户端停止所有连接并清理其内部服务。调用该方法后,ChainId
立即被视为无效。
JSON-RPC 请求和响应
一旦添加了链,就可以使用 Client::json_rpc_request
发送 JSON-RPC 请求。
此函数的请求参数必须是一个文本形式的 JSON-RPC 请求。例如:{"id":53,"jsonrpc":"2.0","method":"system_name","params":[]}
。
调用 Client::json_rpc_request
将请求排队到客户端的内部。稍后,客户端将处理它。
可以通过调用在添加链之后返回的 AddChainSuccess::json_rpc_responses
来获取响应。
依赖项
~15–30MB
~496K SLoC