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

nomination-pools: Investigate adding joining pools #460

Open
emostov opened this issue Feb 15, 2022 · 2 comments
Open

nomination-pools: Investigate adding joining pools #460

emostov opened this issue Feb 15, 2022 · 2 comments
Labels
D1-medium Can be fixed by a coder with good Rust knowledge but little knowledge of the codebase.

Comments

@emostov
Copy link

emostov commented Feb 15, 2022

New joiners to a bonding pool can be unfairly subjected to a slash if they join a pool after a slash is recorded, but before it is applied.

For new joiners to avoid unfair slashing, I think we would need slash_defer_duration joining pools, and have some way of triggering any joining pools that are older than slash_defer_duration to be merged into the main bonded pool. This way, if a slash is applied, we could have it just affect the bonded pool and the unbonding pools, sparing the delegators in the joining pools.

Any time a slash is applied, we would need to guarantee that a delegator who joined by time the slash was recorded is included in the bonded pool or unbonding pools. This is tricky because the merging of joining pools into the main bonded pool likely cannot be reasonably coupled with recording or applying slashes without significantly increasing the I/O complexity of pool slashes. One idea would be to have a hook on era change that merges any joining pools. Another idea would be to have the slashing logic incorporate any joining pools within the slash range while calculating slashes.

It should be noted that delegators could simply be advised to not join pools that have a pending slash.

Should wait until paritytech/substrate#10694 is merged to start working on this.

@Doordashcon
Copy link
Contributor

patiently waiting to attempt this :)

@emostov
Copy link
Author

emostov commented Mar 8, 2022

patiently waiting to attempt this :)

Happy to hear :) Keep in mind that we aren't sure this will ever actually be added (hence "investigate" in the title). Nonetheless it would be a great project to get a in depth understanding of the pools code. I suspect the trickiest part will be the logic for applying big slashes that would need to dip into the joining pool funds.

@juangirini juangirini transferred this issue from paritytech/substrate Aug 24, 2023
@the-right-joyce the-right-joyce added D1-medium Can be fixed by a coder with good Rust knowledge but little knowledge of the codebase. and removed Z2-medium labels Aug 25, 2023
claravanstaden pushed a commit to Snowfork/polkadot-sdk that referenced this issue Dec 8, 2023
jonathanudd pushed a commit to jonathanudd/polkadot-sdk that referenced this issue Apr 10, 2024
…#460)

* substrate-relay::SubmitMillauToRialtoMessage

* typo

* Update relays/substrate/src/cli.rs

Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com>

Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
D1-medium Can be fixed by a coder with good Rust knowledge but little knowledge of the codebase.
Projects
Status: 📕 Backlog
Development

No branches or pull requests

4 participants