0.2.7 2022年8月16日
0.2.1 2022年8月14日

#7 in #streamer


用于 11 个 crate(通过 aptos-node

Apache-2.0

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