> For the complete documentation index, see [llms.txt](https://docs.termina.technology/documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.termina.technology/documentation/developer-docs-zh/liu-cheng/sheng-cheng-shu-ju-ji/zi-ding-yi-shu-ju-ji.md).

# 自定义数据集

{% stepper %}
{% step %}

#### 确认覆盖范围

对于[预构建数据集](/documentation/developer-docs-zh/liu-cheng/sheng-cheng-shu-ju-ji/yu-gou-jian-shu-ju-ji.md)未覆盖的任何 slot 范围、市场或交易场所，都可以生成自定义数据集。

它们依赖于 [bundle](/documentation/developer-docs-zh/liu-cheng/zhong-fang-shi-chang.md)，bundle 包含某个 slot 范围内的历史交易。如果所需范围未被预构建 bundle 覆盖，请先构建自定义 bundle，再生成数据集。
{% endstep %}

{% step %}

#### 采集深度数据

默认情况下，深度是通过在每个交易场所的链上状态上模拟成交来测量的。如果要改为采集 Jupiter Metis 对同一批交易场所的视角，请设置 `--source router`。使用 `--market` 参数选择具体的交易对。

采集过程中也可以替换程序二进制文件，与[市场重放](/documentation/developer-docs-zh/liu-cheng/zhong-fang-shi-chang.md)中的做法相同，用来测量新逻辑对结果的影响。

```bash
sim depth measure \
--source onchain \
--start-slot 447458502 \
--end-slot 447458702 \
--market SOL-USDC \
--market BTC-USDC
```

```
issued: 9c30e2a3-9145-4d35-917d-03a7c709d076 (onchain, 447458502-447458702) in_progress
```

{% endstep %}

{% step %}

#### 监控状态

数据生成在云端运行，可以使用上一步输出中的任务 ID 查看进度。

```bash
sim depth status 9c30e2a3-9145-4d35-917d-03a7c709d076
```

```
status: 9c30e2a3-9145-4d35-917d-03a7c709d076 (onchain, 447458502-447458702) completed
```

{% endstep %}

{% step %}

#### 访问数据集

任务完成后，可以通过与预构建数据集相同的[凭证流程](/documentation/developer-docs-zh/liu-cheng/sheng-cheng-shu-ju-ji/yu-gou-jian-shu-ju-ji.md)在 S3 上访问该数据集。自定义数据集仅对发起请求的 API 密钥可见，其他用户无法访问。
{% endstep %}
{% endstepper %}

{% hint style="info" %}

#### 不止于深度

数据集并不局限于深度。[Rust 客户端](/documentation/developer-docs-zh/gai-shu/an-zhuang/rust-can-kao.md)可以在重放过程中探查状态并订阅账户更新，因此可以采集任意指标，例如预言机价格、金库余额或手续费累积。
{% endhint %}
