Service for monitoring TON Network status. Demo available at: http://ton-status.com.
The service consists of 5 parts:
- Full TON node. It collects following TON network statistics using MyTonCtrl wrapper:
- Blocks,
- Transactions,
- Lite Servers' availability and sync state,
- TON services response time and availability
- Operability of BSC and ETH bridges
- Governance info
- Validators data Tasks for fetching the data are triggered by Celery. Collected data is stored in MongoDB database.
- RabbitMQ. Messaging protocol for Celery.
- MongoDB. Database with all collected data.
- Webserver. Webserver has multiple endpoints. At every endpoint it responds with fetched and aggregated data from MongoDB.
- Frontend. Frontend is Single Page Application on ReactJS and TypeScript. It makes promise-based requests to Webserver and presents data to users.
Each part is represented by Docker container.
Just run docker-compose up -d --build
. On updates run docker-compose build <service> && docker-compose up -d <service>
.
- Set
export PYTHONPATH=/usr/src/mytonctrl
. - Run
celery -A backend.background.celery worker --loglevel="INFO"
.
- Set
export PYTHONPATH=/usr/src/mytonctrl
. - Run
./run_web_server.py
.
Best practice is to run them from docker-compose. It will correctly mount data volumes and bind ports.
- Run
docker-compose up -d mongodb
. - Run
docker-compose up -d rabbitmq
.
- Docker recommended:
docker-compose up -d frontend
. - Or install nodejs+yarn, run
yarn install && yarn start
fromfrontend
directory.
- No nginx, in file
frontend/src/ApiTools.js
place your IP or domain name with port 8080 to address API requests to Backend. Current API URL:http://ton-status.com:8080
.