Several changes were introduced to get merge-mining to work. The key changes include fixing container dependencies, and persisting launchpad settings (xmrig won't work without a Monero address, for example).
A sumamry of major changes:
Launchpad will use external monero nodes for now. So simply remove the monerod containers for the time being.
mm_proxy requires the wallet to be running, so it was added to deps.
xmrig needs mm_proxy to be running.
The MM proxy parameters have sensible defaults, so we can use them if the user hasn't provided any overrides.
Additionally, write some logs as to what is happennign rather than fail silently. This is something pervasive in the code that should be addressed more broadly.
Settings are loaded on startup and persisted to {root}/config/settings.toml.
A sample settings file is included in assets to bootstrap first-time launch
A task can now fail due to MissingConfiguration(reason) which can be used to give feedback to users why a container didn't start (TODO).
Fixed the MM proxy container configuration, which was missing several things, incl envars, shared vloumes, deps and mounts.
Fixed incorrect configs in xmrig.
Settings updates:
The structure of the LaunchpadSettings struct is changed slightly. All settings that must be persisted are grouped into a new PresistentSettings struct, to make it easier to serialise and deserialise those parameters.
A new event - AppEvent::SettingsChanged is added to inform the bus when settings have been changed in the UI, which responds by persisting the settings.
There is also a specific LaunchpadAction now called LaunchpadAction::SaveSettings(settings: PersistentSettings) that will actually trigger the persistent via the actor model.
sha_thread is LabeledInput<usize> so that type conversion happens properly.
A bunch of utility methods have been added to various structs, incl Value and LabeledInput.
Value has a new variant, New which marks a Value as having been changed since the last read. This is used as a trigger to persist changes to the settings.
When settings change in the other direction (e.g. on startup or some other backend change), the UI can be informed via a new `ComponentEvent::S
UI fixes:
Fixed a bug where focus is lost when moving back to the main window from settings, or expert mode.
There was no code that injected settings values into the UI input fields. This has been added.
The on_event loops respond to StateChanged irrespective of which component has focus in order to update input field values.
Several changes were introduced to get merge-mining to work. The key changes include fixing container dependencies, and persisting launchpad settings (xmrig won't work without a Monero address, for example).
A sumamry of major changes:
{root}/config/settings.toml
.MissingConfiguration(reason)
which can be used to give feedback to users why a container didn't start (TODO).Settings updates:
LaunchpadSettings
struct is changed slightly. All settings that must be persisted are grouped into a newPresistentSettings
struct, to make it easier to serialise and deserialise those parameters.AppEvent::SettingsChanged
is added to inform the bus when settings have been changed in the UI, which responds by persisting the settings.LaunchpadAction
now calledLaunchpadAction::SaveSettings(settings: PersistentSettings)
that will actually trigger the persistent via the actor model.LabeledInput<usize>
so that type conversion happens properly.Value
andLabeledInput
.Value
has a new variant,New
which marks a Value as having been changed since the last read. This is used as a trigger to persist changes to the settings.UI fixes:
on_event
loops respond toStateChanged
irrespective of which component has focus in order to update input field values.