Commit graph

137 commits

Author SHA1 Message Date
Louis-Marie Baer
7c316c1136 fix: Cargo.lock for CI 2024-03-16 14:17:46 +01:00
Louis-Marie Baer
61fa7255e8 feat: show XvB stats to Status Tab 2024-03-04 12:04:38 +01:00
Louis-Marie Baer
5a0476cac3 feat: bump egui and eframe to most up to date version
No modification of code needed.
2024-02-26 20:55:38 +01:00
Louis-Marie Baer
d6a3d60f26 feat: bump version of env_logger and modify code for it
Use default style of env_logger instead of custom style.
2024-02-26 20:13:27 +01:00
Louis-Marie Baer
1406ee7c16 feat: bump version of sysinfo and upgrade code for it 2024-02-26 19:43:32 +01:00
Louis-Marie Baer
0ddd6b9497 feat: bump deps to most up to date without code modification
Use cargo-cargo upgrade and then manually checking the breaking change version that can be applied without modification on the code.
2024-02-26 19:38:37 +01:00
hinto.janai
1a1cd975c0 node: update readme 2024-02-01 09:08:51 -05:00
hinto.janai
90180bbc98 helper: always uptime xmrig uptime in update_from_output() 2024-01-22 14:22:36 -05:00
hinto.janai
f776f27c87 Merge branch 'egui' 2023-12-28 16:03:00 -05:00
hinto.janai
4d96965daa Merge branch 'ansi' 2023-12-26 13:14:22 -05:00
hinto.janai
bff62a037c egui: 0.19.0 -> 0.24.1 2023-12-26 11:26:40 -05:00
hinto.janai
aa982b0518 for -> while 2023-12-25 09:52:24 -05:00
hinto.janai
c7d4e37e72 windows: use glow GPU backend 2023-12-25 09:28:07 -05:00
hinto.janai
a9079968c4 v1.3.3 2023-11-26 19:18:07 -05:00
hinto.janai
92cba1b03d v1.3.2 2023-10-22 18:40:22 -04:00
hinto.janai
0d625f0874 add 0.1..=2.0 window pixel_per_point scaling 2023-10-22 17:14:02 -04:00
hinto.janai
d7c03cc718 v1.3.0 2023-07-13 13:15:39 -04:00
hinto.janai
d1c5e6334d cargo update 2023-07-13 12:12:54 -04:00
hinto.janai
ff82c8c62d prepare v1.2.4 2023-07-13 10:44:05 -04:00
hinto.janai
9f34850b4a use wgpu backend for Linux
May fix https://www.reddit.com/r/MoneroMining/comments/140jlpy/i_cant_get_gupax_to_work_on_linux_fedora_any_ideas/
2023-06-04 18:45:47 -04:00
hinto.janai
175a9fde9e update: fix macOS Tor's TLS
On apple-darwin targets there is an issue with the native and rustls
tls implementation so this makes it fall back to the openssl variant.

https://gitlab.torproject.org/tpo/core/arti/-/issues/715
2023-06-01 11:53:03 -04:00
hinto.janai
26dfd57d99 helper: adjust portable_pty
new `portable_pty` from `cargo upgrade`
has a new API on getting STDIN.
2023-05-30 11:57:00 -04:00
hinto.janai
90d779e745 cargo upgrade
This excludes:
- `tokio` (node ping gets broken)
- `egui` and friends (way too much layout code to rewrite)
2023-05-30 11:42:16 -04:00
hinto.janai
7489c90d8d v1.2.2 2023-05-11 16:55:26 -04:00
hinto.janai
4a0593c78f node: add node.sethforprivacy.com 2023-05-11 16:11:08 -04:00
hinto.janai
3dad64e021 num_cpus -> benri 2023-05-11 16:03:32 -04:00
hinto.janai
4f7763f46d replace lazy_static with once_cell 2023-05-11 16:01:17 -04:00
hinto.janai
792ea4dc05 gui: change Style
Everything to `Monospace`, set all colors to `ACCENT_COLOR`,
round all corners, set all widget text to `255, 255, 255` (rgb).
2023-04-16 12:49:48 -04:00
hinto.janai
0b60def771 main: integrate Syncing signal 2023-04-14 12:12:35 -04:00
hinto.janai
abfe768561 helper: add check for p2pool synchronized 2023-04-14 11:29:45 -04:00
hinto.janai
59fa0dc6ab cargo update 2023-03-30 09:46:12 -04:00
hinto.janai
629fff77c6 cargo: add strsim 2023-03-17 16:05:22 -04:00
hinto.janai
102e053b7b Edit name 2023-02-26 11:44:25 -05:00
hinto-janaiyo
8ef1f6a096 prepare v1.2.0 2023-02-12 11:40:41 -05:00
hinto-janaiyo
ec25d70173 v1.1.2 2023-02-06 21:55:33 -05:00
hinto-janaiyo
a9d8d2ae8d only use wgpu backend for Windows 2023-02-06 19:41:17 -05:00
hinto-janaiyo
651db6554f switch eframe rendering backend from glow to wgpu
The `glow` backend crashes on certain CPU-based graphics, particularly,
Windows running a CPU with integrated graphics using the basic
Microsoft Display Adapter driver.

`wgpu` seems to work everywhere.
2023-02-06 12:40:14 -05:00
hinto-janaiyo
98e662144a helper: localhost into 127.0.0.1 for xmrig 2023-02-06 09:17:09 -05:00
hinto-janaiyo
013d269bca helper: localhost into 127.0.0.1 for p2pool 2023-02-03 10:32:01 -05:00
hinto-janaiyo
12df18a40d v1.1.1 2023-01-31 10:06:09 -05:00
hinto-janaiyo
7f296dcd84 Add GitHub Actions 2023-01-28 21:55:19 -05:00
hinto-janaiyo
7093a84301 Remote Node: update changelog & cargo update 2023-01-26 15:41:28 -05:00
hinto-janaiyo
7ada854ecd node: add MoneroWorld & HashVault 2023-01-22 21:01:10 -05:00
hinto-janaiyo
dea419c401 v1.1.0 2023-01-03 12:17:38 -05:00
hinto-janaiyo
6a907b1075 Status Submenu: fix some clippy warnings 2023-01-01 18:57:11 -05:00
hinto-janaiyo
991f202fce Status Submenu: (de)serialize logs in our own format
Instead of saving P2Pool payout logs as they are, they are now
(de)serialized in the same [Display] format, e.g:

<DATE> <TIME>            | <12_DOT_FLOAT> XMR | Block <BLOCK>
2022-09-31 12:53:52.8683 | 0.166122683521 XMR | Block 2,713,512

The parsing functions were updated to be able to read both raw
log lines and the new above format.
2022-12-31 13:47:41 -05:00
hinto-janaiyo
daca770a96 status: enable p2pool/xmrig "Image" stats
These couldn't be fit in before since there wasn't enough space.
They still can't all fit in, but the most important ones can be
after adjusting the font sizes and height spacing.
2022-12-23 14:06:25 -05:00
hinto-janaiyo
36a1a4ca4d macos: warn user if gupax is in [/private] directory
macOS moves "dangerous" applications into a read-only [/private]
filesystem. This messes up with the updater and default P2Pool and
XMRig paths.

If [/private] is detected, show a panic screen upon Gupax startup
telling the user to move it to [/Applications]. This _seems_ to
make macOS relax a little (after an arbitrary amount of time...)
2022-12-22 11:56:25 -05:00
hinto-janaiyo
9c6043ea2e helper: reset [Pub*Api] if restarting process 2022-12-18 20:47:23 -05:00
hinto-janaiyo
ea394429fc linux: add [--features distro] build flag 2022-12-18 10:22:32 -05:00
hinto-janaiyo
aa4f179dc2 helper: add [HumanTime] & [HumanNumber] #[test]s 2022-12-17 20:51:50 -05:00
hinto-janaiyo
83a7dab570 Add #[test]s, fix [State::merge()], fix [quit_twice] 2022-12-17 17:18:06 -05:00
hinto-janaiyo
c18cbd2f4f add [License] to README.md 2022-12-17 14:12:04 -05:00
hinto-janaiyo
49f469a8b1 cargo check/clippy fixes 2022-12-16 16:46:06 -05:00
hinto-janaiyo
6c59ecc759 Update README 2022-12-15 10:13:46 -05:00
hinto-janaiyo
c1a918c730 Update FAQ & Community node list 2022-12-14 21:55:10 -05:00
hinto-janaiyo
aab23e5f4d cargo check/clippy fixes 2022-12-13 23:05:13 -05:00
hinto-janaiyo
f0d335170a helper/main: fix [Arc<Mutex>] deadlocks, add keyboard shortcuts
There was a deadlock happening between the [Helper]'s [gui_api_p2pool]
and the GUI's [gui_api_p2pool], since the locking order was different.
The watchdog loop locking order was fixed as well. This was a pain to
track down, better than a data race... I guess.

Oh and keyboard shortcuts were added in this commit too.

Comment from code:

// The ordering of these locks is _very_ important. They MUST be in sync
// with how the main GUI thread locks stuff or a deadlock will occur
// given enough time. They will eventually both want to lock the [Arc<Mutex>]
// the other thread is already locking. Yes, I figured this out the hard way,
// hence the vast amount of debug!() messages.
//
// Example of different order (BAD!):
//
// GUI Main       -> locks [p2pool] first
// Helper         -> locks [gui_api_p2pool] first
// GUI Status Tab -> trys to lock [gui_api_p2pool] -> CAN'T
// Helper         -> trys to lock [p2pool] -> CAN'T
//
// These two threads are now in a deadlock because both
// are trying to access locks the other one already has.
//
// The locking order here must be in the same chronological
// order as the main GUI thread (top to bottom).
2022-12-13 10:14:26 -05:00
hinto-janaiyo
4021f0aacd v0.9.0 (maybe) 2022-12-12 17:24:05 -05:00
hinto-janaiyo
1535b5744e xmrig/status: implement API hyper/tokio call; add [Gupax] stats 2022-12-11 15:51:07 -05:00
hinto-janaiyo
db6f1fac13 macOS: handle killing XMRig with [sudo]
Even with the parent-child relationship and direct process handle,
Gupax can't kill an XMRig spawned with [sudo] on macOS, even though
it can do it fine on Linux. So, on macOS, get the user's [sudo]
pass on the [Stop] button and summon a [sudo kill] on XMRig's PID.

This also complicates things since now we have to keep [SudoState]
somehow between a [Stop] and a [Start]. So there is macOS specific
code that now handles that.
2022-12-10 21:00:08 -05:00
hinto-janaiyo
ac0c296ba5 windows: handle admin priviledge for xmrig
Please read the [src/README.md]. I hate windows so much.
2022-12-09 21:31:16 -05:00
hinto-janaiyo
3fdf9c8f86 p2pool/xmrig: add address/path check before allowing [Start] 2022-12-08 20:25:41 -05:00
hinto-janaiyo
2a04766abd main: add [zeroize] and implement sudo input/test screen for xmrig 2022-12-07 18:02:08 -05:00
hinto-janaiyo
e171f5fa3f helper: p2pool - stdout payouts/xmr parser, priv -> pub functions 2022-12-05 14:55:50 -05:00
hinto-janaiyo
7764de27f3 helper: p2pool - fix args, basic watchdog loop, add STDOUT/STDERR handle to [Process] struct 2022-12-04 11:24:38 -05:00
hinto-janaiyo
c49b7aa982 helper: add functions for p2pool/xmrig UI -> command arguments 2022-12-03 13:41:14 -05:00
hinto-janaiyo
2de7903d99 helper: map xmrig/p2pool JSON API key/values to structs for serde 2022-12-01 23:13:53 -05:00
hinto-janaiyo
790819c5b8 cargo cleanup 2022-11-26 22:26:32 -05:00
hinto-janaiyo
174139efc5 Cargo update + clippy lint fixes 2022-11-23 23:03:56 -05:00
hinto-janaiyo
539764e0ed v0.5.0 2022-11-22 10:12:16 -05:00
hinto-janaiyo
12c1f67baa cargo/tor/p2pool: clean deps, warn macos arti, fix node overflow
Cargo: Cleanup unused dependencies, enable some build optimizations

Tor: Arti doesn't seem to work on macOS
Even a bare Arti+Hyper request doesn't seem to work, so it's
probably not something to do with Gupax. A lot of issues only
seem to popup in a VM (OpenGL, TLS) even though on bare metal
Gupax runs fine, so Tor might work fine on real macOS but I don't
have real macOS to test it. VM macOS can't create a circuit, so,
disable by default and add a warning that it's unstable.

P2Pool: Let selected_index start at 0, and only +1 when printing
to the user, this makes the overflow math when adding/deleting a
lot more simple because selected_index will match the actual index
of the node vector
2022-11-21 17:25:38 -05:00
hinto-janaiyo
088aa56325 disk: add [ErrorState] handling for disk errors 2022-11-19 22:49:15 -05:00
hinto-janaiyo
27fa10c7ad gupax: add [FileWindow] selector for p2pool/xmrig path 2022-11-17 13:03:45 -05:00
hinto-janaiyo
98ac39c4c3 cleanup cargo warnings 2022-11-16 14:40:25 -05:00
hinto-janaiyo
6c5a8bc42f optimize [.lock()], add index counter to p2pool manual nodes 2022-11-15 21:22:15 -05:00
hinto-janaiyo
4e8dc52350 p2pool: add [Ping] into GUI, add [simple], add address regex check 2022-11-10 21:20:31 -05:00
hinto-janaiyo
0ea5b90647 os: fix platform specific issues 2022-11-02 18:18:41 -04:00
hinto-janaiyo
0f0e032588 update: save [Version] to state, use runtime [og: State]
[og: State] is now completely wrapped in an [Arc<Mutex>] so that
when the update is done, it can [.lock()] the CURRENT runtime
settings of the user and save to [gupax.toml] instead of using an
old copy that was given to it at the beginning of the thread.

In practice, this means users can change settings around during
an update and the update finishing and saving to disk won't be
using their old settings, but the current ones. Wrapping all of
[og: State] within in [Arc<Mutex>] might be overkill compared to
message channels but [State] really is just a few [bool]'s, [u*],
and small [String]'s, so it's not much data.

To bypass a deadlock when comparing [og == state] every frame,
[og]'s struct fields get cloned every frame into separate
variables, then it gets compared. This is also pretty stupid, but
again, the data being cloned is so tiny that it doesn't seem to
slow anything down.
2022-11-02 13:58:44 -04:00
hinto-janaiyo
37f60e7457 icons: custom icon per OS, build.rs, cargo-bundle 2022-10-31 17:03:59 -04:00
hinto-janaiyo
33f6aad156 egui: fix windows VM OpenGL panics, allow [F11] fullscreen 2022-10-29 21:56:17 -04:00
hinto-janaiyo
bf26f77d6d update: implement tor/arti, tls, basic metadata fetch 2022-10-24 22:58:42 -04:00
hinto-janaiyo
8b1d31c775 state.rs: add State::merge() 2022-10-18 15:26:21 -04:00
hinto-janaiyo
a95eda5899 connect functions with [State/state.rs] 2022-10-15 15:15:27 -04:00
hinto-janaiyo
24c8fd066c add [node.rs]: ping community nodes, find fastest 2022-10-14 17:22:25 -04:00
hinto-janaiyo
5a5f294b50 add toml.rs/constants.rs, ask_before_quit screen 2022-10-13 09:17:32 -04:00
hinto-janaiyo
81a3d80aa6 root 2022-10-09 14:08:16 -04:00