Сервис для мониторинга и сбора метрик узлов сети Pocketnet.
Pocketnet Node Monitor - это инструмент для отслеживания состояния узлов сети Pocketnet. Сервис собирает информацию о доступности узлов, их версиях, производительности и других метриках через RPC API.
- Автоматическое обнаружение узлов сети
- Сбор метрик узлов (версия, высота блока, количество пиров)
- Мониторинг доступности узлов
- REST API для получения статистики
- Хранение исторических данных
- Географическое распределение узлов
- Docker
- Docker Compose
- MongoDB
- Доступ к сети Pocketnet
- Клонируйте репозиторий:
git clone https://github.com/andyoknen/peer-network-visualizer.git
cd pocketnet-node-monitor- Настройте конфигурацию в
config/config.yml:
fastapi:
host: 0.0.0.0
port: 5000
scanner:
scan_interval: 300 # интервал сканирования в секундах
timeout: 5 # таймаут подключения
rpc_port: 38081 # порт RPC API
mongodb:
uri: mongodb://mongodb:27017
database: pocketnet_monitor
initial_peers:
- "1.pocketnet.app"
- "2.pocketnet.app"
- "3.pocketnet.app"- Сборка и запуск контейнера:
docker build -t peer-network-visualizer .
docker run -d --name peer-network-visualizer peer-network-visualizerGET /list_nodesОтвет:
{
"nodes": [
{
"ip": "1.2.3.4",
"version": "1.0.0",
"block_height": 12345,
"peers": 50,
"last_seen": "2024-03-20T15:30:00Z"
}
]
}GET /GET /nodesGET /cloudСостояние сервиса можно отслеживать через логи:
docker-compose logs -f node-monitor- Создайте виртуальное окружение:
python -m venv venv
source venv/bin/activate # для Linux/Mac
# или
venv\Scripts\activate # для Windows- Установите зависимости:
pip install -r requirements.txtpocketnet-node-monitor/
├── docker/
│ ├── dockerfile
│ └── docker-compose.yml
├── config/
│ └── config.yml
├── src/
│ ├── api/
│ │ ├── routes.py
│ ├── services/
│ │ ├── peer_discovery.py
│ │ └── helpers.py
│ └── models/
│ ├── node.py
│ └── peer.py
└── requirements.txt
При возникновении проблем создавайте issue в репозитории проекта или обращайтесь к разработчикам:
- Email: core@pocketnet.app
- Форкните репозиторий
- Создайте ветку для новой функциональности
- Внесите изменения
- Отправьте pull request