Git Product home page Git Product logo

soloptxmr's Introduction

'sup, dawgs!? Let's get this peep show running!

  • Pronouns: he/his ... don't talk to me, as if I were more than one person. You'd be fookin' the language that's meant to be simple, Bro.

Main projects' star history

Star History Chart

soloptxmr's People

Contributors

dependabot[bot] avatar endorxmr avatar mj-xmr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

endorxmr plowsof

soloptxmr's Issues

2023 full task description

As mentioned in the main issue, this particular issue deals with the individual tasks themselves and the ability for you to vote for or against them individually.

If you wish to donate, please visit this page.

If you have an idea, that's not mentioned here, please discuss it first in the brainstorming thread.

2023 brainstorming

Please present your idea that you'd wish to be implemented, and it shall be discussed here. Finally it will be presented here for voting.

Fundraiser for 2023

Hey everybody and a Happy New Year,

This is a fundraiser for the further development of SolOptXMR, whose interface can be found below:

https://htmlpreview.github.io/?https://github.com/mj-xmr/wishlist-mj/master/html/index.html

And here's the full tasks description.

Intro

On the 11th Nov 2022, I published the release of the Milestone 4 of 4 of the SolOptXMR project.

As a side note, the last point of that report was "Business model introduction", which has been retraced during the Community Review, so it became irrelevant for the current state of SolOptXMR.

After completing my contracted parts, the current state of SolOptXMR could be described as:

  • Stable: thanks to spending much more time than contracted on unit & integration tests, which uncovered multiple edge cases tending to mutually destabilize the system whenever one of them got fixed. Now this is history and the tests run automatically at each commit in a short span of time, thus protecting the project from regressions in the future.
  • Functional, yet having a development potential: most importantly the search algorithm's nature is purely random without any guidance. This classifies as a "naive search" (or "brute force"). As you might imagine, the search time for solutions in a wide search space as this one (many computers and long horizon), grows exponentially. We may retain the nature of the random search, which has great benefits in a multidimentional search space, yet provide it some guidance at the same time, since using the very same model, the algorithm may be replaced with either a Monte Carlo simulation, that I already use in my other project, tsqsim, or using a genetic algorithm of a different Author, that I'm ready to integrate.

There are many more open points, implementation of which would greatly improve my software, that I hope is being used, or is at least planned to be used.

The full and regularly updated list can be found on the project's Wiki, just as a reference.

Avoiding the CCS

I'd ask for the possibility of further development to be funded outside of the formerly used CCS (Monero Community Crowdfunding System), firstly due to its personal-related inefficiencies, that take up all my time and energy, that would otherwise be spent on the project, and secondly due to the fact, that the benefits that the CCS delivers, don't apply to me anymore, IMO. The main benefits are:

  • The CCS serves as an escrow between the Donators and the Developers: I not only deliver everything that I promise on time, but I myself have already been acting as an escrow for another Community Member: u/jeonyiota, the korean and greek translator.

If I wanted to rob anybody, this would have been my best chance, as Jiota continued her 4 month work only after the whole of the declared funds were collected on my account. I really just want to write my code and have nothing to do with the jealous Bad Actors, that currently plague the CCS (from my PoV) and don't "approve" other peoples' personal development, using political tactics as cheap as the infameous "cancel culture", "double speak" and simply by making rules as they go (in a nutshell).

  • Community Reviews of the proposal itself: This normally protects the Donators from spending money on bogus proposals. My proposal has not only already been approved, but the Userbase expressed their positive attitude towards the project, which I'm very thankful for!

Here's a perfectly fitting testimony of SolOptXMR itself, with all due respect to Authors these proposals, which are indeed Real:

I didn't realize that it was funded thru CCS, as I've stopped following what goes on there since in most cases it seems like just a grabbing bazaar without much return, so I am rather happy that you seem to be an exception there to actually produce something of real value AND put monero first.

Observing the matter from a more quantitative PoV, here's the cummulative Userbase's reaction after publishing the 4th Milestone. I guess, that the message is: "Shut up and keep writing that code".

In such fortunate case, the funding page can be found here.

The funding page contains each of the major points separated, as well as all the tiny tasks merged into larger ones. Naturally, the budget spared on a given task will be reused on others. The separation serves me as a way to prioritize my tasks according to your expectations.

In order to capture even more information than using the above method, for example either from my Users, who currently can't donate or optimistically - when all the points get fully funded, thus yielding no difference between their priorities, a mirror of the tasks is presented in the below GitHub issue, where I'd ask you to vote on particular tasks individually, using the Thumbs Up feature's "Reactions", or even Thumbs Down if you're firmly against a particular feature:

DETAILED TASK DESCRIPTIONS & VOTING MECHANISM

I will start working on any of the tasks, whichever collects the funding first. Specifically, I won't be waiting for the full budget to be accumulated.

Endor's work

The planned work is absent of the tasks, which were explicitly reserved for endor, who firmly expressed the will of finalizing them until an undisclosed date. If you'd like to know more about the progress of those tasks alone, you have to ask endor directly. Endor's tasks are described in the original proposal.

For reference, the discussion, where endor made the public statement paraphrased by me above, can be traced from here on. (NSFW warning!)

Deadline

I'd like to take it easy and finalize all the declared tasks until the end of year 2023. The most critical features, that deal with helping you in protection of your mining hardware against damage and your electrical installation against catching fire across the warm time of the year, have already been implemented.

Funds calculation

Assuming 270 working days in a year and an average of 2 hours per day of work on the project, as of 2022-12-26, I'd expect to collect a total sum of 225 XMR for the newly identified tasks.

Dev fee controversy

I don't want to get into too much detail, but due to some bystanders' jealousy, there is an active defamation process carried out against me, where an excuse was used, by which I had openly introduced an experimental dev fee "against the contract". Big deal. I simply retracted the change before we agreed to complete the review. However bad memories remain... on both sides. For reference, here's my reply towards the offenders.

Pyranometer or general HASS metrics integration

Hi... <3 this project - using miners as a diversion load has been on my roadmap for a long time. I havent tested it out yet but I sure will in the future. In my setup excess PV will charge the battery, then the warm water tank and then any access should be directed to mining. This would be a full off-grid scenario, so the miners should immediately throttle down, when the - by nature - intermittent PV production goes down to to clouds and quickly ramp up again to not drain the battery. This would require to involve metrics from battery as well as a separate pyranometer readout so that the system can ramp up again, as the pv inverters throttle their output when not enough demand is changing the frequency of the island grid.

How has your experience in practice been with on/off mining on p2pool, iirc it is PPLNS which is not really kind to on/off mining?

If you guys would like to discuss more p2p, you can always join us in #monero-pools on libera :)

OSX: The main python script fails, although specific components work

In the main directory there's a symlink soloptxmr.py, that points to src/prod.py. The script calls a few Python modules, ultimately to call the opti executable in the build/default-static-release/bin/ directory by default.

Even though calling the individual components that constitute the src/prod.py goes fine, the script hangs the GitHub CI machines. See the workaround in util/ci.sh:

python3 src/tests.py
# Now test unpickling:
python3 src/tests.py

./ci-default -o "VERBOSE_FUNCTIONS=OFF" # <-- it might be helpful to set it to ON

echo "Testing the entire production chain:"
if [ "$(uname)" == "Linux" ]; then
        python3 src/prod.py
else
        # TODO: Mac OSX suffers from an endless loop (?) in prod.py
        #python3 src/prod.py
        cd build/default-static-release/bin/
        ./opti
fi

A good approach would be to run the script in Python's debug mode and pause the execution to see where it hung.

It can be done either by a Mac owner or by somebody (like me) through renting an OSX terminal from a service like https://www.vpsserver.com .

Windows: cairosvg library requires installing GTK runtime

$ ./soloptxmr.py
Traceback (most recent call last):
  File "C:\Users\endor\Projects\SolOptXMR\soloptxmr.py", line 25, in <module>
    from src import generator
  File "C:\Users\endor\Projects\SolOptXMR\src\generator.py", line 23, in <module>
    from . import weather_lib
  File "C:\Users\endor\Projects\SolOptXMR\src\weather_lib.py", line 24, in <module>
    from cairosvg import svg2png
  File "C:\Users\endor\Projects\SolOptXMR\.venv-ui\lib\site-packages\cairosvg\__init__.py", line 26, in <module>
    from . import surface  # noqa isort:skip
  File "C:\Users\endor\Projects\SolOptXMR\.venv-ui\lib\site-packages\cairosvg\surface.py", line 9, in <module>
    import cairocffi as cairo
  File "C:\Users\endor\Projects\SolOptXMR\.venv-ui\lib\site-packages\cairocffi\__init__.py", line 48, in <module>
    cairo = dlopen(
  File "C:\Users\endor\Projects\SolOptXMR\.venv-ui\lib\site-packages\cairocffi\__init__.py", line 45, in dlopen
    raise OSError(error_message)  # pragma: no cover
OSError: no library called "cairo-2" was found
no library called "cairo" was found
cannot load library 'C:\Program Files (x86)\GtkSharp\2.12\bin\libcairo-2.dll': error 0xc1
cannot load library 'libcairo.so.2': error 0x7e
cannot load library 'libcairo.2.dylib': error 0x7e
cannot load library 'libcairo-2.dll': error 0xc1

Found this reply which suggests installing this GTK runtime for windows. That solves the issue.

Disabled profitability.py

@endorxmr

The profitability.py module appears to be broken, reporting connection errors from supportxmr.com, so I disabled it

It also needs to have an alternative source of information, as a fallback, in case the same thing happens again, as well as be able to react on the following options of the CLI:

  • --offline-force - to avoid the web-API calls completely and deliver a dummy response without crashing the application
  • --offline-try - to try calling the web-APIs, including all the fallbacks and deliver a dummy if it all fails, producing a warning
  • default behavior - to try calling the web-APIs, including all the fallbacks and crash if it all fails.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.