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
一个库集合,包含用于通过任何以太坊 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