https://github.com/planetarium/pbftstats
Temporal repository for watching reports of pbft-internal status
https://github.com/planetarium/pbftstats
Last synced: about 2 months ago
JSON representation
Temporal repository for watching reports of pbft-internal status
- Host: GitHub
- URL: https://github.com/planetarium/pbftstats
- Owner: planetarium
- Created: 2023-02-08T16:04:48.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2023-02-23T15:49:07.000Z (about 2 years ago)
- Last Synced: 2025-01-21T03:11:19.070Z (3 months ago)
- Language: Python
- Size: 48.8 KB
- Stars: 0
- Watchers: 5
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
### Description
Temporal repository for watching reports of pbft-internal status
### Install (local)
```bash
pip install -e .
```### Usage (local)
Move to app directory, then
```bash
python -m application.py
```
Reports will be shown on `localhost:8050`.### Install (deploy)
```bash
pip install -r /tmp/requirements.txt
```### Usage (deploy)
Move to app directory, then
```bash
gunicorn -b :80 application:server
```
Reports will be shown on port `80`.To update daily report, background app is needed.
You can trigger it by
```bash
python -m background.py
```### Validator status
Node status of validators : generated by `nodeStatus` gql query.
- Green circle : `Online`
- Red circle : `Offline`Latest votes of validators : generated by `blockQuery` gql query. (fetch 30 recent blocks)
- Green circle : `PreCommit` vote
- Red circle : `Null` vote### Daily report
pbftstats.application will trigger script that saves daily logs and reports, and show reports on browser.
Number of precommits per each validator : daily precommit sum of validators
Number of transactions per each player : daily transactions of playersTime will be taken for gathering sufficient logs before report shown on the browser.
### If you don't need report on local mode
Below two lines on `application.py` is used for collecting data and generating report.
If you don't need, you may remove those lines.```python
collect(collect_path, host_url, collect_start_block_index, collect_chunk_size)
Process(target=report, args=(collect_path, report_path, report_interval)).start()
```