Commit graph

851 commits

Author SHA1 Message Date
hinto-janaiyo
9d66a20360
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
3991c26d76
p2pool/xmrig: red/green [Start] on errors with solution in tooltip 2022-12-23 11:41:43 -05:00
hinto-janaiyo
b5add2f4bf
main: add more info to debug screen 2022-12-23 09:44:20 -05:00
hinto-janaiyo
3b0d247bc6
app: change max frame size to 4k (3840×2160)
If the user fullscreens, restricting to the 4:3 aspect ratio
doesn't make sense, so change the test for only the default/min.

Max is 4k since... who owns 8k monitors :D
2022-12-22 22:21:05 -05:00
hinto-janaiyo
c0161010fa
p2pool: fix custom node selection sometimes using old values 2022-12-22 22:00:57 -05:00
hinto-janaiyo
8586e3e7ca
gupax: rearrange [Advanced] UI, add underscored labels 2022-12-22 21:57:49 -05:00
hinto-janaiyo
10d23ca476
status: show 7 floating point for p2pool stats 2022-12-22 21:55:28 -05:00
hinto-janaiyo
17feda5cb3
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
f37fb0c589
prepare v1.0.1 2022-12-21 11:06:11 -05:00
hinto-janaiyo
e6bf49b309
v1.0.0
Includes some small fixes:

- [localhost] will always be changed to [127.0.0.1] in the case
  of XMRig (it doesn't understand localhost by itself)

- P2Pool/XMRig API path now checks for a [/] or [\]
  and correctly applies the endpoint, e.g:
  BASEPATH = "/home/hinto/p2pool"
  ENDPOINT = "local/stats"
  if BASEPATH doesn't end with '/' { BASEPATH.push('/') }
  API_PATH = BASEPATH + ENDPOINT ("/home/hinto/p2pool/local/stats")

- P2Pool payout line got changed in: be18ad4177
  The regex is now a more generic: [payout of [0-9].[0-9]+ XMR]
2022-12-19 18:54:46 -05:00
hinto-janaiyo
6c0ba2be9a
main: add [d] debug info screen 2022-12-19 00:00:06 -05:00
hinto-janaiyo
da719df6d6
helper: reset [Pub*Api] if restarting process 2022-12-18 20:47:23 -05:00
hinto-janaiyo
6200355372
Update [/external] 2022-12-18 13:57:50 -05:00
hinto-janaiyo
8884dbd023
helper: fix p2pool's api combine, add #[test], add [debug!()] 2022-12-18 12:15:42 -05:00
hinto-janaiyo
3db1adce75
linux: add [--features distro] build flag 2022-12-18 10:22:32 -05:00
hinto-janaiyo
233ccd62ac
helper: add [HumanTime] & [HumanNumber] #[test]s 2022-12-17 20:51:50 -05:00
hinto-janaiyo
e35f5b243b
Add #[test]s, fix [State::merge()], fix [quit_twice] 2022-12-17 17:18:06 -05:00
hinto-janaiyo
95fffac3cd
add [License] to README.md 2022-12-17 14:12:04 -05:00
hinto-janaiyo
03411bdb5e
main: fix [About] spacing 2022-12-17 13:42:04 -05:00
hinto-janaiyo
e90fbe27b1
update: misc cleanups 2022-12-17 13:35:13 -05:00
hinto-janaiyo
7439c89a52
main: quit if [ALT+F4] on [ask_before_quit], add [save_before_quit]
If user clicked the [X] or [ALT+F4] while on the [ask_before_quit]
screen, it'll actually exit now.

The [save_before_quit] option actually... saves before quitting now.
No cloning since we're exiting and no [ErrorState] setting on errors.
The console logs will show if a save error happens.
2022-12-17 11:00:32 -05:00
hinto-janaiyo
d1a4d66268
helper: fix GUI log reset message 2022-12-17 09:52:33 -05:00
hinto-janaiyo
0e15f0a73a
p2pool: add [Select random node] and [<- Last] & [Next ->] UI 2022-12-16 23:19:33 -05:00
hinto-janaiyo
166c89a8d1
disk: fix serializing quotes in strings 2022-12-16 22:38:46 -05:00
hinto-janaiyo
3ac0b98802
disk: handle some [.unwrap()]s correctly 2022-12-16 19:16:16 -05:00
hinto-janaiyo
ddec9fcb6d
cargo check/clippy fixes 2022-12-16 16:46:06 -05:00
hinto-janaiyo
813a59353e
helper: fix [XMR per ...] stat
It was using the [payouts] variable as a base instead of [xmr].
2022-12-16 13:36:39 -05:00
hinto-janaiyo
8f8c37ec57
Update P2Pool Main vs Mini vs Solo mining 2022-12-16 11:56:24 -05:00
hinto-janaiyo
29445e1bd1
keys/p2pool/xmrig: change key shortcuts, check for [ACCEPTABLE_*]
Keyboard shortcuts [Left] & [Right] were clobbering the
[TextEdit] left/right movement, so they are now [Z/X].
The shortcuts also look to make sure a TextEdit isn't
in focus so that [S/R/Z/X] can actually be typed.

P2Pool/XMRig now make sure the path ends with an [ACCEPTABLE_*]
value (e.g: P2pool, P2POOL) before enabling the [Start] UI.
2022-12-16 10:30:57 -05:00
hinto-janaiyo
aad1a26e1e
Add to Simple/Advanced README 2022-12-15 23:17:40 -05:00
hinto-janaiyo
f65ce9a1b8
main: allow [.] in [name] regex
[GUPAX_VERSION_UNDERSCORE] was used as the XMRig [Rig], which didn't
allow [.] (Gupax_v1.0.0), so allow for dots in the [name] regex.
2022-12-15 18:50:50 -05:00
hinto-janaiyo
94031359b3
Add [Video] guide 2022-12-15 17:18:28 -05:00
hinto-janaiyo
055f498a5d
Add to Advanced README 2022-12-15 13:39:14 -05:00
hinto-janaiyo
a40d203872
Update README 2022-12-15 10:13:46 -05:00
hinto-janaiyo
5e2f0b7ed7
Update FAQ & Community node list 2022-12-14 21:55:10 -05:00
hinto-janaiyo
36ba38f1d9
helper: fix log reset message 2022-12-14 18:25:36 -05:00
hinto-janaiyo
035e3e782a
xmrig: fix [Rig] check using [self.name] value
In XMRig Advanced the color/checkmark code was being given [self.name]
instead of [self.rig] which caused them to be linked, e.g: you clear
"Name" and [Rig] goes red instead.
2022-12-14 17:46:44 -05:00
hinto-janaiyo
631e4cc2db
helper: optimize PTY output parsing
(Stupid) Problem (caused by me):
--------------------------------
Up to 56million bytes of P2Pool/XMRig output were being held in memory
so they could be parsed. P2Pool output is the only one that needs
parsing as well, so double bad.

(Obvious) Solution:
-------------------
For XMRig:
Just don't write to an extra [String] buffer.

For P2Pool:
Parse the output, then... toss it out? You don't need the output
anymore after you parsed the values out, e.g: `Payouts`, `XMR Mined`.
Once they are parsed, add them to the current values instead of
completely overwriting them and then toss out the log buffer.

Now Gupax doesn't use stupid amounts of memory holding what is
essentially dead logs we already parsed. The parsing will be a lot
cheaper too since we aren't parsing the entire thing over and over
again (it was already pretty fast though).
2022-12-14 17:37:29 -05:00
hinto-janaiyo
d3bbe2ece2
cargo check/clippy fixes 2022-12-13 23:05:13 -05:00
hinto-janaiyo
0f51ae6873
prepare v1.0.0 2022-12-13 16:34:10 -05:00
hinto-janaiyo
2b80aa0277
v0.9.0
Fixes:
    - Up/Down only work if UI is enabled
    - Re-pushed [P2POOL_API_PATH] to popped relative path
      but only after giving the popped path to P2Pool
          1. [/tmp/gupax/p2pool/p2pool] -> [/tmp/gupax/p2pool]
          2. Give that to P2Pool
          3. [/tmp/gupax/p2pool] -> [/tmp/gupax/p2pool/local/stats]
          4. Give that to the watchdog (so it can read it)
2022-12-13 15:06:07 -05:00
hinto-janaiyo
9eb49b6dbd
p2pool/xmrig: handle custom arg [--no-color], API ip/port/path 2022-12-13 12:44:57 -05:00
hinto-janaiyo
79b0361152
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
128fa500bb
v0.9.0 (maybe) 2022-12-12 17:24:05 -05:00
hinto-janaiyo
798966d447
litter codebase with [debug!()]
The entire codebase is now littered with [debug!()] messages.
Thankfully [log] has 0 cost if you aren't using them, so regular
users won't have a runtime penalty unless they specify RUST_LOG=debug.
2022-12-12 14:50:34 -05:00
hinto-janaiyo
bf4e39c3a5
status: link helper & GUI's XMRig API 2022-12-11 22:01:37 -05:00
hinto-janaiyo
e2f6d90476
helper/sudo: small p2pool api fixes, don't allow ESC when [testing] 2022-12-11 20:44:46 -05:00
hinto-janaiyo
ede7bcb0a8
Update README.md 2022-12-11 17:22:49 -05:00
hinto-janaiyo
1e2b8f7803
xmrig/status: implement API hyper/tokio call; add [Gupax] stats 2022-12-11 15:51:07 -05:00
hinto-janaiyo
81ec266e0a
gupax: add [Auto-P2Pool/XMRig] for running at Gupax startup 2022-12-10 23:10:26 -05:00