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

Bounty Pallet Overhaul #5033

Open
joepetrowski opened this issue Jul 16, 2024 · 13 comments
Open

Bounty Pallet Overhaul #5033

joepetrowski opened this issue Jul 16, 2024 · 13 comments
Labels
C1-mentor A task where a mentor is available. Please indicate in the issue who the mentor could be. T2-pallets This PR/Issue is related to a particular pallet.

Comments

@joepetrowski
Copy link
Contributor

We should make some changes to pallet-bounties for better usability and some new features. Here is a list of what I have in mind, feel free to add more in comments here:

  • It should be possible to create a bounty and assign curators in one referendum. Right now, a successful referendum returns the bounty ID, which is needed to assign curators. This leads to a two-phase (read: minimum 2 month) setup process for a bounty on Polkadot. Besides the annoyance, this also has some unintended side effects, like people trying to take over/repurpose existing bounties instead of starting a new one.
  • Child bounties should be easier to use. Right now, IDs are global, meaning the parent bounty curators cannot create and award child bounties easily (again, need to get the ID). These should be batchable.
  • Bounties should support multiple assets held in multiple locations (à la multi-asset Treasury).
  • Bounties should work within Collectives (this may actually already be the case, I see they are instantiable).
@joepetrowski joepetrowski added the T2-pallets This PR/Issue is related to a particular pallet. label Jul 16, 2024
@ggwpez
Copy link
Member

ggwpez commented Jul 16, 2024

Maybe also include #4947

@kianenigma kianenigma added the C1-mentor A task where a mentor is available. Please indicate in the issue who the mentor could be. label Jul 19, 2024
@kianenigma
Copy link
Contributor

With a strong mentorship of a core FRAME dev, this should be do-able by an external developer. We can reward this well with a tip. Marking as mentor to signal this.

Ironically, we need a bounty for this..

@gui1117
Copy link
Contributor

gui1117 commented Jul 21, 2024

batching stuff could be achieved without global IDs by providing a new call which executes the whole batch:

@lolmcshizz
Copy link

Currently, bounties must be "extended" every 90 days - this makes sense to ensure that they are alive and still needed, however, it feels unnecessary if there are otherwise signs of activity e.g. if there have been child bounties awarded. It would be great if the 90 days could be from the last activity from the bounty.

@xlc
Copy link
Contributor

xlc commented Jul 22, 2024

The 90 days extend requirement was meant to require the curator to remark some updates about the bounty. while the bounty could indeed be active, I think it is still reasonable to expect the curator to provide some public updates to the community every 90 days. What's missing is a good UI to remark such update and make it visible to public.

@lolmcshizz
Copy link

Having this on-chain is pointless and just a source of friction - there are many other ways of providing updates. I do not see a universe where this is used in the "intended" way.

@xlc
Copy link
Contributor

xlc commented Jul 22, 2024

yeah it is unfortunate no one is using it as intended. another alternative is requiring a bounty duration when creating a bounty and requires a public proposal to renew/topup when it about to expire

@PieWol
Copy link
Contributor

PieWol commented Jul 25, 2024

  • for bounties:

    • we can have a new call: propose_bounty_with_curator. and the curator would be another storage PendingCurator until bounty is accepted.
    • and propose_bounty_with_accepted_curator. implemented similarly.

What would be a reason to have propose_bounty_with_curator when you can have propose_bounty_with_accepted_curator?

@PieWol
Copy link
Contributor

PieWol commented Jul 25, 2024

I'd like to execute this. @kianenigma. At least starting with implementing the possibility to create a bounty with curators at the same time. the rest can follow after there seems to be consensus on what needs to change.

@xlc
Copy link
Contributor

xlc commented Jul 26, 2024

Let me explain bit more initial design decision and see if want to and how to change those:

  • Curator deposit and payout delay: In order to prevent curator to just steal all the funds, there is a deposit and payout delay. The idea is that the council can slash curator and cancel a pending payout if the curator misbehaving. We don't have council anymore so people are requesting to reduce payout delay to zero. This increases the required trustness of curators. There is still a deposit but it is pointless without payout delay. We need to revisit this mechanism.
  • Because we take a slashable deposit from curator, so we can't just assign people to it. It has to be a two step process to ensure a mutual agreement. This could change if there is no more deposit.

I will suggest go back to drawing board as the circumstance have been changed significantly since the initial version (Gov1 vs OpenGov) and we have lot more usages / experiences / feedbacks.

I will image steps of:

  • gather requirements
  • create draft implementation design
  • ensure it meets requirement and easy to migrate to
  • actually implement it

@PieWol
Copy link
Contributor

PieWol commented Jul 26, 2024

Thanks for providing an explanation! Given that this is not only implementation I'll leave this issue be.

@muharem
Copy link
Contributor

muharem commented Sep 4, 2024

@xlc now the OpenGov can cancel the bounty and slash, I think the payout delay is still relevant. We might need to adjust the delay or the OpenGov track or/and have another body to take care of it.

@xlc
Copy link
Contributor

xlc commented Sep 4, 2024

In that case we need to find the right balance between of delay time. If too long, obviously bad, if too short, that requires OpenGov track voting time to be shorter, which could also be bad.
I think we need a proper RFC with some numbers and lot more inputs from others before a decision can be made.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C1-mentor A task where a mentor is available. Please indicate in the issue who the mentor could be. T2-pallets This PR/Issue is related to a particular pallet.
Projects
None yet
Development

No branches or pull requests

8 participants