diff --git a/CHANGELOG.md b/CHANGELOG.md index 42a4fc9..06491dc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,20 +1,47 @@ # v1.2.0 ## Updates -* [Remote Nodes](https://github.com/hinto-janai/gupax#remote-monero-nodes) changes: - ``` - + ADD p2pool.uk (good uptime) - + ADD xmr.aa78i2efsewr0neeknk.xyz (good uptime) - + ADD monero.jameswillhoite.com (okay uptime) - - REMOVE fbx.tranbert.com (failing daily ping tests) - ``` - -## Fixes -* +* Added [`Benchmarks`](https://github.com/hinto-janai/gupax#Status-1) submenu in `Status` tab + - Your hashrate vs others with the same CPU + - List of similar CPUs and their stats + - Data source: [Here](https://github.com/hinto-janai/xmrig-benchmarks) & [here](https://xmrig.com/benchmark) +* [Remote Node](https://github.com/hinto-janai/gupax#remote-monero-nodes) changes: + - `+ ADD` p2pool.uk + - `+ ADD` xmr.aa78i2efsewr0neeknk.xyz + - `+ ADD` monero.jameswillhoite.com + - `- REMOVE` fbx.tranbert.com ## Bundled Versions -* [`P2Pool v3.0`](https://github.com/SChernykh/p2pool/releases/tag/v3.0) +* [`P2Pool v3.1`](https://github.com/SChernykh/p2pool/releases/tag/v3.1) * [`XMRig v6.19.0`](https://github.com/xmrig/xmrig/releases/tag/v6.19.0) +## PGP Key Change +Please use the new key to verify releases, [found here](https://github.com/hinto-janai/gupax/blob/main/pgp/hinto-janai.asc), [or here.](https://gupax.io/hinto) + +<details> +<summary>Verification</summary> + +``` +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA256 + +I'm slightly shortening my alias from +`hinto-janaiyo` to `hinto-janai` and changing to +this PGP key: 31C5145AAFA5A8DF1C1DB2A6D47CE05FA175A499 + +This message is signed with the old key, +2A8F883E016FED0380287FAFB1C5A64B80691E45 + +Sorry for the inconvenience. +-----BEGIN PGP SIGNATURE----- + +iHUEARYIAB0WIQQqj4g+AW/tA4Aof6+xxaZLgGkeRQUCZBTRkQAKCRCxxaZLgGke +RWb4AP0T/n+2XlssCcUHh/6cNq67isJ0v10Hi/drmTPLKvNKjgEAqNavi6+sB1NQ +Eh6+zWpoydVGzFdEkE5XKmnQ1dm/GQ8= +=g9YL +-----END PGP SIGNATURE----- +``` +</details> + --- diff --git a/README.md b/README.md index ce8a7bb..b38382a 100644 --- a/README.md +++ b/README.md @@ -5,11 +5,11 @@ Gupax is a (Windows|macOS|Linux) GUI for mining [**Monero**](https://github.com/ **To see a 3-minute video on how to download and run Gupax: [click here.](#How-To)** -![windows-build](https://github.com/hinto-janaiyo/gupax/actions/workflows/windows-build.yml/badge.svg) ![macos-build](https://github.com/hinto-janaiyo/gupax/actions/workflows/macos-build.yml/badge.svg) ![linux-build](https://github.com/hinto-janaiyo/gupax/actions/workflows/linux-build.yml/badge.svg) +![windows-build](https://github.com/hinto-janai/gupax/actions/workflows/windows-build.yml/badge.svg) ![macos-build](https://github.com/hinto-janai/gupax/actions/workflows/macos-build.yml/badge.svg) ![linux-build](https://github.com/hinto-janai/gupax/actions/workflows/linux-build.yml/badge.svg) -![windows-test](https://github.com/hinto-janaiyo/gupax/actions/workflows/windows-test.yml/badge.svg) ![macos-test](https://github.com/hinto-janaiyo/gupax/actions/workflows/macos-test.yml/badge.svg) ![linux-test](https://github.com/hinto-janaiyo/gupax/actions/workflows/linux-test.yml/badge.svg) +![windows-test](https://github.com/hinto-janai/gupax/actions/workflows/windows-test.yml/badge.svg) ![macos-test](https://github.com/hinto-janai/gupax/actions/workflows/macos-test.yml/badge.svg) ![linux-test](https://github.com/hinto-janai/gupax/actions/workflows/linux-test.yml/badge.svg) -![daily-ping](https://github.com/hinto-janaiyo/gupax/actions/workflows/ping.yml/badge.svg) +![daily-ping](https://github.com/hinto-janai/gupax/actions/workflows/ping.yml/badge.svg) </div> @@ -106,7 +106,7 @@ https://user-images.githubusercontent.com/101352116/207978455-6ffdc0cc-204c-4594 <div align="center"> -1. [Download the bundled version of Gupax for your OS here](https://github.com/hinto-janaiyo/gupax/releases) or from [gupax.io](https://gupax.io/downloads) +1. [Download the bundled version of Gupax for your OS here](https://github.com/hinto-janai/gupax/releases) or from [gupax.io](https://gupax.io/downloads) 2. Extract somewhere (Desktop, Documents, etc) 3. Launch Gupax 4. Input your Monero address in the `[P2Pool]` tab @@ -131,7 +131,7 @@ The `Gupax/P2Pool/XMRig` tabs have two versions, `Simple` & `Advanced`. --- ### Status -This tab has 2 submenus that show some info about running processes and P2Pool-specific stats. +This tab has 3 submenus. <img src="images/processes.png" align="left" width="50%"/> @@ -153,6 +153,16 @@ This submenu shows: <br clear="left"/> +<img src="images/benchmarks.png" align="left" width="50%"/> + +**Benchmarks:** +This submenu shows: +- Your hashrate vs others with the same CPU +- List of similar CPUs and their stats +- Data source: [Here](https://github.com/hinto-janai/xmrig-benchmarks) & [here](https://xmrig.com/benchmark) + +<br clear="left"/> + --- ### Gupax @@ -198,10 +208,10 @@ XMRig Simple will always mine to your own local P2Pool (`127.0.0.1:3333`), if yo ### Verifying It is recommended to verify the hash and PGP signature of the download before using Gupax. -Download the [`SHA256SUMS`](https://github.com/hinto-janaiyo/gupax/releases/latest) file, download and import my [`PGP key`](https://github.com/hinto-janaiyo/gupax/blob/main/pgp/hinto-janaiyo.asc), and verify: +Download the [`SHA256SUMS`](https://github.com/hinto-janai/gupax/releases/latest) file, download and import my [`PGP key`](https://github.com/hinto-janai/gupax/blob/main/pgp/hinto-janai.asc), and verify: ```bash sha256sum -c SHA256SUMS -gpg --import hinto-janaiyo.asc +gpg --import hinto-janai.asc gpg --verify SHA256SUMS ``` @@ -542,12 +552,12 @@ For transparency, here's all the connections Gupax makes: | Domain | Why | When | Where | |--------------------|-------------------------------------------------------|------|-------| -| https://github.com | Fetching metadata information on packages + download | `[Gupax]` tab -> `Check for updates` | [`update.rs`](https://github.com/hinto-janaiyo/gupax/blob/main/src/update.rs) | -| Remote Monero Nodes | Connecting to with P2Pool, measuring ping latency | `[P2Pool Simple]` tab | [`node.rs`](https://github.com/hinto-janaiyo/gupax/blob/main/src/node.rs) | +| https://github.com | Fetching metadata information on packages + download | `[Gupax]` tab -> `Check for updates` | [`update.rs`](https://github.com/hinto-janai/gupax/blob/main/src/update.rs) | +| Remote Monero Nodes | Connecting to with P2Pool, measuring ping latency | `[P2Pool Simple]` tab | [`node.rs`](https://github.com/hinto-janai/gupax/blob/main/src/node.rs) | | DNS | DNS connections will usually be handled by your OS (or whatever custom DNS setup you have). If using Tor, DNS requests for updates [*should*](https://tpo.pages.torproject.net/core/doc/rust/arti/) be routed through the Tor network automatically | All of the above | All of the above | ## Remote Monero Nodes -These are the remote nodes used by Gupax in the `[P2Pool Simple]` tab. They are sourced from [this list](https://github.com/hinto-janaiyo/monero-nodes), which itself sources from [`monero.fail`](https://monero.fail). The nodes with the most consistent uptime are used. +These are the remote nodes used by Gupax in the `[P2Pool Simple]` tab. They are sourced from [this list](https://github.com/hinto-janai/monero-nodes), which itself sources from [`monero.fail`](https://monero.fail). The nodes with the most consistent uptime are used. | IP/Domain | Location | RPC Port | ZMQ Port | |----------------------------------|-----------------------------------|----------|-------------| @@ -556,12 +566,13 @@ These are the remote nodes used by Gupax in the `[P2Pool Simple]` tab. They are | monero2.10z.com.ar | π§π· BR - SΓ£o Paulo | 18089 | 18083 | | monero1.heitechsoft.com | π¨π¦ CA - Ontario | 18081 | 18084 | | node.monerodevs.org | π¨π¦ CA - Quebec | 18089 | 18084 | +| xmr.aa78i2efsewr0neeknk.xyz | π©πͺ DE - Bavaria | 18089 | 18083 | | de.poiuty.com | π©πͺ DE - Berlin | 18081 | 18084 | | m1.poiuty.com | π©πͺ DE - Berlin | 18081 | 18084 | | p2pmd.xmrvsbeast.com | π©πͺ DE - Hesse | 18081 | 18083 | -| fbx.tranbert.com | π«π· FR - Γle-de-France | 18089 | 18084 | | reynald.ro | π«π· FR - Γle-de-France | 18089 | 18084 | | node2.monerodevs.org | π«π· FR - Occitanie | 18089 | 18084 | +| p2pool.uk | π¬π§ GB - England | 18089 | 18084 | | monero.homeqloud.com | π¬π· GR - East Macedonia and Thrace | 18089 | 18083 | | home.allantaylor.kiwi | π³πΏ NZ - Canterbury | 18089 | 18083 | | ru.poiuty.com | π·πΊ RU - Kuzbass | 18081 | 18084 | @@ -573,6 +584,7 @@ These are the remote nodes used by Gupax in the `[P2Pool Simple]` tab. They are | xmrnode.facspro.net | πΊπΈ US - Nebraska | 18089 | 18084 | | moneronode.ddns.net | πΊπΈ US - Pennsylvania | 18089 | 18084 | | node.richfowler.net | πΊπΈ US - Pennsylvania | 18089 | 18084 | +| monero.jameswillhoite.com | πΊπΈ US - Ohio | 18089 | 18084 | These are community nodes that **DON'T** have ZMQ enabled but are fast and well-known. These are not used in Gupax but can be used for general Monero usage. @@ -602,7 +614,7 @@ These are community nodes that **DON'T** have ZMQ enabled but are fast and well- ### General Info You need [`cargo`](https://www.rust-lang.org/learn/get-started), Rust's build tool and package manager. -The `--release` profile in Gupax is set to prefer code performance & small binary sizes over compilation speed (see [`Cargo.toml`](https://github.com/hinto-janaiyo/gupax/blob/main/Cargo.toml)). Gupax itself (with all dependencies already built) takes around 1m30s to build (vs 10s on a normal `--release`) with a Ryzen 5950x. +The `--release` profile in Gupax is set to prefer code performance & small binary sizes over compilation speed (see [`Cargo.toml`](https://github.com/hinto-janai/gupax/blob/main/Cargo.toml)). Gupax itself (with all dependencies already built) takes around 1m30s to build (vs 10s on a normal `--release`) with a Ryzen 5950x. There are `40` unit tests throughout the codebase files, you should probably run: ``` @@ -666,18 +678,18 @@ This will build Gupax with the MSVC toolchain (`x86_64-pc-windows-msvc`). This i ## License The GUI library Gupax 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/hinto-janaiyo/gupax/blob/master/Cargo.toml) +[Many other libraries are used that have various licenses.](https://github.com/hinto-janai/gupax/blob/master/Cargo.toml) -[Gupax](https://github.com/hinto-janaiyo/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. +[Gupax](https://github.com/hinto-janai/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. ## FAQ ### Where are updates downloaded from? The latest versions are downloaded using GitHub's API. -* Gupax [`https://github.com/hinto-janaiyo/gupax`](https://github.com/hinto-janaiyo/gupax) +* Gupax [`https://github.com/hinto-janai/gupax`](https://github.com/hinto-janai/gupax) * P2Pool [`https://github.com/SChernykh/p2pool`](https://github.com/SChernykh/p2pool) * XMRig [`https://github.com/xmrig/xmrig`](https://github.com/xmrig/xmrig) -GitHub's API blocks request that do not have an HTTP `User-Agent` header. [Gupax uses a random recent version of a `Wget/Curl` user-agent.](https://github.com/hinto-janaiyo/gupax/blob/e6bf49b309c64d29e50c0a1a185fcf0ebc05e7c7/src/update.rs#L134) +GitHub's API blocks request that do not have an HTTP `User-Agent` header. [Gupax uses a random recent version of a `Wget/Curl` user-agent.](https://github.com/hinto-janai/gupax/blob/e6bf49b309c64d29e50c0a1a185fcf0ebc05e7c7/src/update.rs#L134) --- @@ -713,16 +725,16 @@ Although Gupax uses a temporary folder (`gupax_update_[A-Za-z0-9]`) to store tem ### How much memory does Gupax use? Gupax itself uses around 100-400 megabytes of memory. -Gupax also holds up to [500,000 bytes](https://github.com/hinto-janaiyo/gupax/blob/e6bf49b309c64d29e50c0a1a185fcf0ebc05e7c7/src/helper.rs#L59) of log data from `P2Pool/XMRig` to display in the GUI terminals. These logs are reset once over capacity which takes around 1-4 hours. +Gupax also holds up to [500,000 bytes](https://github.com/hinto-janai/gupax/blob/e6bf49b309c64d29e50c0a1a185fcf0ebc05e7c7/src/helper.rs#L59) of log data from `P2Pool/XMRig` to display in the GUI terminals. These logs are reset once over capacity which takes around 1-4 hours. Memory usage should *never* be above 500~ megabytes. If you see Gupax using more than this, please send a bug report. --- ### How is sudo handled? (on macOS/Linux) -[See here for more info.](https://github.com/hinto-janaiyo/gupax/tree/main/src#sudo) +[See here for more info.](https://github.com/hinto-janai/gupax/tree/main/src#sudo) --- ### Why does Gupax need to be Admin? (on Windows) -[See here for more info.](https://github.com/hinto-janaiyo/gupax/tree/main/src#why-does-gupax-need-to-be-admin-on-windows) +[See here for more info.](https://github.com/hinto-janai/gupax/tree/main/src#why-does-gupax-need-to-be-admin-on-windows) diff --git a/images/benchmarks.png b/images/benchmarks.png new file mode 100644 index 0000000..32447d3 Binary files /dev/null and b/images/benchmarks.png differ diff --git a/pgp/README.md b/pgp/README.md new file mode 100644 index 0000000..60a86ca --- /dev/null +++ b/pgp/README.md @@ -0,0 +1,25 @@ +# PGP +Please use `hinto-janai.asc` when verifying the releases. + +`hinto-janaiyo.asc` is the _old_ key. + +``` +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA256 + +I'm slightly shortening my alias from +`hinto-janaiyo` to `hinto-janai` and changing to +this PGP key: 31C5145AAFA5A8DF1C1DB2A6D47CE05FA175A499 + +This message is signed with the old key, +2A8F883E016FED0380287FAFB1C5A64B80691E45 + +Sorry for the inconvenience. +-----BEGIN PGP SIGNATURE----- + +iHUEARYIAB0WIQQqj4g+AW/tA4Aof6+xxaZLgGkeRQUCZBTRkQAKCRCxxaZLgGke +RWb4AP0T/n+2XlssCcUHh/6cNq67isJ0v10Hi/drmTPLKvNKjgEAqNavi6+sB1NQ +Eh6+zWpoydVGzFdEkE5XKmnQ1dm/GQ8= +=g9YL +-----END PGP SIGNATURE----- +``` diff --git a/src/README.md b/src/README.md index 7da5781..8503591 100644 --- a/src/README.md +++ b/src/README.md @@ -18,7 +18,7 @@ ## Structure | File/Folder | Purpose | |--------------|---------| -| cpu.json | [XMRig benchmark data in JSON](https://github.com/hinto-janaiyo/xmrig-benchmarks) +| cpu.json | [XMRig benchmark data in JSON](https://github.com/hinto-janai/xmrig-benchmarks) | constants.rs | General constants used in Gupax | disk.rs | Code for writing to disk: `state.toml/node.toml/pool.toml`; This holds the structs for the [State] struct | ferris.rs | Cute crab bytes diff --git a/src/constants.rs b/src/constants.rs index 4b525bf..6d0d35d 100644 --- a/src/constants.rs +++ b/src/constants.rs @@ -16,7 +16,7 @@ // along with this program. If not, see <https://www.gnu.org/licenses/>. pub const GUPAX_VERSION: &str = concat!("v", env!("CARGO_PKG_VERSION")); // e.g: v1.0.0 -pub const P2POOL_VERSION: &str = "v3.0"; +pub const P2POOL_VERSION: &str = "v3.1"; pub const XMRIG_VERSION: &str = "v6.19.0"; pub const COMMIT: &str = include_str!("../.git/refs/heads/main"); // e.g: Gupax_v1_0_0 diff --git a/src/status.rs b/src/status.rs index d89fa36..3608d75 100644 --- a/src/status.rs +++ b/src/status.rs @@ -332,7 +332,7 @@ pub fn show(&mut self, sys: &Arc<Mutex<Sys>>, p2pool_api: &Arc<Mutex<PubP2poolAp ui.add_sized([width, text], Hyperlink::from_label_and_url("Other CPUs", "https://github.com/hinto-janai/xmrig-benchmarks")).on_hover_text(STATUS_SUBMENU_OTHER_CPUS); }); - egui::ScrollArea::both().max_width(f32::INFINITY).max_height(height).auto_shrink([false; 2]).show_viewport(ui, |ui, _| { + egui::ScrollArea::both().always_show_scroll(true).max_width(width).max_height(height).auto_shrink([false; 2]).show_viewport(ui, |ui, _| { let width = width / 20.0; let (cpu, bar, high, average, low, rank, bench) = ( width*10.0, @@ -365,7 +365,7 @@ pub fn show(&mut self, sys: &Arc<Mutex<Sys>>, p2pool_api: &Arc<Mutex<PubP2poolAp ui.group(|ui| { ui.horizontal(|ui| { ui.add_sized([cpu, text], Label::new(benchmark.cpu.as_str())); ui.separator(); - ui.add_sized([bar, text], ProgressBar::new(benchmark.percent / 100.0)); + ui.add_sized([bar, text], ProgressBar::new(benchmark.percent / 100.0)).on_hover_text(HumanNumber::to_percent(benchmark.percent).as_str()); ui.separator(); ui.add_sized([high, text], Label::new(HumanNumber::to_hashrate(benchmark.high).as_str())); ui.separator(); diff --git a/src/update.rs b/src/update.rs index ad9fe85..dd95075 100644 --- a/src/update.rs +++ b/src/update.rs @@ -11,7 +11,7 @@ // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. -//// You should have received a copy of the GNU General Public License +// You should have received a copy of the GNU General Public License // along with this program. If not, see <https://www.gnu.org/licenses/>. // This file contains all (most) of the code for updating. diff --git a/utils/package.sh b/utils/package.sh index 8b081f8..77f22cc 100755 --- a/utils/package.sh +++ b/utils/package.sh @@ -100,7 +100,7 @@ rm -r "gupax-$NEW_VER-windows-x64-standalone"; check "rm windows dir" # SHA256SUMS + Sign title "Hash + Sign" -SHA256SUMS=$(sha256sum gupax* | gpg --clearsign); check "Hash + Sign" +SHA256SUMS=$(sha256sum gupax* | gpg --clearsign --local-user 31C5145AAFA5A8DF1C1DB2A6D47CE05FA175A499); check "Hash + Sign" echo "${SHA256SUMS}" > SHA256SUMS; check "Create SHA256SUMS file" sha256sum -c SHA256SUMS; check "Verify SHA" gpg --verify SHA256SUMS; check "Verify GPG" @@ -109,7 +109,7 @@ gpg --verify SHA256SUMS; check "Verify GPG" title "Clipboard" clipboard() { grep -B999 -m1 "^$" CHANGELOG.md - echo "## SHA256SUM & [PGP Signature](https://github.com/hinto-janaiyo/gupax/blob/main/pgp/hinto-janaiyo.asc)" + echo "## SHA256SUM & [PGP Signature](https://github.com/hinto-janai/gupax/blob/main/pgp/hinto-janai.asc)" echo '```' cat SHA256SUMS echo '```'