Commit graph

87 commits

Author SHA1 Message Date
hinto.janai
7b56a7b900
main: integrate Syncing signal 2023-04-14 12:12:35 -04:00
hinto.janai
e425388dc8
helper: add check for p2pool synchronized 2023-04-14 11:29:45 -04:00
hinto.janai
375577d72c
update readme 2023-03-30 10:17:04 -04:00
hinto.janai
40992d82a9
p2pool_api: local/stats -> local/stratum 2023-03-30 09:45:21 -04:00
hinto.janai
7e29462f79
status: implement Benchmarks submenu 2023-03-17 16:12:06 -04:00
hinto.janai
2e90b9803e
helper: always reset xmrig GUI output before starting 2023-03-01 12:04:07 -05:00
hinto.janai
e23ea89a28
Update copyright 2023-02-26 11:45:58 -05:00
hinto.janai
bf9c1eea19
Edit name 2023-02-26 11:44:25 -05:00
hinto-janaiyo
296e6c2413
v1.1.2 2023-02-06 21:55:33 -05:00
hinto-janaiyo
95953ffda9
helper: fix STDIN on Windows P2Pool PTY 2023-02-06 17:50:48 -05:00
hinto-janaiyo
a629aa6ffe
helper: use current values instead of [selected_*] for p2pool/xmrig 2023-02-06 11:32:38 -05:00
hinto-janaiyo
55f8c24cc7
helper: localhost into 127.0.0.1 for xmrig 2023-02-06 09:17:09 -05:00
hinto-janaiyo
de142fb4c3
helper: localhost into 127.0.0.1 for p2pool 2023-02-03 10:32:01 -05:00
hinto-janaiyo
3fd5edc314
Remote Node: fix UI and backend functions for remote nodes 2023-01-25 22:42:47 -05:00
hinto-janaiyo
af688427c7
Status Submenu: fix some clippy warnings 2023-01-01 18:57:11 -05:00
hinto-janaiyo
830ee9ebcd
Status Submenu: update hashrate dominance with [Manual] hashrate
The % dominance stats now update along with the manual hashrate.

The updating UI blocks were also moved so all the updating stats
are close to each other.
2023-01-01 15:37:00 -05:00
hinto-janaiyo
f97935d1e8
Status Submenu: remove [Monero] submenu, fix [P2Pool] spacing
There's not much interesting data I could display that regular
Monero GUI or a block explorer can't do, so I'm scrapping the
[Monero] tab. Maybe it'll come back if I rewrite [Status] to include
graphs (never).

The [P2Pool] submenu is pretty much done, this changed the spacing
to make the logs larger and so all the elements fit correctly.
2023-01-01 14:51:30 -05:00
hinto-janaiyo
475bdcce0e
Status Submenu: add [***] progress bar for P2Pool stat refresh 2023-01-01 09:46:23 -05:00
hinto-janaiyo
a3b6521415
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
e8751842ce
Status Submenu: Add [Status/P2Pool] UI and data 2022-12-30 19:22:43 -05:00
hinto-janaiyo
983f6560ad
Submenu Status: clean up types, funcs, etc
General cleanup and optimizations. Some functions are fixed,
some were turned into [const fn], and other small stuff like
[AtomicUnit] using a [u64] instead of a [u128]
2022-12-29 12:12:12 -05:00
hinto-janaiyo
30d8968dd8
Submenu Status: make regex more precise 2022-12-28 22:46:52 -05:00
hinto-janaiyo
19b5a2790b
Status Submenu: add macros!()
Writing [a.lock().unwrap().b.lock().unwrap()] sucks, so these are
some macros that are for common situations. This commit also has
a [sed] replace on all previous code that _could_ have been a macro,
which they all are now.

Hopefully nothing breaks :D
2022-12-28 22:03:45 -05:00
hinto-janaiyo
46b528ecbe
Status Submenu: separate [Regex], [AtomicUnit], [PayoutOrd]
This fixes some funcs, tests and separates some structs into separate files.
2022-12-28 16:04:26 -05:00
hinto-janaiyo
fd6398fb4d
Status Submenu: add [PayoutOrd] parse & update from log 2022-12-27 19:47:36 -05:00
hinto-janaiyo
13280e229c
Status Submenu: add [PayoutOrd] struct, impl, tests 2022-12-27 17:27:10 -05:00
hinto-janaiyo
51816323cd
Status Submenu: add [AtomicUnit] to [helper.rs] 2022-12-27 16:28:43 -05:00
hinto-janaiyo
267f636382
Status Submenu: add [user_p2pool_percent] & [user_monero_percent]
user_p2pool_percent = The percent of hashrate the user accounts for
relative to all of P2Pool's hashrate.

user_monero_percent = The percent of hashrate the user accounts for
relative to all of Monero's hashrate.
2022-12-27 11:15:14 -05:00
hinto-janaiyo
a6222bfa73
Status Submenu: add new API reads in P2Pool watchdog loop
This adds all necessary functions/conversions/serde/tests for the
new APIs. It also includes the actual reads inside the watchdog loop.

Every loop, [tick] will increment by 1. At [60], the watchdog
will attempt to read and parse the [network] & [pool] APIs.
Since the loop is [900ms], this means this will occur around
every 54 seconds. [tick] gets reset upon successful read/parsing.
2022-12-27 09:38:02 -05:00
hinto-janaiyo
2846441049
Status Submenu: add [GupaxP2poolApi] to [disk.rs], add to [App] 2022-12-26 17:37:45 -05:00
hinto-janaiyo
3175824a2b
Status Submenu: add tests for p2pool api serde 2022-12-26 14:22:05 -05:00
hinto-janaiyo
7d552c1fb8
Status Submenu: separate [Human*] from helper into [human.rs] 2022-12-26 14:02:27 -05:00
hinto-janaiyo
9245cc8a11
Status Submenu: add serde for p2pools [local/network/pool] API 2022-12-26 13:59:03 -05:00
hinto-janaiyo
acba71f157
Status Submenu: fix [Result] collision with [std::result::Result]
monerod's json-rpc response field is [result],
which collides with Rust's [Result], oops.
2022-12-25 13:30:27 -05:00
hinto-janaiyo
2d461ae4ea
Status Submenu: add matching structs for monerod's [get_info] 2022-12-25 11:22:31 -05:00
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
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
da719df6d6
helper: reset [Pub*Api] if restarting process 2022-12-18 20:47:23 -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
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
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
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
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