mirror of
https://github.com/Cyrix126/gupaxx.git
synced 2024-11-16 15:27:46 +00:00
This commit is contained in:
parent
4407de7229
commit
c80c6f8186
5 changed files with 49 additions and 50 deletions
|
@ -29,7 +29,7 @@ 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).
|
||||
|
@ -39,7 +39,7 @@ The field node from ImgXmrig needs to be moved to PubXvbApi. This value must be
|
|||
## 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.
|
||||
The binary included of Gupaxx will have default value for bundled updates depending if it is coming from the standalone or the bundled release.
|
||||
|
||||
Updates from Gupaxx will do the following differently from upstream:
|
||||
- Check if using bundled or standalone with state. Update only Gupaxx binary if the latter or xmrig and p2pool from bundle version if the former.
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
## 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.
|
||||
This tab also includes a console output that lets you track if everything is working and see what the decision are of the algorithm, and show you your personal stats from XvB.
|
||||
|
||||
A new column in Status Tab to see public stats from the raffle.
|
||||
### XMRig-Proxy
|
||||
|
@ -18,13 +18,13 @@ If you want Gupaxx to update by tor, you can torify it when launching.
|
|||
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)
|
||||
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 Tabs has been modified so that the minimum stated size of the window is capable to show everything. In Upstream the middle 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.
|
||||
|
||||
Updates from Gupaxx does not retrieve xmrig and p2pool from upstream anymore, but use versions in the bundled version. This modification prevent bad surprise (see [#3](https://github.com/Cyrix126/gupaxx/issues/3)).
|
||||
Updates from Gupaxx does not retrieve XMRig and P2Pool from upstream anymore, but use versions in the bundled version. This modification prevent bad surprise (see [#3](https://github.com/Cyrix126/gupaxx/issues/3)).
|
||||
|
||||
It also allows advanced users to use your their own version of p2pool and xmrig.The standalone version of Gupaxx will not replace them.
|
||||
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
|
||||
With the upgrade of dependencies, cargo audit shows no more warnings for Gupaxx. (instead of 5 vulnerabilities and 4 allowed warnings for Gupax.)
|
||||
|
|
61
IDEAS.md
61
IDEAS.md
|
@ -5,7 +5,7 @@ Some ideas could be done in a matter of hours, some could take months.
|
|||
|
||||
## More Decentralized
|
||||
### Synchronize source code repository on p2p network
|
||||
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.
|
||||
Github is proprietary. If Gupaxx aims to be free software, it should not only be available on this proprietary platform and we should explore other options to be 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
|
||||
|
@ -17,18 +17,18 @@ This would be optional and would check if the requirement are fulfilled before e
|
|||
|
||||
## 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.
|
||||
Creating a website like [gupax.io](https://gupax.io) to have a more user friendly presentation and installation method.
|
||||
Having a website, we can detect the architecture and OS of the visitor and give them the right archive to download.
|
||||
### Generated wallet
|
||||
If Gupaxx could create a wallet and put the primary address in p2pool tab automaticcly, it would remove a manual step for the user.
|
||||
If Gupaxx could create a wallet and put the primary address in P2Pool tab automatically, it would remove a manual step for the user.
|
||||
It could be an option to ask at first start.
|
||||
The user could access this wallet on the same computer with the official GUI wallet. A password would be needed and a button could be added to show the seedphrase.
|
||||
### Auto register to XvB
|
||||
If Gupaxx could register the user automaticcly to the raffle, it would remove a manual step for the user.
|
||||
Automatic registration could be done to prevent spam by checking if the registered address is in p2pool window or by giving a small HR to XvB.
|
||||
If Gupaxx could register the user automatically to the raffle, it would remove a manual step for the user.
|
||||
Automatic registration could be done to prevent spam by checking if the registered address is in P2Pool window or by giving a small HR to XvB.
|
||||
It could be an option to ask at first start.
|
||||
### Setup Guide
|
||||
At first start, a guide could ask the user what it intends to do with Gupaxx (create node, create wallet, use xmrig-proxy, participate in raffle...) and do the setup for him and show him what it must do manually. An option to skip this guide would be present for advanced users.
|
||||
At first start, a guide could ask the user what it intends to do with Gupaxx (create node, create wallet, use XMRig-Proxy, participate in raffle...) and do the setup for him and show him what it must do manually. An option to skip this guide would be present for advanced users.
|
||||
### Very noob mode
|
||||
At first start, a mode is suggested for very noob users. It would only shows the seed phrase of the wallet generated and configure all options for the user.
|
||||
### Use remote node while syncing local node
|
||||
|
@ -38,7 +38,7 @@ To reduce the time to get the first shares. No need to wait for the monero node
|
|||
#### 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
|
||||
On Linux, Do not re-ask for sudo to start xmrig when the user can use sudo without a password. It can happen if visudo has been configured to do so or if there is a delay specified in /etc/sudoers with "timestamp_timeout".
|
||||
On Linux, Do not re-ask for sudo to start XMRig when the user can use sudo without a password. It can happen if visudo has been configured to do so or if there is a delay specified in /etc/sudoers with "timestamp_timeout".
|
||||
#### Allow resize of consoles
|
||||
So users can view more or less output as they need.
|
||||
#### Scrolling arrows
|
||||
|
@ -47,41 +47,41 @@ 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 defaults
|
||||
[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
|
||||
### Packaging
|
||||
Add repository/AUR for Gupaxx and a status of packaging distro/version on the README
|
||||
Add repository/AUR for Gupaxx and a status of packaging distro/version on the README.
|
||||
### Minimum requirement
|
||||
Add on README a table with minimum hardware/software requirements.
|
||||
Add a table with the minimum hardware/software requirements to the README.
|
||||
### Add more target
|
||||
Gupaxx could add support for linux arm64 since p2pool and xmrig can compile on this target.
|
||||
Gupaxx could add support for Linux ARM64 since both P2Pool and XMRig can compile on this target.
|
||||
### Refactor size of text
|
||||
Gupax/x currently resize texts/widgets based on the window size. Instead, the text/widget size should be decided by the OS/config, scroll bar should be used when there is not enough space. It will allow to use Gupaxx on different ratio of screen.
|
||||
Gupaxx currently resize texts/widgets based on the window size. Instead, the text/widget size should be decided by the OS/config, scroll bar should be used when there is not enough space. It will allow to use Gupaxx on different ratio of screen.
|
||||
### CLI for Algorithm
|
||||
A simple script or a small binary could be made to reproduce the algorithm who would take args for every other needed programs.
|
||||
This script would need arguments to know how to control xmrig/xmrig-proxy and where to watch p2pool data plus the XvB token and xmr address.
|
||||
This script would need arguments to know how to control XMRig/XMRig-Proxy and where to watch P2Pool data plus the XvB token and XMR address.
|
||||
### 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
|
||||
### Optimization for xmrig
|
||||
### Optimization for XMRig
|
||||
#### Add automatic options
|
||||
On linux, we can activate 1GB pages after detecting cpu flags. We can also add cpu affinity option.
|
||||
On Linux, we can activate 1GB pages after detecting CPU flags. We can also add cpu affinity option.
|
||||
#### Manual optimizations
|
||||
On the XMRig tab, inform users about manual optimizations that Gupaxx can't control. For example, disabling hyper-threading in BIOS is recommended.
|
||||
### Watch Stratum Data instead of estimate.
|
||||
Right now, the algorithm estimate the eHR with the estimation made by the p2pool instance which is calculating from passed shares.
|
||||
Right now, the algorithm estimate the eHR with the estimation made by the P2Pool instance which is calculating from passed shares.
|
||||
The algorithm could instead watch the stats from the stratum server, which is more precise but would take into account only miners which are pointed to it.
|
||||
The algorithm would still check the estimation made by the p2pool instance of Gupaxx and warn the user if it seems there is too much difference between the data of the stratum server and the one of p2pool. It could prevent the user to forget to configure a miner to the stratum p2pool.
|
||||
Could also be an option in advanced tab of XvB warning the user that he should point all his miners to the p2pool instance of Gupaxx to take them into account.
|
||||
The algorithm would still check the estimation made by the P2Pool instance of Gupaxx and warn the user if it seems there is too much difference between the data of the stratum server and the one of P2Pool. It could prevent the user to forget to configure a miner to the stratum P2Pool.
|
||||
Could also be an option in advanced tab of XvB warning the user that he should point all his miners to the P2Pool instance of Gupaxx to take them into account.
|
||||
It can be a checkbox into advanced option of XvB to use the stratum data.
|
||||
### Automatic sending of funds
|
||||
A way to automatically send funds of mining to a wallet address or multiple wallet addresses by setting a minimum amount and % with time frequency or setting a fixed amount and priority.
|
||||
### Wait for sync to start of xmrig
|
||||
If p2pool/node is not yet synced, xmrig can slower them and mine for nothing if it start at the same time. We don't want to prevent the user to start xmrig without p2pool, so xmrig could start later only if p2pool is auto started.
|
||||
### Wait for sync to start of XMRig
|
||||
If P2Pool/node is not yet synced, XMRig can slower them and mine for nothing if it start at the same time. We don't want to prevent the user to start XMRig without P2Pool, so XMRig could start later only if P2Pool is auto started.
|
||||
### Systray icon
|
||||
Enable a way to put Gupaxx in background, managing it with a systray icon.
|
||||
### Auto-Launch
|
||||
|
@ -89,9 +89,9 @@ Option to launch Gupaxx at startup
|
|||
### API of Algorithm
|
||||
To make the Algorithm controllable outside of Gupaxx.
|
||||
### Graphs history of HR
|
||||
The user could see how the HR was given on p2pool and XvB.
|
||||
### Update xmrig benchmark from Gupaxx
|
||||
To have the latest benchmark from xmrig, but still including one by default. Also automates the inclusion on release
|
||||
The user could see how the HR was given on P2Pool and XvB.
|
||||
### Update XMRig benchmark from Gupaxx
|
||||
To have the latest benchmark from XMRig, but still including one by default. Also automates the inclusion on release.
|
||||
### Manually set HR for XvB algo
|
||||
Done by [Sina](https://github.com/mostafaei2002) [PR](https://github.com/Cyrix126/gupaxx/pull/11)
|
||||
An advanced tab on XvB tab with multiple tools to set the HR manually.
|
||||
|
@ -100,14 +100,13 @@ The user can sometime better know the right decision from his HR than the algo t
|
|||
[Done](https://github.com/Cyrix126/gupaxx/releases/tag/v1.2.0)
|
||||
The algorithm of distribution of HR can't control HR outside of his instance.
|
||||
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.
|
||||
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).
|
||||
To remove (un)necessary trust, binaries released should have the same checksum if recompiled without code change.
|
||||
See [This](https://reproducible-builds.org).
|
||||
### Release changes notes preview
|
||||
Show the summuray of what will change between releases before updating to newer release.
|
||||
### Check signature of updates with Gupaxx
|
||||
|
@ -118,4 +117,4 @@ let the build in updater of Gupaxx check the signature of the release to confirm
|
|||
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
|
||||
keeping track of participation history in rounds and showing results in the XvB tab.
|
||||
keeping track of participation history in rounds and automatically showing results in the XvB tab.
|
||||
|
|
|
@ -8,7 +8,7 @@ If the Hashrate (HR) is not enough to probably always have at least one share in
|
|||
If no share is acquired, all HR will stay on P2Pool node until there is one.
|
||||
|
||||
If HR is enough to probably always have at least one share in the (WP), the spare HR will be:
|
||||
**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).
|
||||
**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
|
||||
|
@ -16,10 +16,10 @@ 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]
|
||||
|
||||
Because it is probabilities, a buffer will be put in place for the required HR for p2pool and mHR for round type to allow some margin of errors.
|
||||
Because it is probabilities, a buffer will be put in place for the required HR for P2Pool and mHR for round type to allow some margin of errors.
|
||||
The mHR needs to be refreshed periodically because it can change with the difficulty changing. (PWS should not change).
|
||||
|
||||
Calculation is made in % of time that will go to p2pool and to XvB, depending if mining on mini or main side chain.
|
||||
Calculation is made in % of time that will go to P2Pool and to XvB, depending if your 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
|
||||
|
@ -27,7 +27,7 @@ If miners outside the Gupaxx instance are mining on P2Pool for the same address,
|
|||
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...
|
||||
|
||||
This eHR will be retrieved at the same interval as the algorithm.
|
||||
This estimated external HR(eHR) minus the local HR sent to p2pool will be removed from the mHR.
|
||||
This estimated external HR(eHR) minus the local HR sent to P2Pool will be removed from the mHR.
|
||||
|
||||
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.
|
||||
|
@ -40,10 +40,10 @@ Miner has 2kH/s on Gupaxx.
|
|||
HR never goes on XvB, because the minimum required to have a share in WP is 4kH/s based on PD and PWS values.
|
||||
### Example 2: the modest
|
||||
Miner has 10kH/s on Gupaxx
|
||||
for ten minutes, 4 are required to be put on p2pool.
|
||||
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.
|
||||
**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.
|
||||
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.
|
||||
|
@ -91,7 +91,7 @@ Or to return back to p2pool
|
|||
"tls": false,
|
||||
```
|
||||
|
||||
The HTTP API of xmrig requires to give a full config.
|
||||
The HTTP API of XMRig requires to give a full config.
|
||||
The current config will be requested, modified and sent back.
|
||||
|
||||
[^1]: https://p2pool.io/mini/api/pool/stats
|
||||
|
|
10
README.md
10
README.md
|
@ -38,14 +38,14 @@ For a detailed explanation of Gupax, see the [README](https://github.com/hinto-j
|
|||
2. Extract
|
||||
3. Launch Gupaxx
|
||||
|
||||
Next steps can be seen in this video tutorial.
|
||||
Next steps can be seen in this video tutorial:
|
||||
|
||||
https://github.com/Cyrix126/gupaxx/assets/58007246/610cbfea-fd97-4150-95ed-9c8a7ef5ba94
|
||||
|
||||
|
||||
|
||||
4. Input your Monero address in the `P2Pool` tab
|
||||
5. Register your same address on [XMRvsBeast](https://xmrvsbeast.com)
|
||||
5. Register the same address on [XMRvsBeast](https://xmrvsbeast.com)
|
||||
6. Input the token received in the XvB Tab
|
||||
6. Start P2Pool
|
||||
7. Start XMRig
|
||||
|
@ -53,8 +53,8 @@ https://github.com/Cyrix126/gupaxx/assets/58007246/610cbfea-fd97-4150-95ed-9c8a7
|
|||
|
||||
Gupaxx will distribute your hashrate between P2Pool and XMRvsBeast as defined by [this algorithm](NOTES_ALGORITHM.md).
|
||||
|
||||
The algorithm will decide which quantity of HR will be directed to P2Pool and to XMRvsBeast, so that you still keep a share in the [PPLNS Window](https://github.com/SChernykh/p2pool#how-payouts-work-in-p2pool).
|
||||
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.
|
||||
The algorithm will decide which quantity of HR that will be directed to P2Pool and to XMRvsBeast, so that you still keep a share in the [PPLNS Window](https://github.com/SChernykh/p2pool#how-payouts-work-in-p2pool).
|
||||
It will by default send 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
|
||||
|
@ -85,7 +85,7 @@ There is currently no plan to upstream the changes as the owner of Gupax said he
|
|||
## Troubleshooting
|
||||
If you have any issue, feel free to ask for support in the [xmrvsbeast matrix room](#xmrvsbeast:monero.social) [![Chat on Matrix](https://matrix.to/img/matrix-badge.svg)](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).
|
||||
You must add an exception to your antivirus for the directory where Gupaxx is executed. Follow the step for Windows Only, that starts at 30 seconds in this [video](https://user-images.githubusercontent.com/101352116/207978455-6ffdc0cc-204c-4594-9a2f-e10c505745bc.mp4).
|
||||
### Mac OSX
|
||||
You must remove Gupaxx app from quarantine with following command:
|
||||
*If you have put Gupaxx.app in your Applications*
|
||||
|
|
Loading…
Reference in a new issue