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

Detect validator set changes #47

Open
ethanfrey opened this issue Jun 28, 2023 · 1 comment
Open

Detect validator set changes #47

ethanfrey opened this issue Jun 28, 2023 · 1 comment

Comments

@ethanfrey
Copy link
Collaborator

For the validator sync protocol, we need to send messages when a new validator enters the active set for the first time (can be repeated everytime they enter), and to remove them when tombstoned (not when temporarily inactive). For this, we need some custom SDK logic that would call into the contracts. It must be transmitted by converter, but the callback can go to virtual-staking, which can take care of relaying it, as that is the one point of integration with the sdk

@maurolacy
Copy link
Collaborator

maurolacy commented Sep 19, 2023

This is now implemented in the contracts. See osmosis-labs/mesh-security#88 and osmosis-labs/mesh-security#109.

A couple design decisions:

  • We can track removals from the active validator set (i.e. the removals field of the ValsetUpdate sudo message) (https://github.com/osmosis-labs/mesh-security/blob/8e520dfdd9bc716c2723e2b349bef47baf8446cd/packages/apis/src/virtual_staking_api.rs#L39-L47). This is currently being ignored, but can be implemented in the future, by example to know when a validator is unbonded. So, in case of sending removals, they should be for the unbonded, not temporarily jailed validators. At this point we're not differentiating between active and (temporarily) jailed validators.
  • Tombstonings (permanent jailings) can be sent and are being processed. But, there will be a way to indicate tombstoning after slashing (to avoid races / delays when processing slashing events). So, sending tombstoning updates is optional at the moment, but would be good for robustness.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants