BitSong
  • Introduction
  • Delegators
    • Delegator FAQ
    • Delegator Security
  • Validators
    • Validator Overview
    • Validator FAQ
    • Validator Security
  • Relayer
  • FAQ
  • Glossary
  • Roadmap
  • Media Kit
  • Links
  • Blockchain
    • Install go-bitsong
    • Join the Mainnet
    • Create Validator
    • CLI Guide
    • Gas and Fees
    • Pruning of State
    • Export the state
    • Verify Mainnet
    • Upgrades
      • From v0.8.0 to v0.10.0
      • From v0.10.0 to v0.11.0
      • From v0.12.x to v0.13.0
      • From v0.13.x to v0.14.0
      • From v0.14.x to v0.15.0
      • From v0.17.0 to v0.18.0
  • Features and Modules
    • Fan Tokens
    • Merkledrop
    • NFTs
    • Marketplace
    • CosmWasm
      • Install rust
      • Deploy a Smart Contract
    • IBC
    • Auth
    • Bank
    • Crisis
    • Capability
    • Community Pool
    • Distribution
    • Evidence
    • Governance
    • Mint
    • Staking
    • Slashing
    • Upgrade
  • BTSG
    • What is BTSG ?
    • Distribution and Tokenomics
    • Wallets
    • Buy and Sell
    • Liquidity Provider
  • Developers
    • bitsongJS
  • PRODUCTS
    • Sinfonia
    • BitSong Studio
  • USEFUL GUIDES
    • How to Create a BitSong wallet
    • How to Import Your BitSong Wallet
    • How to Stake $BTSG
    • How to Add $BTSG Liquidity to Osmosis Pools
    • Sinfonia User's Guide
    • How to Report a Bug on Sinfonia
  • Global Ambassador Program
    • Who is an ambassador?
    • Program Rules
Powered by GitBook
On this page
  1. Blockchain

Verify Mainnet

PreviousExport the stateNextUpgrades

Last updated 3 months ago

We are moving our documentation to the new "" website. To access the most up-to-date and complete version of our guides and articles, please visit our new website. This old documentation site will no longer be maintained or updated, so we strongly recommend referring to the new website for the latest information. If you can't find what you're looking for on the new site, please be patient as we are still in the process of migrating all of our content. Thank you for your understanding! Visit the new article

Help to prevent a catastrophe by running invariants on each block on your full node. In essence, by running invariants you ensure that the state of mainnet is the correct expected state. One vital invariant check is that no atoms are being created or destroyed outside of expected protocol, however there are many other invariant checks each unique to their respective module. Because invariant checks are computationally expensive, they are not enabled by default. To run a node with these checks start your node with the assert-invariants-blockly flag:

bitsongd start --assert-invariants-blockly

If an invariant is broken on your node, your node will panic and prompt you to send a transaction which will halt mainnet. For example the provided message may look like:

invariant broken:
    loose token invariance:
        pool.NotBondedTokens: 100
        sum of account tokens: 101
    CRITICAL please submit the following transaction:
        bitsongd tx crisis invariant-broken staking supply

When submitting a invariant-broken transaction, transaction fee tokens are not deducted as the blockchain will halt (invariant-broken transactions are free transactions).

BitSong, the blockchain for music
bitsong documentation
bitsong documentation
https://bitsong.io/en/docs/blockchain/verify-mainnet