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

[Utility] Introduce on-chain Actor (un)Jailing #490

Closed
19 tasks
Olshansk opened this issue Apr 24, 2024 · 2 comments
Closed
19 tasks

[Utility] Introduce on-chain Actor (un)Jailing #490

Olshansk opened this issue Apr 24, 2024 · 2 comments
Labels
documentation Improvements or additions to documentation protocol General core protocol related changes utility

Comments

@Olshansk
Copy link
Member

Objective

Design & implement a framework of how to handle on-chain (un)jailing with placeholders for the triggers & events to be determined at a future point in time.

Origin Documents

Goals

  • Jailing - a state that an on-chain actor can be in which prevents it from being able to participate in any on-chain operations
  • Unjailing - the process of re-enable a previously jailed actor in resuming normal on-chain operations
  • Slashing actors that have been jailed for a sufficiently long period of time
  • Evaluate options for how on-chain actor (un)jailing could be implemented
  • Design, document and implement (un)jailing of Applications, Suppliers & Gateways
  • Create a pattern for reusable entrypoints that’ll trigger actor jailing
    • If new functionality is added for an actor, it should be “easy” to make sure it is not available while the actor is jailed

Deliverables

IMPORTANT NOTE TO THE OWNER: The deliverables below are not a complete list of everything that needs to be done, but rather a starting point to help. The research, which is part of the deliverables, should drive most of the design decisions.

  • Research
    • Put together a reference doc with bullet points, links, highlights, learnings capturing the research below(< 1 page total)
    • Other Projects
      • Investigate how validator (un)jailing is designed and implemented in the Cosmos SDK
      • Investigate how at least one other project does (non-validator) actor jailing in the Cosmos ecosystem
    • Morse
      • Investigate how actor (un)jailing currently works in Morse
  • Before implementation
    • Prepare a 1-pager “mini spec” notion / docs / markdown and get feedback & review before kicking off the implementation
  • Implementation requirements
    • Time-based unjailing should follow the same pattern as in unbonding ([Utility] Introduce an unbonding period after an actor unstakes #489)
    • Authority (governance address) should be able to jail / unjail any actor
    • [TBD] Unjailing should happen automatically N blocks since the moment the actor was jailed
      • N should have a unique governance parameter for every actor: Application, Supplier, Gateway
    • [TBD] If an actor is jailed for M blocks, it will get slashed by some amount Z
    • Create custom N , M , Z governance params unique to each actor
  • During implementation
    • Separate PRs per actor after the foundation business logic is in place
    • Add unit / integration tests
    • Add at least 1 E2E test
    • Make target to trigger the E2E test
    • Make targets to execute governance / auth trigger jailing / unjailing of a specific address
  • After implementation
    • Add a new page in docusurus that explains how the implemented mechanism works
    • Create a follow-up ticket to add the jailing / unjailing triggering business logic

Non-goals / Non-deliverables

  • Design or determine the automatic (on-chain, not manually triggered) events that cause jailing

General deliverables

  • Comments: Add/update TODOs and comments alongside the source code so it is easier to follow.

Creator: @Olshansk
Co-Owners: @moatus

@Olshansk Olshansk added documentation Improvements or additions to documentation protocol General core protocol related changes utility labels Apr 24, 2024
@Olshansk Olshansk added this to the Shannon MainNet milestone Apr 24, 2024
@Olshansk Olshansk added this to Shannon Apr 24, 2024
@Olshansk
Copy link
Member Author

@moatus Could you review the requirements for unstaking here. I'm thinking of mounting out the engineering work for it.

@Olshansk Olshansk moved this to 📋 Backlog in Shannon Apr 24, 2024
@Olshansk Olshansk moved this from 📋 Backlog to 🔖 Ready in Shannon Jun 4, 2024
@Olshansk Olshansk moved this from 🔖 Ready to 📋 Backlog in Shannon Aug 5, 2024
@Olshansk
Copy link
Member Author

Olshansk commented Nov 4, 2024

Too broad and future looking.

@Olshansk Olshansk closed this as completed Nov 4, 2024
@github-project-automation github-project-automation bot moved this from 📋 Backlog to ✅ Done in Shannon Nov 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation protocol General core protocol related changes utility
Projects
Status: ✅ Done
Development

No branches or pull requests

1 participant