跳转至

观察小队

原文:https://docs.elrond.com/integrators/observing-squad

连接到Elrond网络的 N+1 设置

为了与Elrond网络整合,并能够以一种优化的方式广播交易查询区块链数据,需要建立一个现场观察小组

观察小队被定义为一组N 观察者节点(每个分片一个,包括元链)加上一个 Elrond代理 实例,它将连接到这些观察者并提供一个 HTTP API(通过将请求委托给观察者)。

提示

目前Elrond主网有 3 个分片,加上元链。因此,观察小组由 4 个观察者和一个代理实例组成。

通过建立一个观察小组,并通过代理查询区块链数据,Elrond的分片建筑的特殊性被抽象出来。这意味着与代理交互的客户端根本不需要考虑分片。

系统要求

观察小队可以安装在多台机器上,也可以安装在一台更强大的机器上。

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

  • 16 个 CPU
  • 32 GB 内存
  • 最高可扩展至 5 TB 的磁盘空间
  • 100 Mbit/s 不间断互联网连接
  • Linux 操作系统(推荐 Ubuntu 20.04)

考虑到网络负载不断增加,建议的 CPU 数量已于 2021 年 4 月从8更新为16

提示

这些规格只是建议。根据 API 或观察者的负载,应该升级机器以保持团队同步和良好的性能。

通过 Mainnet 脚本设置

警告

从 2022 年 11 月起不再使用。请使用elrond-go-scripts,解释如下。

通过 elrond-go-scripts 设置

安装和配置

观察小队可以使用安装脚本来设置。在安装过程中,默认情况下会启用DBLookupExtension功能(Hyperblock API 所要求的)。

克隆安装程序存储库:

git clone https://github.com/ElrondNetwork/elrond-go-scripts.git 

相应地编辑config/variables.cfg。例如:

ENVIRONMENT="mainnet"
...
CUSTOM_HOME="/home/ubuntu"
CUSTOM_USER="ubuntu" 

此外,您可能希望设置以下选项,以便将日志保存在节点的logs文件夹中:

NODE_EXTRA_FLAGS="-log-save" 

请检查CUSTOM_HOME目录是否存在。运行安装脚本,如下所示:

./script.sh observing_squad 

安装后,5 个新的systemd单元将可用(并启用)。

使用以下命令启动节点和代理:

./script.sh start 

为了检查观察小组的状态,请参见下面的章节监控和日常检查

升级观察小队

观察小队可以使用安装脚本进行更新。

一般升级程序

重要

从 2022 年 11 月起不再使用。这些脚本的用户必须迁移到 elrond-go-scripts

迁移指南可以在这里找到

为了升级观察小组——即观察者和代理,应该发出以下命令:

$ cd ~/elrond-go-scripts
$ ./script.sh github_pull
$ ./script.sh stop
$ ./script.sh upgrade_squad
$ ./script.sh upgrade_proxy
$ ./script.sh start 

运行上面的命令后,升级后的观察小队将再次启动。预计停机时间约为 2-3 分钟。

监控和琐碎检查

用户可以使用 termui 实用程序(在设置过程中安装在CUSTOM_HOME="/home/ubuntu"文件夹中)监控正在运行的观察器,如下所示:

~/elrond-utils/termui --address localhost:8080    # Shard 0
~/elrond-utils/termui --address localhost:8081    # Shard 1
~/elrond-utils/termui --address localhost:8082    # Shard 2
~/elrond-utils/termui --address localhost:8083    # Metachain 

或者,可以通过使用 curl 执行 GET 请求来查询观察者的状态:

curl http://localhost:8080/node/status | jq    # Shard 0
curl http://localhost:8081/node/status | jq    # Shard 1
curl http://localhost:8082/node/status | jq    # Shard 2
curl http://localhost:8083/node/status | jq    # Metachain 

代理没有提供 termui 监视器,但是可以使用 journalctl 检查它的活动:

journalctl -f -u elrond-proxy.service 

可选地,可以执行以下冒烟测试,以获取最新的同步超级块:

export NONCE=$(curl http://localhost:8079/network/status/4294967295 | jq '.data["status"]["erd_highest_final_nonce"]')
curl http://localhost:8079/hyperblock/by-nonce/$NONCE | jq 

通过 Docker 设置

观察小队也可以使用 Docker 来建立。

克隆观察小队存储库:

git clone https://github.com/ElrondNetwork/observing-squad.git 

安装 docker-compose(如果尚未安装):

apt install docker-compose 

使用 mainnet 文件夹中的./start_stack.sh脚本安装并运行整个观察小组:

cd mainnet
./start_stack.sh 

为了检查观察小组是否正在运行,您可以列出正在运行的容器:

docker ps 

为了检查容器内部的状态,您可以检查机器上的日志,以获得最近同步的块 nonce:

docker exec -it 'CONTAINER ID' /bin/bash
cat logs/elrond-go-.......log 

使用 Docker 安装、构建和运行观察小队的更多详细命令在这里描述。这些图片(给代理和观察员)发布在 Docker Hub 上。



回到顶部