gupaxx/ARCHITECTURE.md
2024-04-03 18:41:29 +02:00

2 KiB

Gupaxx ARCHITECTURE

This document explains how the source code is organized. Everything differing from Gupax is described here. Things that do not change are not present.

Structure

File/Folder Purpose
main.rs launch the app
inits.rs launch the threads if auto, including XvB
miscs.rs useful functions
app directory with everything related to displaying the UI
app/keys.rs handle keys input
app/mod.rs define App struct, used by egui
app/eframe_impl.rs first entry to the UI
disk/ Code for writing to disk: state.toml/node.toml/pool.toml; This holds the structs for the [State] struct
helper The "helper" thread that runs for the entire duration Gupax is alive. All the processing that needs to be done without blocking the main GUI thread runs here, including everything related to handling P2Pool/XMRig/XvB
helper/xvb All related thread XvB code
helper/xvb/mod.rs XvB thread and principal loop, checks and triggers, gluing every other code of this directory.
helper/xvb/algorithm.rs Algorithm logic with calculations and actions
helper/xvb/nodes.rs Manage connection of XvB nodes
helper/xvb/rounds.rs struct for Rounds with printing and detecting of current round.
helper/xvb/public|private_stats struct to retrieve public and private stats with request
component Gupaxx related features, like updates and nodes

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). So Gupaxx need to refresh the value of status tab submenu process for xmrig where before the values could not change without a restart of the process. The field node from ImgXmrig needs to be moved to PubXvbApi. This value must be updated by xmrig at start and by XvB process at runtime.