跳转到主要内容

加密货币数据存储引擎

项目描述

License Python PyPi Codacy Badge

一个用于加密货币市场数据的存储引擎。您提供交易所、数据类型(交易、订单簿等)以及您感兴趣的交易对,Cryptostore将完成剩余的工作!

要求

Cryptostore目前需要安装Kafka或Redis。您选择的后端必须安装额外的依赖项(例如 pip install cryptostore[redis])。Redis需要Redis Streams,支持版本 >= 5.0。

运行Cryptostore

使用pip安装后,将在路径上放置一个可执行文件,因此您可以简单地运行 cryptostore 来启动收集器。它需要一个 config.yaml 文件。如果它不在当前工作目录中,您可以使用 --config 选项指定配置文件的路径。

在存储库根目录中提供了一个示例 config,其中包含内联文档。cryptostore会监视配置文件,因此您可以在文件中更改选项,而无需重新加载服务。这仅适用于对 exchanges 块内的数据进行的更改。其他更改将被忽略。

存储数据

存储到

  • Arctic

  • InfluxDB

  • Elasticsearch

  • Parquet,可以是本地驱动器上的,也可以是使用以下方式在云中:

与其他消费者一起运行

Cryptostore可以与其他交换数据(例如,消耗更新的交易引擎)的消费者一起运行。

对于Redis

  • 在< span class="docutils literal">config.yaml中的Redis设置中禁用消息删除。其他消费者需要负责消息删除(如果需要),并确保在cryptostore有机会处理它们之前不要删除消息。

对于Kafka

  • 只需为其他消费者提供一个不同的消费者组ID,以确保所有消费者都能接收到所有消息。Kafka的配置控制了主题中提交消息的删除(通常是通过时间或大小)。

通过中继

  • Cryptostore支持使用ZeroMQ转发实时数据。要启用,请在配置中使用< span class="docutils literal">pass_through选项。数据将实时发送(不受redis/kafka聚合的影响)。这可以与或没有数据聚合和存储一起使用。

在容器中运行

您可以在Docker容器中运行Cryptostore。已提供Dockerfile和docker-compose.yml。它使用config-docker.yaml中的配置,并配置为使用redis并将数据存储到Arctic/MongoDB中。端口映射到37017(而不是27017),因此从容器外部连接到Arctic时,请确保指定端口号。此外,应在docker-compose中配置一个卷,以便MongoDB数据在重启之间持久化。

计划中的功能

  • ☐ 更多数据类型(例如,未平仓合约量)

  • ☐ 支持Postgres

  • ☐ 丢失数据检测和纠正(适用于支持历史数据的交易所,通常是交易数据)

  • ☐ 将数据存储到MongoDB

  • ☐ 在数据收集的同时支持启用并行计算和存储各种指标的功能(例如,可配置的OHLCV)

贡献

欢迎问题和PR。如果您想讨论正在进行中的开发,请加入Slack(使用#cryptostore通道)。

项目详情


下载文件

下载适用于您的平台文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分发

此版本没有可用的源分发文件。请参阅生成分发存档的教程

构建分发

cryptostore-0.4.0-py3.9.egg (73.9 kB 查看散列)

上传时间

cryptostore-0.4.0-py3-none-any.whl (34.3 kB 查看散列)

上传时间 Python 3

由以下提供支持