Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reconcile governance params on Arabica, Mocha, Mainnet Beta #4196

Open
rootulp opened this issue Jan 8, 2025 · 7 comments
Open

Reconcile governance params on Arabica, Mocha, Mainnet Beta #4196

rootulp opened this issue Jan 8, 2025 · 7 comments
Assignees
Labels
good first issue Good for newcomers nice to have item is not blocking or required.

Comments

@rootulp
Copy link
Collaborator

rootulp commented Jan 8, 2025

Context

@cmwaters noticed that the governance parameters for the slashing module and community tax on Mocha differ from Mainnet Beta.

Proposal

  1. Query all the governance params on Arabica, Mocha, Mainnet Beta. It would be really nice if someone built a reusable dashboard with all the parameters for all the networks. See the specs for a list of parameters. Most (if not all) can be queried using GRPC endpoints. You can get GRPC endpoints for each network from the docs.
  2. Analyze the inconsistencies. Some inconsistencies are desirable, for example the voting period on Arabica and Mocha is one day and the voting period on Mainnet Beta is one week. For any remaining parameters that are inconsistent, determine which one is desirable (likely the Mainnet Beta value).
  3. Submit governance proposals on the other networks so that the parameters are consistent.
  4. Get the governance proposals passed.
@rootulp rootulp added good first issue Good for newcomers nice to have item is not blocking or required. labels Jan 8, 2025
@0xSY3
Copy link

0xSY3 commented Jan 11, 2025

Hi @rootulp ,
I'd like to work on this issue, reconciling governance parameters across Arabica, Mocha, and Mainnet Beta. I'll query parameters via gRPC and create a dashboard for comparison.

Any preferences for the dashboard's format or tooling?

@rootulp
Copy link
Collaborator Author

rootulp commented Jan 13, 2025

What options are you considering for format or tooling?

@0xSY3
Copy link

0xSY3 commented Jan 14, 2025

Hi @rootulp

Thanks for the assignment!! I think a separate repo for the dashboard is the way to go... something like celestiaorg/governance-dashboard would be great.
I'm planning to use Python and Streamlit for the dashboard. It's a quick way to get an interactive web app up and running for this kind of data. I can switch to Dash later if we need more complex features.

If you approve, I'll start working on it as soon as the repo is set up.

Thanks!

@rootulp
Copy link
Collaborator Author

rootulp commented Jan 14, 2025

Given that context, I think you can create a public repo in your personal account. Repos in the celestiaorg are generally maintained by us and this project seems like something you'll work on and hopefully maintain. A repo in your account will also prevent you from hitting permissions issues during development.

I'm planning to use Python and Streamlit for the dashboard. It's a quick way to get an interactive web app up and running for this kind of data. I can switch to Dash later if we need more complex features.

Sounds good to me. Our team mostly maintains services written in Go (and a bit of Rust) so I don't expect us to contribute much to the development but let us know if you have questions about where to fetch params of what to list.

@0xSY3
Copy link

0xSY3 commented Feb 2, 2025

Hi @rootulp ,
I've completed the governance parameter dashboard! Here's what I've built:

  1. Implemented parameter monitoring across networks:
  • Direct gRPC queries for current parameter values
  • Shows mainnet-beta, mocha, and arabica parameters
  • Parameter change detection with SQLite storage
  • Network health status monitoring
  1. Found inconsistencies between networks:
  • Slashing module: Different SignedBlocksWindow values
  • Community tax rates vary between networks
  1. Tech Implementation:
  • Built with Streamlit + Python for rapid development
  • SQLite for parameter history tracking
  • gRPC for direct network communication
  • Automated 5-min refresh cycles

Live

Repo

@rootulp
Copy link
Collaborator Author

rootulp commented Feb 2, 2025

This is extremely helpful, thanks @0xSY3 !

Image

Looks like most of the parameter discrepancies are on Mocha. My suggestion is to mirror Mainnet Beta. So on Mocha we should update these parameters:

  • distribution.community_tax: 0.02
  • slashing.min_signed_per_window: 0.750000000000000000
  • slashing.signed_blocks_window: 10000
  • slashing.slash_fraction_double_sign: 0.020000000000000000
  • slashing.slash_fraction_downtime: 0.000000000000000000

Also we should update Arabica:

  • slashing.signed_blocks_window: 10000

@rootulp
Copy link
Collaborator Author

rootulp commented Feb 2, 2025

Do you want to submit governance proposals on Arabica and Mocha to do that? You can reference this gist and this issue to change a governance param.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
good first issue Good for newcomers nice to have item is not blocking or required.
Projects
None yet
Development

No branches or pull requests

2 participants