Giter VIP home page Giter VIP logo

subvt-backend's Introduction

SubVT Backend

SubVT (Substrate Validator Toolkit) backend system implementation.

SubVT is proudly supported by the Kusama Treasury. Please refer to the top-level project repository for more information.

Architecture

Complete details can be found in the system architecture document.


Crates

Name Info
subvt-app-service Application REST service with such endpoints as user registration, notification rule definitions, etc. OpenAPI YAML specification document here, viewable here.
subvt-block-processor Block processor and indexer. Stores in the PostgreSQL database the events and extrinsics of interest, era validator and staker inoformation and more.
subvt-config Configuration component that is used by all SubVT executables for runtime configuration.
subvt-governance Contains the functions to fetch open referenda list and referendum details from the Polkassembly public API.
subvt-logging Log configurator that is used by all crates.
subvt-metrics Common crate that contains Prometheus helper functions. Used by all other crates that export Prometheus metrics data.
subvt-network-status-server Publishes the network status data prepared by the network status updater through WS RPC.
subvt-network-status-updater Fetches the network status data from the Substrate node after each finalized block and stores it in the Redis instance.
subvt-nft Contains the functions to fetch NFT records for a stash account using the sub.id public API.
subvt-nofification-generator Processes the indexed block (PostgreSQL), validator list (Redis) and Telemetry time-series (TimescaleDB) data for possible notifications, and persists notifications according to the previously-defined notification rules.
subvt-notification-processor Processes and sends the notifications persisted by the notification generator.
subvt-onekv-updater Fetches the complete candidate data from the 1KV backend (only Polkadot or Kusama) in regular intervals, and Stores the candidate and all related data (ranking events, score, etc.) in the PostgreSQL network database.
subvt-persistence Complete persistence logic for PostgreSQL and Redis (TBD). Contains the full migrations for the network and application PostgreSQL databases.
subvt-plotter Used for server-side generation of report charts. Currently used by the Telegram bot to deliver rewards and payouts reports.
subvt-proc-macro Procedural macros.
subvt-report-service Era and validator report REST service. OpenAPI YAML specification document here, viewable here.
subvt-service-common Contains the service trait implemented by all SubVT services.
subvt-substrate-client Facilitates all of the communication between SubVT and Substrate node RPC interfaces.
subvt-telegram-bot SubVT Telegram bot, currently live for Kusama and Polkadot. View its readme for details.
subvt-telemetry-processor Subscribes to the chain's feed on a Telemetry server, and persists the node data into the TimescaleDB instance for later analysis.
subvt-types Complete SubVT types.
subvt-utility Basic utility functions. Not used a lot at the moment, but more a place for later work.
subvt-validator-details-server Publishes a validator's details through a WS RPC channel. Subscriber send the account id of the validator at the initial connection, receives the full validator data as the first response, then only the changes with the new finalized blocks.
subvt-validator-list-server Publishes through its WS RPC interface the validator list data, which is prepared by the validator list updater.
subvt-validator-list-updater Every few blocks, fetches the complete inactive and active validator data from the Substrate node and the PostgreSQL network instance stores it in the Redis instance and notifies the subscriber services.

subvt-backend's People

Contributors

kukabi avatar dependabot[bot] avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.