v0.46.0
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog
and this project adheres to Semantic Versioning.
[0.46.0] - 2025-10-08
Added
- Additional website screenshots
- Added a XMR payment plot
- Added Payments button.
- Added values to
DButton,DLabelandDFieldconstants files.
Changed
- Renamed
HashratePlotwidget toDb4EWidgetsince it's used to plot hashrates, shares found and XMR Payment data.- Updated
ChainHashratesPane,P2PoolSharesFoundPane,XMRigHashratesPaneandXMRigRemotePane
- Updated
Fixed
- In
DeplMgr:get_deployment(), check that a P2Pool instance is local before trying to reference it's parent. - In
DeplClient:add_deployument(), do not add a new deployment if there are missing fields. - Create backup and logrotate directories correctly in
InstallMgr - Remove references to logging collection in
DbMgr - Created
Helper:sudo_del_file()function to delete logrotate configuration files when a P2Pool or XMRig deployment is deleted. - Ensure that the P2Pool socket is created when a P2Pool instance is started.
- Corrected duplicate
OpsMgrinimages/App-Releationships.png
[0.45.1] - 2025-10-07
Fixed
- Git tagging issue
[0.45.0] - 2025-10-07
Added
- Added Start/Stop to
DLabel - Bar chart for Shares Found
- Per miner stacked bar chart for Shares Found
Textual-Plotbased chart for Shares Found- Added
MiningDb:get_shares_found()andMiningETL:get_shares_found()methods. - Added routes to the
MessageRouter - Added
OpsMgr:get_shares_found()method. - Added
P2PoolSharesFoundPaneto display a bar chart of the Shares Found data.
- Added
Changed
- Moved
logrotatedirectory (logrotate config files) fromvendor_dir/db4e tovendor_dir - Renamed Runtime to Start/Stop log in
DPane,PaneCatalogue,MessageRouter,OpsMgrandNavPane - Renamed Uptime to Runtime log in
DPane,Db4EPane,PaneCatalogue,MessageRouterandOpsMgr
Removed
- Bar chart for Shares Found;
textual-plotextdoesn't support changing the time range - Per miner stacked bar chart for Blocks Found:
textual-plotextdoesn't support changing the time rangetextual-plotextprovides too few colors, they get reused making the plot useless
[0.44.1] - 2025-10-05
Changed
- Minor website edits.
Fixed
- Broken image on the website.
[0.44.0] - 2025-10-05
Added
- Added a new Block Found bar chart visualization for the Main Chain, "Mini SideChain" and "Nano SideChain"
- Added Blocks Found constants to the
DButton,DField,DLabel,DMethodandDPangeconstants files. - Added styling for the Blocks Found button to the
Db4E.tcssfile. - Added a new
ChainBlocksFoundPaneto display a bar chart of the Blocks Found data. - Added routes to the
MessageRouter - Added
MiningETL:get_blocks_found()andMiningDb:get_blocks_found()methods. - Added code to
ChainPaneto support the new Blocks Found button. - Added screenshot of the Blocks Found& bar chart visualzation to the Db4E website.
- Added Blocks Found constants to the
Changed
- Modified the
MiningDbfor backend schema for the Blocks Found data.
Fixed
- Bug in the
Db4EServerthat checked for aparent()function on Remote P2Pool intances
[0.43.0] - 2025-10-05
Added
- Daily backup of compressed DB4E Mongo collections
- Added rotation of Mongo backup files.
- Screenshots the to https://db4e.osoyalce.com/ project site.
Fixed
- Added a
Db4EServer:chown_logrotate_files()function to set the permissions on the logrotate configuration files. - Removed
dailyfrom logrotate files; Db4E rotates log files based on size.
[0.42.1] - 2025-20-03
Fixed
- Added the correct bundled p2pool.
- Fixed the case where there are no uptime record yet.
[0.42.0] - 2025-10-03
Added
- Added a
deployment_dir/db4e/logrotatedirectory to house logrotate files. - Added logrotate templates for local
XMRig,P2Pooland theDb4Edeployment. - Updated the
/etc/sudoers.d/db4efile:- Allow user to run
logrotateas root (required for XMRig logs). - Allow user to run
chowncommand on the logrotate files (xmrig log files are owned by root).
- Allow user to run
- Added a
gen_logrotate_config()methods toP2Pool,XMRigclasses. - Added a
_gen_db4e_logrotate_config()method to theInstallMgr. - Created a new
LogRotateConfigComponentclass. - Added
max_log_files(),max_log_size()andlogrotate_config()methods and components toXMRigandP2Pool. - Added a banner to the
/etc/sudoers.d/db4efile. - Added logrotate definitions to the
DFileandDDirconstants files. - Added a
DeplMgr:get_dir(DDir.LOGROTATE)method. - Added a P2Pool uptime check before adding Miner hashrate records to avoid adding invalid, super-high hashrates when P2Pool first starts.
- Implemented formal Remote XMRig deployment records.
- Wrapped
P2PoolWatcherfunctions in try/except blocks where exceptions are logged. - Upgraded bundled
P2Poolto v4.11
Fixed
- Configured the Hashrate button visibility so it's not visible for the New screens.
- Passed
P2PoolWatcherthe Db4E log file instead of the P2Pool log file.
[0.41.0] - 2025-09-30
Added
OpsDbto support operations to the ops Mongo collection:get_ops_events()- Return start/stop eventsadd_start_event()andadd_stop_event()- Add start/stop events- This module creates
start_stop_event,current_uptimeandtotal_uptimeMongo documents to track the current and cumulative uptime of the various components. - Added a Runtime Log item to the
NavPanethat shows timestamped start/stop events. - Added a Uptime button to the Db4E Core pane to show cummulative and current uptime of the various components.
- Added
Runtimepane.
- Added
ChainPaneandChainHashratespanes. - Added
XMRigHashratesPane - Added a
DOpscontants file.
Changed
- Removed the
DbCachefrom theDeplMgr, it now does direct database operations. - Moved the
enabledboolean in the Mongo deployment records intoComponents. - Removed redundant parameters to the various
InstallMgrfunctions. - Changed the inheritance hierarchy for
Monerod,P2PoolandXMRigclasses, they used to inheirit fromLocalSoftwareSystem, now they inheirit fromSoftwareSystem.
Fixed
- Internal
P2Poolstartup and shutdown based on the selection (or disable) of the primary server
Removed
- Unused
PlotViewPane
[0.40.0] - 2025-09-27
Added
- Added a Status sub-title to the various panes' health check box.
- Added a Runtime log to track the uptime of the various components.
- Added a Runtime item to the NavPane to expose the log.
- Added an Instance field to multiple Mongo mining metrics records
- Added a
DSelectconstants file.
Fixed
- Disabled pan and zoom for HashratePlot widget, it's not helpful.
- Removed unused
tmpl(Templates) Mongo collection. - Fixed layout issue with the
Db4Epane.
Changed
- Renamed ops Mongo collection to jobs
- Moved
DbMgr:get_jobs()toJobQueue - Renamed Analytics to Hashrates for the pane titles, buttons and functions.
[0.39.0] - 2025-09-26
Changed
- Replaced
textual-plotextwrapper class with nativetextual-plot- Moved date selection into a separate box on the analytics panes
- Fixed
Hashratemetric in analytics panes
[0.38.1] - 2025-09-25
Added
- Health checks for Internal P2Pool deployments, in the
NavPaneandHealthMgr - Added a View Log button to the Internal P2Pool pane
Changed
- Chain Stats tree layout in the
NavPane - Replaced
textual-plotextwrapper class with nativetextual-plot - Modified the output of
MiningETL.get_hashrates()fortextual-plot
Removed
- Removed
PlotViewPane: Plot views are integrated into existing panes
[0.38.0] - 2025-09-21
Added
- Major refactoring of how contants are handled:
- Added
DDebug,DDef,DDir,DElem,DField,DFile,DForm,DJob,DLabel,DMethod,DMining,DModule,DMongo,DPane,DPlaceholder,DStatusclasses to hold constants. - Removed
Buttons,Defaults,Fields,Jobs,Labels,Panes,SystemdTemplates
- Added
- Added new classes to
Components:BlockchainDir,Hashrate,P2PPort,PrimaryServer,StatsMod,StdinPath,Timestamp,Uptime.- Removed
ObjectId.
- Added three internal P2Pool deployments as part of the install to collect metrics for the Main, Mini Sidechain and Nano Sidechain
- Added a
MiningDbandP2PoolWatchermodules to collect metrics from the user defined and internal P2Pool deployments. - Stubbed out a
PlotDbmodule as part of the Data Abstration Layer - Added a new
XMRigRemoteclass to encapsulate remote miners - Added a
XMRigRemotePaneto display collected information about detected remote miners
Changed
- Refactor of
DbCacheandHealthCache. - Refactor of class relationships, see:
- Refactored the
Modules\DeploymentMgrintoDeplClientandDeplMgr - Changed the left-hand
NavPane:- To use a single Textual tree
- Included remote miners that are detected; no user action required
Fixed
- Fixed paths in the
Templates/p2pool-4.9.1/systemd/p2pool@.servicefile to actually create a functional STDIN pipe for the running P2Pool service
[0.35.0] - 2025-09-04
Added
- Added a restart operation to restart a local deployment when the configuration changes
- Automatic restart of local Monero and P2Pool deployments if the configuration changes
- Added a restart constant to
Constants/Jobs - Added
server:restart(job)to restart a local deployment
- Extended
DeploymentMgr:get_dir()to return the versioned Monero, P2Pool and XMRig directories - Added a feature to disable downstream systems
- Added
DbCache:get_downstream()to return downstream P2Pool and XMRig instances - Added
server:disable_downstream()to disable downstream P2Pool and XMRig instances - Added supporting
DeploymentMgr:get_downstream()
- Added
- Added
DeploymentMgr:get_template()to return XMRig, P2Pool and Monero Daemon templates - Updated and added additional
Constants/Labels - Added
DeploymentMgr/post_job() - Added
Job:add_msg()function
Changed
- Changed
JobQueue:post_job()to accept a job instead of a dictionary - All deployment panes to use
post_jobfor enable, disable and update operations- Updated
Job:to_rec()to support the above change
- Updated
- Renamed Trans Log to Console Log in the NavPane
- Colorized the console log contents in
TUILogPane - enhanced the message content by
Fixed
- Removed uneeded run from the
InstallMgr:_make_p2pool_dir() - Fixed bug where the Initial install proceeded even though the vendor dir was invalid
- Removed unnused
set_component_value()andgen_radio_button()fromModules/Helper - Fixed reference bug in
DbCache/get_downstream() - Enforced unique instance names
- Made instance name immutable for all deployments
[0.34.0] - 2025-09-02
Added
- Added local Monero Daemon health checks to
Modules/HealthMgr - Added local Monoro Dameon logs to the TUI
Changed
- Merged the Metrics and Deployments trees in the
Widgets/NavPane - Upgraded bundled XMRig to freshly compiled version v0.24.0
- Replaced custom compiled Monero Daemon with a more portable version from GetMonero.org
- Upgraded backend Textual from 4.0.0 to 6.0.0
Fixed
- Paths to P2Pool.socket in the systemd configuration file were corrected
- Fixed crashes caused by upstream components being deleted
- Removed unneeded run dir for the P2Pool deployment
[0.33.0] - 2025-09-01
Added
- Additional
Constants/DefaultsandConstants/Fields - Minor additions to the
Db4E.tcssfor styling - Support for local Monero Daemon deployments in the
Modules/DeploymentMgr - Fleshed out the
Modules/MoneroDclass - Created a form in the
Panes/MoneroDPane
Changed
- Updated constructor for
Modules/Db4ESystemD - Switched the
Panes/LogViewerto use native Textual Log widget - Upgraded the bundled
Monerodto v0.18.4.2
Fixed
- A bug in the
Panes/LogViewerthat cause lockups and app freezes
[0.32.0] - 2025-08-31
Added
- New
Panes/LogViewPanefor viewing log files in the TUI - New tree navigation for viewing the logs
- Upgraded bundled P2Pool to 4.9.1
- Added constants to
Defaults,Fields,Labels, andPanes - Created a
Components/Logfileclass - Added
LogFileto localMonerod,P2PoolandXMRigclasses - Added the new
LogViewPaneto theModules/MessageRouterandModules/PaneCatalogue
[0.31.0] - 2025-08-29
Added
- New
Modules/DbCacheMongo cache - New
Modules/HealthCachehealth check cache
[0.30.0] - 2025-08-22
Added
- Local P2Pool deployment
[0.29.0] - 2025-08-20
Fixed
- BugFix: Fixed Db4ESystemD status()
Changed
- Moved update operations from the TUI to the server using the JobQueue
Added
- Dynamic buttons for MoneroDRemote, P2PoolRemote and XMRig
- Implemented enable/disable for XMRig
- Implemented a Trans Log to show TUI operation history
- Implemented Trans Log entries for new operations
[0.28.0] - 2025-08-17
Fixed
db4e-server: set version
Changed
- Removed
Modules/ConfigMgr/Config- Replaced the config object with direct references to the default values - Major refactor: Replaced dictionaries with classes
- Implemented a client/server JobQueue
[0.27.2] - 2025-08-04
Fixed
- Error in
pyproject.tomlifile
Added
- Sceenshot of the Db4E installer
[0.27.0] - 2025-08-04
Skeleton Db4E Server
Added
- New
Modules/Db4eLoggermodule to handle logging to file and to MongoDb - New
db4e/server.pyto house the systemd Db4E server code - New
vendor_dir/db4e/logs/db4e.logfile - Connected the systemd
db4e.servicedirectly todb4e/server.py
[0.26.1] - 2025-08-04
Changed
- Updated screenshot of the Db4E console on the website
[0.26.0] - 2025-08-04
Added
- CRUD operations for XMRig deployments
Changed
- Huge refactoring of the backend, thus the long delay between releases
Fixed
- UI look and feel
- Error handling
[0.25.1] - 2025-07-18
Fixed
- XMRig > New > crash
[0.25.0] - 2025-07-18
Changed
- Refactor code to improve efficiency and better styling and layout
[0.24.1] - 2026-07-16
Fixed
- Fixed NavPane unicode.
[0.24.0] - 2025-07-16
Added
- New
Modules/HealthMgrmodule to perform health checks - New constants in
LabelsandFieldsto support health checks - New
is_port_openandis_valid_ip_or_hostnamefunctions to support health checks - New detailed health check results in
MonerodRemote,P2PoolRemoteandXMRigpanes
Changed
- Changed background of
StaticandTreewidgets to black - Added support for health checks to
Db4eApp,Widgets/NavPaneandDeploymentMgr
Fixed
- Minor tweaks to
Db4E.tcss
[0.23.2] - 2025-07-15
Added
- Generate a XMRig configuration file in
Modules/ConfigMgr - Add a call to
ConfigMgr:gen_xmrig_config()toModules/DeploymentMgr - Added a read-only field,
Configuration, to theXMRigpane showing the full path to the config file - Created
ConfigMgr:del_config()to delete a configuration file and return results
Changed
- Refactor InitialSetup pane to use compose instead of set_data + mount
- Refactor Db4E to use compose instead of set_data + mount
- Modified
Modules/DeploymentMgrto update the XMRig configuration file if - the XMRig instance changes or if it's reconfigured to use a different P2Pool deployment
Fixed
Set read-only Db4E fields to be read-only
[0.23.1] - 2025-07-16
Added
- Unicode to brighten up the NavPane
Added
- Split the flow to route remote deployments to remote panes
- Added P2PoolRemote and MonerodRemote panes to handle the split
- Added additional constants to support the split
- Added additional message routes to support the split"
Changed
- Minor code refactoring improvements
- Removed
Db4E.tcssstyling redundancies
Fixed
- If Db4e vendor_dir updated, update the directory on the filesystem
- Properly update the user_wallet and vendor directory in the DB
[0.23.0] - 2025-07-15
Changed
- Streamlined the code in the
MonerodRemote,NewMonerodandNewMonerodTypepanes. - Reused some
Db4E.tcsstags between panes
[0.22.2] - 2025-07-14
Fixed
- Updated poetry lock file to support upgrade of Textual to v4.0.0
[0.22.0] - 2025-07-14
Added
- Added logic to
Appto support new XMRig deployment - Added a
Panes/NewXMRigpane - Added a route to
Modules/MessageRouterfor adding a new XMRig deployment - Added an entry to the
Modules/PaneCataloguefor adding a new XMRig deployment - Added additional constants to
Constants/Fields,Constants/LabelsandContants/Panes - Added support for new XMRig deployment to
DbMgr,DeploymentMgr,Helper,MessageRouterandPaneCataloguemodules - Updated
NewMonerod,NewP2Pool,NewP2PoolType,P2PoolRemoteandXMRigpanes
Fixed
- Fixed
Panes/NewP2PoolTypelayout inDb4E.tcss
[0.21.0] - 2025-07-12
Added
- Added styling to
Db4E.tcssfor new P2Pool panes - Added additional constants to
Labels,FieldsandPanes - Added
delete_onetoModules/DbMgrfor CRUD - Added
NewP2Pool,NewP2PoolTypeandP2PoolRemotepanes - Added
deletefor 'Remote Monero Daemon Deployments' inDeploymentMgr - Added support for 'Remote P2Pool Deployments' to
DeploymentMgr
Changed
- Removed async / await from the codebase.
- Minor refactoring of
WelcomeandResultspanes - Changed
InitialSetup,MonerodRemote,NewMonerodTypeform structure for the architectural changes to theModules/MessageRouter - Major architectural change in
Modules/MessageRouterto support additional routing based on 'component' parameter
Fixed
- Removed unused themes from
App - Formalized and cleaned up
initializationlogic in the app and the components
[0.20.0] - 2025-07-11
Added
- Added new constants to
Constants/Labels,Constants/FieldsandConstants/Panes
Changed
- Minor refactor of
Panes/NewMonerodandPanes/Db4E; Replaced positional parameter with named parameters - Added support for "Edit Remote Monero Daemon Deployment" flow
- Updated
Db4E.tcssto support layout and styling for "Edit Remote Monero Daemon Deployment" - Updated
Modules/DbMgr,Modules/PaneCatalogue,Panes/MonerodRemote,Widgets/NavPaneto support "Remote Monero Daemon Edit" flow
Fixed
- Removed duplicate successful Modules/DeploymentMgr results message
[0.19.1] - 2025-07-10
Changed
-Updated README
[0.19.0] - 2025-07-09
Added
- Additional constants in
Constants/Labels,Constants/Fields, andConstants/Panes
Changed
- Fully replaced magic strings with constants in
Widgets/NavPane; complete refactor for clarity and maintainability - Replaced magic strings with constants in
Modules/MessageRouter; addedDeploymentMgr:new_deploymentregistration - Refactored
Appto support end-to-end "Remote Monero Daemon Deployment" flow - Updated
Db4E.tcssto support layout and styling for "Remote Monero Daemon Deployment" - Updated
DbMgr,DeploymentMgr,InstallMgr,MessageRouter, andPaneCatalogueto support the new deployment type - Enhanced
Widgets/NavPaneto display and control "Remote Monero Daemon Deployment" instances
Fixed
Appnow correctly callsPaneMgr.set_initialized(True)afterInstallMgr.initial_setup()completes
[0.18.2] - 2025-07-09
Added
- Workflow to manually trigger a rebuild of the project's Jekyll site
Changed
- Added a link to an updated 'Getting Started' page
- Added information on triggering the Jekyll site rebuild in the Git 'Branching Strategy' page
[0.18.1] - 2025-07-09
Added
- Adopting a new
pages/Git-Commit-Standard
Changed
- Updated the Getting Started page
- Moved the Mongo install howto
[0.18.0] - 2025-07-08
Added
- Installer fully implemented and now works end-to-end
- Introduced and maintaining a formal changelog (
CHANGELOG.md) DeploymentMgr.get_new_rec()now callsDbMgr.get_new_rec()and returns the result- New constants added to
Constants/Labels,Constants/Fields, andConstants/Defaults tests/conftest.py: added fixtures andhas_message()helperPanes/Welcome.py: added introductory content
Changed
InstallMgr.initial_setup()refactored into multiple smaller, testable functions- Replaced magic strings with constants in
App.py,Panes/Db4E, andPanes/InitialSetup - Installer now uses the effective GID of the current user instead of prompting for a group
pages/Git-Branching-Strategy: updated to includeCHANGELOG.mdin the release process- Added comprehensive tests for
Modules/test_InstallMgr.py
Fixed
- Documented resolution steps for
pyproject.tomlmerge conflicts during release