The source project of this merge request has been removed.
Gupax: GUI for P2Pool+XMRig
All threads resolved!
All threads resolved!
Compare changes
gupax.md
0 → 100644
+ 86
− 0
[Gupax](https://github.com/hinto-janaiyo/gupax) is a cross-platform GUI for [P2Pool](https://github.com/SChernykh/p2pool)+[XMRig](https://github.com/xmrig/xmrig). I was really happy when Monero GUI implemented P2Pool directly (many users seem to be using it) however, the embedded miner is slower than the dedicated XMRig miner. Unfortunately, integrating XMRig directly into Monero GUI is a no-go mainly due to [anti-virus issues.](https://github.com/monero-project/monero-gui/pull/3829#issuecomment-1018191461) Personally, I also think keeping Monero GUI's scope simple (monerod+wallet) is the way forward. Either that, or a properly implemented [plugin system.](https://github.com/monero-project/monero-gui/pull/3829#issuecomment-1018406709)
There are a couple (abandoned) GUIs for XMRig, and 1 for P2Pool (Monero GUI). There are 0 for both combined. These two together are only accessible via the command line, which is not ideal. If you take a look at [/r/MoneroMining](https://www.reddit.com/r/MoneroMining) at any given moment, there will be threads where people are confused on how to set everything up. I'm 100% certain if there was a simple GUI solution people could point at ("just use Monero GUI + Gupax"), there would be many, many more miners on P2Pool. [On August 12th when MineXMR shutdown](https://www.reddit.com/r/Monero/comments/wb7a9s/minerxmr_is_shutting_down_august_12th_and), had a P2Pool+XMRig GUI existed, I'm certain it would have gained a much more significant chunk of the total hashrate. Instead, much of it went towards to the 2nd/3rd largest centralized pools.
I've been facinated with p2p mining even before SChernykh created Monero's P2Pool. Bitcoin's P2Pool was also seen in the same way as Monero's P2Pool is seen today, but the community neglected it, development stopped and it died off. The massive corporate ASIC farms popping up and making deals with centralized pools did not help either. [Here's an example thread from 2014](https://reddit.com/r/Bitcoin/comments/1uii40/p2pool_is_a_completely_decentralized_mining_pool). It is eerily similar to the Monero threads I read today.
- **Packaging:** Gupax will be packaged in a bundled zip/tar that includes P2Pool/XMRig, and as a standalone binary that expects you to bring your own P2Pool/XMRig. Both will be the same binary, only difference being the first will include all necessary components. Maybe an installer as well (see "Questions" below)
- **Efficiency:** I don't normally care about resource usage too much because (although not ideal...) most computers can afford to run heavy programs. However, the context for Gupax is a ***mining*** machine, it would be too ironic if it impacted the hashrate performance, and so, Gupax uses the very lightweight [Rust egui library](https://github.com/emilk/egui). By default egui is an "immediate mode" GUI, meaning frames are rendered 60x/sec. This is turned off in Gupax so frames are only rendered upon user interaction. This allows for a fast and lightweight GUI. For context, it uses around 5x less CPU when switching around tabs compared to Monero GUI
I created and maintain [monero-bash](https://github.com/hinto-janaiyo/monero-bash), which is also an effort to spread P2Pool usage. Frankly speaking, I think monero-bash is many more times more powerful than Gupax, more complex, more options, works better for me, etc. I use it daily, it's the sole way I interact with Monero/P2Pool/XMRig, but I realize it targets a niche group. Gupax is the GUI version with the goal that it's as accessible as possible, while still being powerful.
I'll likely be adding features on my own time afterwards as well (if they are useful to users). There will be documentation on everything, so even without my direct help, it will hopefully be easy for users to use and/or help each other out. I will most likely maintain this project for as long as I'm in this community and there are people using it.