Pages:
Author

Topic: COMPLETED: Request for an RPC capable fork of cgminer (155 BTC pledged and paid) - page 3. (Read 19357 times)

-ck
legendary
Activity: 4088
Merit: 1631
Ruu \o/
Well, I got half the 30 BTC bounty, thanks! 15 to go...
-ck
legendary
Activity: 4088
Merit: 1631
Ruu \o/
donator
Activity: 1218
Merit: 1079
Gerald Davis
My 5 BTC integration bonus paid (5.000777 so I could track it as I paid it from an exchange account).

http://blockchain.info/tx-index/13548043/89fc06ad9196facee2741ce173e3a525a9017df90eb0e61352c46f2fcd1f18f3
-ck
legendary
Activity: 4088
Merit: 1631
Ruu \o/
After auditing the code, the API branch has been merged into my cgminer master branch now. Please refer any further API discussion to the regular cgminer thread.

There is 30 BTC pledge towards integration into mainline.  Do you want it sent to your signature address?
148KkS2vgVi4VzUi4JcKzM2PMaMVPi3nnq
That will be fine, thanks.
donator
Activity: 1218
Merit: 1079
Gerald Davis
After auditing the code, the API branch has been merged into my cgminer master branch now. Please refer any further API discussion to the regular cgminer thread.

There is 30 BTC pledge towards integration into mainline.  Do you want it sent to your signature address?
148KkS2vgVi4VzUi4JcKzM2PMaMVPi3nnq
-ck
legendary
Activity: 4088
Merit: 1631
Ruu \o/
After auditing the code, the API branch has been merged into my cgminer master branch now. Please refer any further API discussion to the regular cgminer thread.
hero member
Activity: 742
Merit: 500
Here is my basic socket client in python

https://gist.github.com/1500780
FYI, you need to send and receive like this (refer to kano's link on sockets):

Dunno how I missed that example when I was reading through the docs.  I'll clean it up.

EDIT: https://gist.github.com/1500780

I realized that most people are going to want to check multiple mining rigs and having to make a new CgminerClient for each host seemed like extra work. I made it so that the client can check multiple hosts and ports easily rather than being bound to one at creation.
legendary
Activity: 980
Merit: 1008
Here is my basic socket client in python

https://gist.github.com/1500780
FYI, you need to send and receive like this (refer to kano's link on sockets):

Code:
RECVSIZE=65500

def _sendmsg(sock, msg):
   totalsent = 0
   while totalsent < len(msg):
      sent = sock.send(msg[totalsent:])
      if sent == 0:
         raise RuntimeError("socket connection broken")
      totalsent = totalsent + sent

def _recvmsg(sock):
   msg = ''
   while True:
      chunk = sock.recv(RECVSIZE)
      if (chunk == ''):
         break
      msg = msg + chunk
   return msg

yeah it's tiring, but there are no guarantees that your entire message will be transmitted at once. It will most of the time, but unless you do it like the above, sometimes odd errors will creep in that will take you forever to figure out, until you find out that send() only sends the number of bytes it returns (not necessarily the whole message), and recv() has only received the entire message when it returns an empty string (ie. receives nothing).

EDIT: Oh, and you should run shutdown() before close() Smiley
legendary
Activity: 1022
Merit: 1000
BitMinter
If you can't wait, let me know. Wink
legendary
Activity: 4592
Merit: 1851
Linux since 1997 RedHat 4
legendary
Activity: 1022
Merit: 1000
BitMinter
Only one left is ThiagoCMC - 5 BTC

If there should be a problem for him to pay the 5 BTC at the moment, i can help !
legendary
Activity: 4592
Merit: 1851
Linux since 1997 RedHat 4
Bounty sent.  2 transactions
#1 - 3.89465464
#2 - 6.10534536

Thanks kano!

Looking forward to future apps using this new feature of cgminer.  The android phone control is exactly what I was thinking!
#1 - 3.89
#2 - 6.10534536
Total: 9.99534536 close enough Smiley
(yes seriously - close enough - don't worry about the 0.00465464 it's worth less than 2c even now)

Only one left is ThiagoCMC - 5 BTC
hero member
Activity: 956
Merit: 1001
Bounty sent.  2 transactions
#1 - 3.89465464
#2 - 6.10534536

Thanks kano!

Looking forward to future apps using this new feature of cgminer.  The android phone control is exactly what I was thinking!
donator
Activity: 1218
Merit: 1079
Gerald Davis
A gentle reminder to the following who made pledges on this project.  
* abracadabra - 10 BTC
* ThiagoCMC - 5 BTC

I believe everyone else has paid (let me know if right Kano).

There are still bounties for integration into mainline but those should be the last two for standalone project.
donator
Activity: 1218
Merit: 1079
Gerald Davis
For those wanting to run cgminer as a daemon using "real-quiet" : true option in config file disables curses and makes cgminer even lighterweight.  For some weird reason ever couple of reboots I would get cgminer to hang launching the "display" (cpu usage would go to 99.9% and system would become very unresponsive).  Trying to end cgminer would fail and the process would go defunct.  I believe it is some curses glitch on my rigs but since it only happens at boot I never investigated it much and instead used the scientific "hand temp" test to determine if cgminer launched successfully after a boot.

Since running in "real-quiet" I have never had a hang on reboot.  I even rebooted 22 times one day to try and cause it.  Smiley
donator
Activity: 1218
Merit: 1079
Gerald Davis
I've temporarily pulled Kano's changes into a new api branch on my own git tree. Pending further testing and auditing by myself, it will eventually be pulled into the master branch and be incorporated into the next release whenever I get around to it. Thanks so very much for taking on this task, Kano.

A +1 to kano and a +1 for ckolivas looking to integrate into the mainline.  I am currently using a hacked together command line utility to keep track of my server farm.  It is ugly code but it works as a proof of concept.  I can from a single "utility" (kinda a stretch to call it that) gets stats and make changes to any one of 24 GPUs on 4 rigs.   WOOT!

I imagine when someone builds a real utility (either android based, or web based) it will be smoking.  Imagine controlling 11GH of hashing power from your android phone.  Getting vibration notifications when a GPU fails.  Checking a chart of last hour (or 24 hours) of hashing performance, having a built in realtime cashflow counter (in both bitcoins & USD).    Granted none of that exists but it COULD exist thanks to the work of Kano and ckolivas.

-ck
legendary
Activity: 4088
Merit: 1631
Ruu \o/
I've temporarily pulled Kano's changes into a new api branch on my own git tree. Pending further testing and auditing by myself, it will eventually be pulled into the master branch and be incorporated into the next release whenever I get around to it. Thanks so very much for taking on this task, Kano.
legendary
Activity: 4592
Merit: 1851
Linux since 1997 RedHat 4
The git version number makes no difference since it wont be going back to ckolivas
I keep my own version number in my local copy

The NULL character ensures termination in C and means I don't have to add it in C.
It also works fine in my Java and PHP code.

The README of course explains the API usage - which is as you have worked out.
hero member
Activity: 742
Merit: 500
So I built it in git and successfuly got an error message in JSON.  Can you give an example command?

Code:
{"STATUS":[{"STATUS":"E","Code":23,"Msg":"Invalid JSON","Description":"cgminer 2.0.8x"}],"id":1}

Also, the version is still showing as cgminer 2.0.8x.  I thought that this was z

EDIT: woohoo!

Code:
[user@miner cgminer-pyrpc]$ python cgminer-rpc.py devs
{"command": "devs"}
{"STATUS":[{"STATUS":"S","Code":9,"Msg":"3 GPU(s) - 0 CPU(s)","Description":"cgminer 2.0.8x"}],"DEVS":[{"GPU":0,"Enabled":"Y","Status":"Alive","Temperature":74.50,"Fan Speed":4359,"Fan Percent":85,"GPU Clock":830,"Memory Clock":350,"GPU Voltage":1.049,"GPU Activity":99,"Powertune":0,"MHS av":377.53,"MHS 5s":377.48,"Accepted":160,"Rejected":8,"Hardware Errors":0,"Utility":4.70,"Intensity":"8"},{"GPU":1,"Enabled":"Y","Status":"Alive","Temperature":71.00,"Fan Speed":-1,"Fan Percent":-1,"GPU Clock":820,"Memory Clock":350,"GPU Voltage":1.049,"GPU Activity":99,"Powertune":0,"MHS av":373.36,"MHS 5s":368.26,"Accepted":179,"Rejected":6,"Hardware Errors":0,"Utility":5.26,"Intensity":"8"},{"GPU":2,"Enabled":"Y","Status":"Alive","Temperature":68.50,"Fan Speed":1612,"Fan Percent":44,"GPU Clock":1000,"Memory Clock":350,"GPU Voltage":1.162,"GPU Activity":99,"Powertune":0,"MHS av":321.44,"MHS 5s":323.91,"Accepted":138,"Rejected":13,"Hardware Errors":0,"Utility":4.05,"Intensity":"8"}],"id":1}

EDIT AGAIN: only kinda woohoo!

Code:
'{"STATUS":[{"STATUS":"S","Code":11,"Msg":"Summary","Description":"cgminer 2.0.8x"}],"SUMMARY":[{"Elapsed":2862,"Algorithm":"c","MHS av":1071.31,"Found Blocks":0,"Getworks":754,"Accepted":676,"Rejected":42,"Hardware Errors":0,"Utility":14.17,"Discarded":44,"Stale":0,"Get Failures":5,"Local Work":44,"Remote Failures":0,"Network Blocks":6}],"id":1}\x00'

That null byte at the end makes python's json module complain. Is there any reason you have it there? I've just stripped it off for now.

Here is my basic socket client in python

https://gist.github.com/1500780
legendary
Activity: 4592
Merit: 1851
Linux since 1997 RedHat 4
... and I've updated the README in my git.
Next step is to create a Pull Request for ckolivas' git ...

As usual, anyone with any questions, issues, suggestions, changes or otherwise - please say so.

And lastly I'm only waiting on just abracadabra and ThiagoCMC for their bounties Smiley
Pages:
Jump to: