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
watchtower
daemon process and do not require manual intervention so long as your Execution and Consensus Clients, and yourwatchtower
daemon, are all operating normally. You set up thewatchtower
daemon 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:
NAME:
rocketpool odao propose member - Make an oracle DAO member proposal
USAGE:
rocketpool odao propose member command [command options] [arguments...]
COMMANDS:
invite, i Propose inviting a new member
leave, l Propose leaving the oracle DAO
kick, k Propose kicking a member
OPTIONS:
--help, -h show help
invite
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]
.
kick
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.
leave
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.
:::::
Viewing Proposals
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.
Executing Proposals
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.