An open API service indexing awesome lists of open source software.

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

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
![validator_status](https://user-images.githubusercontent.com/39043516/217773295-8fca7835-0fea-4a9a-9d3f-fc528d84377d.png)

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
![daily_report](https://user-images.githubusercontent.com/39043516/217773309-df4fe7d1-52a2-4d9b-a5ba-98e4a06b4661.png)

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 players

Time 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()
```