Go to file
GroovieGermanikus e96687745f
restore search event
2024-01-03 10:39:31 +01:00
.github/workflows
docs
static
templates restore search event 2024-01-03 10:39:31 +01:00
.dockerignore
.gitignore
Dockerfile
QUERIES.md
README.md
account_details_database.py allow navigation to account details page 2024-01-02 21:03:49 +01:00
app.py add replace url for all successful matches 2024-01-02 22:51:08 +01:00
block_details_database.py
config.py
fly.toml
log_scale.py
postgres_connection.py
recent_blocks_database.py
requirements.txt
transaction_database.py add utc_timstamp column on searchpage txlistmini 2024-01-02 21:31:37 +01:00
transaction_details_database.py

README.md

Solana Banking Stage Inspection Dashboard

Status

Production - contact us for Link

Screenshots

List of Transaction errors

Transaction Errors

Transaction details with heavily write-locked accounts

Transaction Details

List of Blocks with fill rate / errors / total tx

Recent Blocks

Block details

Block Details

Block details with heavily write-locked accounts

Block Details Heavy Locked Accounts

Search for a Block/Transaction by Slot Number/Signature

Search Block

Recent Blocks - stop refreshing

The auto-refresh can be stopped by appending parameter to_slot to the URL: /recent-blocks?to_slot=232135000

Tx Errors List - show more rows

The number of rows requested from Database can be changed by appending parameter limit to the URL: /tx-errors?limit=300. A value for limit restricted to 1-10000. Default is 50.

Local Development

Caution: Port 5000 cannot be used on MacOS.

# Unix/macOS
python3 -m venv .venv
source .venv/bin/activate
SOLANA_CLUSTER=testnet POOLED_DB_MAX_SIZE=4 PGDATABASE=da11copy PGUSER=query_user PGPASSWORD=secret TEMPLATES_AUTO_RELOAD=True flask run --port 5050 --debug --reload

Use this to test with gunicorn:

  • CAUTION: did not figure out how to enable template reloading
SOLANA_CLUSTER=testnet POOLED_DB_MAX_SIZE=4 PGDATABASE=da11copy PGPORT=5432 PGUSER=query_user PGPASSWORD=secret gunicorn app:webapp --workers 1 --threads 30 --bind :5050 --reload

Open Firefox Browser and navigate to ...

Deployment

Limits

Description System Variable Config
Max number of PostgreSQL connections Application POOLED_DB_MAX_SIZE fly.toml
Limit of HTTP Requests fly.io soft_limit fly.toml
Hard Limit of HTTP Requests fly.io hard_limit fly.toml
Python HTTP Server gunicorn --workers, --threads Dockerfile

Data Model

  • transaction data (irrespective of block inclusion):
    • transaction_slot: transaction from banking stage plugin; reflecting errors trying to include transaction in block (block is designated by slot)
    • accounts_map_transaction: mapping of accounts to transactions irrespective of block inclusion
  • related to a produced block (happens after transaction data):
    • transaction_infos: transaction in blocks
    • accounts_map_blocks: accounts mentioned in block

Conventions:

Table Name Alias
transaction_slot tx_slot
accounts_map_blocks amb
transaction_infos txi
blocks blocks
accounts_map_transaction amt
transaction_slot tx_slot