An Observing Squad is defined as a set of
N Observer Nodes (one for each Shard, including the Metachain) plus an Elrond Proxy instance which will connect to these Observers and provide an HTTP API (by delegating requests to the Observers).
By setting up an Observing Squad and querying the blockchain data through the Proxy, the particularities of Elrond's sharded architecture are abstracted away. This means that the client interacting with the Proxy does not have to be concerned about sharding at all.
The Observing Squad can be installed on multiple machines or on a single, but more powerful machine.
In case of a single machine, our recommendation is as follows:
8 x CPU
32 GB RAM
HDD that can grow up to 5TB
100 Mbit/s always-on Internet connection
Linux OS (Ubuntu 18.04 recommended)
The Observing Squad can be setup using the installation scripts. Within the installation process, the
LookupDatabaseExtension feature (required by the Hyperblock API) will be enabled by default.
git clone https://github.com/ElrondNetwork/elrond-go-scripts-mainnet.git
cd elrond-go-scripts-mainnetgit checkout exchanges-integration
And choose the option
After installation, 5 new
systemd units will be available (and enabled).
And choose option
The Observing Squad can be updated using the installation scripts.
First, make sure you are on branch
exchanges-integration of the
cd ~/elrond-go-scripts-mainnetgit checkout exchanges-integration
Then choose option github_pull.
Then choose option stop.
Then choose option upgrade.
Upgrade the Proxy
Then choose option upgrade_proxy.
Then choose option start.
One can monitor the running Observers using the termui utility (installed during the setup process itself), as follows:
~/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
Alternatively, one can query the status of the Observers by performing GET requests using curl:
curl http://localhost:8080/node/status | jq # Shard 0curl http://localhost:8081/node/status | jq # Shard 1curl http://localhost:8082/node/status | jq # Shard 2curl http://localhost:8083/node/status | jq # Metachain
The Proxy does not offer a termui monitor, but its activity can be inspected using journalctl:
journalctl -f -u elrond-proxy.service
Optionally, one can perform the following smoke test in order to fetch the latest synchronized hyperblock:
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