[monero-bash v2.0.0]
Intro
Hi everyone, it's been around 6 months since the original monero-bash CCS proposal. Since then, I've been continuing to maintain monero-bash, adding updates and fixing bugs. As Monero, P2Pool, and XMRig continue to add new features and configuration options, I'd like to continue maintaining monero-bash so that it supports them.
I'm currently developing v2.0.0, which is a full rewrite to improve monero-bash. I've also spent the past while making robust Bash functions (mostly for monero-bash), and have generalized them into a standard library usable in any Bash script. These helper functions will allow for cleaner code in monero-bash.
What
This is a CCS proposal to allow me to work for max 3 months on re-writing monero-bash, a Linux CLI wrapper/manager for Monero, P2Pool and XMRig. In particular, I'd like to make monero-bash's package manager multi-threaded, which essentially requires re-writing it from scratch.
Any extra time left-over will be spent maintaining monero-bash.
Some milestones I'd like to achieve:
- Performance
- Add multi-threading to package manager
- Wallet
- Add interactive wallet menu (using arrow keys) Compatibility
- Fix Fedora Linux issues (systemd, SELinux)
- Options
- Support for all P2Pool options
- General
- Harden processes, general security improvements
- Add verbose debug logging
- Cleaner UI
Who
I'm hinto-janaiyo. Maintainer of monero-bash, and a tiny contributor to Monero.
Previous CCS | Github - profile | Github - monero-bash
Who cares?
I've gotten some feedback about the actual usefulness of this project, so I'd like argue my case here:
1. How is this different than downloading manually
Monero/P2Pool/XMRig update relatively frequently and every time you must manually check, manually download, manually verify hash/signature (...which you are all doing, right?), manually replace your old binaries with the new without messing it up. This is a problem that was solved 2 decades ago: it's called a packager manager. It would be great if all Linux repositories included these packages but they don't, and due to the nature of this software, probably never will be. monero-bash
happens to be a package manager though!
2. This is just a "Bash script"
I think monero-bash overtime has gotten a lot of nice features. Package manager with Tor support, wallet menu, live status watcher, process manager. It's currently around 4-5k lines of code (excluding comments, configs, etc) because of the (maybe too big) scope: management of everything Monero, compatible on many Linux distros. There is a lot more code than a 10-line script that does a single task. Example: an algorithm for merging two config files together. Hopefully people can see beyond the language.
3. I could do this better/for cheaper
Excluding this project and the Monero GUI, there are 0 projects out there that are all-in-one P2Pool solutions, which is unfortunate. I've always rooted for P2Pool use and I think the community sees the importance too. One of main reason I made and continued to develop monero-bash was because the lack of any tools. There is no other option out there other than manually setting everything up. A year after P2Pool's creation, the only project (that people actually use) is this one, no "better" versions or GUI versions have shown up. This project should not be the only option, an all-in-one cross-compatible GUI would be ideal... but who will make that? I'll be continuing to maintain this for a long time, since I use it myself.
Proposal
Work for at the maximum 3 months to finish monero-bash v2.0.0 and continue to maintain alongside Monero, P2Pool, and XMRig.
Pricing: 38 XMR ONLY upon full completion.
Work hours: I'll be working for 3 months, around 20 hours a week, for a total of 243 hours.
At the current USD exchange rate for XMR ($140 USD, Sept 25, 2022), I'll be working for: $22/hr ($5346 / 243 hours)
If I finish early, any leftover time will be spent continuing to maintain monero-bash as needed (added new options, fixing bugs).
Estimated time to completion:
Milestone | Time (estimation) |
---|---|
Re-write for multi-thread support | 1 month~ |
Interactive wallet menu (using arrow keys) | 3 weeks~ |
Fix Fedora issues | 1 week~ |
Security improvements | 1 week~ |
Documentation | 4 days~ |
All P2Pool options | 3 days~ |
Test, refine, fix bugs, repeat | 2 weeks~ |
Total time | 3 months~ |
Merge request reports
Activity
Edit: added estimated time to completion and more detailed pricing per hour/week as suggested during Monero Community Workgroup Meeting
Update: I have a prototype of the new package manager:
34s vs 14s (2.4x faster)
It should get up to 4x faster since it scales as you install/upgrade more packages at once. The nominal speed is dependent on your internet speed but the % increase should be the same. The PGP & hash verification is also multi-threaded which should help speeds too.
I also think so! This information is valuable to me. Thanks for sharing. run 3
Hinto's first CCS was funded and completed (in quick fashion). If you have been following his work (be it on github or the odd news article) he has been continuously working on / improving monero-bash. You may think ' its just bash scripts, how hard can it be ' but this is not the case, he has created something more than that, and we can get a finished / polished product at the end of this CCS (which i trust him to deliver , in the same quick fashion as his 1st one)
*The feedback from the community meeting where this proposal was discussed centered mainly around defining his hourly rates / work to be done, i see that this has been provided, and is now up for review.
Edited by plowsofMeeting to discuss CCS Merge list this Saturday (Time not set in stone) https://github.com/monero-project/meta/issues/737