SChernykh / p2pool

Decentralized pool for Monero mining
GNU General Public License v3.0
1.03k stars 123 forks source link

Zephyr support #296

Closed DeMemeTree closed 1 month ago

DeMemeTree commented 6 months ago

The curious case of Zephyr.

Somebody smooshed together Djed logic and Monero codebase to create Zephyr. More info can be found out about the project here https://www.zephyrprotocol.com.

Currently all of the pool operators are gathering up any transaction fee that is associated with transfers (not swaps) for assets such as ZSD and ZRS. They are only keeping track and paying out Zeph to miners, even though blocks could have ZSD or ZRS transaction fees.

Since Zeph is a fork of XMR I would think its possible to natively implement support for payouts to all miners for Zeph, ZSD, ZRS through a p2pool like merge mining technology.

Curious what are your thoughts on this and if its even possible?

SChernykh commented 6 months ago

I didn't look at the details of how ZSD and ZRS payouts are implemented, but if there can be multiple ZSD/ZRS outputs in the coinbase transaction, it's possible. Multiple ZEPH outputs in the coinbase transaction must be possible, unless they changed something when forking Monero.

But it's not a small task to implement all this, I estimate it to be 1-2 weeks of full time work (not counting the learning stage). I don't have time for it right now, maybe Zeph developers will fork P2Pool and try to implement it. I can answer their questions in Discord.

DeMemeTree commented 6 months ago

I am decently versed with c++ (not to your level 🧙‍♂️ but can hang with time and effort applied to learning) and would like to take the task on myself as I have already studied some of what they changed and I think they are busy with other changes and research. They have essentially added an asset type. ZEPH, ZEPHZSD, ZEPHZRS. I have added this to demonstrate. https://github.com/DeMemeTree/z2pool/commit/b43dff2ce4154856e0ed616a259dba07152911b2 Even though on their side it is a string. I figured somewhere upstream from this struct it would be mapped to the uint8_t.

Even if I dont get the ZRS/ZSD working I would think I should be able to get it up and running for Zeph at the very least.

I shouldnt have a lot of questions for you but I may have a few to start after I finish my analysis of the codebase, where in discord can I find you to chat?

SChernykh commented 6 months ago

My discord name is sech1, I'm in Zephyr discord too.