Standalone static rebuild of the validator dashboard shown at https://infinitybloc.io/validators.
requirements.mddocuments the behavior and data contract derived from the live page and source repository.index.html,styles.css, andapp.jsimplement the standalone app.ifchecker/implements the Spring/Savanna instant finality readiness checker at/ifchecker/.netlify/functions/exposes live IF checker API routes through Netlify Functions.validation/ifchecker/latest.jsonstores the latest cached IF checker snapshot.scripts/validate_bps.pygeneratesvalidation/latest.jsonandvalidation/history.json.- The app tries local
validation/*.jsonfirst, then localdata/*.json. - CPU timing history is also merged from
https://infinitybloc.io/validation/history.jsonso benchmark data can continue coming from the original repo while its GitHub secret remains there. .github/workflows/validate.ymlrefreshes validation snapshots every six hours and can also be run manually from GitHub Actions.
Serve the folder with any static HTTP server:
python3 -m http.server 4173Then open:
http://127.0.0.1:4173/
The app fetches JSON files over HTTP, so opening index.html directly from the filesystem may not work in all browsers.
The IF checker is served from:
/ifchecker/
It uses live API routes:
/api/networks
/api/readiness/testnet
/api/readiness/mainnet
The page first loads validation/ifchecker/latest.json so results are immediately visible on arrival. The scheduled validation workflow refreshes that snapshot, and the page can still run a live refresh through the API routes.
For Netlify-parity local testing:
netlify dev --offline --port 8889Then open:
http://localhost:8889/ifchecker/