DeathAndTaxes (OP)
Donator
Legendary
Offline
Activity: 1218
Merit: 1079
Gerald Davis
|
|
November 21, 2011, 02:35:46 PM Last edit: January 03, 2012, 10:25:50 PM by DeathAndTaxes |
|
For those of us with hashing farms there is interest in taking the existing cgminer (best miner platform bar none) and adding RPC support. This would enable the development of a variety of monitoring & management front ends (console, web or smartphone for example).
To establish a baseline for the project I have come up with some general conditions for a bounty. These conditions aren't set in stone and I am willing to modify them if others (who pledge) see need for changes to the conditions. This is just an attempt to jump-start a project. If any developer sees an issue with the constraints please indicate in the thread.
I am willing to pledge 30 BTC towards either integrating the following features into a future version of cgminer or developing a fork of cgminer project which will be "rpc only". Given the amount of new code and the amount of existing cgminer code which would be no longer needed a fork may be the best route however I would leave that up to any potential developers.
The executable: * A daemon which is started by config file. * No command line output necessary or desired (although may be useful for troubleshooting) * Responds to RPCs. Although I am not a huge fan or JSON RPC given it near universal usage in other bitcoin apps it likely is a good candidate.
The daemon should respond to the following RPC (at a minimum) to satisfy the bounty: * Start/stop/restart individual GPUs (on restart recheck config file for any changes) * Shutdown instance (stop all GPU, and end cgminer) * Report current monitors (a min of current temp/load/clock/hashing speed) * Report global output (a min of total shares, accepted shares, rejected shares, stale shares, etc) * Report individual card output (same but on per card basis) * Report any failures (a min of card down & pool not responding)
Obviously more advanced features could be added in the future (changing clock speeds, voltage, intensity, etc) however those could be handled by future bounties/donations once project is up and running. This is just a rough draft but the hope is it will spark attention of potential developers and further discussion among those interested in RPC capable cgminer.
Amounts pledged (any additional limits/requirements marked): * DeathAndTaxes - 30 BTC (+5 BTC more if integrated into the mainline instead of a fork) * Gigasvps - 30 BTC * Tnkflx - 30 BTC * abracadabra - 10 BTC * Red Emerald - 10 BTC (+5 BTC more if integrated into the mainline instead of a fork) * ThiagoCMC - 5 BTC * gnar1ta$ - 10 BTC (+5 BTC more if integrated into the mainline instead of a fork) * Chefnet - (+15 BTC only if integrated into the mainline instead of a fork)
Total Pledged: 125 BTC (30 BTC for integration into mainline)
Edit 1/3/2012: All pledges have been paid in full as verified by the two developers.
|
|
|
|
jamesg
VIP
Legendary
Offline
Activity: 1358
Merit: 1000
AKA: gigavps
|
|
November 21, 2011, 02:39:22 PM |
|
I pledge 30 btc to the completion of the project.
|
|
|
|
finway
|
|
November 21, 2011, 02:43:14 PM |
|
why don't ask ckolivas to do this?
|
|
|
|
DeathAndTaxes (OP)
Donator
Legendary
Offline
Activity: 1218
Merit: 1079
Gerald Davis
|
|
November 21, 2011, 02:46:12 PM |
|
why don't ask ckolivas to do this?
I have and he didn't seem interested. Obviously he isn't excluded from the bounty and given his knowledge related to the internal workings of cgminer could easily claim the bounty if he is interested in perusing it. If he isn't then the bounty opens development to anyone else so there is no need for us to continually "pester" him w/ a request he isn't interested in.
|
|
|
|
tnkflx
|
|
November 21, 2011, 03:00:56 PM |
|
I solemnly pledge 30 btc to the completion of the project ;-)
|
| Operating electrum.be & us.electrum.be |
|
|
|
lueo
Member
Offline
Activity: 61
Merit: 10
Bitcoin believer
|
|
November 21, 2011, 06:19:00 PM |
|
It's exactly what I am trying to implement in the last 2 months. If RPC is possible for a miner, then a experienced system adminstrator could help integrate it into any kind monitor program (e.g. Nagios, Munin, Zenoss, Zabbix,.... etc.).
Since I don't like C that much, I am using Python as my primary language. I think we can use poclbm as a foundation, and do the following implementation:
1. Auto kernel tuning (the algorithm could be referenced to cgminer) 2. Temp / Fan auto control (the algorithm could also be ref to cgminer) 3. Status monitoring (pull mode and push mode)
PS. Regarding to 3, the pull mode is like "Getting status every 5 minutes", and the push mode is like "Send status as soon as I got any news".
I am thinking of using a web framework like Django or web.py to implement the JSON interface in a RESTful way.
|
|
|
|
DeathAndTaxes (OP)
Donator
Legendary
Offline
Activity: 1218
Merit: 1079
Gerald Davis
|
|
November 21, 2011, 06:57:19 PM |
|
Since I don't like C that much, I am using Python as my primary language. I think we can use poclbm as a foundation, and do the following implementation: I wouldn't have any interest in poclbm based miner. cgminer is simply put the best miner hands down. Multiple GPU per instance, superior block change handling, ADL support built in (temp/clocks), etc. To recreate all the advantages of cgminer in another miner and then add RPC support on top of that would be very difficult and beyond the scope of this bounty.
|
|
|
|
tnkflx
|
|
November 21, 2011, 07:48:10 PM |
|
Since I don't like C that much, I am using Python as my primary language. I think we can use poclbm as a foundation, and do the following implementation: I wouldn't have any interest in poclbm based miner. cgminer is simply put the best miner hands down. Multiple GPU per instance, superior block change handling, ADL support built in (temp/clocks), etc. To recreate all the advantages of cgminer in another miner and then add RPC support on top of that would be very difficult and beyond the scope of this bounty. What DeathAndTaxes said... I pledged for a forked version of cgminer, not a new one...
|
| Operating electrum.be & us.electrum.be |
|
|
|
abracadabra
|
|
November 21, 2011, 08:23:33 PM |
|
I pledge 10BTC towards bounty (and as previously stated.. a cgminer fork.. not some poclbm version)
|
|
|
|
-ck
Legendary
Offline
Activity: 4284
Merit: 1645
Ruu \o/
|
|
November 21, 2011, 08:51:12 PM |
|
Goddamnit that's the sum total of how much I've earned in donations in total for cgminer I'll have to think about it since I don't have the free time I did when I worked on cgminer to begin with.
|
Developer/maintainer for cgminer, ckpool/ckproxy, and the -ck kernel 2% Fee Solo mining at solo.ckpool.org -ck
|
|
|
Red Emerald
|
|
November 21, 2011, 11:39:27 PM |
|
Theres so many projects that I want to help out! Bitcoiners are still coming up with great ideas.
I'll pledge 10 BTC. I'll pledge 5 more if I ckolivas pulls the code into his main branch (even if he codes it). I think this would help us by keeping bugs to a minimum. Multiple versions of cgminer are sure to only complicate things and slow features down.
|
|
|
|
-ck
Legendary
Offline
Activity: 4284
Merit: 1645
Ruu \o/
|
|
November 22, 2011, 12:17:05 AM |
|
I'd be happy to pull any code that is done in a satisfactory generalised manner into the main branch.
|
Developer/maintainer for cgminer, ckpool/ckproxy, and the -ck kernel 2% Fee Solo mining at solo.ckpool.org -ck
|
|
|
jamesg
VIP
Legendary
Offline
Activity: 1358
Merit: 1000
AKA: gigavps
|
|
November 22, 2011, 12:39:34 AM |
|
I'd be happy to pull any code that is done in a satisfactory generalised manner into the main branch.
Since you are in the thread, would you be willing to do the work? If not, what would it take to entice you enough? IMHO if this work is done, cgminer will be able to spread like a weed and become the default miner throughout the land.
|
|
|
|
kano
Legendary
Offline
Activity: 4620
Merit: 1851
Linux since 1997 RedHat 4
|
|
November 22, 2011, 01:48:43 AM |
|
The JSON RPC must have been designed by people who can't write software. It's slow due to the ridiculous HTTP overhead it has and it's design looks like someone who wants to talk to a program, not provide information over an API. Considering how simple it it to create a socket interface I wonder about the naivety of those who chose it for bitcoin.
|
|
|
|
kano
Legendary
Offline
Activity: 4620
Merit: 1851
Linux since 1997 RedHat 4
|
|
November 22, 2011, 01:50:34 AM |
|
I'd be happy to pull any code that is done in a satisfactory generalised manner into the main branch.
Since you are in the thread, would you be willing to do the work? If not, what would it take to entice you enough? IMHO if this work is done, cgminer will be able to spread like a weed and become the default miner throughout the land. You seriously think that the people who don't use it yet will suddenly change their mind because of this ... or that a lot of people don't already use it?
|
|
|
|
Red Emerald
|
|
November 22, 2011, 02:57:48 AM |
|
The JSON RPC must have been designed by people who can't write software. It's slow due to the ridiculous HTTP overhead it has and it's design looks like someone who wants to talk to a program, not provide information over an API. Considering how simple it it to create a socket interface I wonder about the naivety of those who chose it for bitcoin.
Why does "slow" matter for an app like this? Do you need to send thousands of commands to your miners at once? JSON RPC is also incredibly easy to implement in just about every language and platform, local or remote. Socket api's are not as standardized across lots of projects. What would you propose we use instead of JSON RPC? Now would be the time considering no code has been written yet.
|
|
|
|
-ck
Legendary
Offline
Activity: 4284
Merit: 1645
Ruu \o/
|
|
November 22, 2011, 04:08:34 AM |
|
I'd be happy to pull any code that is done in a satisfactory generalised manner into the main branch.
Since you are in the thread, would you be willing to do the work? If not, what would it take to entice you enough? IMHO if this work is done, cgminer will be able to spread like a weed and become the default miner throughout the land. The bounty certainly is attractive, but it can't make me find the time to do it, and I have no experience with that sort of code. Then again, I also had no experience with bitcoin mining, opencl code, overclocking, curses.... so anything's possible. My willingness to dedicate time is the hardest thing to win over right now. When I did cgminer I had a personal sabbatical with time off work and used the project as part of my need for programming expression. I have not the time now, so I'm not sure if there is much that would make me want to. Bear in mind that even 100 BTC is less than 300 bucks and think how much real contract work pays. I like taking BTC as a concept, and encouraging BTC trade through doing so, but I'm not earning any real money at these prices.
|
Developer/maintainer for cgminer, ckpool/ckproxy, and the -ck kernel 2% Fee Solo mining at solo.ckpool.org -ck
|
|
|
-ck
Legendary
Offline
Activity: 4284
Merit: 1645
Ruu \o/
|
|
November 22, 2011, 05:20:29 AM |
|
Goddamnit that's the sum total of how much I've earned in donations in total for cgminer
That is ridiculous, well you have a couple of more now. Thanks btw
|
Developer/maintainer for cgminer, ckpool/ckproxy, and the -ck kernel 2% Fee Solo mining at solo.ckpool.org -ck
|
|
|
kano
Legendary
Offline
Activity: 4620
Merit: 1851
Linux since 1997 RedHat 4
|
|
November 22, 2011, 05:48:59 AM |
|
The JSON RPC must have been designed by people who can't write software. It's slow due to the ridiculous HTTP overhead it has and it's design looks like someone who wants to talk to a program, not provide information over an API. Considering how simple it it to create a socket interface I wonder about the naivety of those who chose it for bitcoin.
Why does "slow" matter for an app like this? Do you need to send thousands of commands to your miners at once? JSON RPC is also incredibly easy to implement in just about every language and platform, local or remote. Socket api's are not as standardized across lots of projects. The JSON RPC is also the reason why bitcoin, pools and even ltc have such problems dealing with what amounts to not a lot of data. What would you propose we use instead of JSON RPC? Now would be the time considering no code has been written yet.
LOL time is irrelevant, if I wanted to write it I'd just write it using sockets like I've written many interfaces before. For web sites it's simple to use sockets between C and PHP so I'm sure it must be simple for ANY other language. The JSON RPC is written on TOP of sockets I guess usually using CURL since having to write a full HTTP implementation is a pain beyond belief. CURL/HTTP is a way over complicated interface to use to pass simple data and nothing is gained by using it. If someone else wants to write it then I guess JSON RPC is what will be used and it will suck badly like the rest of the JSON RPC interfaces spread throughout Bitcoin. I get and see a lot of responses from people saying how "Satoshi said so thus that's how it should be" This is another example of it. He may have been good at maths while he was alive but he certainly sucked at choosing, designing and coding programming interfaces.
|
|
|
|
jamesg
VIP
Legendary
Offline
Activity: 1358
Merit: 1000
AKA: gigavps
|
|
November 22, 2011, 10:15:33 AM |
|
I'd be happy to pull any code that is done in a satisfactory generalised manner into the main branch.
Since you are in the thread, would you be willing to do the work? If not, what would it take to entice you enough? IMHO if this work is done, cgminer will be able to spread like a weed and become the default miner throughout the land. You seriously think that the people who don't use it yet will suddenly change their mind because of this ... or that a lot of people don't already use it? Hi Kano, yes i do think more people would use cgminer including myself if it had some type of programming interface to interact with the miner for stats. If you would like to use something other than json/rpc calls, make your case and program it. I'm asking for this so cgminer can have monitoring tools added to it.
|
|
|
|
|