Skip to content

Latest commit

 

History

History
76 lines (64 loc) · 2.45 KB

Requirements.md

File metadata and controls

76 lines (64 loc) · 2.45 KB

Requirements of Callisto

The Callisto is working as a backend for Big Dipper. The followings are the features currently supported in Big Dipper in the backend which Callisto should adapt.

On every block

Done by Juno by default

  • Parsing all blocks
  • Parsing all transactions
  • Store validator set of the block

Custom Callisto implementations

  • Update missed block records
  • Read the latest consensus state
  • [x/auth] Store vesting accounts and vesting periods details
  • [x/distribution] Update community pool
  • [x/feegrant] Store feegrant allowance details
  • [x/gov] Get gov proposals, deposits and votes
  • [x/gov] Calculate the tally result
  • [x/mint] Update the inflation
  • [x/slashing] Get validators signing info
  • [x/staking] Update validator information
  • [x/staking] Calculate validator voting power percentage
  • [x/staking] Update the total staked tokens
  • [x/staking] Update the double sign evidences
  • [x/supply] Update the total supply

Achievable using GraphQL APIs

  • Calculate the average block time

Achievable using Hasura Actions

Address/Delegator related data:

  • Get account balance
  • Get delegations
  • Get total delegations amount
  • Get delegation rewards
  • Get unbonding delegations
  • Get total unbonding delegations amount
  • Get redelegations
  • Get delegator withdraw address

Validator related data:

  • Get commission amount
  • Get validator delegations
  • Get validator redelegations
  • Get validator unbonding delegations

On intervals

  • [x/bank] Get total supply (per 10 mins)
  • [x/distribution] Get community pool (per hour)
  • [x/mint] Get inflation (per day)
  • [x/pricefeed] Get token price and marketcap (per 2 minutes, per hour)
  • [x/staking] Calculate average delegation ratio (per hour, per day) *
  • [x/staking] Calculate voting power distribution (per hour) *

* These should be doable using the average method inside GraphQL

Not on Big Dipper now but we are considering to add

  • All wallets activities
  • Alert on events:
    • Proposal creation
    • Slashing
    • Huge delegation
    • Validator low uptime
    • Huge undelegation
    • Proposal start voting
    • Proposal voting ends
  • Validators rating
    • Self-delegation
    • Uptime
    • Ever slashed
    • Gov participation
    • Community contributions
    • Number of delegators