api.elrond.com
原文:https://docs.elrond.com/sdk-and-tools/rest-api/api-elrond-com
## 关于 api.elrond.com
api.elrond.com
是gateway.elrond.com
上的一个包装器,它带来了一个健壮的缓存机制,以及Elasticsearch历史查询支持、代币媒体支持、委托&标记数据等等。
公共网址
mainnet:https://api.elrond.com。
测试网:https://testnet-api.elrond.com。
Devnet: https://devnet-api.elrond.com .
外部供应商
Blastapi
mainnet:https://elrond-API . public . blastapi . io。
devnet:https://elrond-API-devnet . public . blastapi . io。
关于如何获得您的私有端点的更多细节可以在这里找到。
依赖
核心依赖
对于其基本功能(不包括缓存或存储改进),api.elrond.com 依赖于以下外部系统:
gateway
:也称为代理,提供对节点信息的访问,如网络设置、账户余额、发送交易等文件:代理。index
:索引可查询数据的数据库,如交易、块、nfts 等。文件:Elasticsearch。delegation
:用于从委托 API 中获取供应商列表的微服务。目前不对公众开放。
其他依赖关系
它用于以下内部系统:
- redis:用于缓存各种数据,以提高性能
- rabbitmq: pub/sub,主要用于将 NFT 进程信息从交易处理器实例发送到队列工作器实例
它依赖于以下可选外部系统:
- 事件通知程序 rabbitmq:推送内部处理的日志和事件的队列,例如触发 NFT 媒体获取
- 数据:为交易提供 eGLD 价格信息
- maiar exchange:提供 maiar exchange 上列出的各种代币的价格信息
- ipfs: ipfs 网关,主要用于获取 NFT 元数据和媒体文件
- 媒体:ipfs 网关,将用作 NFT 详细信息中返回的 NFT 媒体和元数据的前缀
- 内部介质:出于性能原因,ipfs 数据从中央系统(如 S3)获取的缓存层
- AWS S3:用于处理新创建的 NFT 并上传它们的缩略图
- github:用于从 github 获取供应商配置文件和节点信息
它使用以下可选内部系统:
- mysql 数据库:主要用于存储 NFT 媒体和元数据信息
- mongo 数据库:主要用于存储 NFT 媒体和元数据信息
api.elrond.com 启动方式
API 实例可以通过以下行为启动:
- 公共 API:为消费者提供 REST API
- 私有 API:用于报告普罗米修斯指标和健康检查
- 交易处理器& completed:从区块链获取实时交易和日志;基于各种事件采取行动,例如清除缓存值和在队列上发布事件
- 缓存预热器:用于主动获取数据并将其推送到缓存,以提高性能和可伸缩性
- elastic updater:用于将各种额外信息附加到 elasticsearch 中的项目,以便在执行列表请求时不必从其他外部系统获取相关数据
- 事件通知程序:基于传入的日志和事件执行各种决策
限速
公共Elrond API 有一个速率限制机制,它带来了以下限制:
- api.elrond.com(mainnet):2 个请求/ IP /秒
- devnet-api.elrond.com(devnet):5 个请求/ IP /秒
api.elrond.com
的 Rest API 文档可以在 Swagger 文档上找到。
参考文献:
- Github 库:https://github.com/ElrondNetwork/api.elrond.com
- 霸气文件:https://api.elrond.com
- 原始 JSON Swagger OpenAPI 定义:https://api.elrond.com/-json
- https://elrond.com/blog/elrond-api-internet-scale-defi 博客:Elrond