# 什么是Singularity

Singularity提供了一种端到端的解决方案，旨在简化将数据集上载到Filecoin存储提供者的过程。作为一个容纳大规模数据的能力，Singularity集成了一切必要的内容，以便实现高效的批量上载。

Singularity的独特之处在于其模块化设计。这确保了与各种数据准备和交易工具和服务的兼容性。

迄今为止，Singularity用户已成功将超过140 PiB的数据上载到Filecoin存储提供者，使其成为Filecoin社区内领先的数据准备工具。

## 数据准备

配备了专门的数据准备模块，Singularity可以处理来自本地文件系统或远程存储服务的数据。通过将任务分布到多个数据准备工作节点上，Singularity实现了令人印象深刻的水平扩展性。

### 与40多个存储解决方案的兼容性

Singularity作为唯一一个与超过40个各种各样的远程存储服务连接的工具，脱颖而出。这包括热门的消费产品如Dropbox和Google Drive，以及企业级解决方案如AWS S3，Azure Blob Storage，FTP，HDFS等。这种兼容性确保了与用户现有存储设置的无缝集成。

### 革命性的联机准备功能

Singularity引入了联机准备的概念，消除了存储CAR文件所需的额外磁盘空间。取而代之的是，维护一个元数据数据库，将CAR文件与其原始数据源进行链接。这使得存储提供者可以直接从这些原始来源导入内容。

### 保护数据集完整性

用户会很喜欢Singularity保持数据集的层次结构的能力。文件夹结构和文件版本保持不变，便于通过路径轻松导航和检索文件。

## 内容分发

除了准备工作，Singularity还兼具灵活的存储提供者功能，消除了传统存储提供者操作，如密封和证明。用户可以使用一系列协议（包括Graphsync、HTTP和Bitswap）轻松下载Singularity中的CAR文件或原始文件。

### 高效的CAR文件分发

通过联机准备，存储提供者可以迅速从Singularity下载CAR文件。它可以优化地直接从原始数据源中流式传输CAR文件。这个流程还可以与Boost市场交易集成，并且支持多线程。

### 便捷的内容检索

对于所有已准备好的文件，Singularity提供Graphsync/HTTP/Bitswap检索。这个功能使Singularity成为传统存储提供者的替代方案，无需存储证明。

## 交易处理

对于当前版本，Singularity要求用户提供自己的存储提供者列表，以便接受交易。用户可以选择两种交易处理模式：

### 推送模式

在这种模式下，Singularity客户端决定交易分配的方法，无论是一次性批处理还是定期任务。他们可以预设每个时间间隔的交易数量，指定最大交易量或交易大小，并定义可允许的在途交易数量。在交易被取消、到期或在链上消失的情况下，Singularity还负责管理交易的续签。

### 拉取模式

这种模式赋予了存储提供者更多的独立权力。只要与Singularity客户端定义的策略相符，并且存储提供者在批准列表上，他们就可以独立请求交易提案。

### 钱包管理

Singularity还提供了强大的钱包管理功能。用户可以使用私钥导入他们的Filecoin钱包，并将多个钱包关联到一个数据集。每个钱包定期进行数据容量检查，以确保在钱包之间实现最佳负载平衡。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://data-programs.gitbook.io/singularity/zh/overview/readme.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
