Oracle DAO Proposals
As a reminder, there are two types of Oracle DAO duties:
- Automated duties - these are duties related to routine Rocket Pool operation, such as shuttling information from the Consensus Layer to the Execution Layer, calculating various aspects of the protocol off-chain, and submitting them as updates to the Smart Contracts. Each of these is performed automatically by the
watchtowerdaemon process and do not require manual intervention so long as your Execution and Consensus Clients, and your
watchtowerdaemon, are all operating normally. You set up the
watchtowerdaemon in the previous steps already, so this section will not go over them again.
- Manual duties - these are duties that require your own decision making and out-of-band communication with the rest of the Oracle DAO to perform. They include things such as voting on contract upgrades, changing parameters, and inviting or kicking members to/from the Oracle DAO. These can all be done via the standard Smartnode CLI. This section describes each of these duties and how to perform them.
Proposals form the core of your responsibities outside of the automated
watchtower duties. Essentially, they work as follows:
- The collective Oracle DAO should discuss an upcoming proposal extensively ahead of time, so each member is aware of it and understands what that proposal will entail.
- An Oracle DAO member then creates the proposal via an on-chain transaction.
- The proposal will then enter a wait period before voting can begin to have further discussion and form their opinion on it. This is currently 7 days on Mainnet.
- After the wait period is over, members can vote on the proposal via a simple yes-or-no vote.
- When a quorum of 51% of the Oracle DAO members has voted the same way, the vote is concluded. If 51% agreed to the proposal, it will be able to be executed. Any member can execute the proposal once it is approved.
- Execution refers to formally triggering the change on-chain, thus modifying the state of the core Rocket Pool contracts.
Making a Proposal
Once you make a proposal, it will enter a review period where the other members can see it and discuss it, but will not be able to vote on it. At the time of writing, this is currently 7 days.
After the review period, there will be a voting period where members can vote either for the proposal, or against it. At the time of writing, this is currently 14 days.
If the proposal reaches quorum before it expires (that is, if enough members vote in favor of it to reach consensus), it will be passed. Quorum is a configurable parameter by the Oracle DAO; it is currently set to at least 51% of the total member pool.
Once a vote is passed, it can be executed which causes its changes to go into effect. At the time of writing, the execution is 14 days after the proposal was passed.
The process for making a new proposal depends on the type of proposal you want to make. Select a type from the tabs below.
To propose modifying the list of Oracle DAO members, use the
rocketpool odao propose member command which provides the following options:
rocketpool odao propose member - Make an oracle DAO member proposal
rocketpool odao propose member command [command options] [arguments...]
invite, i Propose inviting a new member
leave, l Propose leaving the oracle DAO
kick, k Propose kicking a member
--help, -h show help
Inviting a member is done via
rocketpool odao propose member invite which will take 3 additional arguments:
- The node address to invite (must be a registered Rocket Pool node)
- The name / label for this node
- The URL or contact info for the user or organization running the node
For example: to invite a new member, run
rocketpool odao propose member invite 0xabcd1234abcd1234abcd1234abcd1234abcd1234 some-user [email protected].
Kicking a member out of the Oracle DAO is done via the
rocketpool odao propose member kick command. It will ask you to select which member you want to kick, and issue an optional fine (from 0 RPL up to the bonded RPL amount, currently 1750 RPL). This fine, if provided, will burn part of (or all of) the member's RPL bond if the Oracle DAO votes to kick that member.
If you would like to voluntarily resign from the Oracle DAO, use the
rocketpool odao propose member leave command. This will create a new proposal so the other members can vote on whether or not to approve your resignation.
To view a brief summary of all of the proposals in the protocol's history, use
rocketpool odao proposals list. This will sort the proposals by their status and show who proposed it and what it does.
To view the details of a specific proposal, use
rocketpool odao proposals details <value> where
<value> is the ID of the proposal you would like to view. This will show a comprehensive breakdown of the proposal's information including who created it, when it was created, the payload body, how many members voted in favor of it, how many members voted against it, and whether or not your node has voted on it yet.
Voting on Proposals
To vote on a proposal, use the following command:
rocketpool odao proposals vote
This will provide you with an interactive dialog asking which proposal you would like to vote on, and whether you would like to vote in favor of it or against it. Follow the prompts carefully to complete the vote.
When a proposal has received enough votes in favor of it to reach quorum, any member of the Oracle DAO can then execute the proposal (apply its changes) using the following command:
rocketpool odao proposals execute
This will provide you with an interactive dialog asking which proposal you would like to execute. Follow the prompts carefully to complete the execution.