mirror of
https://github.com/Cyrix126/gupaxx.git
synced 2025-04-23 23:08:11 +00:00
removed boldness
This commit is contained in:
parent
f051879024
commit
bfc3f8a7b5
5 changed files with 40 additions and 39 deletions
|
@ -1,8 +1,8 @@
|
|||
# **Gupaxx ARCHITECTURE**
|
||||
# Gupaxx ARCHITECTURE
|
||||
|
||||
This document explains how the source code is organized. Everything differing from [Gupax](https://github.com/hinto-janai/gupax) is described here. Things that are not changed will not be present.
|
||||
|
||||
## **Structure**
|
||||
## Structure
|
||||
| File/Folder | Purpose |
|
||||
|--------------|---------|
|
||||
|main.rs| Launch the app.
|
||||
|
@ -29,14 +29,14 @@ This document explains how the source code is organized. Everything differing fr
|
|||
|component| Gupaxx related features, like updates and nodes.
|
||||
|
||||
|
||||
## **Technical differences of column XMRig in Status Tab process sub menu with upstream Gupax**
|
||||
## Technical differences of column XMRig in Status Tab process sub menu with upstream Gupax
|
||||
|
||||
Status of process for XMRig use for some information an image of data when the process started.
|
||||
The node of xmrig in upstream can not change without a restart of the process. In this fork, the node used by XMRig needs to be updated without restart (using the config HTTP API of XMRig).
|
||||
So Gupaxx needs to refresh the value of status tab submenu process for XMRig where before the values could not change without a restart of the process.
|
||||
The field node from ImgXmrig needs to be moved to PubXvbApi. This value must be updated by XMRig at start and by XvB process at runtime.
|
||||
|
||||
## **Updates**
|
||||
## Updates
|
||||
|
||||
A new option in Gupaxx tab advanced will enable bundled updates.
|
||||
The binary included of gupaxx will have default value for bundled updates depending if it is coming from the standalone or the bundled release.
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Differences with upstream [Gupax](https://github.com/hinto-janai/gupax)
|
||||
|
||||
## **Added functionalities**
|
||||
## Added functionalities
|
||||
### Integration of the XvB Raffle
|
||||
A new fancy tab to apply an algorithm of distribution of HR to XMRig (see [NOTES_ALGORITHM](NOTES_ALGORITHMS)) with your token from XvB.
|
||||
This tab also includes a console output to let you track if everything is working and what are the decision of the algorithm, and show you personal stats from XvB.
|
||||
|
@ -9,15 +9,15 @@ A new column in Status Tab to see public stats from the raffle.
|
|||
### XMRig-Proxy
|
||||
You can now point all your external miners and get all the juicy stats in Gupaxx. XvB algorithm is able to control XMRig-Proxy when it is enabled.
|
||||
|
||||
## **Removed functionality**
|
||||
## Removed functionality
|
||||
Updates by tor. The version of the crate used was outdated, plagued with security concerns and bloated the binary.
|
||||
It was only for updates.
|
||||
If you want Gupaxx to update by tor, you can torify it when launching.
|
||||
|
||||
## **Technical Debt**
|
||||
## Technical Debt
|
||||
All dependencies are upgraded to last possible version, even when there is a breaking change (code of Gupaxx is modified for that).
|
||||
|
||||
## **Bugfixes** (visuals and performances)
|
||||
## Bugfixes (visuals and performances)
|
||||
The rendering of Tabs has been modified so that the minimum stated size of the window is capable to show everything. In Upstream middles panels often overlap on the bottom.
|
||||
|
||||
The rendering of the benchmark table and of console outputs were calculating every line at the same time. Now it only renders what you see. It is a significant improvement for your processor, and you can feel the difference if it is not very powerful.
|
||||
|
@ -26,5 +26,5 @@ Updates from Gupaxx do not retrieve XMRig and P2Pool from upstream anymore, but
|
|||
|
||||
It also allows advanced users to use your their own version of P2Pool and XMRig.The standalone version of Gupaxx will not replace them.
|
||||
|
||||
## **Security**
|
||||
## Security
|
||||
With the upgrade of dependencies, cargo audit shows no more warnings for Gupaxx. (instead of 5 vulnerabilities and 4 allowed warnings for Gupax.)
|
||||
|
|
23
IDEAS.md
23
IDEAS.md
|
@ -1,11 +1,11 @@
|
|||
# **IDEAS for the future of Gupaxx**
|
||||
# IDEAS for the future of Gupaxx
|
||||
|
||||
**Theses are only ideas, everything here is still to be decided and only thoughts for now.**
|
||||
Some ideas could be done in a matter of hours, some could take months.
|
||||
|
||||
## **More Decentralized**
|
||||
## More Decentralized
|
||||
### Synchronize source code repository on p2p network
|
||||
Github is proprietary. If Gupaxx aims to be free software, it should not be only available on this proprietary platform and we should explore options to get github free.
|
||||
Github is proprietary. If Gupaxx aims to be free, it should not be only available on this platform and we should explore options to get github free.
|
||||
We can use [Radicle](https://radicle.xyz/) to get Gupaxx on a p2p collaboration stack.
|
||||
The code, issues and PR could be synchronized with Github.
|
||||
### Integrate a P2Pool compatible Nodes crawler
|
||||
|
@ -15,7 +15,7 @@ To get rid of integrating nodes list, we can include a crawler like monero.fail
|
|||
If we want Gupaxx to help user mine in the most decentralized way, we should offer them to run a monero node.
|
||||
This would be optional and would check if the requirement are fulfilled before enabling the button to do so.
|
||||
|
||||
## **More User friendly**
|
||||
## More User friendly
|
||||
### Website
|
||||
Build a website like [gupax.io](https://gupax.io) to have a more user frendly presentation and installation method.
|
||||
Having a website, we can detect the architecture and os of the visitor and give him the right archive to download.
|
||||
|
@ -34,7 +34,7 @@ At first start, a mode is suggested for very noob users. It would only shows the
|
|||
### Use remote node while syncing local node
|
||||
To reduce the time to get the first shares. No need to wait for the monero node to be synced.
|
||||
|
||||
### **Better UI**
|
||||
### Better UI
|
||||
#### Set fixed font size, do not resize with size of window
|
||||
Setting a fixed font size will allow to use the space fully and having a UI more adapted to screens. Option to set the size of the font will be included.
|
||||
#### Do not re-ask password if not needed
|
||||
|
@ -47,11 +47,11 @@ To notify the user that content is present in the bottom, an arrow pointing down
|
|||
For custom command arguments, some args are required. To help the user not make any errors, theses args must be prefilled. The user will need to enable a checkbox to apply the custom command arguments. A button reset will replace the text fields by only the required fields.
|
||||
#### Allow to hide status column
|
||||
Status columns can take together lots of space and user can use only a number of them. Allows to hide/restore them with button on the bottom on the columns for each one.
|
||||
#### Better default
|
||||
### Better default
|
||||
[Done](https://github.com/Cyrix126/gupaxx/commit/6cb767a342bec2df3358b10826a1ec1dee57fc76) and [Done](https://github.com/Cyrix126/gupaxx/commit/a102bdbee2e4c0bc8785f9e638d3e54958d79489)
|
||||
Reduce in/out peers, remote nodes by default
|
||||
|
||||
## **Making Gupaxx Support more environments**
|
||||
## Making Gupaxx Support more environments
|
||||
### Packaging
|
||||
Add repository/AUR for Gupaxx and a status of packaging distro/version on the README
|
||||
### Minimum requirement
|
||||
|
@ -66,7 +66,7 @@ This script would need arguments to know how to control xmrig/xmrig-proxy and wh
|
|||
### Web UI
|
||||
To be able to control and watch Gupaxx from another device, a daemon mode could be built with a web UI front-end.
|
||||
|
||||
## **More Powerful**
|
||||
## More Powerful
|
||||
### Optimization for xmrig
|
||||
#### Add automatic options
|
||||
On linux, we can activate 1GB pages after detecting cpu flags. We can also add cpu affinity option.
|
||||
|
@ -103,7 +103,8 @@ It must estimate external HR, which can be approximative.
|
|||
If a user control multiples miners, it could connect all of them to a xmrig-proxy instance.
|
||||
Gupaxx could offer this xmrig-instance and control it like it was a normal xmrig instance.
|
||||
|
||||
## **Trust-less Builds**
|
||||
## Trust-less
|
||||
## Builds
|
||||
### Reproducible builds
|
||||
To remove necessary trust, binairies released should have the same checksum if recompiled without code change.
|
||||
See [this](https://reproducible-builds.org).
|
||||
|
@ -112,9 +113,9 @@ Show the summuray of what will change between releases before updating to newer
|
|||
### Check signature of updates with Gupaxx
|
||||
let the build in updater of Gupaxx check the signature of the release to confirm that the releases has been signed by the right key.
|
||||
|
||||
## **Donation**
|
||||
## Donation
|
||||
### Donation transparency
|
||||
So that user can see how much is given to this project and make their own opinion of it if enough donations have been given or not, the history of donation should be made visible with the viewkey available.
|
||||
|
||||
## **XvB**
|
||||
## XvB
|
||||
keeping track of participation history in rounds and automatically showing results in the XvB tab.
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
|
||||
**Draft**
|
||||
|
||||
# **Algorithm of distribution of Hashrate between P2pool and XvB**
|
||||
## **Objective**
|
||||
# Algorithm of distribution of Hashrate between P2pool and XvB
|
||||
## Objective
|
||||
If the Hashrate (HR) is not enough to probably always have at least one share in the window PPLNS (WP), the HR will never be redirected to XvB node but always stay on P2Pool node.
|
||||
|
||||
If no share is acquired, all HR will stay on P2Pool node until there is one.
|
||||
|
@ -11,7 +11,7 @@ If HR is enough to probably always have at least one share in the (WP), the spar
|
|||
**Default mode**: in part given to XvB node to be in the most possible round type and keep in p2pool the rest of HR that will not impact the type of round (sHR for spared HR).
|
||||
**Hero mode**: entirely given to the XvB node regardless of sHR.
|
||||
|
||||
## **How**
|
||||
## How
|
||||
PPLNS window size (PWS): API P2pool pplnsWindowSize [^1]
|
||||
p2pool difficulty(PD): API P2pool sidechainDifficulty [^1]
|
||||
mHR: minimum required HR to stay in WP = PD / (PWS*10) [^2]
|
||||
|
@ -22,7 +22,7 @@ The mHR needs to be refreshed periodically because it can change with the diffic
|
|||
Calculation is made in % of time that will go to p2pool and to XvB, depending if mining on mini or main side chain.
|
||||
Every ten minutes, the algorithm will decide how next 10 minutes will be distributed depending on default or hero mode.
|
||||
|
||||
## **Manage with outside HashRate**
|
||||
## Manage with outside HashRate
|
||||
If miners outside the Gupaxx instance are mining on P2Pool for the same address, Gupaxx will send too much on P2Pool because it doesn't take extra HR outside his control into account.
|
||||
To solve this issue, it will look at the sidechain estimated HR (eHR) from status command of P2Pool. It is an estimation based on passed discovered shares, their difficulty, the number of blocks between them etc...
|
||||
|
||||
|
@ -32,7 +32,7 @@ This estimated external HR(eHR) minus the local HR sent to p2pool will be remove
|
|||
If miners outside the Gupaxx instance are mining on XvB for the same address, Gupaxx will maybe send too much (more than enough for the round) or too less (could have been in better round) on XvB.
|
||||
To solve this second issue, it will remove from the required HR to get to rounds the average HR sent to XvB (retrieved by XvB API) minus what he is sending of its own.
|
||||
|
||||
## **Examples**
|
||||
## Examples
|
||||
PWS = 2160
|
||||
PD = 85.5M
|
||||
### Example 1: the poor
|
||||
|
@ -43,7 +43,7 @@ Miner has 10kH/s on Gupaxx
|
|||
for ten minutes, 4 are required to be put on p2pool.
|
||||
|
||||
**Default mode**: 9 minutes are given to p2pool and one for XvB.
|
||||
Because after giving 4mn to p2pool to meet mHR, he still have ~5kH/s to spare.
|
||||
Because after giving 4mn to p2p ool to meet mHR, he still have ~5kH/s to spare.
|
||||
The first round type (Donor round) need 1kH/s and second round type (VIP Donor) need 10kH/s.
|
||||
5kH/s is enough for the Donor Round but not enough for the VIP Donor.
|
||||
So 1kH/s is given to XvB node so that the miner participate in the Donor round.
|
||||
|
@ -58,7 +58,7 @@ Because to have at still one share per window, gupaxx need to complete the alrea
|
|||
|
||||
**Hero mode**: 4 minutes are given to P2Pool and 6 for XvB.
|
||||
|
||||
## **Technical Implementation**
|
||||
## Technical Implementation
|
||||
### Knowing if a share is in PW
|
||||
P2Pool node (PN) local API show only found shares and not current.
|
||||
Gupaxx process will check frequently the output of the P2Pool command "status" without impacting the console output of the P2Pool tab to get the current shares.
|
||||
|
|
24
README.md
24
README.md
|
@ -1,20 +1,20 @@
|
|||

|
||||
|
||||
## **Development Status**
|
||||
## Development Status
|
||||
This fork has a stable release.
|
||||
It is intended for end users and offers a friendly and easy user experience.
|
||||
|
||||
## **Gupaxx**
|
||||
## Gupaxx
|
||||
`Gupaxx` is a fork of [**Gupax**](https://github.com/hinto-janai/gupax) integrating the [XMRvsBeast Raffle](https://xmrvsbeast.com), it is also a maintained software. Designed to simplify mining on [P2Pool](https://www.getmonero.org/2021/10/05/p2pool-released.html) while optionally participating (but you will want to 😉) in the XMRvsBeast raffle.
|
||||
|
||||
## **System requirements**
|
||||
## System requirements
|
||||
`Gupaxx` may not run on machines with:
|
||||
- A deprecated OS (Windows 7, Ubuntu 18.04, etc)
|
||||
- CPU whithout support for OpenGL 3.1 (<2010)
|
||||
|
||||
[](https://github.com/cyrix126/gupaxx/actions/workflows/ci.yml)
|
||||
|
||||
## **Contents**
|
||||
## Contents
|
||||
* [What is Gupaxx/XMRvsBeast?](#what-is-gupaxxxmrvsbeast)
|
||||
* [Guide](#guide)
|
||||
* [XvB Tab](#xvb-tab)
|
||||
|
@ -25,7 +25,7 @@ It is intended for end users and offers a friendly and easy user experience.
|
|||
* [Other changes](#other-changes)
|
||||
* [License](#license)
|
||||
|
||||
## **What is Gupaxx/XMRvsBeast?**
|
||||
## What is Gupaxx/XMRvsBeast?
|
||||
[**`Gupaxx`**](https://getmonero.org) is a fork of [*Gupax*](https://github.com/hinto-janai/gupax) that integrates the [XMRvsBeast raffle](https://xmrvsbeast.com).
|
||||
|
||||
With this fork, you can easily split your hashrate between P2Pool and XMRvsBeast, increasing your chances of winning in the raffle while also supporting the Monero network via decentralizing the mining using using p2pool.
|
||||
|
@ -33,7 +33,7 @@ With this fork, you can easily split your hashrate between P2Pool and XMRvsBeast
|
|||
For a detailed explanation of Gupax, see the [README](https://github.com/hinto-janai/gupax) of upstream.
|
||||
|
||||
|
||||
## **Guide**
|
||||
## Guide
|
||||
1. [Download the bundled version of Gupaxx](https://github.com/Cyrix126/gupaxx/releases)
|
||||
2. Extract
|
||||
3. Launch Gupaxx
|
||||
|
@ -57,7 +57,7 @@ The algorithm will decide which quantity of HR will be directed to P2Pool and to
|
|||
It will send by default just enough to get to the highest round or, if hero mode is enabled, everything minus the minimum required to still have a share in the PPLNS Window.
|
||||
</div>
|
||||
|
||||
## **XvB Tab**
|
||||
## XvB Tab
|
||||

|
||||
### Console of XvB
|
||||
The output of the console will show useful information on the status of the XvB process and the decision of the algorithm for every 10 minutes.
|
||||
|
@ -67,7 +67,7 @@ When you registered your XMR payout address, you should have received a token. P
|
|||
Account stats about your address on XMRvsBeast can be found here after the process is started with your token provided.
|
||||
|
||||
|
||||
## **XvB Raffle Status**
|
||||
## XvB Raffle Status
|
||||
Gupaxx adds a new column called **XvB Raffle** on the Status Tab in the Process submenu. It displays public statistics of XMRvsBeast, which are available [here](https://xmrvsbeast.com/p2pool).
|
||||
It is refreshed every minute.
|
||||
This column will be active if the XvB process is started even partially, it doesn't need the token to be provided.
|
||||
|
@ -75,14 +75,14 @@ This column will be active if the XvB process is started even partially, it does
|
|||

|
||||
|
||||
|
||||
## **Other changes**
|
||||
## Other changes
|
||||
This fork brings upgrades of dependence and some bugfixes about visual, performance and security that you can find in [DIFFERENCES](DIFFERENCES.md).
|
||||
~~I will eventually (meaning when I'll have time) create pull requests for upstream about these differences.~~
|
||||
**Edit**:
|
||||
There is currently no plan to upstream the changes as the owner of Gupax said he won't have time to review the PR.
|
||||
|
||||
|
||||
## **Troubleshooting**
|
||||
## Troubleshooting
|
||||
If you have any issue, feel free to ask for support in the [xmrvsbeast matrix room](#xmrvsbeast:monero.social) [](https://matrix.to/#/#xmrvsbeast:monero.social) or you can also just [open an issue](https://github.com/Cyrix126/gupaxx/issues/new/choose) in this repo. You can also contact me through [email](mailto:gupaxx@baermail.fr).
|
||||
### Windows
|
||||
You must add an exception to your antivirus for the directory where gupaxx is executed. Follow the step for Windows Only that start at 30 seconds in this [video](https://user-images.githubusercontent.com/101352116/207978455-6ffdc0cc-204c-4594-9a2f-e10c505745bc.mp4).
|
||||
|
@ -93,7 +93,7 @@ You must remove Gupaxx app from quarantine with following command:
|
|||
See this [issue](https://github.com/hinto-janai/gupax/issues/51).
|
||||
|
||||
|
||||
## **License**
|
||||
## License
|
||||
The GUI library Gupaxx uses is [egui](https://github.com/emilk/egui). It is licensed under [MIT](https://github.com/emilk/egui/blob/master/LICENSE-MIT) & [Apache 2.0.](https://github.com/emilk/egui/blob/master/LICENSE-APACHE)
|
||||
|
||||
[Many other libraries are used that have various licenses.](https://github.com/Cyrix126/gupaxx/blob/master/Cargo.toml)
|
||||
|
@ -101,7 +101,7 @@ The GUI library Gupaxx uses is [egui](https://github.com/emilk/egui). It is lice
|
|||
[Gupaxx](https://github.com/cyrix126/gupax/blob/master/LICENSE), [P2Pool](https://github.com/SChernykh/p2pool/blob/master/LICENSE), and [XMRig](https://github.com/xmrig/xmrig/blob/master/LICENSE) are licensed under the GNU General Public License v3.0.
|
||||
|
||||
|
||||
## **Donations**
|
||||
## Donations
|
||||
If you'd like to thank me for the development of Gupaxx and/or motivate me to improve it you're welcome to send any amount of XMR to the following address:
|
||||
|
||||
```
|
||||
|
|
Loading…
Reference in a new issue