#state #fold #blocks #ethereum #reader #subscribe #grpc

eth-state-client-lib

一个以太坊读取库

4 个版本 (2 个破坏性版本)

0.9.0 2023 年 9 月 15 日
0.8.0 2023 年 9 月 11 日
0.7.1 2023 年 8 月 11 日
0.7.0 2023 年 8 月 11 日

#14 in #fold

自定义许可协议

55KB
1K SLoC

State Fold Picture

State Fold

一个库集合,包含用于通过任何以太坊 JSON-RPC API 提供商访问以太坊区块链上任何位置的自定义定义状态的 GRPC 服务器和客户端。

描述

无论您是想获取历史 区块 / 状态,还是订阅以获取最新添加到网络的 区块 / 状态,这两个用例在设计 State Fold 时都得到了考虑。

State Fold 服务器库 有用于 读取状态 的方法,以及类似用于 读取区块 的方法。您可以批量读取,也可以追溯到历史,还可以 订阅 以接收新的 状态,或者类似地 区块,随着它们在区块链上的添加而接收。

状态的定义结构取决于使用此库的开发者。类型定义一直传播到服务器和客户端库,即到 API 架构。采用这种方法的设计遵循 DRY 原则。这意味着我们只想让您编写一次类型,并使一切通用,这样您就可以不费额外努力获得服务器。

开发者还定义了用于读取 状态同步折叠 的行为,其中 sync 表示根据硬编码的 初始状态 计算状态,而 fold 表示根据 先前状态 计算状态。

需求

安装

将一个或多个 State Fold 仓库存入您的 Cargo.toml,如下所示

[dependencies]
# Common crate for all other crates
eth-state-fold-types = { version = "0.7" }

# Libraries for state-fold core logic
eth-block-history = { version = "0.7" }
eth-state-fold = { version = "0.7" }

# Common crate for server/client
eth-state-server-common = { version = "0.7", features = ["server"] }

# Libraries for state-fold GRPC interfaces
eth-state-server-lib = { version = "0.7" }
eth-state-client-lib = { version = "0.7" }

用法

本地开发环境

构建所有 crate 的所有目标

cargo build --all-targets --all-features

运行所有测试

cargo test

格式化代码

cargo fmt --all

文档

许可协议

此库根据 Apache-2.0 许可。

依赖关系

~26–43MB
~714K SLoC