Индексатор Namada

В сотрудничестве с компанией Zondax был создан индексатор для блокчейна Namada.

Индексатор Namada (он же namadexer) постоянно запрашивает данные блокчейна Namada и вместе с SDK способен отображать блоки, транзакции и другую ценную информацию в реляционной базе данных (postgres).

Это особенно удобно для проведения аналитических операций с блокчейном, в том числе для хранения исторических данных в удобном для запросов виде.

Настройка

Исходный код индексатора namada можно найти здесь, и он прост в настройке.

Индексатор namadexer лучше всего работает вместе с Docker

git clone https://github.com/Zondax/namadexer.git
cd namadexer
make compose

Запуск сервера и базы данных

После запуска DockerFile остается только настроить базу данных postgres, а также сервер, который будет запрашивать базу данных.

Убедитесь, что postgres установлен на локальной машине.

Запустите postgres в docker

make postgres 
# or run (and change arguments, e.g port):
# docker run --name postgres -e POSTGRES_PASSWORD=wow -e POSTGRES_DB=blockchain -p 5432:5432 -d postgres

После того как сервер postgres запущен, необходимо настроить сервер, который будет выполнять запросы к базе данных postgres.

Для настройки сервера выполните следующую команду:

make run_server

В случае успеха сервер должен быть запущен как daemon на localhost по порту 30303.

Запуск индексатора

Прежде всего, убедитесь, что файл Settings.toml внутри config/Settings.toml настроен правильно.

log_level = "info"
network = "public-testnet-14"
 
[database]
host = "0.0.0.0:5435"
user = "postgres"
password = "wow"
dbname = "blockchain"
# Optional field to configure a timeout if database connection 
# fails.
connection_timeout = 20
 
 
[server]
serve_at = "0.0.0.0"
port = 30303
 
[indexer]
tendermint_addr = "0.0.0.0"
port = 26657
 
[jaeger]
enable = false
host = "localhost"
port = 6831
 
[prometheus]
host = "0.0.0.0"
port = 9000

👀 Интерпретация toml

Важно изменить следующие параметры:

indexer.tendermint_addr - Это должен быть адрес и соответствующий порт синхронизированного полного узла Namada

database.host - Это должен быть tcp-адрес (с портом), на котором запущена база данных postgres.

После завершения настройки можно запустить индексатор

make run_indexer

Запрос к базе данных

Предустановленные конечные точки для запросов к базе данных описаны в документации здесь.

Last updated