0.2.7 |
|
---|---|
0.2.1 |
|
#7 in #streamer
用于 11 个 crate(通过 aptos-node)
3MB
56K SLoC
API
此模块提供了一个用于从 Aptos 区块链推送 protobuf 数据的 StreamingFast Streamer
概述
模型
模型或类型在 aptos-api-types
包(在目录 /api/types
)中定义。
这些类型处理内部数据类型和 API 响应 JSON 类型之间的反序列化。然后使用这些类型来构建 Protobuf 消息。
错误处理
所有内部错误应首先转换为 anyhow::Error
。
单元测试
处理程序测试应涵盖所有功能和功能的所有方面。
实现了一个 TestContext
来创建 API 处理程序连接到的组件的存根。这些存根更接近实际的生成组件,而不是模拟,以确保测试可以确保处理程序与系统中的其他组件良好协作。例如,我们使用实际的 AptosDB 实现在测试 API 层与数据库交互。
大多数实用函数由 TestContext
提供。
集成/烟雾测试
在 testsuite/smoke-test
中运行集成/烟雾测试
cargo test --test "forge" "api::"
Aptos 节点操作
Aptos 节点生成以下默认 SF-Stream 配置
sf_stream:
enabled: false
当 sf_stream.enabled
设置为 true
时,SF-Stream 将启用,并将事务流式传输到 stdout。
安装 Protobuf 编译器
安装 protoc
protoc 是一个 Protocol Buffer 编译器。它用于从您创建或通过第三方 Substreams 包获得的 protobuf 定义中生成 Rust 和其他语言的代码。
有多种方法可以实现。以下是 protocol buffer 编译器 的官方文档。
安装 protoc-gen-prost
该工具帮助您将 protobuf 定义转换为 Rust 结构,以便在 Substreams 模块中使用。它通过 protoc 的插件系统调用。使用以下命令安装它:
cargo install protoc-gen-prost
如果您忘记安装
protoc
,则在生成定义时可能会看到有关cmake
未定义的错误,这是在找不到protoc
时的后备方案。
安装 buf
https://buf.build 是一个用于简化任何语言中类型化结构生成的工具。它调用 protoc
并简化了许多事情。Substreams 包与 buf Images 兼容。
请在此处查看 安装说明。
构建 proto
cargo build
测试
连接到 Firehose
要测试 firehose,我们需要构建 aptos-node
cd ../aptos-node
cargo install --path .
如果需要,设置 aptos-node 的路径
export PATH={path to directory containing aptos-core repo}:$PATH
然后按照 https://github.com/streamingfast/firehose-aptos 中的说明操作
依赖项
~94MB
~2M SLoC