Bitcoin Forum
November 11, 2024, 05:15:44 PM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 3 4 5 6 7 8 9 »  All
  Print  
Author Topic: COMPLETED: Request for an RPC capable fork of cgminer (155 BTC pledged and paid)  (Read 19350 times)
DeathAndTaxes (OP)
Donator
Legendary
*
Offline Offline

Activity: 1218
Merit: 1079


Gerald Davis


View Profile
November 21, 2011, 02:35:46 PM
Last edit: January 03, 2012, 10:25:50 PM by DeathAndTaxes
 #1

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 Offline

Activity: 1358
Merit: 1000


AKA: gigavps


View Profile
November 21, 2011, 02:39:22 PM
 #2

I pledge 30 btc to the completion of the project.  Cheesy
finway
Hero Member
*****
Offline Offline

Activity: 714
Merit: 500


View Profile
November 21, 2011, 02:43:14 PM
 #3

why don't ask ckolivas to do this?

DeathAndTaxes (OP)
Donator
Legendary
*
Offline Offline

Activity: 1218
Merit: 1079


Gerald Davis


View Profile
November 21, 2011, 02:46:12 PM
 #4

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
Sr. Member
****
Offline Offline

Activity: 349
Merit: 250


View Profile
November 21, 2011, 03:00:56 PM
 #5

I solemnly pledge 30 btc to the completion of the project ;-)

| Operating electrum.be & us.electrum.be |
lueo
Member
**
Offline Offline

Activity: 61
Merit: 10


Bitcoin believer


View Profile WWW
November 21, 2011, 06:19:00 PM
 #6

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.

Donation: 1M1mB5BQX5QthTojfHxXxJQJr8ro5xLcKR
Real-time LR <-> MTGOX exchange! http://goo.gl/gJqZS
Internet Marketing Q&A in Chinese: http://qa.webcash168.com/
DeathAndTaxes (OP)
Donator
Legendary
*
Offline Offline

Activity: 1218
Merit: 1079


Gerald Davis


View Profile
November 21, 2011, 06:57:19 PM
 #7

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
Sr. Member
****
Offline Offline

Activity: 349
Merit: 250


View Profile
November 21, 2011, 07:48:10 PM
 #8

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
Hero Member
*****
Offline Offline

Activity: 956
Merit: 1001



View Profile
November 21, 2011, 08:23:33 PM
 #9

I pledge 10BTC towards bounty (and as previously stated.. a cgminer fork.. not some poclbm version)
-ck
Legendary
*
Offline Offline

Activity: 4284
Merit: 1645


Ruu \o/


View Profile WWW
November 21, 2011, 08:51:12 PM
 #10

Goddamnit that's the sum total of how much I've earned in donations in total for cgminer  Angry

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
Hero Member
*****
Offline Offline

Activity: 742
Merit: 500



View Profile WWW
November 21, 2011, 11:39:27 PM
 #11

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 Offline

Activity: 4284
Merit: 1645


Ruu \o/


View Profile WWW
November 22, 2011, 12:17:05 AM
 #12

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 Offline

Activity: 1358
Merit: 1000


AKA: gigavps


View Profile
November 22, 2011, 12:39:34 AM
 #13

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?  Grin

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 Offline

Activity: 4620
Merit: 1851


Linux since 1997 RedHat 4


View Profile
November 22, 2011, 01:48:43 AM
 #14

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.

Pool: https://kano.is - low 0.5% fee PPLNS 3 Days - Most reliable Solo with ONLY 0.5% fee   Bitcointalk thread: Forum
Discord support invite at https://kano.is/ Majority developer of the ckpool code - k for kano
The ONLY active original developer of cgminer. Original master git: https://github.com/kanoi/cgminer
kano
Legendary
*
Offline Offline

Activity: 4620
Merit: 1851


Linux since 1997 RedHat 4


View Profile
November 22, 2011, 01:50:34 AM
 #15

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?  Grin

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?

Pool: https://kano.is - low 0.5% fee PPLNS 3 Days - Most reliable Solo with ONLY 0.5% fee   Bitcointalk thread: Forum
Discord support invite at https://kano.is/ Majority developer of the ckpool code - k for kano
The ONLY active original developer of cgminer. Original master git: https://github.com/kanoi/cgminer
Red Emerald
Hero Member
*****
Offline Offline

Activity: 742
Merit: 500



View Profile WWW
November 22, 2011, 02:57:48 AM
 #16

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 Offline

Activity: 4284
Merit: 1645


Ruu \o/


View Profile WWW
November 22, 2011, 04:08:34 AM
 #17

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?  Grin

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 Offline

Activity: 4284
Merit: 1645


Ruu \o/


View Profile WWW
November 22, 2011, 05:20:29 AM
 #18

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  Grin

Developer/maintainer for cgminer, ckpool/ckproxy, and the -ck kernel
2% Fee Solo mining at solo.ckpool.org
-ck
kano
Legendary
*
Offline Offline

Activity: 4620
Merit: 1851


Linux since 1997 RedHat 4


View Profile
November 22, 2011, 05:48:59 AM
 #19

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.

Quote
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.

Pool: https://kano.is - low 0.5% fee PPLNS 3 Days - Most reliable Solo with ONLY 0.5% fee   Bitcointalk thread: Forum
Discord support invite at https://kano.is/ Majority developer of the ckpool code - k for kano
The ONLY active original developer of cgminer. Original master git: https://github.com/kanoi/cgminer
jamesg
VIP
Legendary
*
Offline Offline

Activity: 1358
Merit: 1000


AKA: gigavps


View Profile
November 22, 2011, 10:15:33 AM
 #20

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?  Grin

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.

Pages: [1] 2 3 4 5 6 7 8 9 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!