current implementation on bostrom bootloader

process and stores neuron bandwidth in the network

dynamically adjust bandwidth price to network load

neurons use bandwidth to add cyberlinks to the network

and never pay gas fees for cyberlinks

personal bandwidth tracks neuron ability to create cyberlinks

protects cybergraph from sybil attacks

accounting of bandwidth

transactions mempool

  • for transactions that consist of cyberlinks, a fee check will not apply
  • but correct required gas amount should be provided

network capacity

  • total amount of minted $V
  • represents the demand of bandwidth from neurons
  • validators need to keep tracking investments in $V resources
  • to provide great service at scale to dynamically adjust available peek load

community can adjust gas max gas consumable at block

state

state transition function

  • bandwidth module doesn't have own messages that trigger state transition
  • state transition is happen in such cases
    • ante handler: processing of transaction with cyberlinks messages in transaction middleware
      • calculate total bandwidth amount for all cyberlinks messages in transaction using current price and consume neuron bandwidth
      • add consumed bandwidth to block bandwidth (in-memory)
    • bostrom/graph module: processing of cyberlink message created by vm contract
      • calculate bandwidth for message using current price and consume neuron's bandwidth
      • add consumed bandwidth to block bandwidth (in-memory)
      • note: billing happens in the graph module for contracts because contracts creates messages not grouped into transactions (ante handler are not processing them)
    • end blocker: transfers of $V
      • update account's bandwidth for an account with changed stake collected by
      • CollectAddressesWithStakeChange hook (e.g transfer of investmint).
      • note: minting of new $V using investming will trigger the account's bandwidth update with an increased max bandwidth value
    • end blocker: save consumed bandwidth by block
      • save the total amount (sum aggregated in-memory before) of consumed bandwidth by all neurons on a given block (to storage & in-memory).
      • remove value for a block that is out of recovery window block period and not perform in bandwidth load calculation (to storage & in-memory).
    • end blocker: adjust bandwidth price
      • if block height number's remainder of division by AdjustPrice parameter is equal to zero
      • calculate and save price based on current load
      • bostrom/genesis

params

errors

rest and grpc

cyber cli

  • query bandwidth params
  • query bandwidth load
  • query bandwidth price
  • query bandwidth desirable
  • query bandwidth account neuron

cw-cyber

cyber-ts

Local Graph