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

Dob/delta: Initial draft LIP submission for Livepeer Delta. #88

Closed
wants to merge 22 commits into from

Conversation

dob
Copy link
Member

@dob dob commented Jul 5, 2023

This is the initial PR for the set of LIPs that incorporates the Livepeer Delta decentralization upgrade. It includes Livepeer treasury, contribution percentage, social conventions, and a placeholder for security committee governance.

Notes to reviewers

  • As LIP #'s aren't assigned until this PR is merged, the references between files will need to be updated.
  • There is a bundle LIP - treasury_bundle - which describes the creation of the treasury and social conventions for interacting with the treasury. Review this first.
  • There is a treasury_technical_spec in the assets folder, which was included as a standalone doc because of its rigor and technical depth. If you believe it should be included in the LIP itself, we can do so.
  • The treasury_contribution_percentage LIP can be considered on its own but depends on the bundle passing. Review this after the bundle.
  • The governable_security_committee LIP is a placeholder for a fast follow LIP, but we felt it important to include it in the spirit of Delta's intentions.

Pre-reqs for moving these LIPs from Draft to Last Call would be further community discussion in the forums, technical review of the candidate implementation and spec.

@dob dob requested review from victorges and yondonfu July 5, 2023 20:47
Copy link
Member

@yondonfu yondonfu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Left a few comments.

Also, since the convention has been 1 LIP per PR in order to make it easy to follow the convention of assigning a draft LIP number as the PR number, also requesting each of the individual LIPs to be submitted as separate PRs.

LIPs/LIP-livepeer_treasury.md Outdated Show resolved Hide resolved
LIPs/LIP-livepeer_treasury.md Outdated Show resolved Hide resolved
LIPs/LIP-livepeer_treasury.md Show resolved Hide resolved

**Execution**

Upon the end of the `Voting Period`, it will be determinable on chain whether the proposal passed or did not pass. If it passed, then there is an `execute` transaction callable by anyone, that will execute the associated transaction associated with the proposal. By default, initially the only transaction type will be to send LPT from the treasury to the specified receive address. If the proposal did not pass or did not reach quorum, then the `execute` function will revert and no action will be taken.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I might've missed it, but from skimming the spec I don't see mention of any onchain restrictions on the logic that is allowed in proposals despite this section noting that the logic of proposals should be restricted to LPT transfers.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@victorges Yes I was thinking about this as well. When proposals are submitted, do we have the ability to enforce that the only txn type is a transfer of LPT from the treasury to a receive address? In the future we can update this to enable other types of governance actions?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That would be possible to be implemented if we override the Governor.propose function and make a few checks. The only change would be that we probably want to allow any of the "governance" proposals as well (e.g. updating voting delay, period, timelock delay, etc).

The implementation can have a list of allowed calldatas / targets. Would need to add this to the spec and implementation though, which might be a 0.5-1 day effort. Let me know if we do want this behavior and I can give it a shot on livepeer/protocol#615 !

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@victorges Yes I think this is a good idea. But I would like to better understand the process for updating this overrided Governor.propose function in the future to allow greater flexibility in what can be done via governance actions. Is it upgradeable...and if so who has permission to upgrade it? I guess this would be solved if the valid Governor.propose actions are:

  • Token transfers from the treasury
  • Updates to the governance parameters
  • Updates to the function that performs these checks...so that a different one can be selected in the future?

LIPs/LIP-livepeer_treasury.md Outdated Show resolved Hide resolved
LIPs/LIP-funding_entity_conventions.md Outdated Show resolved Hide resolved
LIPs/LIP-treasury_contribution_percentage.md Outdated Show resolved Hide resolved
@@ -0,0 +1,41 @@
---
lip: governable_security_committee
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think there is sufficient information in this LIP for it to be merged as a draft yet so I recommend fleshing out the empty sections before submitting a PR to merge it as a draft.

@dob
Copy link
Member Author

dob commented Jul 20, 2023

Thanks. What I'll do is address the open micro comments and debatable points here in this PR, and then resubmit individual PRs for each LIP.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FTR I've used the Notion doc [1] during the final steps of the implementation and made some comments there about changes that needed to be made and incorporated here. Haven't made the changes there either, only made comments as reminders.

[1] https://www.notion.so/livepeer/LIP-Treasury-Technical-Specification-79d02fb175ab43a9ad15aa64006927ca#acf26194a1b64dfc806b0b1cae03d087

@dob
Copy link
Member Author

dob commented Jul 21, 2023

Ok, the PRs are now broken up into individual PRs for each LIP, and there's two new forum discussion threads. One for the treasury bundle and one for the treasury contribution percentage discussion.

I'll leave this PR open for a bit for reference on the ongoing discussion, but let's move any future updates to the spec or PRs themselves into the individual LIP based PRs, rather than here. cc @victorges @yondonfu

@victorges
Copy link
Member

@dob should we close this one?

@dob dob closed this Aug 7, 2023
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

Successfully merging this pull request may close these issues.

3 participants