跳转至

Elasticsearch

原文:https://docs.elrond.com/sdk-and-tools/elastic-search

## 概述

Elrond节点可以在 Elasticsearch 实例中启用索引。索引数据将作为历史数据源,可用于搜索目的或服务于前端应用程序。

提示

由于可能的高数据量,不建议在 Elasticsearch from 中使用验证器作为索引节点。

我们的实现使用了队列的概念,并确保所有的事情都得到处理。由于索引的原因,共识和同步机制可能会有延迟。

设置

为了设置一个在 Elasticsearch 中建立索引的 observer,必须从节点的配置目录中更新external.toml文件。最低配置是将Enabled设置为true,其余字段相应更新(URLUsernamePassword)。

配置的一个例子是:

# ElasticSearchConnector defines settings related to ElasticSearch such as login information or URL
[ElasticSearchConnector]
    ## We do not recommend to activate this indexer on a validator node since
    #the node might loose rating (even facing penalties) due to the fact that
    #the indexer is called synchronously and might block due to external causes.
    #Strongly suggested to activate this on a regular observer node.
    Enabled           = true
    IndexerCacheSize  = 0
    BulkRequestMaxSizeInBytes = 4194304 # 4MB
    URL               = "http://localhost:9200"
    UseKibana         = false
    Username          = "elastic-username"
    Password          = "elastic-password"
    # EnabledIndexes represents a slice of indexes that will be enabled for indexing. Full list is:
    # ["rating", "transactions", "blocks", "validators", "miniblocks", "rounds", "accounts", "accountshistory", "receipts", "scresults", "accountsesdt", "accountsesdthistory", "epochinfo", "scdeploys", "tokens", "tags", "logs", "delegators", "operations"]
    EnabledIndexes    = ["rating", "transactions", "blocks", "validators", "miniblocks", "rounds", "accounts", "accountshistory", "receipts", "scresults", "accountsesdt", "accountsesdthistory", "epochinfo", "scdeploys", "tokens", "tags", "logs", "delegators", "operations"] 

Kibana可用于可视化弹性数据。Kikana 的路径必须是_plugin/kibana/api(如 AWS 托管实例所示)。

EnabledIndexes数组指定将要填充的索引。

代理支持

elrond-proxy 中有一些端点依赖于 Elasticsearch 实例。他们可以在这里找到。

多片

为了拥有整个网络的历史,必须为每个分片(0、1、2 和元链)中的节点启用弹性索引。一些确保数据有效性的特性依赖于这样一个事实,即每个碎片的一个节点在数据库中建立索引。例如,跨碎片交易的状态由目标碎片决定。

Elasticsearch集群系统需求

Elasticsearch 集群可以安装在多台机器上(我们建议在一个集群中安装更多节点),也可以安装在一台机器上。

如果是单台机器,我们的建议如下:

  • 12 个 CPU
  • 32 GB 内存
  • 最高可达 3 TB 的磁盘空间
  • 100 Mbit/s 不间断互联网连接

克隆一个Elasticsearch集群

为了在一个Elasticsearch集群中拥有关于Elrond链的所有信息(从起源到当前时间),必须使用特定工具将所有数据从一个Elasticsearch集群复制到另一个集群。要获得更多关于如何做到这一点的信息,请使用这个中的文档。

Elasticsearch 索引

启用弹性索引器的观察小组将在不同的索引中保存数据。该数据用于多个用例。例如,获取属于某个地址的所有交易,或者显示基于 EGLD 余额排序的所有地址。

Elasticsearch 索引中的每个条目的格式如下:

{
    "_id": "..."
    "_source": {
      ...
    }
} 
名字 描述
交易 包含所有交易。
包含所有执行的块。
验证器 包含按 epoch 和 shard 分组的验证器的公钥。
评级 包含每个时期的验证者等级。
迷你块 包含所有执行的 minblocks。
回合 包含已通过的每一轮的详细信息。
账户 包含地址余额和修改时的时间戳。
会计故事 包含有关地址余额的历史信息。
收据 包含所有生成的收据。
屏幕结果 包含所有生成的智能合约结果。
已记账 包含地址的 ESDT 余额。
会计历史 包含有关地址 ESDT 余额的历史信息。
epochinfo 包含按纪元分组的累积费用和开发者费用。
scdeploys 包含所有已部署智能合约的详细信息。
代币 包含所有创建的 ESDT 代币。
标签 包含 NFT 的标签。
日志 包含由交易和智能合约结果生成的所有日志。
委托人 包含所有委派者的详细信息。
操作 包含所有交易和智能合约结果。


回到顶部