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
RocketPool support #13
Comments
Very feasible and it's on my to-do list, see the Gitcoin grant. I have decided to prioritize execution layer rewards over Rocketpool support (since that will benefit everyone, not just RPL node operators). I've been working on it in my free time since October but there are still some inconsistencies in the rewards calculation (especially when the fee recipient is a smart contract things can get interesting). When I get to adding Rocketpool support I would like to include RPL rewards as well besides consensus layer rewards. Do you know how to get the operator commission rate? I haven't looked into it yet, but I assume I'll need to go through events emitted by one of the Rocketpool contracts. |
The commission rate for a Rocketpool validator can be found on chain or via the Beaconcha.in API. The Beaconcha.in API also has an endpoint which contains a lot of relevant info, including the commission rate: You've possibly already figured this out, but I thought I'd drop the info here anyway. |
Thanks for chiming in @aliask and thanks for the information provided. I would like to avoid using beaconcha.in APIs as much as possible/practical, just to have two independent sources of income data and also to be independent in general. The problem with the commission rate is that it can change over time. The beaconcha.in API seems to return the current value. But I'm guessing you need to apply the commission rate at the time the rewards was received, right? So I will need to store the values as they change, together with the time period during which they applied. Here's the major bullet points that I could think of that need to be taken into account for Rocketpool node operators:
Am I missing anything? This is going to be harder than I expected 😄 |
Yeah, I agree that it would absolutely be best to have an independent implementation. But it's definitely more work 😅. I didn't realise that you had specific plans for Rocketpool. I actually submitted a bounty application to the RP Grants Management Committee for a tax calculation tool a couple of week ago, and they will decide whether or not to include it in the next 5ish days. So there may be some incentive to complete the work! One thing which I think is missing is the EL MEV rewards for those not in the smoothing pool. I'm pretty sure those get paid to the minipool address, and then split according to the minipool commission. The commission only changes at very specific times (almost never). It's only when a minipool performs a "bond reduction", they go from their previous fee, to 14% (in the case of 8ETH minipools). So the commission should whatever they deployed the minipool at, or if they went through a bond reduction, 14%. RPL and smoothing pool rewards are very complicated to calculate, but fortunately you don't have to do that. The oDAO members generate this data once per rewards period and publish the per-node data on IPFS and a reference to it (the CID) is published on-chain when the rewards are distributed. Rocketpool support is definitely not a small task, but it would help many people 🙏 |
I found this very helpful documentation of how the calculations are performed (and were performed historically). |
I've put a lot of effort into this and it looks like I'm finally close to something viable. A development version is running at http://194.163.155.173/preview , if anyone is subscribed to this issue and wants to give it a try, compare it to what they expect they earned, it would be greatly appreciated! Feel free to reach out to me in private as well, I'm on the Rocket Pool Discord among many more. It currently supports:
There are some limitations, but I believe it should work just fine for 99% of RP node operators:
|
Rocket Pool Mode is now a part of ethstaker.tax 🚀 enjoy! Accompanying blog post: https://serenita.io/blog/ethstaker-tax-rocket-pool-mode |
How feasible would it be to add automatic detection of RocketPool minipools and calculate consensus layer rewards that go to the node operator?
A column that has the node fee percentage, and a column that has the rewards earned by the NO, as opposed to earned by the validator:
Acknowledged that this is easy enough to add manually to the generated CSV :)
The text was updated successfully, but these errors were encountered: