Job available to modify sgminer source code for multiple algorithms

Discussion of development releases of Prohashing / Requests for features
Forum rules
The Development forum is for discussion of development releases of Prohashing and for feedback on the site, requests for features, etc.

While we can't promise we will be able to implement every feature request, we will give them each due consideration and do our best with the resources and staffing we have available.

For the full list of PROHASHING forums rules, please visit https://prohashing.com/help/prohashing- ... rms-forums.
Post Reply
User avatar
Steve Sokolowski
Posts: 4585
Joined: Wed Aug 27, 2014 3:27 pm
Location: State College, PA

Job available to modify sgminer source code for multiple algorithms

Post by Steve Sokolowski » Wed Jul 29, 2015 6:33 pm

At Prohashing, we are always pushing the bounds of mining. Now that we have resolved most issues with scrypt mining, we will be turning to our original goal that was first decided in December 2013: to create an algorithm-switching pool. The existing trading, payout, and coin selection features will be expanded to GPU and CPU mining. The pool was designed for this endgame from the beginning: the electricity tracking and work restart testing will be used together to determine optimal profitability for electricity usage across all algorithms and coins without user configuration. We will, like we do with scrypt, be able to assign miners across many coins and algorithms depending on their individual characteristics so that the pool as a whole makes the most money possible.

To do this, we need to extend the stratum protocol to accept a new command for multiple algorithms: mining.set_algorithm. The command will take one argument - the name of the algorithm to set - such as "x11," "scrypt," and so on. The client will reply with return value of true, indicating that the client does support that algorithm and will change to it with the next received job, or false, indicating that the algorithm is not supported and the client will not change algorithms. We are beginning tonight with the server implementation of this algorithm switching and plan to spend the next few weekends on it.

A program called sgminer, which was incidentally commissioned by competitor Nicehash, already supports multiple algorithms. However, the implementation used by Nicehash is suboptimal, because it cannot consider electricity, and because it requires a complicated port-switching scheme. sgminer requires human configuration, which is unreliable compared to automated testing. Most importantly, it only switches algorithms once per minute. If it supported a "mining.set_algorithm" command, then all of these shortcomings would be eliminated.

We want to hire someone to perform the task of modifying sgminer to support this new protocol extension. The specific job is to find the code in sgminer where the stratum protocol is handled, and modify it to call the existing sgminer algorithm selection function when this new command is received. Finally, sgminer must return a stratum message to the server immediately, indicating whether the miner was able to switch to the new algorithm or not. The job concludes with submitting a pull request to the sgminer source code for this extension, and if the pull request is not accepted, then creating a new fork of sgminer that will be independently maintained by Prohashing.

Please place bids by replying to this post, sending a private message, sending us an E-Mail, or by calling us at the number listed on the "contact" page. We'll make a decision by the end of the weekend. Note that because Chris needs to earn a living by getting this feature out as soon as possible, this job will have a deadline of two weeks after the agreement is made with a penalty for late performance. Please do not bid if you anticipate being unable to finish on time.

We look forward to working with you and look forward to releasing the future of mining this October. Feel free to post any questions below.
Post Reply